38 struct SynchronousDelivery {};
39 struct AsynchronousDelivery {};
40 struct DefaultDelivery {};
42 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
43 static bool handleMouseEvent(QWindow *window,
const QPointF &local,
const QPointF &global,
44 Qt::MouseButtons state, Qt::MouseButton button, QEvent::Type type,
45 Qt::KeyboardModifiers mods = Qt::NoModifier,
46 Qt::MouseEventSource source = Qt::MouseEventNotSynthesized);
47 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
48 static bool handleMouseEvent(QWindow *window,
const QPointingDevice *device,
49 const QPointF &local,
const QPointF &global,
50 Qt::MouseButtons state, Qt::MouseButton button, QEvent::Type type,
51 Qt::KeyboardModifiers mods = Qt::NoModifier,
52 Qt::MouseEventSource source = Qt::MouseEventNotSynthesized);
53 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
54 static bool handleMouseEvent(QWindow *window, ulong timestamp,
const QPointF &local,
55 const QPointF &global, Qt::MouseButtons state,
56 Qt::MouseButton button, QEvent::Type type,
57 Qt::KeyboardModifiers mods = Qt::NoModifier,
58 Qt::MouseEventSource source = Qt::MouseEventNotSynthesized);
59 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
60 static bool handleMouseEvent(QWindow *window, ulong timestamp,
const QPointingDevice *device,
61 const QPointF &local,
const QPointF &global, Qt::MouseButtons state,
62 Qt::MouseButton button, QEvent::Type type,
63 Qt::KeyboardModifiers mods = Qt::NoModifier,
64 Qt::MouseEventSource source = Qt::MouseEventNotSynthesized);
66 static bool handleShortcutEvent(QWindow *window, ulong timestamp,
int k, Qt::KeyboardModifiers mods, quint32 nativeScanCode,
67 quint32 nativeVirtualKey, quint32 nativeModifiers,
const QString & text = QString(),
bool autorep =
false, ushort count = 1);
69 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
70 static bool handleKeyEvent(QWindow *window, QEvent::Type t,
int k, Qt::KeyboardModifiers mods,
const QString & text = QString(),
bool autorep =
false, ushort count = 1);
71 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
72 static bool handleKeyEvent(QWindow *window, ulong timestamp, QEvent::Type t,
int k, Qt::KeyboardModifiers mods,
const QString & text = QString(),
bool autorep =
false, ushort count = 1);
74 static bool handleExtendedKeyEvent(QWindow *window, QEvent::Type type,
int key, Qt::KeyboardModifiers modifiers,
75 quint32 nativeScanCode, quint32 nativeVirtualKey,
76 quint32 nativeModifiers,
77 const QString& text = QString(),
bool autorep =
false,
79 static bool handleExtendedKeyEvent(QWindow *window, ulong timestamp, QEvent::Type type,
int key, Qt::KeyboardModifiers modifiers,
80 quint32 nativeScanCode, quint32 nativeVirtualKey,
81 quint32 nativeModifiers,
82 const QString& text = QString(),
bool autorep =
false,
84 static bool handleExtendedKeyEvent(QWindow *window, ulong timestamp,
const QInputDevice *device,
85 QEvent::Type type,
int key, Qt::KeyboardModifiers modifiers,
86 quint32 nativeScanCode, quint32 nativeVirtualKey,
87 quint32 nativeModifiers,
88 const QString& text = QString(),
bool autorep =
false,
90 static bool handleWheelEvent(QWindow *window,
const QPointF &local,
const QPointF &global,
91 QPoint pixelDelta, QPoint angleDelta,
92 Qt::KeyboardModifiers mods = Qt::NoModifier,
93 Qt::ScrollPhase phase = Qt::NoScrollPhase,
94 Qt::MouseEventSource source = Qt::MouseEventNotSynthesized);
95 static bool handleWheelEvent(QWindow *window, ulong timestamp,
const QPointF &local,
const QPointF &global,
96 QPoint pixelDelta, QPoint angleDelta,
97 Qt::KeyboardModifiers mods = Qt::NoModifier,
98 Qt::ScrollPhase phase = Qt::NoScrollPhase,
99 Qt::MouseEventSource source = Qt::MouseEventNotSynthesized,
100 bool inverted =
false);
101 static bool handleWheelEvent(QWindow *window, ulong timestamp,
const QPointingDevice *device,
102 const QPointF &local,
const QPointF &global,
103 QPoint pixelDelta, QPoint angleDelta,
104 Qt::KeyboardModifiers mods = Qt::NoModifier,
105 Qt::ScrollPhase phase = Qt::NoScrollPhase,
106 Qt::MouseEventSource source = Qt::MouseEventNotSynthesized,
107 bool inverted =
false);
112 TouchPoint() : id(0), uniqueId(-1), pressure(0), rotation(0), state(QEventPoint::State::Stationary) { }
116 QPointF normalPosition;
122 QEventPoint::State state;
124 QList<QPointF> rawPositions;
127 static void registerInputDevice(
const QInputDevice *device);
129 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
130 static bool handleTouchEvent(QWindow *window,
const QPointingDevice *device,
131 const QList<
struct TouchPoint> &points, Qt::KeyboardModifiers mods = Qt::NoModifier);
132 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
133 static bool handleTouchEvent(QWindow *window, ulong timestamp,
const QPointingDevice *device,
134 const QList<
struct TouchPoint> &points, Qt::KeyboardModifiers mods = Qt::NoModifier);
135 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
136 static bool handleTouchCancelEvent(QWindow *window,
const QPointingDevice *device, Qt::KeyboardModifiers mods = Qt::NoModifier);
137 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
138 static bool handleTouchCancelEvent(QWindow *window, ulong timestamp,
const QPointingDevice *device, Qt::KeyboardModifiers mods = Qt::NoModifier);
141 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
142 static void handleGeometryChange(QWindow *window,
const QRect &newRect);
145 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
146 static bool handleExposeEvent(QWindow *window,
const QRegion ®ion);
148 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
149 static bool handlePaintEvent(QWindow *window,
const QRegion ®ion);
151 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
152 static bool handleCloseEvent(QWindow *window);
154 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
155 static void handleEnterEvent(QWindow *window,
const QPointF &local = QPointF(),
const QPointF& global = QPointF());
156 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
157 static void handleLeaveEvent(QWindow *window);
158 static void handleEnterLeaveEvent(QWindow *enter, QWindow *leave,
const QPointF &local = QPointF(),
const QPointF& global = QPointF());
160 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
161 static void handleFocusWindowChanged(QWindow *window, Qt::FocusReason r = Qt::OtherFocusReason);
163 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
164 static void handleWindowStateChanged(QWindow *window, Qt::WindowStates newState,
int oldState = -1);
165 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
166 static void handleWindowScreenChanged(QWindow *window, QScreen *newScreen);
168 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
169 static void handleWindowDevicePixelRatioChanged(QWindow *window);
171 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
172 static void handleSafeAreaMarginsChanged(QWindow *window);
174 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
175 static void handleApplicationStateChanged(Qt::ApplicationState newState,
bool forcePropagate =
false);
177 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
178 static bool handleApplicationTermination();
180#if QT_CONFIG(draganddrop)
181 static QPlatformDragQtResponse handleDrag(QWindow *window,
const QMimeData *dropData,
182 const QPoint &p, Qt::DropActions supportedActions,
183 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
184 static QPlatformDropQtResponse handleDrop(QWindow *window,
const QMimeData *dropData,
185 const QPoint &p, Qt::DropActions supportedActions,
186 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
189 static bool handleNativeEvent(QWindow *window,
const QByteArray &eventType,
void *message, qintptr *result);
192 static void handleScreenAdded(QPlatformScreen *screen,
bool isPrimary =
false);
193 static void handleScreenRemoved(QPlatformScreen *screen);
194 static void handlePrimaryScreenChanged(QPlatformScreen *newPrimary);
196 static void handleScreenOrientationChange(QScreen *screen, Qt::ScreenOrientation newOrientation);
197 static void handleScreenGeometryChange(QScreen *screen,
const QRect &newGeometry,
const QRect &newAvailableGeometry);
198 static void handleScreenLogicalDotsPerInchChange(QScreen *screen, qreal newDpiX, qreal newDpiY);
199 static void handleScreenRefreshRateChange(QScreen *screen, qreal newRefreshRate);
201 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
202 static void handleThemeChange();
204 static void handleFileOpenEvent(
const QString& fileName);
205 static void handleFileOpenEvent(
const QUrl &url);
207 static bool handleTabletEvent(QWindow *window, ulong timestamp,
const QPointingDevice *device,
208 const QPointF &local,
const QPointF &global,
209 Qt::MouseButtons buttons, qreal pressure, qreal xTilt, qreal yTilt,
210 qreal tangentialPressure, qreal rotation,
int z, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
211 static bool handleTabletEvent(QWindow *window,
const QPointingDevice *device,
212 const QPointF &local,
const QPointF &global,
213 Qt::MouseButtons buttons, qreal pressure, qreal xTilt, qreal yTilt,
214 qreal tangentialPressure, qreal rotation,
int z, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
215 static bool handleTabletEvent(QWindow *window, ulong timestamp,
const QPointF &local,
const QPointF &global,
216 int device,
int pointerType, Qt::MouseButtons buttons, qreal pressure, qreal xTilt, qreal yTilt,
217 qreal tangentialPressure, qreal rotation,
int z, qint64 uid,
218 Qt::KeyboardModifiers modifiers = Qt::NoModifier);
219 static bool handleTabletEvent(QWindow *window,
const QPointF &local,
const QPointF &global,
220 int device,
int pointerType, Qt::MouseButtons buttons, qreal pressure, qreal xTilt, qreal yTilt,
221 qreal tangentialPressure, qreal rotation,
int z, qint64 uid,
222 Qt::KeyboardModifiers modifiers = Qt::NoModifier);
223 static bool handleTabletEnterLeaveProximityEvent(QWindow *window, ulong timestamp,
const QPointingDevice *device,
224 bool inProximity,
const QPointF &local = QPointF(),
const QPointF &global = QPointF(),
225 Qt::MouseButtons buttons = {}, qreal xTilt = 0, qreal yTilt = 0,
226 qreal tangentialPressure = 0, qreal rotation = 0,
int z = 0,
227 Qt::KeyboardModifiers modifiers = Qt::NoModifier);
228 static bool handleTabletEnterLeaveProximityEvent(QWindow *window,
const QPointingDevice *device,
229 bool inProximity,
const QPointF &local = QPointF(),
const QPointF &global = QPointF(),
230 Qt::MouseButtons buttons = {}, qreal xTilt = 0 , qreal yTilt = 0,
231 qreal tangentialPressure = 0, qreal rotation = 0,
int z = 0,
232 Qt::KeyboardModifiers modifiers = Qt::NoModifier);
235 static bool handleTabletEnterProximityEvent(ulong timestamp,
int deviceType,
int pointerType, qint64 uid);
236 static void handleTabletEnterProximityEvent(
int deviceType,
int pointerType, qint64 uid);
237 static bool handleTabletLeaveProximityEvent(ulong timestamp,
int deviceType,
int pointerType, qint64 uid);
238 static void handleTabletLeaveProximityEvent(
int deviceType,
int pointerType, qint64 uid);
240#ifndef QT_NO_GESTURES
241 static bool handleGestureEvent(QWindow *window, ulong timestamp,
const QPointingDevice *device, Qt::NativeGestureType type,
242 const QPointF &local,
const QPointF &global,
int fingerCount = 0);
243 static bool handleGestureEventWithRealValue(QWindow *window, ulong timestamp,
const QPointingDevice *device, Qt::NativeGestureType type,
244 qreal value,
const QPointF &local,
const QPointF &global,
int fingerCount = 2);
245 static bool handleGestureEventWithValueAndDelta(QWindow *window, ulong timestamp,
const QPointingDevice *device, Qt::NativeGestureType type, qreal value,
246 const QPointF &delta,
const QPointF &local,
const QPointF &global,
int fingerCount = 2);
249 static void handlePlatformPanelEvent(QWindow *window);
251#ifndef QT_NO_CONTEXTMENU
252#if QT_GUI_REMOVED_SINCE(6
, 8
)
253 static void handleContextMenuEvent(QWindow *window,
bool mouseTriggered,
254 const QPoint &pos,
const QPoint &globalPos,
255 Qt::KeyboardModifiers modifiers);
257 template<
typename Delivery = QWindowSystemInterface::DefaultDelivery>
258 static bool handleContextMenuEvent(QWindow *window,
bool mouseTriggered,
259 const QPoint &pos,
const QPoint &globalPos,
260 Qt::KeyboardModifiers modifiers);
262#if QT_CONFIG(whatsthis)
263 static void handleEnterWhatsThisEvent();
267 static bool sendWindowSystemEvents(QEventLoop::ProcessEventsFlags flags);
268 static void setSynchronousWindowSystemEvents(
bool enable);
269 static bool flushWindowSystemEvents(QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents);
270 static void deferredFlushWindowSystemEvents(QEventLoop::ProcessEventsFlags flags);
271 static int windowSystemEventsQueued();
272 static bool nonUserInputEventsQueued();