4#ifndef QPLATFORMWINDOW_H
5#define QPLATFORMWINDOW_H
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>
28#define QWINDOWSIZE_MAX ((1
<<24
)-1
)
39 Q_DECLARE_PRIVATE(QPlatformWindow)
41 Q_DISABLE_COPY_MOVE(QPlatformWindow)
43 explicit QPlatformWindow(QWindow *window);
44 ~QPlatformWindow() override;
46 virtual void initialize();
48 QWindow *window()
const;
49 QPlatformWindow *parent()
const;
51 QPlatformScreen *screen()
const override;
53 virtual QSurfaceFormat format()
const override;
55 virtual void setGeometry(
const QRect &rect);
56 virtual QRect geometry()
const;
57 virtual QRect normalGeometry()
const;
59 virtual QMargins frameMargins()
const;
60 virtual QMargins safeAreaMargins()
const;
62 virtual void setVisible(
bool visible);
63 virtual void setWindowFlags(Qt::WindowFlags flags);
64 virtual void setWindowState(Qt::WindowStates state);
66 virtual WId winId()
const;
67 virtual void setParent(
const QPlatformWindow *window);
69 virtual void setWindowTitle(
const QString &title);
70 virtual QString windowTitle()
const;
71 virtual void setWindowFilePath(
const QString &title);
72 virtual void setWindowIcon(
const QIcon &icon);
77 virtual bool isExposed()
const;
78 virtual bool isActive()
const;
79 virtual bool isAncestorOf(
const QPlatformWindow *child)
const;
80 virtual bool isEmbedded()
const;
81 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;
87 virtual void propagateSizeHints();
89 virtual void setOpacity(qreal level);
90 virtual void setMask(
const QRegion ®ion);
91 virtual void requestActivateWindow();
93 virtual void handleContentOrientationChange(Qt::ScreenOrientation orientation);
95 virtual qreal devicePixelRatio()
const;
97 virtual bool setKeyboardGrabEnabled(
bool grab);
98 virtual bool setMouseGrabEnabled(
bool grab);
100 virtual bool setWindowModified(
bool modified);
102 virtual bool windowEvent(QEvent *event);
104 virtual bool startSystemResize(Qt::Edges edges);
105 virtual bool startSystemMove();
107 virtual void setFrameStrutEventsEnabled(
bool enabled);
108 virtual bool frameStrutEventsEnabled()
const;
110 virtual void setAlertState(
bool enabled);
111 virtual bool isAlertState()
const;
113 virtual void invalidateSurface();
115 static QRect initialGeometry(
const QWindow *w,
const QRect &initialGeometry,
116 int defaultWidth,
int defaultHeight,
117 const QScreen **resultingScreenReturn =
nullptr);
119 virtual void requestUpdate();
120 bool hasPendingUpdateRequest()
const;
121 virtual void deliverUpdateRequest();
122 virtual bool allowsIndependentThreadedRendering()
const;
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);
136 static QString formatWindowTitle(
const QString &title,
const QString &separator);
137 QPlatformScreen *screenForGeometry(
const QRect &newGeometry)
const;
138 static QSize constrainWindowSize(
const QSize &size);
140 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")
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
QT_BEGIN_NAMESPACE Q_DECLARE_LOGGING_CATEGORY(lcQIORing)
static R apply(T *obj, Args... args)