Warning, file /include/QtWidgets/qgesture.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005 #ifndef QGESTURE_H
0006 #define QGESTURE_H
0007
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtCore/qobject.h>
0010 #include <QtCore/qmap.h>
0011 #include <QtCore/qlist.h>
0012 #include <QtCore/qdatetime.h>
0013 #include <QtCore/qpoint.h>
0014 #include <QtCore/qrect.h>
0015 #include <QtCore/qmetatype.h>
0016 #include <QtGui/qevent.h>
0017
0018 #ifndef QT_NO_GESTURES
0019
0020
0021 QT_DECL_METATYPE_EXTERN_TAGGED(Qt::GestureState, Qt__GestureState, Q_WIDGETS_EXPORT)
0022
0023 QT_DECL_METATYPE_EXTERN_TAGGED(Qt::GestureType, Qt__GestureType, Q_WIDGETS_EXPORT)
0024
0025 QT_BEGIN_NAMESPACE
0026
0027
0028 class QGesturePrivate;
0029 class Q_WIDGETS_EXPORT QGesture : public QObject
0030 {
0031 Q_OBJECT
0032 Q_DECLARE_PRIVATE(QGesture)
0033
0034 Q_PROPERTY(Qt::GestureState state READ state)
0035 Q_PROPERTY(Qt::GestureType gestureType READ gestureType)
0036 Q_PROPERTY(QGesture::GestureCancelPolicy gestureCancelPolicy READ gestureCancelPolicy
0037 WRITE setGestureCancelPolicy)
0038 Q_PROPERTY(QPointF hotSpot READ hotSpot WRITE setHotSpot RESET unsetHotSpot)
0039 Q_PROPERTY(bool hasHotSpot READ hasHotSpot)
0040
0041 public:
0042 explicit QGesture(QObject *parent = nullptr);
0043 ~QGesture();
0044
0045 Qt::GestureType gestureType() const;
0046
0047 Qt::GestureState state() const;
0048
0049 QPointF hotSpot() const;
0050 void setHotSpot(const QPointF &value);
0051 bool hasHotSpot() const;
0052 void unsetHotSpot();
0053
0054 enum GestureCancelPolicy {
0055 CancelNone = 0,
0056 CancelAllInContext
0057 };
0058
0059 void setGestureCancelPolicy(GestureCancelPolicy policy);
0060 GestureCancelPolicy gestureCancelPolicy() const;
0061
0062 protected:
0063 QGesture(QGesturePrivate &dd, QObject *parent);
0064
0065 private:
0066 friend class QGestureEvent;
0067 friend class QGestureRecognizer;
0068 friend class QGestureManager;
0069 friend class QGraphicsScenePrivate;
0070 };
0071
0072 class QPanGesturePrivate;
0073 class Q_WIDGETS_EXPORT QPanGesture : public QGesture
0074 {
0075 Q_OBJECT
0076 Q_DECLARE_PRIVATE(QPanGesture)
0077
0078 Q_PROPERTY(QPointF lastOffset READ lastOffset WRITE setLastOffset)
0079 Q_PROPERTY(QPointF offset READ offset WRITE setOffset)
0080 Q_PROPERTY(QPointF delta READ delta STORED false)
0081 Q_PROPERTY(qreal acceleration READ acceleration WRITE setAcceleration)
0082 Q_PRIVATE_PROPERTY(QPanGesture::d_func(), qreal horizontalVelocity READ horizontalVelocity WRITE setHorizontalVelocity)
0083 Q_PRIVATE_PROPERTY(QPanGesture::d_func(), qreal verticalVelocity READ verticalVelocity WRITE setVerticalVelocity)
0084
0085 public:
0086 explicit QPanGesture(QObject *parent = nullptr);
0087 ~QPanGesture();
0088
0089 QPointF lastOffset() const;
0090 QPointF offset() const;
0091 QPointF delta() const;
0092 qreal acceleration() const;
0093
0094 void setLastOffset(const QPointF &value);
0095 void setOffset(const QPointF &value);
0096 void setAcceleration(qreal value);
0097
0098 friend class QPanGestureRecognizer;
0099 friend class QWinNativePanGestureRecognizer;
0100 };
0101
0102 class QPinchGesturePrivate;
0103 class Q_WIDGETS_EXPORT QPinchGesture : public QGesture
0104 {
0105 Q_OBJECT
0106 Q_DECLARE_PRIVATE(QPinchGesture)
0107
0108 public:
0109 enum ChangeFlag {
0110 ScaleFactorChanged = 0x1,
0111 RotationAngleChanged = 0x2,
0112 CenterPointChanged = 0x4
0113 };
0114 Q_ENUM(ChangeFlag)
0115 Q_DECLARE_FLAGS(ChangeFlags, ChangeFlag)
0116 Q_FLAG(ChangeFlags)
0117
0118 Q_PROPERTY(ChangeFlags totalChangeFlags READ totalChangeFlags WRITE setTotalChangeFlags)
0119 Q_PROPERTY(ChangeFlags changeFlags READ changeFlags WRITE setChangeFlags)
0120
0121 Q_PROPERTY(qreal totalScaleFactor READ totalScaleFactor WRITE setTotalScaleFactor)
0122 Q_PROPERTY(qreal lastScaleFactor READ lastScaleFactor WRITE setLastScaleFactor)
0123 Q_PROPERTY(qreal scaleFactor READ scaleFactor WRITE setScaleFactor)
0124
0125 Q_PROPERTY(qreal totalRotationAngle READ totalRotationAngle WRITE setTotalRotationAngle)
0126 Q_PROPERTY(qreal lastRotationAngle READ lastRotationAngle WRITE setLastRotationAngle)
0127 Q_PROPERTY(qreal rotationAngle READ rotationAngle WRITE setRotationAngle)
0128
0129 Q_PROPERTY(QPointF startCenterPoint READ startCenterPoint WRITE setStartCenterPoint)
0130 Q_PROPERTY(QPointF lastCenterPoint READ lastCenterPoint WRITE setLastCenterPoint)
0131 Q_PROPERTY(QPointF centerPoint READ centerPoint WRITE setCenterPoint)
0132
0133 public:
0134 explicit QPinchGesture(QObject *parent = nullptr);
0135 ~QPinchGesture();
0136
0137 ChangeFlags totalChangeFlags() const;
0138 void setTotalChangeFlags(ChangeFlags value);
0139
0140 ChangeFlags changeFlags() const;
0141 void setChangeFlags(ChangeFlags value);
0142
0143 QPointF startCenterPoint() const;
0144 QPointF lastCenterPoint() const;
0145 QPointF centerPoint() const;
0146 void setStartCenterPoint(const QPointF &value);
0147 void setLastCenterPoint(const QPointF &value);
0148 void setCenterPoint(const QPointF &value);
0149
0150 qreal totalScaleFactor() const;
0151 qreal lastScaleFactor() const;
0152 qreal scaleFactor() const;
0153 void setTotalScaleFactor(qreal value);
0154 void setLastScaleFactor(qreal value);
0155 void setScaleFactor(qreal value);
0156
0157 qreal totalRotationAngle() const;
0158 qreal lastRotationAngle() const;
0159 qreal rotationAngle() const;
0160 void setTotalRotationAngle(qreal value);
0161 void setLastRotationAngle(qreal value);
0162 void setRotationAngle(qreal value);
0163
0164 friend class QPinchGestureRecognizer;
0165 };
0166
0167 Q_DECLARE_OPERATORS_FOR_FLAGS(QPinchGesture::ChangeFlags)
0168
0169 QT_END_NAMESPACE
0170
0171 QT_DECL_METATYPE_EXTERN_TAGGED(QPinchGesture::ChangeFlags,
0172 QPinchGesture__ChangeFlags, Q_WIDGETS_EXPORT)
0173
0174 QT_BEGIN_NAMESPACE
0175
0176 class QSwipeGesturePrivate;
0177 class Q_WIDGETS_EXPORT QSwipeGesture : public QGesture
0178 {
0179 Q_OBJECT
0180 Q_DECLARE_PRIVATE(QSwipeGesture)
0181
0182 Q_PROPERTY(SwipeDirection horizontalDirection READ horizontalDirection STORED false)
0183 Q_PROPERTY(SwipeDirection verticalDirection READ verticalDirection STORED false)
0184 Q_PROPERTY(qreal swipeAngle READ swipeAngle WRITE setSwipeAngle)
0185 Q_PRIVATE_PROPERTY(QSwipeGesture::d_func(), qreal velocity READ velocity WRITE setVelocity)
0186
0187 public:
0188 enum SwipeDirection { NoDirection, Left, Right, Up, Down };
0189 Q_ENUM(SwipeDirection)
0190
0191 explicit QSwipeGesture(QObject *parent = nullptr);
0192 ~QSwipeGesture();
0193
0194 SwipeDirection horizontalDirection() const;
0195 SwipeDirection verticalDirection() const;
0196
0197 qreal swipeAngle() const;
0198 void setSwipeAngle(qreal value);
0199
0200 friend class QSwipeGestureRecognizer;
0201 };
0202
0203 class QTapGesturePrivate;
0204 class Q_WIDGETS_EXPORT QTapGesture : public QGesture
0205 {
0206 Q_OBJECT
0207 Q_DECLARE_PRIVATE(QTapGesture)
0208
0209 Q_PROPERTY(QPointF position READ position WRITE setPosition)
0210
0211 public:
0212 explicit QTapGesture(QObject *parent = nullptr);
0213 ~QTapGesture();
0214
0215 QPointF position() const;
0216 void setPosition(const QPointF &pos);
0217
0218 friend class QTapGestureRecognizer;
0219 };
0220
0221 class QTapAndHoldGesturePrivate;
0222 class Q_WIDGETS_EXPORT QTapAndHoldGesture : public QGesture
0223 {
0224 Q_OBJECT
0225 Q_DECLARE_PRIVATE(QTapAndHoldGesture)
0226
0227 Q_PROPERTY(QPointF position READ position WRITE setPosition)
0228
0229 public:
0230 explicit QTapAndHoldGesture(QObject *parent = nullptr);
0231 ~QTapAndHoldGesture();
0232
0233 QPointF position() const;
0234 void setPosition(const QPointF &pos);
0235
0236 static void setTimeout(int msecs);
0237 static int timeout();
0238
0239 friend class QTapAndHoldGestureRecognizer;
0240 };
0241
0242 class QGesture;
0243 class QGestureEventPrivate;
0244 class Q_WIDGETS_EXPORT QGestureEvent : public QEvent
0245 {
0246 public:
0247 explicit QGestureEvent(const QList<QGesture *> &gestures);
0248 ~QGestureEvent();
0249
0250 QList<QGesture *> gestures() const;
0251 QGesture *gesture(Qt::GestureType type) const;
0252
0253 QList<QGesture *> activeGestures() const;
0254 QList<QGesture *> canceledGestures() const;
0255
0256 using QEvent::setAccepted;
0257 using QEvent::isAccepted;
0258 using QEvent::accept;
0259 using QEvent::ignore;
0260
0261 void setAccepted(QGesture *, bool);
0262 void accept(QGesture *);
0263 void ignore(QGesture *);
0264 bool isAccepted(QGesture *) const;
0265
0266 void setAccepted(Qt::GestureType, bool);
0267 void accept(Qt::GestureType);
0268 void ignore(Qt::GestureType);
0269 bool isAccepted(Qt::GestureType) const;
0270
0271 void setWidget(QWidget *widget);
0272 QWidget *widget() const;
0273
0274 #if QT_CONFIG(graphicsview)
0275 QPointF mapToGraphicsScene(const QPointF &gesturePoint) const;
0276 #endif
0277
0278 private:
0279 QList<QGesture *> m_gestures;
0280 QWidget *m_widget;
0281 QMap<Qt::GestureType, bool> m_accepted;
0282 QMap<Qt::GestureType, QWidget *> m_targetWidgets;
0283
0284 friend class QApplication;
0285 friend class QGestureManager;
0286 };
0287
0288 # ifndef QT_NO_DEBUG_STREAM
0289 Q_WIDGETS_EXPORT QDebug operator<<(QDebug, const QGesture *);
0290 Q_WIDGETS_EXPORT QDebug operator<<(QDebug, const QGestureEvent *);
0291 # endif
0292
0293 QT_END_NAMESPACE
0294
0295 QT_DECL_METATYPE_EXTERN_TAGGED(QGesture::GestureCancelPolicy,
0296 QGesture__GestureCancelPolicy, Q_WIDGETS_EXPORT)
0297
0298 #endif
0299
0300 #endif