Back to home page

EIC code displayed by LXR

 
 

    


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 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 // Qt-Security score:significant reason:default
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 // ### move to qnamespace.h
0021 QT_DECL_METATYPE_EXTERN_TAGGED(Qt::GestureState, Qt__GestureState, Q_WIDGETS_EXPORT)
0022 // ### move to qnamespace.h
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 // QT_NO_GESTURES
0299 
0300 #endif // QGESTURE_H