diff options
author | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-05-13 13:25:53 (GMT) |
---|---|---|
committer | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-05-13 13:31:18 (GMT) |
commit | 7be95673a1266b306fd76cd43fe894f144b0e72d (patch) | |
tree | aef19868cf9e62a9f2efa5d341cc50dfa9baa086 /src/gui/kernel/qevent.h | |
parent | d9c2a93e1dc1ea0248d72fdc7f1bb863f8847658 (diff) | |
download | Qt-7be95673a1266b306fd76cd43fe894f144b0e72d.zip Qt-7be95673a1266b306fd76cd43fe894f144b0e72d.tar.gz Qt-7be95673a1266b306fd76cd43fe894f144b0e72d.tar.bz2 |
Support multiple touch targets in QGraphicsView
This required a larger change to the kernel and graphicsview directories to
make this as efficient as possible:
1. QTouchEvent::TouchPoint becomes the base for
QGraphicsSceneTouchEvent::TouchPoint - this means there is one private for
every touch point, and we can store both the screen and scene coordinates
in one place. Converting a QTouchEvent to QGraphicsSceneTouchEvent becomes
nothing more than casting the QTouchEvent::TouchPoints to
QGraphicsSceneTouchEvent::TouchPoints.
2. The logic that we use in QApplication to convert WM_TOUCH* messages to
QTouchEvents is essentially duplicated (with some minor changes) to
QGraphicsScene so that it can support mulitple touch item targets. I
will have to investigate how I can perhaps merge some of the duplicated
code.
QEvent::GraphicsSceneTouchBegin propagation is not implemented yet, and will
come in a later commit
Diffstat (limited to 'src/gui/kernel/qevent.h')
-rw-r--r-- | src/gui/kernel/qevent.h | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h index ea4f577..ed4129c 100644 --- a/src/gui/kernel/qevent.h +++ b/src/gui/kernel/qevent.h @@ -768,20 +768,33 @@ public: ~TouchPoint(); int id() const; + void setId(int id); Qt::TouchPointState state() const; + void setState(Qt::TouchPointState state); - const QPointF &pos() const; - const QPointF &startPos() const; - const QPointF &lastPos() const; + QPointF pos() const; + void setPos(const QPointF &pos); - const QPointF &globalPos() const; - const QPointF &startGlobalPos() const; - const QPointF &lastGlobalPos() const; + QPointF startPos() const; + void setStartPos(const QPointF &startPos); + + QPointF lastPos() const; + void setLastPos(const QPointF &lastPos); + + QPointF screenPos() const; + void setScreenPos(const QPointF &screenPos); + + QPointF startScreenPos() const; + void setStartScreenPos(const QPointF &startScreenPos); + + QPointF lastScreenPos() const; + void setLastScreenPos(const QPointF &lastScreenPos); qreal pressure() const; // 0.0 -> 1.0 + void setPressure(qreal pressure); - private: + protected: QTouchEventTouchPointPrivate *d; friend class QApplication; @@ -790,13 +803,13 @@ public: QTouchEvent(QEvent::Type type, Qt::KeyboardModifiers modifiers, - const QList<TouchPoint *> &touchPoints); + const QList<QTouchEvent::TouchPoint *> &touchPoints); + ~QTouchEvent(); - inline const QList<TouchPoint *> &touchPoints() const { return _touchPoints; - } + inline const QList<QTouchEvent::TouchPoint *> &touchPoints() const { return _touchPoints; } protected: - QList<TouchPoint *> _touchPoints; + QList<QTouchEvent::TouchPoint *> _touchPoints; friend class QApplication; friend class QApplicationPrivate; |