17 #ifndef FLOATING_FLICKABLE_H
18 #define FLOATING_FLICKABLE_H
21 #include "UbuntuGesturesQmlGlobal.h"
22 #include "Direction.h"
24 class DirectionalDragArea;
25 class QQuickFlickable;
37 class UBUNTUGESTURESQML_EXPORT FloatingFlickable :
public QQuickItem {
40 Q_PROPERTY(qreal contentWidth READ contentWidth WRITE setContentWidth NOTIFY contentWidthChanged)
41 Q_PROPERTY(qreal contentHeight READ contentHeight WRITE setContentHeight NOTIFY contentHeightChanged)
42 Q_PROPERTY(qreal contentX READ contentX WRITE setContentX NOTIFY contentXChanged)
43 Q_PROPERTY(qreal contentY READ contentY WRITE setContentY NOTIFY contentYChanged)
45 Q_PROPERTY(Direction::Type direction READ direction WRITE setDirection NOTIFY directionChanged)
48 void contentWidthChanged();
49 void contentHeightChanged();
50 void contentXChanged();
51 void contentYChanged();
52 void directionChanged();
55 FloatingFlickable(QQuickItem *parent =
nullptr);
57 qreal contentWidth()
const;
58 void setContentWidth(qreal contentWidth);
60 qreal contentHeight()
const;
61 void setContentHeight(qreal contentHeight);
63 qreal contentX()
const;
64 void setContentX(qreal contentX);
66 qreal contentY()
const;
67 void setContentY(qreal contentY);
69 Direction::Type direction()
const;
70 void setDirection(Direction::Type);
73 void updateChildrenWidth();
74 void updateChildrenHeight();
75 void onDragAreaTouchPosChanged(qreal);
76 void onDragAreaDraggingChanged(
bool value);
79 DirectionalDragArea *m_dragArea;
80 QQuickFlickable *m_flickable;
83 friend class tst_FloatingFlickable;
86 #endif // FLOATING_FLICKABLE_H