32 Q_PROPERTY(
int minimumPointCount READ minimumPointCount WRITE setMinimumPointCount NOTIFY minimumPointCountChanged)
33 Q_PROPERTY(
int maximumPointCount READ maximumPointCount WRITE setMaximumPointCount NOTIFY maximumPointCountChanged)
34 Q_PROPERTY(QQuickHandlerPoint centroid READ centroid NOTIFY centroidChanged)
37 explicit QQuickMultiPointHandler(QQuickItem *parent =
nullptr,
int minimumPointCount = 2,
int maximumPointCount = -1);
39 int minimumPointCount()
const;
40 void setMinimumPointCount(
int c);
42 int maximumPointCount()
const;
43 void setMaximumPointCount(
int maximumPointCount);
45 const QQuickHandlerPoint ¢roid()
const;
48 void minimumPointCountChanged();
49 void maximumPointCountChanged();
50 void centroidChanged();
54 PointData() : id(0), angle(0) {}
55 PointData(quint64 id, qreal angle) : id(id), angle(angle) {}
60 bool wantsPointerEvent(QPointerEvent *event) override;
61 void handlePointerEventImpl(QPointerEvent *event) override;
62 void onActiveChanged() override;
63 void onGrabChanged(QQuickPointerHandler *grabber, QPointingDevice::GrabTransition transition, QPointerEvent *event, QEventPoint &point) override;
64 QList<QQuickHandlerPoint> ¤tPoints();
65 QQuickHandlerPoint &mutableCentroid();
66 bool hasCurrentPoints(QPointerEvent *event);
67 QVector<QEventPoint> eligiblePoints(QPointerEvent *event);
68 qreal averageTouchPointDistance(
const QPointF &ref);
69 qreal averageStartingDistance(
const QPointF &ref);
70 qreal averageTouchPointAngle(
const QPointF &ref);
71 qreal averageStartingAngle(
const QPointF &ref);
72 QVector<PointData> angles(
const QPointF &ref)
const;
73 static qreal averageAngleDelta(
const QVector<PointData> &old,
const QVector<PointData> &newAngles);
74 void acceptPoints(
const QVector<QEventPoint> &points);
75 bool grabPoints(QPointerEvent *event,
const QVector<QEventPoint> &points);
76 void moveTarget(QPointF pos);
78 Q_DECLARE_PRIVATE(QQuickMultiPointHandler)