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);
59 void touchEvent(QTouchEvent *event)
override;
63 TouchEvent(
const QTouchEvent *event);
65 bool removeTouch(
int touchId);
67 QEvent::Type eventType;
69 Qt::KeyboardModifiers modifiers;
70 QList<QTouchEvent::TouchPoint> touchPoints;
76 void touchOwnershipEvent(TouchOwnershipEvent *event);
77 bool isTouchPointOwned(
int touchId)
const;
78 void storeTouchEvent(
const QTouchEvent *event);
79 void removeTouchFromStoredEvents(
int touchId);
80 void dispatchFullyOwnedEvents();
81 bool eventIsFullyOwned(
const TouchEvent &event)
const;
83 void dispatchTouchEventToTarget(
const TouchEvent &event);
84 void dispatchTouchEventToTarget(QTouchEvent* event);
86 void removeTouchInfoForEndedTouches(
const QList<QTouchEvent::TouchPoint> &touchPoints);
89 QString oldestPendingTouchIdsString();
92 QList<TouchEvent> m_storedEvents;
101 TouchInfo() {ownership = OwnershipUndefined; ended =
false;}
105 QMap<int, TouchInfo> m_touchInfoMap;
107 TouchDispatcher m_dispatcher;
109 friend class tst_TouchGate;
112 #endif // UBUNTU_TOUCH_GATE_H