17 #ifndef DIRECTIONAL_DRAG_AREA_H 18 #define DIRECTIONAL_DRAG_AREA_H 20 #include <QtQuick/QQuickItem> 21 #include "UbuntuGesturesQmlGlobal.h" 23 #include "Direction.h" 29 class TouchOwnershipEvent;
30 class UnownedTouchEvent;
31 class DirectionalDragAreaPrivate;
42 class UBUNTUGESTURESQML_EXPORT DirectionalDragArea :
public QQuickItem {
46 Q_PROPERTY(Direction::Type direction READ direction WRITE setDirection NOTIFY directionChanged)
50 Q_PROPERTY(qreal distance READ distance NOTIFY distanceChanged)
54 Q_PROPERTY(qreal sceneDistance READ sceneDistance NOTIFY sceneDistanceChanged)
57 Q_PROPERTY(qreal touchX READ touchX NOTIFY touchXChanged)
58 Q_PROPERTY(qreal touchY READ touchY NOTIFY touchYChanged)
61 Q_PROPERTY(qreal touchSceneX READ touchSceneX NOTIFY touchSceneXChanged)
62 Q_PROPERTY(qreal touchSceneY READ touchSceneY NOTIFY touchSceneYChanged)
65 Q_PROPERTY(
bool dragging READ dragging NOTIFY draggingChanged)
68 Q_PROPERTY(
bool pressed READ pressed NOTIFY pressedChanged)
75 Q_PROPERTY(
bool immediateRecognition
76 READ immediateRecognition
77 WRITE setImmediateRecognition
78 NOTIFY immediateRecognitionChanged)
82 Q_PROPERTY(
bool monitorOnly READ monitorOnly WRITE setMonitorOnly NOTIFY monitorOnlyChanged)
86 DirectionalDragArea(QQuickItem *parent = 0);
88 Direction::Type direction() const;
89 void setDirection(Direction::Type);
91 qreal distance() const;
92 qreal sceneDistance() const;
97 qreal touchSceneX() const;
98 qreal touchSceneY() const;
100 bool dragging() const;
102 bool pressed() const;
104 bool immediateRecognition() const;
105 void setImmediateRecognition(
bool enabled);
107 bool monitorOnly() const;
108 void setMonitorOnly(
bool monitorOnly);
110 bool event(QEvent *e) override;
120 Q_INVOKABLE
void removeTimeConstraints();
123 void directionChanged(Direction::Type direction);
124 void draggingChanged(
bool value);
125 void pressedChanged(
bool value);
126 void distanceChanged(qreal value);
127 void sceneDistanceChanged(qreal value);
128 void touchXChanged(qreal value);
129 void touchYChanged(qreal value);
130 void touchSceneXChanged(qreal value);
131 void touchSceneYChanged(qreal value);
132 void immediateRecognitionChanged(
bool value);
133 void monitorOnlyChanged(
bool value);
136 void touchEvent(QTouchEvent *event) override;
137 void itemChange(ItemChange change, const ItemChangeData &value) override;
140 DirectionalDragAreaPrivate *d;
143 #endif // DIRECTIONAL_DRAG_AREA_H