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.gui.inputdevice; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.flags; 17 import qt.core.global; 18 import qt.core.list; 19 import qt.core.object; 20 import qt.core.rect; 21 import qt.core.string; 22 import qt.helpers; 23 24 /+ class QDebug; +/ 25 extern(C++, class) struct QInputDevicePrivate; 26 27 /// Binding for C++ class [QInputDevice](https://doc.qt.io/qt-6/qinputdevice.html). 28 class /+ Q_GUI_EXPORT +/ QInputDevice : QObject 29 { 30 mixin(Q_OBJECT); 31 /+ Q_DECLARE_PRIVATE(QInputDevice) +/ 32 /+ Q_PROPERTY(QString name READ name CONSTANT) 33 Q_PROPERTY(DeviceType type READ type CONSTANT) 34 Q_PROPERTY(Capabilities capabilities READ capabilities CONSTANT) 35 Q_PROPERTY(qint64 systemId READ systemId CONSTANT) 36 Q_PROPERTY(QString seatName READ seatName CONSTANT) 37 Q_PROPERTY(QRect availableVirtualGeometry READ availableVirtualGeometry 38 NOTIFY availableVirtualGeometryChanged) +/ 39 40 public: 41 enum /+ class +/ DeviceType { 42 Unknown = 0x0000, 43 Mouse = 0x0001, 44 TouchScreen = 0x0002, 45 TouchPad = 0x0004, 46 Puck = 0x0008, 47 Stylus = 0x0010, 48 Airbrush = 0x0020, 49 Keyboard = 0x1000, 50 AllDevices = 0x7FFFFFFF 51 } 52 /+ Q_DECLARE_FLAGS(DeviceTypes, DeviceType) +/ 53 alias DeviceTypes = QFlags!(DeviceType); /+ Q_FLAG(DeviceTypes) +/ 54 55 enum /+ class +/ Capability { 56 None = 0, 57 Position = 0x0001, 58 Area = 0x0002, 59 Pressure = 0x0004, 60 Velocity = 0x0008, 61 NormalizedPosition = 0x0020, 62 MouseEmulation = 0x0040, 63 PixelScroll = 0x0080, 64 Scroll = 0x0100, 65 Hover = 0x0200, 66 Rotation = 0x0400, 67 XTilt = 0x0800, 68 YTilt = 0x1000, 69 TangentialPressure = 0x2000, 70 ZPosition = 0x4000, 71 All = 0x7FFFFFFF 72 } 73 /+ Q_DECLARE_FLAGS(Capabilities, Capability) +/ 74 alias Capabilities = QFlags!(Capability); /+ Q_FLAG(Capabilities) +/ 75 76 this(QObject parent = null); 77 ~this(); 78 this(ref const(QString) name, qint64 systemId, DeviceType type, 79 ref const(QString) seatName = globalInitVar!QString, QObject parent = null); 80 81 final QString name() const; 82 final DeviceType type() const; 83 final Capabilities capabilities() const; 84 final bool hasCapability(Capability cap) const; 85 final qint64 systemId() const; 86 final QString seatName() const; 87 final QRect availableVirtualGeometry() const; 88 89 //static QList!(const(QInputDevice)) devices(); 90 mixin(changeWindowsMangling(q{mangleClassesTailConst}, q{ 91 static const(QInputDevice) primaryKeyboard(ref const(QString) seatName = globalInitVar!QString); 92 })); 93 94 /+final bool operator ==(ref const(ValueClass!(QInputDevice)) other) const;+/ 95 96 /+ Q_SIGNALS +/public: 97 @QSignal final void availableVirtualGeometryChanged(QRect area); 98 99 protected: 100 this(ref QInputDevicePrivate d, QObject parent); 101 102 /+ Q_DISABLE_COPY_MOVE(QInputDevice) +/ 103 mixin(CREATE_CONVENIENCE_WRAPPERS); 104 } 105 /+pragma(inline, true) QFlags!(QInputDevice.DeviceTypes.enum_type) operator |(QInputDevice.DeviceTypes.enum_type f1, QInputDevice.DeviceTypes.enum_type f2)/+noexcept+/{return QFlags!(QInputDevice.DeviceTypes.enum_type)(f1)|f2;}+/ 106 /+pragma(inline, true) QFlags!(QInputDevice.DeviceTypes.enum_type) operator |(QInputDevice.DeviceTypes.enum_type f1, QFlags!(QInputDevice.DeviceTypes.enum_type) f2)/+noexcept+/{return f2|f1;}+/ 107 /+pragma(inline, true) QFlags!(QInputDevice.DeviceTypes.enum_type) operator &(QInputDevice.DeviceTypes.enum_type f1, QInputDevice.DeviceTypes.enum_type f2)/+noexcept+/{return QFlags!(QInputDevice.DeviceTypes.enum_type)(f1)&f2;}+/ 108 /+pragma(inline, true) QFlags!(QInputDevice.DeviceTypes.enum_type) operator &(QInputDevice.DeviceTypes.enum_type f1, QFlags!(QInputDevice.DeviceTypes.enum_type) f2)/+noexcept+/{return f2&f1;}+/ 109 /+pragma(inline, true) void operator +(QInputDevice.DeviceTypes.enum_type f1, QInputDevice.DeviceTypes.enum_type f2)/+noexcept+/;+/ 110 /+pragma(inline, true) void operator +(QInputDevice.DeviceTypes.enum_type f1, QFlags!(QInputDevice.DeviceTypes.enum_type) f2)/+noexcept+/;+/ 111 /+pragma(inline, true) void operator +(int f1, QFlags!(QInputDevice.DeviceTypes.enum_type) f2)/+noexcept+/;+/ 112 /+pragma(inline, true) void operator -(QInputDevice.DeviceTypes.enum_type f1, QInputDevice.DeviceTypes.enum_type f2)/+noexcept+/;+/ 113 /+pragma(inline, true) void operator -(QInputDevice.DeviceTypes.enum_type f1, QFlags!(QInputDevice.DeviceTypes.enum_type) f2)/+noexcept+/;+/ 114 /+pragma(inline, true) void operator -(int f1, QFlags!(QInputDevice.DeviceTypes.enum_type) f2)/+noexcept+/;+/ 115 /+pragma(inline, true) QIncompatibleFlag operator |(QInputDevice.DeviceTypes.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/ 116 /+pragma(inline, true) void operator +(int f1, QInputDevice.DeviceTypes.enum_type f2)/+noexcept+/;+/ 117 /+pragma(inline, true) void operator +(QInputDevice.DeviceTypes.enum_type f1, int f2)/+noexcept+/;+/ 118 /+pragma(inline, true) void operator -(int f1, QInputDevice.DeviceTypes.enum_type f2)/+noexcept+/;+/ 119 /+pragma(inline, true) void operator -(QInputDevice.DeviceTypes.enum_type f1, int f2)/+noexcept+/;+/ 120 121 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QInputDevice::DeviceTypes) +/ 122 /+pragma(inline, true) QFlags!(QInputDevice.Capabilities.enum_type) operator |(QInputDevice.Capabilities.enum_type f1, QInputDevice.Capabilities.enum_type f2)/+noexcept+/{return QFlags!(QInputDevice.Capabilities.enum_type)(f1)|f2;}+/ 123 /+pragma(inline, true) QFlags!(QInputDevice.Capabilities.enum_type) operator |(QInputDevice.Capabilities.enum_type f1, QFlags!(QInputDevice.Capabilities.enum_type) f2)/+noexcept+/{return f2|f1;}+/ 124 /+pragma(inline, true) QFlags!(QInputDevice.Capabilities.enum_type) operator &(QInputDevice.Capabilities.enum_type f1, QInputDevice.Capabilities.enum_type f2)/+noexcept+/{return QFlags!(QInputDevice.Capabilities.enum_type)(f1)&f2;}+/ 125 /+pragma(inline, true) QFlags!(QInputDevice.Capabilities.enum_type) operator &(QInputDevice.Capabilities.enum_type f1, QFlags!(QInputDevice.Capabilities.enum_type) f2)/+noexcept+/{return f2&f1;}+/ 126 /+pragma(inline, true) void operator +(QInputDevice.Capabilities.enum_type f1, QInputDevice.Capabilities.enum_type f2)/+noexcept+/;+/ 127 /+pragma(inline, true) void operator +(QInputDevice.Capabilities.enum_type f1, QFlags!(QInputDevice.Capabilities.enum_type) f2)/+noexcept+/;+/ 128 /+pragma(inline, true) void operator +(int f1, QFlags!(QInputDevice.Capabilities.enum_type) f2)/+noexcept+/;+/ 129 /+pragma(inline, true) void operator -(QInputDevice.Capabilities.enum_type f1, QInputDevice.Capabilities.enum_type f2)/+noexcept+/;+/ 130 /+pragma(inline, true) void operator -(QInputDevice.Capabilities.enum_type f1, QFlags!(QInputDevice.Capabilities.enum_type) f2)/+noexcept+/;+/ 131 /+pragma(inline, true) void operator -(int f1, QFlags!(QInputDevice.Capabilities.enum_type) f2)/+noexcept+/;+/ 132 /+pragma(inline, true) QIncompatibleFlag operator |(QInputDevice.Capabilities.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/ 133 /+pragma(inline, true) void operator +(int f1, QInputDevice.Capabilities.enum_type f2)/+noexcept+/;+/ 134 /+pragma(inline, true) void operator +(QInputDevice.Capabilities.enum_type f1, int f2)/+noexcept+/;+/ 135 /+pragma(inline, true) void operator -(int f1, QInputDevice.Capabilities.enum_type f2)/+noexcept+/;+/ 136 /+pragma(inline, true) void operator -(QInputDevice.Capabilities.enum_type f1, int f2)/+noexcept+/;+/ 137 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QInputDevice::Capabilities) 138 #ifndef QT_NO_DEBUG_STREAM 139 Q_GUI_EXPORT QDebug operator<<(QDebug, const QInputDevice *); 140 #endif +/ 141