diff options
author | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2016-07-21 11:35:42 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@qt.io> | 2016-07-21 14:14:56 +0000 |
commit | a5e7897dd7705a9df3a97e5de75b5b95d6a88e25 (patch) | |
tree | 39cbb88f5c25194b87f8124ae88e0c57e526d5b8 /src/quick/items/qquickevents_p_p.h | |
parent | c856d877e77048701182cc0e5ae275c398e55166 (diff) |
Improve encapsuation of touch/mouse event specific things
This makes it easy to avoid casts when using the classes.
Change-Id: I27bd1244bffb3a7d2cdb4572c229333e4c499d9b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick/items/qquickevents_p_p.h')
-rw-r--r-- | src/quick/items/qquickevents_p_p.h | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/quick/items/qquickevents_p_p.h b/src/quick/items/qquickevents_p_p.h index 123d5e5280..9e37955914 100644 --- a/src/quick/items/qquickevents_p_p.h +++ b/src/quick/items/qquickevents_p_p.h @@ -64,6 +64,8 @@ QT_BEGIN_NAMESPACE class QQuickItem; class QQuickPointerDevice; class QQuickPointerEvent; +class QQuickPointerMouseEvent; +class QQuickPointerTabletEvent; class QQuickPointerTouchEvent; class QQuickKeyEvent : public QObject @@ -346,12 +348,12 @@ public: // property accessors public: // helpers for C++ only (during event delivery) virtual QQuickPointerEvent *reset(QEvent *ev) = 0; - QTouchEvent *asTouchEvent() const; - QMouseEvent *asMouseEvent() const; - - virtual bool isMouseEvent() const { return false; } - virtual bool isTouchEvent() const { return false; } - virtual bool isTabletEvent() const { return false; } + virtual QQuickPointerMouseEvent *asPointerMouseEvent() { return nullptr; } + virtual QQuickPointerTouchEvent *asPointerTouchEvent() { return nullptr; } + virtual QQuickPointerTabletEvent *asPointerTabletEvent() { return nullptr; } + virtual const QQuickPointerMouseEvent *asPointerMouseEvent() const { return nullptr; } + virtual const QQuickPointerTouchEvent *asPointerTouchEvent() const { return nullptr; } + virtual const QQuickPointerTabletEvent *asPointerTabletEvent() const { return nullptr; } bool isValid() const { return m_event != nullptr; } virtual bool allPointsAccepted() const = 0; @@ -379,12 +381,15 @@ public: } QQuickPointerEvent *reset(QEvent *) override; - bool isMouseEvent() const override { return true; } + QQuickPointerMouseEvent *asPointerMouseEvent() override { return this; } + const QQuickPointerMouseEvent *asPointerMouseEvent() const override { return this; } int pointCount() const override { return 1; } QQuickEventPoint *point(int i) const override; QQuickEventPoint *pointById(quint64 pointId) const override; bool allPointsAccepted() const override; + QMouseEvent *asMouseEvent() const; + private: QQuickEventPoint *m_mousePoint; }; @@ -397,7 +402,8 @@ public: {} QQuickPointerEvent *reset(QEvent *) override; - bool isTouchEvent() const override { return true; } + QQuickPointerTouchEvent *asPointerTouchEvent() override { return this; } + const QQuickPointerTouchEvent *asPointerTouchEvent() const override { return this; } int pointCount() const override { return m_pointCount; } QQuickEventPoint *point(int i) const override; QQuickEventPoint *pointById(quint64 pointId) const override; @@ -407,6 +413,8 @@ public: QMouseEvent *syntheticMouseEvent(int pointID, QQuickItem *relativeTo) const; QTouchEvent *touchEventForItem(const QList<const QQuickEventPoint *> &newPoints, QQuickItem *relativeTo) const; + QTouchEvent *asTouchEvent() const; + private: int m_pointCount; QVector<QQuickEventTouchPoint *> m_touchPoints; |