summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qplatformwindow.h
blob: 420c97d45a1247ed42b11729a0aa9dc8b781e101 (plain)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
// Copyright (C) 2017 The Qt Company Ltd.// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only#ifndef QPLATFORMWINDOW_H#define QPLATFORMWINDOW_H//// W A R N I N G// -------------//// This file is part of the QPA API and is not meant to be used// in applications. Usage of this API may make your code// source and binary incompatible with future versions of Qt.//#include <QtGui/qtguiglobal.h>#include <QtCore/qscopedpointer.h>#include <QtCore/qrect.h>#include <QtCore/qmargins.h>#include <QtCore/qstring.h>#include <QtGui/qwindowdefs.h>#include <QtGui/qwindow.h>#include <qpa/qplatformopenglcontext.h>#include <qpa/qplatformsurface.h> QT_BEGIN_NAMESPACE #define QWINDOWSIZE_MAX ((1<<24)-1)class QPlatformScreen;class QPlatformWindowPrivate;class QScreen;class QWindow;class QIcon;class QRegion;class Q_GUI_EXPORT QPlatformWindow :public QPlatformSurface {Q_DECLARE_PRIVATE(QPlatformWindow)public:Q_DISABLE_COPY_MOVE(QPlatformWindow)explicitQPlatformWindow(QWindow *window);~QPlatformWindow() override;virtualvoidinitialize(); QWindow *window()const; QPlatformWindow *parent()const; QPlatformScreen *screen()const override;virtual QSurfaceFormat format()const override;virtualvoidsetGeometry(const QRect &rect);virtual QRect geometry()const;virtual QRect normalGeometry()const;virtual QMargins frameMargins()const;virtual QMargins safeAreaMargins()const;virtualvoidsetVisible(bool visible);virtualvoidsetWindowFlags(Qt::WindowFlags flags);virtualvoidsetWindowState(Qt::WindowStates state);virtual WId winId()const;virtualvoidsetParent(const QPlatformWindow *window);virtualvoidsetWindowTitle(const QString &title);virtual QString windowTitle()const;virtualvoidsetWindowFilePath(const QString &title);virtualvoidsetWindowIcon(const QIcon &icon);virtualboolclose();virtualvoidraise();virtualvoidlower();virtualboolisExposed()const;virtualboolisActive()const;virtualboolisAncestorOf(const QPlatformWindow *child)const;virtualboolisEmbedded()const;virtualboolisForeignWindow()const{return false; }virtual QPoint mapToGlobal(const QPoint &pos)const; QPointF mapToGlobalF(const QPointF &pos)const;virtual QPoint mapFromGlobal(const QPoint &pos)const; QPointF mapFromGlobalF(const QPointF &pos)const;virtualvoidpropagateSizeHints();virtualvoidsetOpacity(qreal level);virtualvoidsetMask(const QRegion &region);virtualvoidrequestActivateWindow();virtualvoidhandleContentOrientationChange(Qt::ScreenOrientation orientation);virtual qreal devicePixelRatio()const;virtualboolsetKeyboardGrabEnabled(bool grab);virtualboolsetMouseGrabEnabled(bool grab);virtualboolsetWindowModified(bool modified);virtualboolwindowEvent(QEvent *event);virtualboolstartSystemResize(Qt::Edges edges);virtualboolstartSystemMove();virtualvoidsetFrameStrutEventsEnabled(bool enabled);virtualboolframeStrutEventsEnabled()const;virtualvoidsetAlertState(bool enabled);virtualboolisAlertState()const;virtualvoidinvalidateSurface();static QRect initialGeometry(const QWindow *w,const QRect &initialGeometry,int defaultWidth,int defaultHeight,const QScreen **resultingScreenReturn =nullptr);virtualvoidrequestUpdate();boolhasPendingUpdateRequest()const;virtualvoiddeliverUpdateRequest();virtualboolallowsIndependentThreadedRendering()const;// Window property accessors. Platform plugins should use these// instead of accessing QWindow directly. QSize windowMinimumSize()const; QSize windowMaximumSize()const; QSize windowBaseSize()const; QSize windowSizeIncrement()const; QRect windowGeometry()const; QRect windowFrameGeometry()const; QRectF windowClosestAcceptableGeometry(const QRectF &nativeRect)const;static QRectF closestAcceptableGeometry(const QWindow *w,const QRectF &nativeRect);protected:static QString formatWindowTitle(const QString &title,const QString &separator); QPlatformScreen *screenForGeometry(const QRect &newGeometry)const;static QSize constrainWindowSize(const QSize &size); QScopedPointer<QPlatformWindowPrivate> d_ptr;}; QT_END_NAMESPACE #endif//QPLATFORMWINDOW_H
close