Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qplatformwindow.h
Go to the documentation of this file.
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#ifndef QPLATFORMWINDOW_H
4#define QPLATFORMWINDOW_H
5
6//
7// W A R N I N G
8// -------------
9//
10// This file is part of the QPA API and is not meant to be used
11// in applications. Usage of this API may make your code
12// source and binary incompatible with future versions of Qt.
13//
14
15#include <QtGui/qtguiglobal.h>
16#include <QtCore/qscopedpointer.h>
17#include <QtCore/qrect.h>
18#include <QtCore/qmargins.h>
19#include <QtCore/qstring.h>
20#include <QtGui/qwindowdefs.h>
21#include <QtGui/qwindow.h>
22#include <qpa/qplatformopenglcontext.h>
23#include <qpa/qplatformsurface.h>
24
26
27#define QWINDOWSIZE_MAX ((1<<24)-1)
28
29class QPlatformScreen;
31class QScreen;
32class QWindow;
33class QIcon;
34class QRegion;
35
36class Q_GUI_EXPORT QPlatformWindow : public QPlatformSurface
37{
38 Q_DECLARE_PRIVATE(QPlatformWindow)
39public:
40 Q_DISABLE_COPY_MOVE(QPlatformWindow)
41
42 explicit QPlatformWindow(QWindow *window);
43 ~QPlatformWindow() override;
44
45 virtual void initialize();
46
47 QWindow *window() const;
48 QPlatformWindow *parent() const;
49
50 QPlatformScreen *screen() const override;
51
52 virtual QSurfaceFormat format() const override;
53
54 virtual void setGeometry(const QRect &rect);
55 virtual QRect geometry() const;
56 virtual QRect normalGeometry() const;
57
58 virtual QMargins frameMargins() const;
59 virtual QMargins safeAreaMargins() const;
60
61 virtual void setVisible(bool visible);
62 virtual void setWindowFlags(Qt::WindowFlags flags);
63 virtual void setWindowState(Qt::WindowStates state);
64
65 virtual WId winId() const;
66 virtual void setParent(const QPlatformWindow *window);
67
68 virtual void setWindowTitle(const QString &title);
69 virtual QString windowTitle() const;
70 virtual void setWindowFilePath(const QString &title);
71 virtual void setWindowIcon(const QIcon &icon);
72 virtual bool close();
73 virtual void raise();
74 virtual void lower();
75
76 virtual bool isExposed() const;
77 virtual bool isActive() const;
78 virtual bool isAncestorOf(const QPlatformWindow *child) const;
79 virtual bool isEmbedded() const;
80 virtual bool isForeignWindow() const { return false; }
81 virtual QPoint mapToGlobal(const QPoint &pos) const;
82 QPointF mapToGlobalF(const QPointF &pos) const;
83 virtual QPoint mapFromGlobal(const QPoint &pos) const;
84 QPointF mapFromGlobalF(const QPointF &pos) const;
85
86 virtual void propagateSizeHints();
87
88 virtual void setOpacity(qreal level);
89 virtual void setMask(const QRegion &region);
90 virtual void requestActivateWindow();
91
92 virtual void handleContentOrientationChange(Qt::ScreenOrientation orientation);
93
94 virtual qreal devicePixelRatio() const;
95
96 virtual bool setKeyboardGrabEnabled(bool grab);
97 virtual bool setMouseGrabEnabled(bool grab);
98
99 virtual bool setWindowModified(bool modified);
100
101 virtual bool windowEvent(QEvent *event);
102
103 virtual bool startSystemResize(Qt::Edges edges);
104 virtual bool startSystemMove();
105
106 virtual void setFrameStrutEventsEnabled(bool enabled);
107 virtual bool frameStrutEventsEnabled() const;
108
109 virtual void setAlertState(bool enabled);
110 virtual bool isAlertState() const;
111
112 virtual void invalidateSurface();
113
114 static QRect initialGeometry(const QWindow *w, const QRect &initialGeometry,
115 int defaultWidth, int defaultHeight,
116 const QScreen **resultingScreenReturn = nullptr);
117
118 virtual void requestUpdate();
119 bool hasPendingUpdateRequest() const;
120 virtual void deliverUpdateRequest();
121 virtual bool allowsIndependentThreadedRendering() const;
122
123 // Window property accessors. Platform plugins should use these
124 // instead of accessing QWindow directly.
125 QSize windowMinimumSize() const;
126 QSize windowMaximumSize() const;
127 QSize windowBaseSize() const;
128 QSize windowSizeIncrement() const;
129 QRect windowGeometry() const;
130 QRect windowFrameGeometry() const;
131 QRectF windowClosestAcceptableGeometry(const QRectF &nativeRect) const;
132 static QRectF closestAcceptableGeometry(const QWindow *w, const QRectF &nativeRect);
133
134protected:
135 static QString formatWindowTitle(const QString &title, const QString &separator);
136 QPlatformScreen *screenForGeometry(const QRect &newGeometry) const;
137 static QSize constrainWindowSize(const QSize &size);
138
139 QScopedPointer<QPlatformWindowPrivate> d_ptr;
140};
141
142QT_END_NAMESPACE
143
144#endif //QPLATFORMWINDOW_H
Collection of utility functions for UI scaling.
The QPlatformIntegration class is the entry for WindowSystem specific functionality.
The QPlatformWindow class provides an abstraction for top-level windows.
T toNativePixels(const T &value, const C *context)
QHighDpiScaling::Point position(T, QHighDpiScaling::Point::Kind)
QList< T > scale(const QList< T > &list, qreal scaleFactor, QPoint origin=QPoint(0, 0))
T toNativeLocalPosition(const T &value, const C *context)
QSize scale(const QSize &value, qreal scaleFactor, QPointF=QPointF(0, 0))
T toNativeGlobalPosition(const T &value, const C *context)
T fromNativeLocalPosition(const T &value, const C *context)
T fromNativeGlobalPosition(const T &value, const C *context)
T toNative(const T &value, qreal scaleFactor, QPoint origin=QPoint(0, 0))
QRect fromNativeScreenGeometry(const QRect &nativeScreenGeometry, const QScreen *screen)
QRect fromNative(const QRect &rect, const QScreen *screen, const QPoint &screenOrigin)
QRegion fromNativeLocalExposedRegion(const QRegion &pixelRegion, const QWindow *window)
QRegion fromNativeLocalRegion(const QRegion &pixelRegion, const QWindow *window)
qreal scale(qreal value, qreal scaleFactor, QPointF=QPointF(0, 0))
T fromNativePixels(const T &value, const C *context)
QHighDpiScaling::Point position(QPoint point, QHighDpiScaling::Point::Kind kind)
QRegion toNativeLocalRegion(const QRegion &pointRegion, const QWindow *window)
T fromNative(const T &value, qreal scaleFactor, QPoint origin=QPoint(0, 0))
T toNativeWindowGeometry(const T &value, const C *context)
T fromNativeWindowGeometry(const T &value, const C *context)
Combined button and popup list for selecting options.
Q_LOGGING_CATEGORY(lcEventDispatcher, "qt.eventdispatcher")
QT_BEGIN_NAMESPACE Q_DECLARE_LOGGING_CATEGORY(lcEventDispatcher)
static const char screenFactorsEnvVar[]
static const char dpiAdjustmentPolicyEnvVar[]
static const ScaleFactorRoundingPolicyLookup scaleFactorRoundingPolicyLookup[]
static bool operator==(const EnumLookup< EnumType > &e1, const EnumLookup< EnumType > &e2)
static const char scaleFactorRoundingPolicyEnvVar[]
static std::optional< qreal > qEnvironmentVariableOptionalReal(const char *name)
static Qt::HighDpiScaleFactorRoundingPolicy lookupScaleFactorRoundingPolicy(const QByteArray &v)
static const char enableHighDpiScalingEnvVar[]
static const DpiAdjustmentPolicyLookup dpiAdjustmentPolicyLookup[]
static const char usePhysicalDpiEnvVar[]
static std::optional< QString > qEnvironmentVariableOptionalString(const char *name)
static std::optional< QByteArray > qEnvironmentVariableOptionalByteArray(const char *name)
static QByteArray joinEnumValues(const EnumLookup< EnumType > *i1, const EnumLookup< EnumType > *i2)
static const char scaleFactorEnvVar[]
static const char scaleFactorProperty[]
static QHighDpiScaling::DpiAdjustmentPolicy lookupDpiAdjustmentPolicy(const QByteArray &v)
std::pair< qreal, qreal > QDpi
const char * name