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 DirectionalDragArea(QQuickItem *parent = 0);
84 Direction::Type direction() const;
85 void setDirection(Direction::Type);
87 qreal distance() const;
88 qreal sceneDistance() const;
93 qreal touchSceneX() const;
94 qreal touchSceneY() const;
96 bool dragging() const;
100 bool immediateRecognition() const;
101 void setImmediateRecognition(
bool enabled);
103 bool event(QEvent *e) override;
113 Q_INVOKABLE
void removeTimeConstraints();
116 void directionChanged(Direction::Type direction);
117 void draggingChanged(
bool value);
118 void pressedChanged(
bool value);
119 void distanceChanged(qreal value);
120 void sceneDistanceChanged(qreal value);
121 void touchXChanged(qreal value);
122 void touchYChanged(qreal value);
123 void touchSceneXChanged(qreal value);
124 void touchSceneYChanged(qreal value);
125 void immediateRecognitionChanged(
bool value);
128 void touchEvent(QTouchEvent *event) override;
129 void itemChange(ItemChange change, const ItemChangeData &value) override;
132 DirectionalDragAreaPrivate *d;
135 #endif // DIRECTIONAL_DRAG_AREA_H