aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickevents_p_p.h
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2016-07-21 11:35:42 +0200
committerFrederik Gladhorn <frederik.gladhorn@qt.io>2016-07-21 14:14:56 +0000
commita5e7897dd7705a9df3a97e5de75b5b95d6a88e25 (patch)
tree39cbb88f5c25194b87f8124ae88e0c57e526d5b8 /src/quick/items/qquickevents_p_p.h
parentc856d877e77048701182cc0e5ae275c398e55166 (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.h24
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;