summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qevent.h
diff options
context:
space:
mode:
authorBradley T. Hughes <bradley.hughes@nokia.com>2009-05-13 13:25:53 (GMT)
committerBradley T. Hughes <bradley.hughes@nokia.com>2009-05-13 13:31:18 (GMT)
commit7be95673a1266b306fd76cd43fe894f144b0e72d (patch)
treeaef19868cf9e62a9f2efa5d341cc50dfa9baa086 /src/gui/kernel/qevent.h
parentd9c2a93e1dc1ea0248d72fdc7f1bb863f8847658 (diff)
downloadQt-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.h35
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;