/src/qtbase/src/gui/kernel/qplatformwindow.h
Line | Count | Source |
1 | | // Copyright (C) 2017 The Qt Company Ltd. |
2 | | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
3 | | // Qt-Security score:significant reason:default |
4 | | #ifndef QPLATFORMWINDOW_H |
5 | | #define QPLATFORMWINDOW_H |
6 | | |
7 | | // |
8 | | // W A R N I N G |
9 | | // ------------- |
10 | | // |
11 | | // This file is part of the QPA API and is not meant to be used |
12 | | // in applications. Usage of this API may make your code |
13 | | // source and binary incompatible with future versions of Qt. |
14 | | // |
15 | | |
16 | | #include <QtGui/qtguiglobal.h> |
17 | | #include <QtCore/qscopedpointer.h> |
18 | | #include <QtCore/qrect.h> |
19 | | #include <QtCore/qmargins.h> |
20 | | #include <QtCore/qstring.h> |
21 | | #include <QtGui/qwindowdefs.h> |
22 | | #include <QtGui/qwindow.h> |
23 | | #include <qpa/qplatformopenglcontext.h> |
24 | | #include <qpa/qplatformsurface.h> |
25 | | |
26 | | QT_BEGIN_NAMESPACE |
27 | | |
28 | 0 | #define QWINDOWSIZE_MAX ((1<<24)-1) |
29 | | |
30 | | class QPlatformScreen; |
31 | | class QPlatformWindowPrivate; |
32 | | class QScreen; |
33 | | class QWindow; |
34 | | class QIcon; |
35 | | class QRegion; |
36 | | |
37 | | class Q_GUI_EXPORT QPlatformWindow : public QPlatformSurface |
38 | | { |
39 | 0 | Q_DECLARE_PRIVATE(QPlatformWindow) Unexecuted instantiation: QPlatformWindow::d_func() Unexecuted instantiation: QPlatformWindow::d_func() const |
40 | 0 | public: |
41 | 0 | Q_DISABLE_COPY_MOVE(QPlatformWindow) |
42 | 0 |
|
43 | 0 | explicit QPlatformWindow(QWindow *window); |
44 | 0 | ~QPlatformWindow() override; |
45 | 0 |
|
46 | 0 | virtual void initialize(); |
47 | 0 |
|
48 | 0 | QWindow *window() const; |
49 | 0 | QPlatformWindow *parent() const; |
50 | 0 |
|
51 | 0 | QPlatformScreen *screen() const override; |
52 | 0 |
|
53 | 0 | virtual QSurfaceFormat format() const override; |
54 | 0 |
|
55 | 0 | virtual void setGeometry(const QRect &rect); |
56 | 0 | virtual QRect geometry() const; |
57 | 0 | virtual QRect normalGeometry() const; |
58 | 0 |
|
59 | 0 | virtual QMargins frameMargins() const; |
60 | 0 | virtual QMargins safeAreaMargins() const; |
61 | 0 |
|
62 | 0 | virtual void setVisible(bool visible); |
63 | 0 | virtual void setWindowFlags(Qt::WindowFlags flags); |
64 | 0 | virtual void setWindowState(Qt::WindowStates state); |
65 | 0 |
|
66 | 0 | virtual WId winId() const; |
67 | 0 | virtual void setParent(const QPlatformWindow *window); |
68 | 0 |
|
69 | 0 | virtual void setWindowTitle(const QString &title); |
70 | 0 | virtual QString windowTitle() const; |
71 | 0 | virtual void setWindowFilePath(const QString &title); |
72 | 0 | virtual void setWindowIcon(const QIcon &icon); |
73 | 0 | virtual bool close(); |
74 | 0 | virtual void raise(); |
75 | 0 | virtual void lower(); |
76 | 0 |
|
77 | 0 | virtual bool isExposed() const; |
78 | 0 | virtual bool isActive() const; |
79 | 0 | virtual bool isAncestorOf(const QPlatformWindow *child) const; |
80 | 0 | virtual bool isEmbedded() const; |
81 | 0 | virtual bool isForeignWindow() const { return false; } |
82 | | virtual QPoint mapToGlobal(const QPoint &pos) const; |
83 | | QPointF mapToGlobalF(const QPointF &pos) const; |
84 | | virtual QPoint mapFromGlobal(const QPoint &pos) const; |
85 | | QPointF mapFromGlobalF(const QPointF &pos) const; |
86 | | |
87 | | virtual void propagateSizeHints(); |
88 | | |
89 | | virtual void setOpacity(qreal level); |
90 | | virtual void setMask(const QRegion ®ion); |
91 | | virtual void requestActivateWindow(); |
92 | | |
93 | | virtual void handleContentOrientationChange(Qt::ScreenOrientation orientation); |
94 | | |
95 | | virtual qreal devicePixelRatio() const; |
96 | | |
97 | | virtual bool setKeyboardGrabEnabled(bool grab); |
98 | | virtual bool setMouseGrabEnabled(bool grab); |
99 | | |
100 | | virtual bool setWindowModified(bool modified); |
101 | | |
102 | | virtual bool windowEvent(QEvent *event); |
103 | | |
104 | | virtual bool startSystemResize(Qt::Edges edges); |
105 | | virtual bool startSystemMove(); |
106 | | |
107 | | virtual void setFrameStrutEventsEnabled(bool enabled); |
108 | | virtual bool frameStrutEventsEnabled() const; |
109 | | |
110 | | virtual void setAlertState(bool enabled); |
111 | | virtual bool isAlertState() const; |
112 | | |
113 | | virtual void invalidateSurface(); |
114 | | |
115 | | static QRect initialGeometry(const QWindow *w, const QRect &initialGeometry, |
116 | | int defaultWidth, int defaultHeight, |
117 | | const QScreen **resultingScreenReturn = nullptr); |
118 | | |
119 | | virtual void requestUpdate(); |
120 | | bool hasPendingUpdateRequest() const; |
121 | | virtual void deliverUpdateRequest(); |
122 | | virtual bool allowsIndependentThreadedRendering() const; |
123 | | |
124 | | // Window property accessors. Platform plugins should use these |
125 | | // instead of accessing QWindow directly. |
126 | | QSize windowMinimumSize() const; |
127 | | QSize windowMaximumSize() const; |
128 | | QSize windowBaseSize() const; |
129 | | QSize windowSizeIncrement() const; |
130 | | QRect windowGeometry() const; |
131 | | QRect windowFrameGeometry() const; |
132 | | QRectF windowClosestAcceptableGeometry(const QRectF &nativeRect) const; |
133 | | static QRectF closestAcceptableGeometry(const QWindow *w, const QRectF &nativeRect); |
134 | | |
135 | | protected: |
136 | | static QString formatWindowTitle(const QString &title, const QString &separator); |
137 | | QPlatformScreen *screenForGeometry(const QRect &newGeometry) const; |
138 | | static QSize constrainWindowSize(const QSize &size); |
139 | | |
140 | | QScopedPointer<QPlatformWindowPrivate> d_ptr; |
141 | | }; |
142 | | |
143 | | QT_END_NAMESPACE |
144 | | |
145 | | #endif //QPLATFORMWINDOW_H |