3#ifndef QPLATFORMWINDOW_H
4#define QPLATFORMWINDOW_H
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>
27#define QWINDOWSIZE_MAX ((1
<<24
)-1
)
38 Q_DECLARE_PRIVATE(QPlatformWindow)
40 Q_DISABLE_COPY_MOVE(QPlatformWindow)
42 explicit QPlatformWindow(QWindow *window);
43 ~QPlatformWindow() override;
45 virtual void initialize();
47 QWindow *window()
const;
48 QPlatformWindow *parent()
const;
50 QPlatformScreen *screen()
const override;
52 virtual QSurfaceFormat format()
const override;
54 virtual void setGeometry(
const QRect &rect);
55 virtual QRect geometry()
const;
56 virtual QRect normalGeometry()
const;
58 virtual QMargins frameMargins()
const;
59 virtual QMargins safeAreaMargins()
const;
61 virtual void setVisible(
bool visible);
62 virtual void setWindowFlags(Qt::WindowFlags flags);
63 virtual void setWindowState(Qt::WindowStates state);
65 virtual WId winId()
const;
66 virtual void setParent(
const QPlatformWindow *window);
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);
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;
86 virtual void propagateSizeHints();
88 virtual void setOpacity(qreal level);
89 virtual void setMask(
const QRegion ®ion);
90 virtual void requestActivateWindow();
92 virtual void handleContentOrientationChange(Qt::ScreenOrientation orientation);
94 virtual qreal devicePixelRatio()
const;
96 virtual bool setKeyboardGrabEnabled(
bool grab);
97 virtual bool setMouseGrabEnabled(
bool grab);
99 virtual bool setWindowModified(
bool modified);
101 virtual bool windowEvent(QEvent *event);
103 virtual bool startSystemResize(Qt::Edges edges);
104 virtual bool startSystemMove();
106 virtual void setFrameStrutEventsEnabled(
bool enabled);
107 virtual bool frameStrutEventsEnabled()
const;
109 virtual void setAlertState(
bool enabled);
110 virtual bool isAlertState()
const;
112 virtual void invalidateSurface();
114 static QRect initialGeometry(
const QWindow *w,
const QRect &initialGeometry,
115 int defaultWidth,
int defaultHeight,
116 const QScreen **resultingScreenReturn =
nullptr);
118 virtual void requestUpdate();
119 bool hasPendingUpdateRequest()
const;
120 virtual void deliverUpdateRequest();
121 virtual bool allowsIndependentThreadedRendering()
const;
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);
135 static QString formatWindowTitle(
const QString &title,
const QString &separator);
136 QPlatformScreen *screenForGeometry(
const QRect &newGeometry)
const;
137 static QSize constrainWindowSize(
const QSize &size);
139 QScopedPointer<QPlatformWindowPrivate> d_ptr;
Collection of utility functions for UI scaling.
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
static R apply(T *obj, Args... args)