summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qevent.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel/qevent.h')
-rw-r--r--src/gui/kernel/qevent.h879
1 files changed, 430 insertions, 449 deletions
diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h
index baf39439df..a24f0c471c 100644
--- a/src/gui/kernel/qevent.h
+++ b/src/gui/kernel/qevent.h
@@ -1,45 +1,13 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QEVENT_H
#define QEVENT_H
+#if 0
+#pragma qt_class(QtEvents)
+#endif
+
#include <QtGui/qtguiglobal.h>
#include <QtCore/qcoreevent.h>
@@ -49,58 +17,156 @@
#include <QtCore/qstring.h>
#include <QtCore/qurl.h>
#include <QtCore/qvariant.h>
+#include <QtGui/qeventpoint.h>
#include <QtGui/qpointingdevice.h>
#include <QtGui/qregion.h>
-#include <QtGui/qvector2d.h>
#include <QtGui/qwindowdefs.h>
#if QT_CONFIG(shortcut)
# include <QtGui/qkeysequence.h>
#endif
+class tst_QEvent;
+
QT_BEGIN_NAMESPACE
class QFile;
class QAction;
-class QInputDevice;
-class QPointingDevice;
+class QMouseEvent;
+template <typename T> class QPointer;
+class QPointerEvent;
class QScreen;
+#if QT_CONFIG(shortcut)
+class QShortcut;
+#endif
+class QTabletEvent;
+class QTouchEvent;
#if QT_CONFIG(gestures)
class QGesture;
#endif
class Q_GUI_EXPORT QInputEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QInputEvent)
public:
explicit QInputEvent(Type type, const QInputDevice *m_dev, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
- ~QInputEvent();
+
const QInputDevice *device() const { return m_dev; }
QInputDevice::DeviceType deviceType() const { return m_dev ? m_dev->type() : QInputDevice::DeviceType::Unknown; }
- inline Qt::KeyboardModifiers modifiers() const { return modState; }
- inline void setModifiers(Qt::KeyboardModifiers amodifiers) { modState = amodifiers; }
- inline ulong timestamp() const { return ts; }
- inline void setTimestamp(ulong atimestamp) { ts = atimestamp; }
+ inline Qt::KeyboardModifiers modifiers() const { return m_modState; }
+ inline void setModifiers(Qt::KeyboardModifiers modifiers) { m_modState = modifiers; }
+ inline quint64 timestamp() const { return m_timeStamp; }
+ virtual void setTimestamp(quint64 timestamp) { m_timeStamp = timestamp; }
+
protected:
+ QInputEvent(Type type, PointerEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
+ QInputEvent(Type type, SinglePointEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
+
const QInputDevice *m_dev = nullptr;
- Qt::KeyboardModifiers modState;
- ulong ts;
+ quint64 m_timeStamp = 0;
+ Qt::KeyboardModifiers m_modState = Qt::NoModifier;
+ // fill up to the closest 8-byte aligned size: 48
+ quint32 m_reserved = 0;
};
class Q_GUI_EXPORT QPointerEvent : public QInputEvent
{
+ Q_GADGET
+ Q_DECL_EVENT_COMMON(QPointerEvent)
public:
- explicit QPointerEvent(Type type, const QPointingDevice *dev, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
+ explicit QPointerEvent(Type type, const QPointingDevice *dev,
+ Qt::KeyboardModifiers modifiers = Qt::NoModifier, const QList<QEventPoint> &points = {});
+
const QPointingDevice *pointingDevice() const;
QPointingDevice::PointerType pointerType() const {
return pointingDevice() ? pointingDevice()->pointerType() : QPointingDevice::PointerType::Unknown;
}
+ void setTimestamp(quint64 timestamp) override;
+ qsizetype pointCount() const { return m_points.size(); }
+ QEventPoint &point(qsizetype i);
+ const QList<QEventPoint> &points() const { return m_points; }
+ QEventPoint *pointById(int id);
+ bool allPointsGrabbed() const;
+ virtual bool isBeginEvent() const { return false; }
+ virtual bool isUpdateEvent() const { return false; }
+ virtual bool isEndEvent() const { return false; }
+ bool allPointsAccepted() const;
+ virtual void setAccepted(bool accepted) override;
+ QObject *exclusiveGrabber(const QEventPoint &point) const;
+ void setExclusiveGrabber(const QEventPoint &point, QObject *exclusiveGrabber);
+ QList<QPointer <QObject>> passiveGrabbers(const QEventPoint &point) const;
+ void clearPassiveGrabbers(const QEventPoint &point);
+ bool addPassiveGrabber(const QEventPoint &point, QObject *grabber);
+ bool removePassiveGrabber(const QEventPoint &point, QObject *grabber);
+
+protected:
+ QPointerEvent(Type type, SinglePointEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
+
+ QList<QEventPoint> m_points;
};
-class Q_GUI_EXPORT QEnterEvent : public QEvent
+class Q_GUI_EXPORT QSinglePointEvent : public QPointerEvent
{
+ Q_GADGET
+ Q_PROPERTY(QObject *exclusivePointGrabber READ exclusivePointGrabber
+ WRITE setExclusivePointGrabber)
+
+ Q_DECL_EVENT_COMMON(QSinglePointEvent)
public:
- QEnterEvent(const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos);
- ~QEnterEvent();
+ inline Qt::MouseButton button() const { return m_button; }
+ inline Qt::MouseButtons buttons() const { return m_mouseState; }
+
+ inline QPointF position() const
+ { Q_ASSERT(!m_points.isEmpty()); return m_points.first().position(); }
+ inline QPointF scenePosition() const
+ { Q_ASSERT(!m_points.isEmpty()); return m_points.first().scenePosition(); }
+ inline QPointF globalPosition() const
+ { Q_ASSERT(!m_points.isEmpty()); return m_points.first().globalPosition(); }
+
+ bool isBeginEvent() const override;
+ bool isUpdateEvent() const override;
+ bool isEndEvent() const override;
+
+ QObject *exclusivePointGrabber() const
+ { return QPointerEvent::exclusiveGrabber(points().first()); }
+ void setExclusivePointGrabber(QObject *exclusiveGrabber)
+ { QPointerEvent::setExclusiveGrabber(points().first(), exclusiveGrabber); }
+
+protected:
+ friend class ::tst_QEvent;
+ QSinglePointEvent(Type type, const QPointingDevice *dev, const QEventPoint &point,
+ Qt::MouseButton button, Qt::MouseButtons buttons,
+ Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source);
+ QSinglePointEvent(Type type, const QPointingDevice *dev, const QPointF &localPos,
+ const QPointF &scenePos, const QPointF &globalPos,
+ Qt::MouseButton button, Qt::MouseButtons buttons,
+ Qt::KeyboardModifiers modifiers,
+ Qt::MouseEventSource source = Qt::MouseEventNotSynthesized);
+
+ Qt::MouseButton m_button = Qt::NoButton;
+ Qt::MouseButtons m_mouseState = Qt::NoButton;
+ Qt::MouseEventSource m_source;
+ /*
+ Fill up to the next 8-byte aligned size: 88
+ We have 32bits left, use some for QSinglePointEvent subclasses so that
+ we don't end up with gaps.
+ */
+ // split this in two quint16; with a quint32, MSVC would 32-bit align it
+ quint16 m_reserved;
+ quint16 m_reserved2 : 11;
+ // for QMouseEvent
+ quint16 m_doubleClick : 1;
+ // for QWheelEvent
+ quint16 m_phase : 3;
+ quint16 m_invertedScrolling : 1;
+};
+
+class Q_GUI_EXPORT QEnterEvent : public QSinglePointEvent
+{
+ Q_DECL_EVENT_COMMON(QEnterEvent)
+public:
+ QEnterEvent(const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos,
+ const QPointingDevice *device = QPointingDevice::primaryPointingDevice());
#if QT_DEPRECATED_SINCE(6, 0)
#ifndef QT_NO_INTEGER_EVENT_COORDINATES
@@ -124,30 +190,30 @@ public:
QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
QPointF screenPos() const { return globalPosition(); }
#endif // QT_DEPRECATED_SINCE(6, 0)
-
- QPointF position() const { return l; }
- QPointF scenePosition() const { return s; }
- QPointF globalPosition() const { return g; }
-
-protected:
- QPointF l, s, g;
};
-class Q_GUI_EXPORT QMouseEvent : public QPointerEvent
+class Q_GUI_EXPORT QMouseEvent : public QSinglePointEvent
{
+ Q_DECL_EVENT_COMMON(QMouseEvent)
public:
+#if QT_DEPRECATED_SINCE(6, 4)
+ QT_DEPRECATED_VERSION_X_6_4("Use another constructor")
QMouseEvent(Type type, const QPointF &localPos, Qt::MouseButton button,
- Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
+ Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,
+ const QPointingDevice *device = QPointingDevice::primaryPointingDevice());
+#endif
QMouseEvent(Type type, const QPointF &localPos, const QPointF &globalPos,
Qt::MouseButton button, Qt::MouseButtons buttons,
- Qt::KeyboardModifiers modifiers);
+ Qt::KeyboardModifiers modifiers,
+ const QPointingDevice *device = QPointingDevice::primaryPointingDevice());
QMouseEvent(Type type, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos,
Qt::MouseButton button, Qt::MouseButtons buttons,
- Qt::KeyboardModifiers modifiers);
+ Qt::KeyboardModifiers modifiers,
+ const QPointingDevice *device = QPointingDevice::primaryPointingDevice());
QMouseEvent(Type type, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos,
Qt::MouseButton button, Qt::MouseButtons buttons,
- Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source);
- ~QMouseEvent();
+ Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source,
+ const QPointingDevice *device = QPointingDevice::primaryPointingDevice());
#ifndef QT_NO_INTEGER_EVENT_COORDINATES
inline QPoint pos() const { return position().toPoint(); }
@@ -172,34 +238,23 @@ public:
QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
QPointF screenPos() const { return globalPosition(); }
#endif // QT_DEPRECATED_SINCE(6, 0)
-
- QPointF position() const { return l; }
- QPointF scenePosition() const { return w; }
- QPointF globalPosition() const { return g; }
-
- inline Qt::MouseButton button() const { return b; }
- inline Qt::MouseButtons buttons() const { return mouseState; }
-
- inline void setLocalPos(const QPointF &localPosition) { l = localPosition; }
-
Qt::MouseEventSource source() const;
Qt::MouseEventFlags flags() const;
-
-protected:
- QPointF l, w, g;
- Qt::MouseButton b;
- Qt::MouseButtons mouseState;
- int caps;
- QVector2D velocity;
-
- friend class QGuiApplicationPrivate;
};
-class Q_GUI_EXPORT QHoverEvent : public QInputEvent
+class Q_GUI_EXPORT QHoverEvent : public QSinglePointEvent
{
+ Q_DECL_EVENT_COMMON(QHoverEvent)
public:
- QHoverEvent(Type type, const QPointF &pos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
- ~QHoverEvent();
+ QHoverEvent(Type type, const QPointF &scenePos, const QPointF &globalPos, const QPointF &oldPos,
+ Qt::KeyboardModifiers modifiers = Qt::NoModifier,
+ const QPointingDevice *device = QPointingDevice::primaryPointingDevice());
+#if QT_DEPRECATED_SINCE(6, 3)
+ QT_DEPRECATED_VERSION_X_6_3("Use the other constructor")
+ QHoverEvent(Type type, const QPointF &pos, const QPointF &oldPos,
+ Qt::KeyboardModifiers modifiers = Qt::NoModifier,
+ const QPointingDevice *device = QPointingDevice::primaryPointingDevice());
+#endif
#if QT_DEPRECATED_SINCE(6, 0)
#ifndef QT_NO_INTEGER_EVENT_COORDINATES
@@ -211,72 +266,65 @@ public:
inline QPointF posF() const { return position(); }
#endif // QT_DEPRECATED_SINCE(6, 0)
- // TODO deprecate when we figure out an actual replacement (point history?)
- inline QPoint oldPos() const { return op.toPoint(); }
- inline QPointF oldPosF() const { return op; }
+ bool isUpdateEvent() const override { return true; }
- QPointF position() const { return p; }
+ // TODO deprecate when we figure out an actual replacement (point history?)
+ inline QPoint oldPos() const { return m_oldPos.toPoint(); }
+ inline QPointF oldPosF() const { return m_oldPos; }
protected:
- QPointF p, op;
+ QPointF m_oldPos; // TODO remove?
};
#if QT_CONFIG(wheelevent)
-class Q_GUI_EXPORT QWheelEvent : public QPointerEvent
+class Q_GUI_EXPORT QWheelEvent : public QSinglePointEvent
{
+ Q_GADGET
+ Q_PROPERTY(const QPointingDevice *device READ pointingDevice)
+ Q_PROPERTY(QPoint pixelDelta READ pixelDelta)
+ Q_PROPERTY(QPoint angleDelta READ angleDelta)
+ Q_PROPERTY(Qt::ScrollPhase phase READ phase)
+ Q_PROPERTY(bool inverted READ inverted)
+
+ Q_DECL_EVENT_COMMON(QWheelEvent)
public:
enum { DefaultDeltasPerStep = 120 };
- QWheelEvent(QPointF pos, QPointF globalPos, QPoint pixelDelta, QPoint angleDelta,
+ QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta,
Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase,
- bool inverted, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized);
- ~QWheelEvent();
-
-
- inline QPoint pixelDelta() const { return pixelD; }
- inline QPoint angleDelta() const { return angleD; }
-
- inline QPointF position() const { return p; }
- inline QPointF globalPosition() const { return g; }
+ bool inverted, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized,
+ const QPointingDevice *device = QPointingDevice::primaryPointingDevice());
- inline Qt::MouseButtons buttons() const { return mouseState; }
+ inline QPoint pixelDelta() const { return m_pixelDelta; }
+ inline QPoint angleDelta() const { return m_angleDelta; }
- inline Qt::ScrollPhase phase() const { return Qt::ScrollPhase(ph); }
- inline bool inverted() const { return invertedScrolling; }
+ inline Qt::ScrollPhase phase() const { return Qt::ScrollPhase(m_phase); }
+ inline bool inverted() const { return m_invertedScrolling; }
+ inline bool isInverted() const { return m_invertedScrolling; }
+ inline bool hasPixelDelta() const { return !m_pixelDelta.isNull(); }
- Qt::MouseEventSource source() const { return Qt::MouseEventSource(src); }
+ bool isBeginEvent() const override;
+ bool isUpdateEvent() const override;
+ bool isEndEvent() const override;
+ Qt::MouseEventSource source() const { return Qt::MouseEventSource(m_source); }
protected:
- QPointF p;
- QPointF g;
- QPoint pixelD;
- QPoint angleD;
- Qt::MouseButtons mouseState;
- uint src: 2;
- uint ph : 3;
- bool invertedScrolling : 1;
- int reserved : 26;
-
- friend class QApplication;
+ QPoint m_pixelDelta;
+ QPoint m_angleDelta;
};
#endif
#if QT_CONFIG(tabletevent)
-class Q_GUI_EXPORT QTabletEvent : public QPointerEvent
+class Q_GUI_EXPORT QTabletEvent : public QSinglePointEvent
{
- Q_GADGET
+ Q_DECL_EVENT_COMMON(QTabletEvent)
public:
- QTabletEvent(Type t, const QPointF &pos, const QPointF &globalPos,
- int deviceType, int pointerType, qreal pressure, int xTilt, int yTilt,
- qreal tangentialPressure, qreal rotation, int z,
- Qt::KeyboardModifiers keyState, qint64 uniqueID,
- Qt::MouseButton button, Qt::MouseButtons buttons);
- QTabletEvent(Type t, const QPointingDevice *dev, const QPointF &pos, const QPointF &globalPos,
- qreal pressure, int xTilt, int yTilt,
- qreal tangentialPressure, qreal rotation, int z,
+ QTabletEvent(Type t, const QPointingDevice *device,
+ const QPointF &pos, const QPointF &globalPos,
+ qreal pressure, float xTilt, float yTilt,
+ float tangentialPressure, qreal rotation, float z,
Qt::KeyboardModifiers keyState,
Qt::MouseButton button, Qt::MouseButtons buttons);
- ~QTabletEvent();
#if QT_DEPRECATED_SINCE(6, 0)
QT_DEPRECATED_VERSION_X_6_0("Use position()")
@@ -300,38 +348,48 @@ public:
inline qreal hiResGlobalX() const { return globalPosition().x(); }
QT_DEPRECATED_VERSION_X_6_0("use globalPosition().y()")
inline qreal hiResGlobalY() const { return globalPosition().y(); }
-#endif
- inline QPointF position() const { return mPos; }
- inline QPointF globalPosition() const { return mGPos; }
+ QT_DEPRECATED_VERSION_X_6_0("use pointingDevice().uniqueId()")
inline qint64 uniqueId() const { return pointingDevice() ? pointingDevice()->uniqueId().numericId() : -1; }
- inline qreal pressure() const { return mPress; }
- inline int z() const { return mZ; }
- inline qreal tangentialPressure() const { return mTangential; }
- inline qreal rotation() const { return mRot; }
- inline int xTilt() const { return mXT; }
- inline int yTilt() const { return mYT; }
- inline Qt::MouseButton button() const { return mButton; }
- inline Qt::MouseButtons buttons() const { return mButtons; }
+#endif
+ inline qreal pressure() const { Q_ASSERT(!points().isEmpty()); return points().first().pressure(); }
+ inline qreal rotation() const { Q_ASSERT(!points().isEmpty()); return points().first().rotation(); }
+ inline qreal z() const { return m_z; }
+ inline qreal tangentialPressure() const { return m_tangential; }
+ inline qreal xTilt() const { return m_xTilt; }
+ inline qreal yTilt() const { return m_yTilt; }
protected:
- QPointF mPos, mGPos;
- int mXT, mYT, mZ;
- qreal mPress, mTangential, mRot;
- // TODO refactor to parent class along with QMouseEvent's button storage
- Qt::MouseButton mButton;
- Qt::MouseButtons mButtons;
+ float m_tangential;
+ float m_xTilt;
+ float m_yTilt;
+ float m_z;
};
#endif // QT_CONFIG(tabletevent)
#if QT_CONFIG(gestures)
-class Q_GUI_EXPORT QNativeGestureEvent : public QPointerEvent
+class Q_GUI_EXPORT QNativeGestureEvent : public QSinglePointEvent
{
+ Q_DECL_EVENT_COMMON(QNativeGestureEvent)
public:
+#if QT_DEPRECATED_SINCE(6, 2)
+ QT_DEPRECATED_VERSION_X_6_2("Use the other constructor")
QNativeGestureEvent(Qt::NativeGestureType type, const QPointingDevice *dev, const QPointF &localPos, const QPointF &scenePos,
- const QPointF &globalPos, qreal value, ulong sequenceId, quint64 intArgument);
- ~QNativeGestureEvent();
- Qt::NativeGestureType gestureType() const { return mGestureType; }
- qreal value() const { return mRealValue; }
+ const QPointF &globalPos, qreal value, quint64 sequenceId, quint64 intArgument);
+#endif
+ QNativeGestureEvent(Qt::NativeGestureType type, const QPointingDevice *dev, int fingerCount,
+ const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos,
+ qreal value, const QPointF &delta, quint64 sequenceId = UINT64_MAX);
+
+ Qt::NativeGestureType gestureType() const { return m_gestureType; }
+ int fingerCount() const { return m_fingerCount; }
+ qreal value() const { return m_realValue; }
+ QPointF delta() const {
+#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
+ return m_delta.toPointF();
+#else
+ return m_delta;
+#endif
+ }
#if QT_DEPRECATED_SINCE(6, 0)
#ifndef QT_NO_INTEGER_EVENT_COORDINATES
@@ -348,61 +406,71 @@ public:
QPointF screenPos() const { return globalPosition(); }
#endif
- QPointF position() const { return mLocalPos; }
- QPointF scenePosition() const { return mScenePos; }
- QPointF globalPosition() const { return mGlobalPos; }
-
protected:
- Qt::NativeGestureType mGestureType;
- QPointF mLocalPos;
- QPointF mScenePos;
- QPointF mGlobalPos;
- qreal mRealValue;
- ulong mSequenceId;
- quint64 mIntValue;
+ quint64 m_sequenceId;
+#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
+ QVector2D m_delta;
+#else
+ QPointF m_delta;
+#endif
+ qreal m_realValue;
+ Qt::NativeGestureType m_gestureType;
+ quint32 m_fingerCount : 4;
+ quint32 m_reserved : 28;
};
#endif // QT_CONFIG(gestures)
class Q_GUI_EXPORT QKeyEvent : public QInputEvent
{
+ Q_DECL_EVENT_COMMON(QKeyEvent)
public:
QKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers, const QString& text = QString(),
- bool autorep = false, ushort count = 1);
+ bool autorep = false, quint16 count = 1);
QKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers,
quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers,
- const QString &text = QString(), bool autorep = false, ushort count = 1);
- ~QKeyEvent();
+ const QString &text = QString(), bool autorep = false, quint16 count = 1,
+ const QInputDevice *device = QInputDevice::primaryKeyboard());
- int key() const { return k; }
+ int key() const { return m_key; }
#if QT_CONFIG(shortcut)
bool matches(QKeySequence::StandardKey key) const;
#endif
Qt::KeyboardModifiers modifiers() const;
- inline QString text() const { return txt; }
- inline bool isAutoRepeat() const { return autor; }
- inline int count() const { return int(c); }
+ QKeyCombination keyCombination() const
+ {
+ return QKeyCombination(modifiers(), Qt::Key(m_key));
+ }
+ inline QString text() const { return m_text; }
+ inline bool isAutoRepeat() const { return m_autoRepeat; }
+ inline int count() const { return int(m_count); }
+
+ inline quint32 nativeScanCode() const { return m_scanCode; }
+ inline quint32 nativeVirtualKey() const { return m_virtualKey; }
+ inline quint32 nativeModifiers() const { return m_nativeModifiers; }
- inline quint32 nativeScanCode() const { return nScanCode; }
- inline quint32 nativeVirtualKey() const { return nVirtualKey; }
- inline quint32 nativeModifiers() const { return nModifiers; }
+#if QT_CONFIG(shortcut)
+ friend inline bool operator==(QKeyEvent *e, QKeySequence::StandardKey key)
+ { return (e ? e->matches(key) : false); }
+ friend inline bool operator==(QKeySequence::StandardKey key, QKeyEvent *e)
+ { return (e ? e->matches(key) : false); }
+#endif // QT_CONFIG(shortcut)
protected:
- QString txt;
- int k;
- quint32 nScanCode;
- quint32 nVirtualKey;
- quint32 nModifiers;
- ushort c;
- ushort autor:1;
- // ushort reserved:15;
+ QString m_text;
+ int m_key;
+ quint32 m_scanCode;
+ quint32 m_virtualKey;
+ quint32 m_nativeModifiers;
+ quint16 m_count : 15;
+ quint16 m_autoRepeat : 1;
};
class Q_GUI_EXPORT QFocusEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QFocusEvent)
public:
explicit QFocusEvent(Type type, Qt::FocusReason reason=Qt::OtherFocusReason);
- ~QFocusEvent();
inline bool gotFocus() const { return type() == FocusIn; }
inline bool lostFocus() const { return type() == FocusOut; }
@@ -416,10 +484,10 @@ private:
class Q_GUI_EXPORT QPaintEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QPaintEvent)
public:
explicit QPaintEvent(const QRegion& paintRegion);
explicit QPaintEvent(const QRect &paintRect);
- ~QPaintEvent();
inline const QRect &rect() const { return m_rect; }
inline const QRegion &region() const { return m_region; }
@@ -432,31 +500,36 @@ protected:
class Q_GUI_EXPORT QMoveEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QMoveEvent)
public:
QMoveEvent(const QPoint &pos, const QPoint &oldPos);
- ~QMoveEvent();
- inline const QPoint &pos() const { return p; }
- inline const QPoint &oldPos() const { return oldp;}
+ inline const QPoint &pos() const { return m_pos; }
+ inline const QPoint &oldPos() const { return m_oldPos;}
protected:
- QPoint p, oldp;
+ QPoint m_pos, m_oldPos;
friend class QApplication;
};
class Q_GUI_EXPORT QExposeEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QExposeEvent)
public:
- explicit QExposeEvent(const QRegion &rgn);
- ~QExposeEvent();
+ explicit QExposeEvent(const QRegion &m_region);
- inline const QRegion &region() const { return rgn; }
+#if QT_DEPRECATED_SINCE(6, 0)
+ QT_DEPRECATED_VERSION_X_6_0("Handle QPaintEvent instead")
+ inline const QRegion &region() const { return m_region; }
+#endif
protected:
- QRegion rgn;
+ QRegion m_region;
+ friend class QWidgetWindow;
};
class Q_GUI_EXPORT QPlatformSurfaceEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QPlatformSurfaceEvent)
public:
enum SurfaceEventType {
SurfaceCreated,
@@ -464,7 +537,6 @@ public:
};
explicit QPlatformSurfaceEvent(SurfaceEventType surfaceEventType);
- ~QPlatformSurfaceEvent();
inline SurfaceEventType surfaceEventType() const { return m_surfaceEventType; }
@@ -474,81 +546,84 @@ protected:
class Q_GUI_EXPORT QResizeEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QResizeEvent)
public:
QResizeEvent(const QSize &size, const QSize &oldSize);
- ~QResizeEvent();
- inline const QSize &size() const { return s; }
- inline const QSize &oldSize()const { return olds;}
+ inline const QSize &size() const { return m_size; }
+ inline const QSize &oldSize()const { return m_oldSize;}
protected:
- QSize s, olds;
+ QSize m_size, m_oldSize;
friend class QApplication;
};
class Q_GUI_EXPORT QCloseEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QCloseEvent)
public:
QCloseEvent();
- ~QCloseEvent();
};
class Q_GUI_EXPORT QIconDragEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QIconDragEvent)
public:
QIconDragEvent();
- ~QIconDragEvent();
};
class Q_GUI_EXPORT QShowEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QShowEvent)
public:
QShowEvent();
- ~QShowEvent();
};
class Q_GUI_EXPORT QHideEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QHideEvent)
public:
QHideEvent();
- ~QHideEvent();
};
#ifndef QT_NO_CONTEXTMENU
class Q_GUI_EXPORT QContextMenuEvent : public QInputEvent
{
+ Q_DECL_EVENT_COMMON(QContextMenuEvent)
public:
enum Reason { Mouse, Keyboard, Other };
QContextMenuEvent(Reason reason, const QPoint &pos, const QPoint &globalPos,
- Qt::KeyboardModifiers modifiers);
- QContextMenuEvent(Reason reason, const QPoint &pos, const QPoint &globalPos);
+ Qt::KeyboardModifiers modifiers = Qt::NoModifier);
+#if QT_DEPRECATED_SINCE(6, 4)
+ QT_DEPRECATED_VERSION_X_6_4("Use the other constructor")
QContextMenuEvent(Reason reason, const QPoint &pos);
- ~QContextMenuEvent();
+#endif
- inline int x() const { return p.x(); }
- inline int y() const { return p.y(); }
- inline int globalX() const { return gp.x(); }
- inline int globalY() const { return gp.y(); }
+ inline int x() const { return m_pos.x(); }
+ inline int y() const { return m_pos.y(); }
+ inline int globalX() const { return m_globalPos.x(); }
+ inline int globalY() const { return m_globalPos.y(); }
- inline const QPoint& pos() const { return p; }
- inline const QPoint& globalPos() const { return gp; }
+ inline const QPoint& pos() const { return m_pos; }
+ inline const QPoint& globalPos() const { return m_globalPos; }
- inline Reason reason() const { return Reason(reas); }
+ inline Reason reason() const { return Reason(m_reason); }
protected:
- QPoint p;
- QPoint gp;
- uint reas : 8;
+ QPoint m_pos;
+ QPoint m_globalPos;
+ uint m_reason : 8;
};
#endif // QT_NO_CONTEXTMENU
#ifndef QT_NO_INPUTMETHOD
class Q_GUI_EXPORT QInputMethodEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QInputMethodEvent)
public:
enum AttributeType {
TextFormat,
@@ -569,32 +644,42 @@ public:
};
QInputMethodEvent();
QInputMethodEvent(const QString &preeditText, const QList<Attribute> &attributes);
- ~QInputMethodEvent();
void setCommitString(const QString &commitString, int replaceFrom = 0, int replaceLength = 0);
- inline const QList<Attribute> &attributes() const { return attrs; }
- inline const QString &preeditString() const { return preedit; }
+ inline const QList<Attribute> &attributes() const { return m_attributes; }
+ inline const QString &preeditString() const { return m_preedit; }
- inline const QString &commitString() const { return commit; }
- inline int replacementStart() const { return replace_from; }
- inline int replacementLength() const { return replace_length; }
+ inline const QString &commitString() const { return m_commit; }
+ inline int replacementStart() const { return m_replacementStart; }
+ inline int replacementLength() const { return m_replacementLength; }
- QInputMethodEvent(const QInputMethodEvent &other);
+ inline friend bool operator==(const QInputMethodEvent::Attribute &lhs,
+ const QInputMethodEvent::Attribute &rhs)
+ {
+ return lhs.type == rhs.type && lhs.start == rhs.start
+ && lhs.length == rhs.length && lhs.value == rhs.value;
+ }
+
+ inline friend bool operator!=(const QInputMethodEvent::Attribute &lhs,
+ const QInputMethodEvent::Attribute &rhs)
+ {
+ return !(lhs == rhs);
+ }
private:
- QString preedit;
- QList<Attribute> attrs;
- QString commit;
- int replace_from;
- int replace_length;
+ QString m_preedit;
+ QString m_commit;
+ QList<Attribute> m_attributes;
+ int m_replacementStart;
+ int m_replacementLength;
};
-Q_DECLARE_TYPEINFO(QInputMethodEvent::Attribute, Q_MOVABLE_TYPE);
+Q_DECLARE_TYPEINFO(QInputMethodEvent::Attribute, Q_RELOCATABLE_TYPE);
class Q_GUI_EXPORT QInputMethodQueryEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QInputMethodQueryEvent)
public:
explicit QInputMethodQueryEvent(Qt::InputMethodQueries queries);
- ~QInputMethodQueryEvent();
Qt::InputMethodQueries queries() const { return m_queries; }
@@ -609,7 +694,7 @@ private:
friend QTypeInfo<QueryPair>;
QList<QueryPair> m_values;
};
-Q_DECLARE_TYPEINFO(QInputMethodQueryEvent::QueryPair, Q_MOVABLE_TYPE);
+Q_DECLARE_TYPEINFO(QInputMethodQueryEvent::QueryPair, Q_RELOCATABLE_TYPE);
#endif // QT_NO_INPUTMETHOD
@@ -619,10 +704,10 @@ class QMimeData;
class Q_GUI_EXPORT QDropEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QDropEvent)
public:
QDropEvent(const QPointF& pos, Qt::DropActions actions, const QMimeData *data,
Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Type type = Drop);
- ~QDropEvent();
#if QT_DEPRECATED_SINCE(6, 0)
QT_DEPRECATED_VERSION_X_6_0("Use position().toPoint()")
@@ -635,184 +720,192 @@ public:
inline Qt::KeyboardModifiers keyboardModifiers() const { return modifiers(); }
#endif // QT_DEPRECATED_SINCE(6, 0)
- QPointF position() const { return p; }
- inline Qt::MouseButtons buttons() const { return mouseState; }
- inline Qt::KeyboardModifiers modifiers() const { return modState; }
+ QPointF position() const { return m_pos; }
+ inline Qt::MouseButtons buttons() const { return m_mouseState; }
+ inline Qt::KeyboardModifiers modifiers() const { return m_modState; }
- inline Qt::DropActions possibleActions() const { return act; }
- inline Qt::DropAction proposedAction() const { return default_action; }
- inline void acceptProposedAction() { drop_action = default_action; accept(); }
+ inline Qt::DropActions possibleActions() const { return m_actions; }
+ inline Qt::DropAction proposedAction() const { return m_defaultAction; }
+ inline void acceptProposedAction() { m_dropAction = m_defaultAction; accept(); }
- inline Qt::DropAction dropAction() const { return drop_action; }
+ inline Qt::DropAction dropAction() const { return m_dropAction; }
void setDropAction(Qt::DropAction action);
QObject* source() const;
- inline const QMimeData *mimeData() const { return mdata; }
+ inline const QMimeData *mimeData() const { return m_data; }
protected:
friend class QApplication;
- QPointF p;
- Qt::MouseButtons mouseState;
- Qt::KeyboardModifiers modState;
- Qt::DropActions act;
- Qt::DropAction drop_action;
- Qt::DropAction default_action;
- const QMimeData *mdata;
+ QPointF m_pos;
+ Qt::MouseButtons m_mouseState;
+ Qt::KeyboardModifiers m_modState;
+ Qt::DropActions m_actions;
+ Qt::DropAction m_dropAction;
+ Qt::DropAction m_defaultAction;
+ const QMimeData *m_data;
};
class Q_GUI_EXPORT QDragMoveEvent : public QDropEvent
{
+ Q_DECL_EVENT_COMMON(QDragMoveEvent)
public:
QDragMoveEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data,
Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Type type = DragMove);
- ~QDragMoveEvent();
- inline QRect answerRect() const { return rect; }
+ inline QRect answerRect() const { return m_rect; }
inline void accept() { QDropEvent::accept(); }
inline void ignore() { QDropEvent::ignore(); }
- inline void accept(const QRect & r) { accept(); rect = r; }
- inline void ignore(const QRect & r) { ignore(); rect = r; }
+ inline void accept(const QRect & r) { accept(); m_rect = r; }
+ inline void ignore(const QRect & r) { ignore(); m_rect = r; }
protected:
- QRect rect;
+ QRect m_rect;
};
class Q_GUI_EXPORT QDragEnterEvent : public QDragMoveEvent
{
+ Q_DECL_EVENT_COMMON(QDragEnterEvent)
public:
QDragEnterEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data,
Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
- ~QDragEnterEvent();
};
class Q_GUI_EXPORT QDragLeaveEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QDragLeaveEvent)
public:
QDragLeaveEvent();
- ~QDragLeaveEvent();
};
#endif // QT_CONFIG(draganddrop)
class Q_GUI_EXPORT QHelpEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QHelpEvent)
public:
QHelpEvent(Type type, const QPoint &pos, const QPoint &globalPos);
- ~QHelpEvent();
- inline int x() const { return p.x(); }
- inline int y() const { return p.y(); }
- inline int globalX() const { return gp.x(); }
- inline int globalY() const { return gp.y(); }
+ inline int x() const { return m_pos.x(); }
+ inline int y() const { return m_pos.y(); }
+ inline int globalX() const { return m_globalPos.x(); }
+ inline int globalY() const { return m_globalPos.y(); }
- inline const QPoint& pos() const { return p; }
- inline const QPoint& globalPos() const { return gp; }
+ inline const QPoint& pos() const { return m_pos; }
+ inline const QPoint& globalPos() const { return m_globalPos; }
private:
- QPoint p;
- QPoint gp;
+ QPoint m_pos;
+ QPoint m_globalPos;
};
#ifndef QT_NO_STATUSTIP
class Q_GUI_EXPORT QStatusTipEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QStatusTipEvent)
public:
explicit QStatusTipEvent(const QString &tip);
- ~QStatusTipEvent();
- inline QString tip() const { return s; }
+ inline QString tip() const { return m_tip; }
private:
- QString s;
+ QString m_tip;
};
#endif
#if QT_CONFIG(whatsthis)
class Q_GUI_EXPORT QWhatsThisClickedEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QWhatsThisClickedEvent)
public:
explicit QWhatsThisClickedEvent(const QString &href);
- ~QWhatsThisClickedEvent();
- inline QString href() const { return s; }
+ inline QString href() const { return m_href; }
private:
- QString s;
+ QString m_href;
};
#endif
#if QT_CONFIG(action)
class Q_GUI_EXPORT QActionEvent : public QEvent
{
- QAction *act, *bef;
+ Q_DECL_EVENT_COMMON(QActionEvent)
public:
QActionEvent(int type, QAction *action, QAction *before = nullptr);
- ~QActionEvent();
- inline QAction *action() const { return act; }
- inline QAction *before() const { return bef; }
+ inline QAction *action() const { return m_action; }
+ inline QAction *before() const { return m_before; }
+private:
+ QAction *m_action;
+ QAction *m_before;
};
#endif // QT_CONFIG(action)
class Q_GUI_EXPORT QFileOpenEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QFileOpenEvent)
public:
explicit QFileOpenEvent(const QString &file);
explicit QFileOpenEvent(const QUrl &url);
- ~QFileOpenEvent();
- inline QString file() const { return f; }
+ inline QString file() const { return m_file; }
QUrl url() const { return m_url; }
+#if QT_DEPRECATED_SINCE(6, 6)
+ QT_DEPRECATED_VERSION_X_6_6("Interpret the string returned by file()")
bool openFile(QFile &file, QIODevice::OpenMode flags) const;
+#endif
private:
- QString f;
+ QString m_file;
QUrl m_url;
};
#ifndef QT_NO_TOOLBAR
class Q_GUI_EXPORT QToolBarChangeEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QToolBarChangeEvent)
public:
explicit QToolBarChangeEvent(bool t);
- ~QToolBarChangeEvent();
- inline bool toggle() const { return tog; }
+ inline bool toggle() const { return m_toggle; }
private:
- uint tog : 1;
+ bool m_toggle;
};
#endif
#if QT_CONFIG(shortcut)
class Q_GUI_EXPORT QShortcutEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QShortcutEvent)
public:
+ // Note this is publicly deprecated, but should remain as internal constructor:
QShortcutEvent(const QKeySequence &key, int id, bool ambiguous = false);
- ~QShortcutEvent();
+ QShortcutEvent(const QKeySequence &key, const QShortcut *shortcut = nullptr, bool ambiguous = false);
- inline const QKeySequence &key() const { return sequence; }
- inline int shortcutId() const { return sid; }
- inline bool isAmbiguous() const { return ambig; }
+ inline const QKeySequence &key() const { return m_sequence; }
+ // Note this is publicly deprecated, but should remain as internal getter:
+ inline int shortcutId() const { return m_shortcutId; }
+ inline bool isAmbiguous() const { return m_ambiguous; }
protected:
- QKeySequence sequence;
- bool ambig;
- int sid;
+ QKeySequence m_sequence;
+ int m_shortcutId;
+ bool m_ambiguous;
};
#endif
class Q_GUI_EXPORT QWindowStateChangeEvent: public QEvent
{
+ Q_DECL_EVENT_COMMON(QWindowStateChangeEvent)
public:
- explicit QWindowStateChangeEvent(Qt::WindowStates aOldState, bool isOverride = false);
- ~QWindowStateChangeEvent();
+ explicit QWindowStateChangeEvent(Qt::WindowStates oldState, bool isOverride = false);
- inline Qt::WindowStates oldState() const { return ostate; }
+ inline Qt::WindowStates oldState() const { return m_oldStates; }
bool isOverride() const;
private:
- Qt::WindowStates ostate;
+ Qt::WindowStates m_oldStates;
bool m_override;
};
@@ -820,192 +913,68 @@ private:
Q_GUI_EXPORT QDebug operator<<(QDebug, const QEvent *);
#endif
-#if QT_CONFIG(shortcut)
-inline bool operator==(QKeyEvent *e, QKeySequence::StandardKey key){return (e ? e->matches(key) : false);}
-inline bool operator==(QKeySequence::StandardKey key, QKeyEvent *e){return (e ? e->matches(key) : false);}
-#endif // QT_CONFIG(shortcut)
-
-class QTouchEventTouchPointPrivate;
class Q_GUI_EXPORT QTouchEvent : public QPointerEvent
{
+ Q_DECL_EVENT_COMMON(QTouchEvent)
public:
- class Q_GUI_EXPORT TouchPoint
- {
- public:
- enum InfoFlag {
- Pen = 0x0001,
- Token = 0x0002
- };
-#ifndef Q_MOC_RUN
- // otherwise moc gives
- // Error: Meta object features not supported for nested classes
- Q_DECLARE_FLAGS(InfoFlags, InfoFlag)
-#endif
-
- explicit TouchPoint(int id = -1);
- TouchPoint(const TouchPoint &other);
- TouchPoint(TouchPoint &&other) noexcept
- : d(nullptr)
- { qSwap(d, other.d); }
- TouchPoint &operator=(TouchPoint &&other) noexcept
- { qSwap(d, other.d); return *this; }
- ~TouchPoint();
-
- TouchPoint &operator=(const TouchPoint &other)
- { if ( d != other.d ) { TouchPoint copy(other); swap(copy); } return *this; }
-
- void swap(TouchPoint &other) noexcept
- { qSwap(d, other.d); }
-
- int id() const;
- QPointingDeviceUniqueId uniqueId() const;
-
- Qt::TouchPointState state() const;
-
-#if QT_DEPRECATED_SINCE(6, 0)
- QT_DEPRECATED_VERSION_X_6_0("Use position()")
- QPointF pos() const { return position(); }
- QT_DEPRECATED_VERSION_X_6_0("Use pressPosition()")
- QPointF startPos() const { return pressPosition(); }
-
- QT_DEPRECATED_VERSION_X_6_0("Use scenePosition()")
- QPointF scenePos() const { return scenePosition(); }
- QT_DEPRECATED_VERSION_X_6_0("Use scenePressPosition()")
- QPointF startScenePos() const { return scenePressPosition(); }
-
- QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
- QPointF screenPos() const { return globalPosition(); }
- QT_DEPRECATED_VERSION_X_6_0("Use globalPressPosition()")
- QPointF startScreenPos() const { return globalPressPosition(); }
-#endif // QT_DEPRECATED_SINCE(6, 0)
-
- // TODO deprecate these after finding good replacements (use QPointingDevice::globalArea?)
- QPointF normalizedPos() const;
- QPointF startNormalizedPos() const;
-
- // TODO deprecate these after finding good replacements (store longer history perhaps?)
- QPointF lastPos() const;
- QPointF lastScenePos() const;
- QPointF lastScreenPos() const;
- QPointF lastNormalizedPos() const;
-
- QPointF position() const;
- QPointF pressPosition() const;
- QPointF scenePosition() const;
- QPointF scenePressPosition() const;
- QPointF globalPosition() const;
- QPointF globalPressPosition() const;
-
- qreal pressure() const;
- qreal rotation() const;
- QSizeF ellipseDiameters() const;
-
- QVector2D velocity() const;
- InfoFlags flags() const;
- QList<QPointF> rawScreenPositions() const;
-
- // internal
- // ### Qt 6: move private, rename appropriately, only friends can call them
-#if QT_DEPRECATED_SINCE(6, 0)
- void setId(int id);
- void setUniqueId(qint64 uid);
- void setState(Qt::TouchPointStates state);
- void setPos(const QPointF &pos);
- void setScenePos(const QPointF &scenePos);
- void setScreenPos(const QPointF &screenPos);
- void setNormalizedPos(const QPointF &normalizedPos);
- void setStartPos(const QPointF &startPos);
- void setStartScenePos(const QPointF &startScenePos);
- void setStartScreenPos(const QPointF &startScreenPos);
- void setStartNormalizedPos(const QPointF &startNormalizedPos);
- void setLastPos(const QPointF &lastPos);
- void setLastScenePos(const QPointF &lastScenePos);
- void setLastScreenPos(const QPointF &lastScreenPos);
- void setLastNormalizedPos(const QPointF &lastNormalizedPos);
- void setPressure(qreal pressure);
- void setRotation(qreal angle);
- void setEllipseDiameters(const QSizeF &dia);
- void setVelocity(const QVector2D &v);
- void setFlags(InfoFlags flags);
- void setRawScreenPositions(const QList<QPointF> &positions);
-#endif // QT_DEPRECATED_SINCE(6, 0)
-
- private:
- QTouchEventTouchPointPrivate *d;
- friend class QGuiApplication;
- friend class QGuiApplicationPrivate;
- friend class QApplication;
- friend class QApplicationPrivate;
- friend class QQuickPointerTouchEvent;
- friend class QQuickMultiPointTouchArea;
- };
+ using TouchPoint = QEventPoint; // source compat
explicit QTouchEvent(QEvent::Type eventType,
- const QPointingDevice *source = nullptr,
+ const QPointingDevice *device = nullptr,
Qt::KeyboardModifiers modifiers = Qt::NoModifier,
- Qt::TouchPointStates touchPointStates = Qt::TouchPointStates(),
- const QList<QTouchEvent::TouchPoint> &touchPoints = QList<QTouchEvent::TouchPoint>());
- ~QTouchEvent();
-
- inline QWindow *window() const { return _window; }
- inline QObject *target() const { return _target; }
- inline Qt::TouchPointStates touchPointStates() const { return _touchPointStates; }
- inline const QList<QTouchEvent::TouchPoint> &touchPoints() const { return _touchPoints; }
+ const QList<QEventPoint> &touchPoints = {});
+#if QT_DEPRECATED_SINCE(6, 0)
+ QT_DEPRECATED_VERSION_X_6_0("Use another constructor")
+ explicit QTouchEvent(QEvent::Type eventType,
+ const QPointingDevice *device,
+ Qt::KeyboardModifiers modifiers,
+ QEventPoint::States touchPointStates,
+ const QList<QEventPoint> &touchPoints = {});
+#endif
- // ### Qt 6: move private, rename appropriately, only friends can call them; or just let friends modify variables directly
+ inline QObject *target() const { return m_target; }
+ inline QEventPoint::States touchPointStates() const { return m_touchPointStates; }
#if QT_DEPRECATED_SINCE(6, 0)
- inline void setWindow(QWindow *awindow) { _window = awindow; }
- inline void setTarget(QObject *atarget) { _target = atarget; }
- inline void setTouchPoints(const QList<QTouchEvent::TouchPoint> &atouchPoints) { _touchPoints = atouchPoints; }
-#endif // QT_DEPRECATED_SINCE(6, 0)
+ QT_DEPRECATED_VERSION_X_6_0("Use points()")
+ const QList<QEventPoint> &touchPoints() const { return points(); }
+#endif
+ bool isBeginEvent() const override;
+ bool isUpdateEvent() const override;
+ bool isEndEvent() const override;
protected:
- QWindow *_window;
- QObject *_target;
- Qt::TouchPointStates _touchPointStates;
- QList<QTouchEvent::TouchPoint> _touchPoints;
-
- friend class QGuiApplication;
- friend class QGuiApplicationPrivate;
- friend class QApplication;
- friend class QApplicationPrivate;
-#ifndef QT_NO_GRAPHICSVIEW
- friend class QGraphicsScenePrivate; // direct access to _touchPoints
-#endif
+ QObject *m_target = nullptr;
+ QEventPoint::States m_touchPointStates = QEventPoint::State::Unknown;
+ quint32 m_reserved : 24;
};
-Q_DECLARE_TYPEINFO(QTouchEvent::TouchPoint, Q_MOVABLE_TYPE);
-Q_DECLARE_OPERATORS_FOR_FLAGS(QTouchEvent::TouchPoint::InfoFlags)
-
-#ifndef QT_NO_DEBUG_STREAM
-Q_GUI_EXPORT QDebug operator<<(QDebug, const QTouchEvent::TouchPoint &);
-#endif
class Q_GUI_EXPORT QScrollPrepareEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QScrollPrepareEvent)
public:
explicit QScrollPrepareEvent(const QPointF &startPos);
- ~QScrollPrepareEvent();
- QPointF startPos() const;
+ QPointF startPos() const { return m_startPos; }
- QSizeF viewportSize() const;
- QRectF contentPosRange() const;
- QPointF contentPos() const;
+ QSizeF viewportSize() const { return m_viewportSize; }
+ QRectF contentPosRange() const { return m_contentPosRange; }
+ QPointF contentPos() const { return m_contentPos; }
void setViewportSize(const QSizeF &size);
void setContentPosRange(const QRectF &rect);
void setContentPos(const QPointF &pos);
private:
- QPointF m_startPos;
- QSizeF m_viewportSize;
QRectF m_contentPosRange;
+ QSizeF m_viewportSize;
+ QPointF m_startPos;
QPointF m_contentPos;
};
class Q_GUI_EXPORT QScrollEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QScrollEvent)
public:
enum ScrollState
{
@@ -1015,11 +984,10 @@ public:
};
QScrollEvent(const QPointF &contentPos, const QPointF &overshoot, ScrollState scrollState);
- ~QScrollEvent();
- QPointF contentPos() const;
- QPointF overshootDistance() const;
- ScrollState scrollState() const;
+ QPointF contentPos() const { return m_contentPos; }
+ QPointF overshootDistance() const { return m_overshoot; }
+ ScrollState scrollState() const { return m_state; }
private:
QPointF m_contentPos;
@@ -1029,12 +997,12 @@ private:
class Q_GUI_EXPORT QScreenOrientationChangeEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QScreenOrientationChangeEvent)
public:
QScreenOrientationChangeEvent(QScreen *screen, Qt::ScreenOrientation orientation);
- ~QScreenOrientationChangeEvent();
- QScreen *screen() const;
- Qt::ScreenOrientation orientation() const;
+ QScreen *screen() const { return m_screen; }
+ Qt::ScreenOrientation orientation() const { return m_orientation; }
private:
QScreen *m_screen;
@@ -1043,14 +1011,27 @@ private:
class Q_GUI_EXPORT QApplicationStateChangeEvent : public QEvent
{
+ Q_DECL_EVENT_COMMON(QApplicationStateChangeEvent)
public:
explicit QApplicationStateChangeEvent(Qt::ApplicationState state);
- Qt::ApplicationState applicationState() const;
+
+ Qt::ApplicationState applicationState() const { return m_applicationState; }
private:
Qt::ApplicationState m_applicationState;
};
+class Q_GUI_EXPORT QChildWindowEvent : public QEvent
+{
+ Q_DECL_EVENT_COMMON(QChildWindowEvent)
+public:
+ explicit QChildWindowEvent(Type type, QWindow *childWindow);
+ QWindow *child() const { return c; }
+
+private:
+ QWindow *c;
+};
+
QT_END_NAMESPACE
#endif // QEVENT_H