Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qgesture.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QGESTURE_H
5#define QGESTURE_H
6
7#include <QtWidgets/qtwidgetsglobal.h>
8#include <QtCore/qobject.h>
9#include <QtCore/qmap.h>
10#include <QtCore/qlist.h>
11#include <QtCore/qdatetime.h>
12#include <QtCore/qpoint.h>
13#include <QtCore/qrect.h>
14#include <QtCore/qmetatype.h>
15#include <QtGui/qevent.h>
16
17#ifndef QT_NO_GESTURES
18
19// ### move to qnamespace.h
20QT_DECL_METATYPE_EXTERN_TAGGED(Qt::GestureState, Qt__GestureState, Q_WIDGETS_EXPORT)
21// ### move to qnamespace.h
22QT_DECL_METATYPE_EXTERN_TAGGED(Qt::GestureType, Qt__GestureType, Q_WIDGETS_EXPORT)
23
25
26
27class QGesturePrivate;
28class Q_WIDGETS_EXPORT QGesture : public QObject
29{
31 Q_DECLARE_PRIVATE(QGesture)
32
33 Q_PROPERTY(Qt::GestureState state READ state)
34 Q_PROPERTY(Qt::GestureType gestureType READ gestureType)
35 Q_PROPERTY(QGesture::GestureCancelPolicy gestureCancelPolicy READ gestureCancelPolicy
36 WRITE setGestureCancelPolicy)
37 Q_PROPERTY(QPointF hotSpot READ hotSpot WRITE setHotSpot RESET unsetHotSpot)
38 Q_PROPERTY(bool hasHotSpot READ hasHotSpot)
39
40public:
41 explicit QGesture(QObject *parent = nullptr);
42 ~QGesture();
43
44 Qt::GestureType gestureType() const;
45
46 Qt::GestureState state() const;
47
48 QPointF hotSpot() const;
49 void setHotSpot(const QPointF &value);
50 bool hasHotSpot() const;
51 void unsetHotSpot();
52
54 CancelNone = 0,
55 CancelAllInContext
56 };
57
58 void setGestureCancelPolicy(GestureCancelPolicy policy);
59 GestureCancelPolicy gestureCancelPolicy() const;
60
61protected:
62 QGesture(QGesturePrivate &dd, QObject *parent);
63
64private:
65 friend class QGestureEvent;
66 friend class QGestureRecognizer;
67 friend class QGestureManager;
69};
70
72class Q_WIDGETS_EXPORT QPanGesture : public QGesture
73{
75 Q_DECLARE_PRIVATE(QPanGesture)
76
77 Q_PROPERTY(QPointF lastOffset READ lastOffset WRITE setLastOffset)
78 Q_PROPERTY(QPointF offset READ offset WRITE setOffset)
79 Q_PROPERTY(QPointF delta READ delta STORED false)
80 Q_PROPERTY(qreal acceleration READ acceleration WRITE setAcceleration)
81 Q_PRIVATE_PROPERTY(QPanGesture::d_func(), qreal horizontalVelocity READ horizontalVelocity WRITE setHorizontalVelocity)
82 Q_PRIVATE_PROPERTY(QPanGesture::d_func(), qreal verticalVelocity READ verticalVelocity WRITE setVerticalVelocity)
83
84public:
85 explicit QPanGesture(QObject *parent = nullptr);
86 ~QPanGesture();
87
88 QPointF lastOffset() const;
89 QPointF offset() const;
90 QPointF delta() const;
91 qreal acceleration() const;
92
93 void setLastOffset(const QPointF &value);
94 void setOffset(const QPointF &value);
95 void setAcceleration(qreal value);
96
98 friend class QWinNativePanGestureRecognizer;
99};
100
102class Q_WIDGETS_EXPORT QPinchGesture : public QGesture
103{
105 Q_DECLARE_PRIVATE(QPinchGesture)
106
107public:
109 ScaleFactorChanged = 0x1,
110 RotationAngleChanged = 0x2,
111 CenterPointChanged = 0x4
112 };
113 Q_ENUM(ChangeFlag)
114 Q_DECLARE_FLAGS(ChangeFlags, ChangeFlag)
115 Q_FLAG(ChangeFlags)
116
117 Q_PROPERTY(ChangeFlags totalChangeFlags READ totalChangeFlags WRITE setTotalChangeFlags)
118 Q_PROPERTY(ChangeFlags changeFlags READ changeFlags WRITE setChangeFlags)
119
120 Q_PROPERTY(qreal totalScaleFactor READ totalScaleFactor WRITE setTotalScaleFactor)
121 Q_PROPERTY(qreal lastScaleFactor READ lastScaleFactor WRITE setLastScaleFactor)
122 Q_PROPERTY(qreal scaleFactor READ scaleFactor WRITE setScaleFactor)
123
124 Q_PROPERTY(qreal totalRotationAngle READ totalRotationAngle WRITE setTotalRotationAngle)
125 Q_PROPERTY(qreal lastRotationAngle READ lastRotationAngle WRITE setLastRotationAngle)
126 Q_PROPERTY(qreal rotationAngle READ rotationAngle WRITE setRotationAngle)
127
128 Q_PROPERTY(QPointF startCenterPoint READ startCenterPoint WRITE setStartCenterPoint)
129 Q_PROPERTY(QPointF lastCenterPoint READ lastCenterPoint WRITE setLastCenterPoint)
130 Q_PROPERTY(QPointF centerPoint READ centerPoint WRITE setCenterPoint)
131
132public:
133 explicit QPinchGesture(QObject *parent = nullptr);
134 ~QPinchGesture();
135
136 ChangeFlags totalChangeFlags() const;
137 void setTotalChangeFlags(ChangeFlags value);
138
139 ChangeFlags changeFlags() const;
140 void setChangeFlags(ChangeFlags value);
141
142 QPointF startCenterPoint() const;
143 QPointF lastCenterPoint() const;
144 QPointF centerPoint() const;
145 void setStartCenterPoint(const QPointF &value);
146 void setLastCenterPoint(const QPointF &value);
147 void setCenterPoint(const QPointF &value);
148
149 qreal totalScaleFactor() const;
150 qreal lastScaleFactor() const;
151 qreal scaleFactor() const;
152 void setTotalScaleFactor(qreal value);
153 void setLastScaleFactor(qreal value);
154 void setScaleFactor(qreal value);
155
156 qreal totalRotationAngle() const;
157 qreal lastRotationAngle() const;
158 qreal rotationAngle() const;
159 void setTotalRotationAngle(qreal value);
160 void setLastRotationAngle(qreal value);
161 void setRotationAngle(qreal value);
162
164};
165
167
169
171 QPinchGesture__ChangeFlags, Q_WIDGETS_EXPORT)
172
174
176class Q_WIDGETS_EXPORT QSwipeGesture : public QGesture
177{
179 Q_DECLARE_PRIVATE(QSwipeGesture)
180
181 Q_PROPERTY(SwipeDirection horizontalDirection READ horizontalDirection STORED false)
182 Q_PROPERTY(SwipeDirection verticalDirection READ verticalDirection STORED false)
183 Q_PROPERTY(qreal swipeAngle READ swipeAngle WRITE setSwipeAngle)
184 Q_PRIVATE_PROPERTY(QSwipeGesture::d_func(), qreal velocity READ velocity WRITE setVelocity)
185
186public:
187 enum SwipeDirection { NoDirection, Left, Right, Up, Down };
188 Q_ENUM(SwipeDirection)
189
190 explicit QSwipeGesture(QObject *parent = nullptr);
192
193 SwipeDirection horizontalDirection() const;
194 SwipeDirection verticalDirection() const;
195
196 qreal swipeAngle() const;
197 void setSwipeAngle(qreal value);
198
200};
201
203class Q_WIDGETS_EXPORT QTapGesture : public QGesture
204{
206 Q_DECLARE_PRIVATE(QTapGesture)
207
209
210public:
211 explicit QTapGesture(QObject *parent = nullptr);
212 ~QTapGesture();
213
214 QPointF position() const;
215 void setPosition(const QPointF &pos);
216
218};
219
221class Q_WIDGETS_EXPORT QTapAndHoldGesture : public QGesture
222{
224 Q_DECLARE_PRIVATE(QTapAndHoldGesture)
225
227
228public:
229 explicit QTapAndHoldGesture(QObject *parent = nullptr);
231
232 QPointF position() const;
233 void setPosition(const QPointF &pos);
234
235 static void setTimeout(int msecs);
236 static int timeout();
237
239};
240
241class QGesture;
242class QGestureEventPrivate;
243class Q_WIDGETS_EXPORT QGestureEvent : public QEvent
244{
245public:
246 explicit QGestureEvent(const QList<QGesture *> &gestures);
248
249 QList<QGesture *> gestures() const;
250 QGesture *gesture(Qt::GestureType type) const;
251
252 QList<QGesture *> activeGestures() const;
253 QList<QGesture *> canceledGestures() const;
254
256 using QEvent::isAccepted;
257 using QEvent::accept;
258 using QEvent::ignore;
259
260 void setAccepted(QGesture *, bool);
261 void accept(QGesture *);
262 void ignore(QGesture *);
263 bool isAccepted(QGesture *) const;
264
265 void setAccepted(Qt::GestureType, bool);
266 void accept(Qt::GestureType);
267 void ignore(Qt::GestureType);
268 bool isAccepted(Qt::GestureType) const;
269
270 void setWidget(QWidget *widget);
271 QWidget *widget() const;
272
273#if QT_CONFIG(graphicsview)
274 QPointF mapToGraphicsScene(const QPointF &gesturePoint) const;
275#endif
276
277private:
278 QList<QGesture *> m_gestures;
279 QWidget *m_widget;
280 QMap<Qt::GestureType, bool> m_accepted;
281 QMap<Qt::GestureType, QWidget *> m_targetWidgets;
282
283 friend class QApplication;
284 friend class QGestureManager;
285};
286
287# ifndef QT_NO_DEBUG_STREAM
288Q_WIDGETS_EXPORT QDebug operator<<(QDebug, const QGesture *);
289Q_WIDGETS_EXPORT QDebug operator<<(QDebug, const QGestureEvent *);
290# endif
291
293
295 QGesture__GestureCancelPolicy, Q_WIDGETS_EXPORT)
296
297#endif // QT_NO_GESTURES
298
299#endif // QGESTURE_H
The QApplication class manages the GUI application's control flow and main settings.
\inmodule QtCore
\inmodule QtCore
Definition qcoreevent.h:45
virtual void setAccepted(bool accepted)
Definition qcoreevent.h:307
void ignore()
Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).
Definition qcoreevent.h:311
bool isAccepted() const
Definition qcoreevent.h:308
void accept()
Sets the accept flag of the event object, the equivalent of calling setAccepted(true).
Definition qcoreevent.h:310
The QGestureEvent class provides the description of triggered gestures.
Definition qgesture.h:244
The QGestureRecognizer class provides the infrastructure for gesture recognition.\inmodule QtWidgets.
The QGesture class represents a gesture, containing properties that describe the corresponding user i...
Definition qgesture.h:29
GestureCancelPolicy
This enum describes how accepting a gesture can cancel other gestures automatically.
Definition qgesture.h:53
\inmodule QtCore
Definition qobject.h:103
The QPanGesture class describes a panning gesture made by the user.\inmodule QtWidgets.
Definition qgesture.h:73
The QPinchGesture class describes a pinch gesture made by the user.\inmodule QtWidgets.
Definition qgesture.h:103
ChangeFlag
This enum describes the changes that can occur to the properties of the gesture object.
Definition qgesture.h:108
\inmodule QtCore\reentrant
Definition qpoint.h:217
The QSwipeGesture class describes a swipe gesture made by the user.\inmodule QtWidgets.
Definition qgesture.h:177
SwipeDirection
This enum describes the possible directions for the gesture's motion along the horizontal and vertica...
Definition qgesture.h:187
The QTapAndHoldGesture class describes a tap-and-hold (aka LongTap) gesture made by the user....
Definition qgesture.h:222
The QTapGesture class describes a tap gesture made by the user.\inmodule QtWidgets.
Definition qgesture.h:204
The QWidget class is the base class of all user interface objects.
Definition qwidget.h:99
QOpenGLWidget * widget
[1]
else opt state
[0]
Combined button and popup list for selecting options.
Definition qcompare.h:63
GestureState
GestureType
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
#define Q_DECLARE_FLAGS(Flags, Enum)
Definition qflags.h:174
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
Definition qflags.h:194
#define QT_DECL_METATYPE_EXTERN_TAGGED(TYPE, TAG, EXPORT)
Definition qmetatype.h:1376
n void setPosition(void) \n\
GLbitfield GLuint64 timeout
[4]
GLenum type
GLenum GLuint GLintptr offset
@ Left
@ Right
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_FLAG(x)
#define Q_PRIVATE_PROPERTY(d, text)
double qreal
Definition qtypes.h:187
#define explicit
QDataStream & operator<<(QDataStream &out, const MyClass &myObj)
[4]
scrollArea setWidget(imageLabel)
QSizePolicy policy