17 #ifndef UBUNTU_TOUCH_GATE_H
18 #define UBUNTU_TOUCH_GATE_H
20 #include "UbuntuGesturesQmlGlobal.h"
21 #include "TouchDispatcher.h"
27 #define TOUCHGATE_DEBUG 0
29 class TouchOwnershipEvent;
41 class UBUNTUGESTURESQML_EXPORT TouchGate :
public QQuickItem {
45 Q_PROPERTY(QQuickItem* targetItem READ targetItem WRITE setTargetItem NOTIFY targetItemChanged)
48 bool event(QEvent *e)
override;
50 QQuickItem *targetItem() {
return m_dispatcher.targetItem(); }
51 void setTargetItem(QQuickItem *item);
54 void targetItemChanged(QQuickItem *item);
57 void touchEvent(QTouchEvent *event)
override;
61 TouchEvent(
const QTouchEvent *event);
63 bool removeTouch(
int touchId);
65 QEvent::Type eventType;
67 Qt::KeyboardModifiers modifiers;
68 QList<QTouchEvent::TouchPoint> touchPoints;
74 void touchOwnershipEvent(TouchOwnershipEvent *event);
75 bool isTouchPointOwned(
int touchId)
const;
76 void storeTouchEvent(
const QTouchEvent *event);
77 void removeTouchFromStoredEvents(
int touchId);
78 void dispatchFullyOwnedEvents();
79 bool eventIsFullyOwned(
const TouchEvent &event)
const;
81 void dispatchTouchEventToTarget(
const TouchEvent &event);
82 void dispatchTouchEventToTarget(QTouchEvent* event);
84 void removeTouchInfoForEndedTouches(
const QList<QTouchEvent::TouchPoint> &touchPoints);
87 QString oldestPendingTouchIdsString();
90 QList<TouchEvent> m_storedEvents;
99 TouchInfo() {ownership = OwnershipUndefined; ended =
false;}
103 QMap<int, TouchInfo> m_touchInfoMap;
105 TouchDispatcher m_dispatcher;
107 friend class tst_TouchGate;
110 #endif // UBUNTU_TOUCH_GATE_H