1 /* 2 * DQt - D bindings for the Qt Toolkit 3 * 4 * GNU Lesser General Public License Usage 5 * This file may be used under the terms of the GNU Lesser 6 * General Public License version 3 as published by the Free Software 7 * Foundation and appearing in the file LICENSE.LGPL3 included in the 8 * packaging of this file. Please review the following information to 9 * ensure the GNU Lesser General Public License version 3 requirements 10 * will be met: https://www.gnu.org/licenses/lgpl-3.0.html. 11 */ 12 module qt.widgets.gesture; 13 extern(C++): 14 15 import qt.config; 16 import qt.helpers; 17 version(QT_NO_GESTURES){}else 18 { 19 import qt.core.coreevent; 20 import qt.core.flags; 21 import qt.core.global; 22 import qt.core.list; 23 import qt.core.map; 24 import qt.core.namespace; 25 import qt.core.object; 26 import qt.core.point; 27 import qt.widgets.widget; 28 } 29 30 version(QT_NO_GESTURES){}else 31 { 32 33 /+ Q_DECLARE_METATYPE(Qt::GestureState) 34 Q_DECLARE_METATYPE(Qt::GestureType) +/ 35 36 37 38 extern(C++, class) struct QGesturePrivate; 39 /// Binding for C++ class [QGesture](https://doc.qt.io/qt-6/qgesture.html). 40 class /+ Q_WIDGETS_EXPORT +/ QGesture : QObject 41 { 42 mixin(Q_OBJECT); 43 /+ Q_DECLARE_PRIVATE(QGesture) +/ 44 45 /+ Q_PROPERTY(Qt::GestureState state READ state) 46 Q_PROPERTY(Qt::GestureType gestureType READ gestureType) 47 Q_PROPERTY(QGesture::GestureCancelPolicy gestureCancelPolicy READ gestureCancelPolicy 48 WRITE setGestureCancelPolicy) 49 Q_PROPERTY(QPointF hotSpot READ hotSpot WRITE setHotSpot RESET unsetHotSpot) 50 Q_PROPERTY(bool hasHotSpot READ hasHotSpot) +/ 51 52 public: 53 /+ explicit +/this(QObject parent = null); 54 ~this(); 55 56 final /+ Qt:: +/qt.core.namespace.GestureType gestureType() const; 57 58 final /+ Qt:: +/qt.core.namespace.GestureState state() const; 59 60 final QPointF hotSpot() const; 61 final void setHotSpot(ref const(QPointF) value); 62 final bool hasHotSpot() const; 63 final void unsetHotSpot(); 64 65 enum GestureCancelPolicy { 66 CancelNone = 0, 67 CancelAllInContext 68 } 69 70 final void setGestureCancelPolicy(GestureCancelPolicy policy); 71 final GestureCancelPolicy gestureCancelPolicy() const; 72 73 protected: 74 this(ref QGesturePrivate dd, QObject parent); 75 76 private: 77 /+ friend class QGestureEvent; +/ 78 /+ friend class QGestureRecognizer; +/ 79 /+ friend class QGestureManager; +/ 80 /+ friend class QGraphicsScenePrivate; +/ 81 mixin(CREATE_CONVENIENCE_WRAPPERS); 82 } 83 84 extern(C++, class) struct QPanGesturePrivate; 85 /// Binding for C++ class [QPanGesture](https://doc.qt.io/qt-6/qpangesture.html). 86 class /+ Q_WIDGETS_EXPORT +/ QPanGesture : QGesture 87 { 88 mixin(Q_OBJECT); 89 /+ Q_DECLARE_PRIVATE(QPanGesture) +/ 90 91 /+ Q_PROPERTY(QPointF lastOffset READ lastOffset WRITE setLastOffset) 92 Q_PROPERTY(QPointF offset READ offset WRITE setOffset) 93 Q_PROPERTY(QPointF delta READ delta STORED false) 94 Q_PROPERTY(qreal acceleration READ acceleration WRITE setAcceleration) 95 Q_PRIVATE_PROPERTY(QPanGesture::d_func(), qreal horizontalVelocity READ horizontalVelocity WRITE setHorizontalVelocity) 96 Q_PRIVATE_PROPERTY(QPanGesture::d_func(), qreal verticalVelocity READ verticalVelocity WRITE setVerticalVelocity) +/ 97 98 public: 99 /+ explicit +/this(QObject parent = null); 100 ~this(); 101 102 final QPointF lastOffset() const; 103 final QPointF offset() const; 104 final QPointF delta() const; 105 final qreal acceleration() const; 106 107 final void setLastOffset(ref const(QPointF) value); 108 final void setOffset(ref const(QPointF) value); 109 final void setAcceleration(qreal value); 110 111 /+ friend class QPanGestureRecognizer; +/ 112 /+ friend class QWinNativePanGestureRecognizer; +/ 113 mixin(CREATE_CONVENIENCE_WRAPPERS); 114 } 115 116 extern(C++, class) struct QPinchGesturePrivate; 117 /// Binding for C++ class [QPinchGesture](https://doc.qt.io/qt-6/qpinchgesture.html). 118 class /+ Q_WIDGETS_EXPORT +/ QPinchGesture : QGesture 119 { 120 mixin(Q_OBJECT); 121 /+ Q_DECLARE_PRIVATE(QPinchGesture) +/ 122 123 public: 124 enum ChangeFlag { 125 ScaleFactorChanged = 0x1, 126 RotationAngleChanged = 0x2, 127 CenterPointChanged = 0x4 128 } 129 /+ Q_FLAG(ChangeFlag) +/ 130 /+ Q_DECLARE_FLAGS(ChangeFlags, ChangeFlag) +/ 131 alias ChangeFlags = QFlags!(ChangeFlag); /+ Q_FLAG(ChangeFlags) +/ 132 133 /+ Q_PROPERTY(ChangeFlags totalChangeFlags READ totalChangeFlags WRITE setTotalChangeFlags) 134 Q_PROPERTY(ChangeFlags changeFlags READ changeFlags WRITE setChangeFlags) 135 136 Q_PROPERTY(qreal totalScaleFactor READ totalScaleFactor WRITE setTotalScaleFactor) 137 Q_PROPERTY(qreal lastScaleFactor READ lastScaleFactor WRITE setLastScaleFactor) 138 Q_PROPERTY(qreal scaleFactor READ scaleFactor WRITE setScaleFactor) 139 140 Q_PROPERTY(qreal totalRotationAngle READ totalRotationAngle WRITE setTotalRotationAngle) 141 Q_PROPERTY(qreal lastRotationAngle READ lastRotationAngle WRITE setLastRotationAngle) 142 Q_PROPERTY(qreal rotationAngle READ rotationAngle WRITE setRotationAngle) 143 144 Q_PROPERTY(QPointF startCenterPoint READ startCenterPoint WRITE setStartCenterPoint) 145 Q_PROPERTY(QPointF lastCenterPoint READ lastCenterPoint WRITE setLastCenterPoint) 146 Q_PROPERTY(QPointF centerPoint READ centerPoint WRITE setCenterPoint) +/ 147 148 public: 149 /+ explicit +/this(QObject parent = null); 150 ~this(); 151 152 final ChangeFlags totalChangeFlags() const; 153 final void setTotalChangeFlags(ChangeFlags value); 154 155 final ChangeFlags changeFlags() const; 156 final void setChangeFlags(ChangeFlags value); 157 158 final QPointF startCenterPoint() const; 159 final QPointF lastCenterPoint() const; 160 final QPointF centerPoint() const; 161 final void setStartCenterPoint(ref const(QPointF) value); 162 final void setLastCenterPoint(ref const(QPointF) value); 163 final void setCenterPoint(ref const(QPointF) value); 164 165 final qreal totalScaleFactor() const; 166 final qreal lastScaleFactor() const; 167 final qreal scaleFactor() const; 168 final void setTotalScaleFactor(qreal value); 169 final void setLastScaleFactor(qreal value); 170 final void setScaleFactor(qreal value); 171 172 final qreal totalRotationAngle() const; 173 final qreal lastRotationAngle() const; 174 final qreal rotationAngle() const; 175 final void setTotalRotationAngle(qreal value); 176 final void setLastRotationAngle(qreal value); 177 final void setRotationAngle(qreal value); 178 179 /+ friend class QPinchGestureRecognizer; +/ 180 mixin(CREATE_CONVENIENCE_WRAPPERS); 181 } 182 /+pragma(inline, true) QFlags!(QPinchGesture.ChangeFlags.enum_type) operator |(QPinchGesture.ChangeFlags.enum_type f1, QPinchGesture.ChangeFlags.enum_type f2)/+noexcept+/{return QFlags!(QPinchGesture.ChangeFlags.enum_type)(f1)|f2;}+/ 183 /+pragma(inline, true) QFlags!(QPinchGesture.ChangeFlags.enum_type) operator |(QPinchGesture.ChangeFlags.enum_type f1, QFlags!(QPinchGesture.ChangeFlags.enum_type) f2)/+noexcept+/{return f2|f1;}+/ 184 /+pragma(inline, true) QFlags!(QPinchGesture.ChangeFlags.enum_type) operator &(QPinchGesture.ChangeFlags.enum_type f1, QPinchGesture.ChangeFlags.enum_type f2)/+noexcept+/{return QFlags!(QPinchGesture.ChangeFlags.enum_type)(f1)&f2;}+/ 185 /+pragma(inline, true) QFlags!(QPinchGesture.ChangeFlags.enum_type) operator &(QPinchGesture.ChangeFlags.enum_type f1, QFlags!(QPinchGesture.ChangeFlags.enum_type) f2)/+noexcept+/{return f2&f1;}+/ 186 /+pragma(inline, true) void operator +(QPinchGesture.ChangeFlags.enum_type f1, QPinchGesture.ChangeFlags.enum_type f2)/+noexcept+/;+/ 187 /+pragma(inline, true) void operator +(QPinchGesture.ChangeFlags.enum_type f1, QFlags!(QPinchGesture.ChangeFlags.enum_type) f2)/+noexcept+/;+/ 188 /+pragma(inline, true) void operator +(int f1, QFlags!(QPinchGesture.ChangeFlags.enum_type) f2)/+noexcept+/;+/ 189 /+pragma(inline, true) void operator -(QPinchGesture.ChangeFlags.enum_type f1, QPinchGesture.ChangeFlags.enum_type f2)/+noexcept+/;+/ 190 /+pragma(inline, true) void operator -(QPinchGesture.ChangeFlags.enum_type f1, QFlags!(QPinchGesture.ChangeFlags.enum_type) f2)/+noexcept+/;+/ 191 /+pragma(inline, true) void operator -(int f1, QFlags!(QPinchGesture.ChangeFlags.enum_type) f2)/+noexcept+/;+/ 192 /+pragma(inline, true) QIncompatibleFlag operator |(QPinchGesture.ChangeFlags.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/ 193 /+pragma(inline, true) void operator +(int f1, QPinchGesture.ChangeFlags.enum_type f2)/+noexcept+/;+/ 194 /+pragma(inline, true) void operator +(QPinchGesture.ChangeFlags.enum_type f1, int f2)/+noexcept+/;+/ 195 /+pragma(inline, true) void operator -(int f1, QPinchGesture.ChangeFlags.enum_type f2)/+noexcept+/;+/ 196 /+pragma(inline, true) void operator -(QPinchGesture.ChangeFlags.enum_type f1, int f2)/+noexcept+/;+/ 197 198 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QPinchGesture::ChangeFlags) 199 200 Q_DECLARE_METATYPE(QPinchGesture::ChangeFlags) +/ 201 202 203 extern(C++, class) struct QSwipeGesturePrivate; 204 /// Binding for C++ class [QSwipeGesture](https://doc.qt.io/qt-6/qswipegesture.html). 205 class /+ Q_WIDGETS_EXPORT +/ QSwipeGesture : QGesture 206 { 207 mixin(Q_OBJECT); 208 /+ Q_DECLARE_PRIVATE(QSwipeGesture) +/ 209 210 /+ Q_PROPERTY(SwipeDirection horizontalDirection READ horizontalDirection STORED false) 211 Q_PROPERTY(SwipeDirection verticalDirection READ verticalDirection STORED false) 212 Q_PROPERTY(qreal swipeAngle READ swipeAngle WRITE setSwipeAngle) 213 Q_PRIVATE_PROPERTY(QSwipeGesture::d_func(), qreal velocity READ velocity WRITE setVelocity) +/ 214 215 public: 216 enum SwipeDirection { NoDirection, Left, Right, Up, Down } 217 /+ Q_ENUM(SwipeDirection) +/ 218 219 /+ explicit +/this(QObject parent = null); 220 ~this(); 221 222 final SwipeDirection horizontalDirection() const; 223 final SwipeDirection verticalDirection() const; 224 225 final qreal swipeAngle() const; 226 final void setSwipeAngle(qreal value); 227 228 /+ friend class QSwipeGestureRecognizer; +/ 229 mixin(CREATE_CONVENIENCE_WRAPPERS); 230 } 231 232 extern(C++, class) struct QTapGesturePrivate; 233 /// Binding for C++ class [QTapGesture](https://doc.qt.io/qt-6/qtapgesture.html). 234 class /+ Q_WIDGETS_EXPORT +/ QTapGesture : QGesture 235 { 236 mixin(Q_OBJECT); 237 /+ Q_DECLARE_PRIVATE(QTapGesture) +/ 238 239 /+ Q_PROPERTY(QPointF position READ position WRITE setPosition) +/ 240 241 public: 242 /+ explicit +/this(QObject parent = null); 243 ~this(); 244 245 final QPointF position() const; 246 final void setPosition(ref const(QPointF) pos); 247 248 /+ friend class QTapGestureRecognizer; +/ 249 mixin(CREATE_CONVENIENCE_WRAPPERS); 250 } 251 252 extern(C++, class) struct QTapAndHoldGesturePrivate; 253 /// Binding for C++ class [QTapAndHoldGesture](https://doc.qt.io/qt-6/qtapandholdgesture.html). 254 class /+ Q_WIDGETS_EXPORT +/ QTapAndHoldGesture : QGesture 255 { 256 mixin(Q_OBJECT); 257 /+ Q_DECLARE_PRIVATE(QTapAndHoldGesture) +/ 258 259 /+ Q_PROPERTY(QPointF position READ position WRITE setPosition) +/ 260 261 public: 262 /+ explicit +/this(QObject parent = null); 263 ~this(); 264 265 final QPointF position() const; 266 final void setPosition(ref const(QPointF) pos); 267 268 static void setTimeout(int msecs); 269 static int timeout(); 270 271 /+ friend class QTapAndHoldGestureRecognizer; +/ 272 mixin(CREATE_CONVENIENCE_WRAPPERS); 273 } 274 275 extern(C++, class) struct QGestureEventPrivate; 276 /+ 277 /// Binding for C++ class [QGestureEvent](https://doc.qt.io/qt-6/qgestureevent.html). 278 class /+ Q_WIDGETS_EXPORT +/ QGestureEvent : QEvent 279 { 280 public: 281 /+ explicit +/this(ref const(QList!(QGesture)) gestures); 282 ~this(); 283 284 final QList!(QGesture) gestures() const; 285 final QGesture gesture(/+ Qt:: +/qt.core.namespace.GestureType type) const; 286 287 final QList!(QGesture) activeGestures() const; 288 final QList!(QGesture) canceledGestures() const; 289 290 /+ using QEvent::setAccepted; +/ 291 /+ using QEvent::isAccepted; +/ 292 /+ using QEvent::accept; +/ 293 /+ using QEvent::ignore; +/ 294 295 final void setAccepted(QGesture , bool); 296 final void accept(QGesture ); 297 final void ignore(QGesture ); 298 final bool isAccepted(QGesture ) const; 299 300 final void setAccepted(/+ Qt:: +/qt.core.namespace.GestureType, bool); 301 final void accept(/+ Qt:: +/qt.core.namespace.GestureType); 302 final void ignore(/+ Qt:: +/qt.core.namespace.GestureType); 303 final bool isAccepted(/+ Qt:: +/qt.core.namespace.GestureType) const; 304 305 final void setWidget(QWidget widget); 306 final QWidget widget() const; 307 308 /+ #if QT_CONFIG(graphicsview) +/ 309 final QPointF mapToGraphicsScene(ref const(QPointF) gesturePoint) const; 310 /+ #endif +/ 311 312 private: 313 QList!(QGesture) m_gestures; 314 QWidget m_widget; 315 QMap!(/+ Qt:: +/qt.core.namespace.GestureType, bool) m_accepted; 316 QMap!(/+ Qt:: +/qt.core.namespace.GestureType, QWidget) m_targetWidgets; 317 318 /+ friend class QApplication; +/ 319 /+ friend class QGestureManager; +/ 320 mixin(CREATE_CONVENIENCE_WRAPPERS); 321 }+/ 322 323 /+ # ifndef QT_NO_DEBUG_STREAM 324 Q_WIDGETS_EXPORT QDebug operator<<(QDebug, const QGesture *); 325 Q_WIDGETS_EXPORT QDebug operator<<(QDebug, const QGestureEvent *); 326 # endif 327 328 329 Q_DECLARE_METATYPE(QGesture::GestureCancelPolicy) +/ 330 } 331