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.core.namespace;
13 extern(C++):
14 
15 import qt.config;
16 import qt.core.flags;
17 import qt.core.typeinfo;
18 import qt.helpers;
19 
20 /+ #if defined(__OBJC__) && !defined(__cplusplus)
21 #  warning "File built in Objective-C mode (.m), but using Qt requires Objective-C++ (.mm)"
22 #endif +/
23 
24 
25 
26 extern(C++, "Qt") {
27 //extern __gshared const(QMetaObject) staticMetaObject;
28     /+ Q_NAMESPACE_EXPORT(Q_CORE_EXPORT) +/
29     enum GlobalColor {
30         color0,
31         color1,
32         black,
33         white,
34         darkGray,
35         gray,
36         lightGray,
37         red,
38         green,
39         blue,
40         cyan,
41         magenta,
42         yellow,
43         darkRed,
44         darkGreen,
45         darkBlue,
46         darkCyan,
47         darkMagenta,
48         darkYellow,
49         transparent
50     }
51 
52     enum MouseButton {
53         NoButton         = 0x00000000,
54         LeftButton       = 0x00000001,
55         RightButton      = 0x00000002,
56         MiddleButton     = 0x00000004,
57         BackButton       = 0x00000008,
58         XButton1         = MouseButton.BackButton,
59         ExtraButton1     = MouseButton.XButton1,
60         ForwardButton    = 0x00000010,
61         XButton2         = MouseButton.ForwardButton,
62         ExtraButton2     = MouseButton.ForwardButton,
63         TaskButton       = 0x00000020,
64         ExtraButton3     = MouseButton.TaskButton,
65         ExtraButton4     = 0x00000040,
66         ExtraButton5     = 0x00000080,
67         ExtraButton6     = 0x00000100,
68         ExtraButton7     = 0x00000200,
69         ExtraButton8     = 0x00000400,
70         ExtraButton9     = 0x00000800,
71         ExtraButton10    = 0x00001000,
72         ExtraButton11    = 0x00002000,
73         ExtraButton12    = 0x00004000,
74         ExtraButton13    = 0x00008000,
75         ExtraButton14    = 0x00010000,
76         ExtraButton15    = 0x00020000,
77         ExtraButton16    = 0x00040000,
78         ExtraButton17    = 0x00080000,
79         ExtraButton18    = 0x00100000,
80         ExtraButton19    = 0x00200000,
81         ExtraButton20    = 0x00400000,
82         ExtraButton21    = 0x00800000,
83         ExtraButton22    = 0x01000000,
84         ExtraButton23    = 0x02000000,
85         ExtraButton24    = 0x04000000,
86         AllButtons       = 0x07ffffff,
87         MaxMouseButton   = MouseButton.ExtraButton24,
88         // 4 high-order bits remain available for future use (0x08000000 through 0x40000000).
89         MouseButtonMask  = 0xffffffff
90     }
91 alias MouseButtons = QFlags!(MouseButton);
92     /+ Q_DECLARE_FLAGS(MouseButtons, MouseButton) +/
93     /+pragma(inline, true) QFlags!(MouseButtons.enum_type) operator |(MouseButtons.enum_type f1, MouseButtons.enum_type f2)/+noexcept+/{return QFlags!(MouseButtons.enum_type)(f1)|f2;}+/
94 /+pragma(inline, true) QFlags!(MouseButtons.enum_type) operator |(MouseButtons.enum_type f1, QFlags!(MouseButtons.enum_type) f2)/+noexcept+/{return f2|f1;}+/
95 /+pragma(inline, true) QFlags!(MouseButtons.enum_type) operator &(MouseButtons.enum_type f1, MouseButtons.enum_type f2)/+noexcept+/{return QFlags!(MouseButtons.enum_type)(f1)&f2;}+/
96 /+pragma(inline, true) QFlags!(MouseButtons.enum_type) operator &(MouseButtons.enum_type f1, QFlags!(MouseButtons.enum_type) f2)/+noexcept+/{return f2&f1;}+/
97 /+pragma(inline, true) void operator +(MouseButtons.enum_type f1, MouseButtons.enum_type f2)/+noexcept+/;+/
98 /+pragma(inline, true) void operator +(MouseButtons.enum_type f1, QFlags!(MouseButtons.enum_type) f2)/+noexcept+/;+/
99 /+pragma(inline, true) void operator +(int f1, QFlags!(MouseButtons.enum_type) f2)/+noexcept+/;+/
100 /+pragma(inline, true) void operator -(MouseButtons.enum_type f1, MouseButtons.enum_type f2)/+noexcept+/;+/
101 /+pragma(inline, true) void operator -(MouseButtons.enum_type f1, QFlags!(MouseButtons.enum_type) f2)/+noexcept+/;+/
102 /+pragma(inline, true) void operator -(int f1, QFlags!(MouseButtons.enum_type) f2)/+noexcept+/;+/
103 /+pragma(inline, true) QIncompatibleFlag operator |(MouseButtons.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
104 /+pragma(inline, true) void operator +(int f1, MouseButtons.enum_type f2)/+noexcept+/;+/
105 /+pragma(inline, true) void operator +(MouseButtons.enum_type f1, int f2)/+noexcept+/;+/
106 /+pragma(inline, true) void operator -(int f1, MouseButtons.enum_type f2)/+noexcept+/;+/
107 /+pragma(inline, true) void operator -(MouseButtons.enum_type f1, int f2)/+noexcept+/;+/
108     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(MouseButtons) +/
109     enum Orientation {
110         Horizontal = 0x1,
111         Vertical = 0x2
112     }
113 alias Orientations = QFlags!(Orientation);
114 
115     /+ Q_DECLARE_FLAGS(Orientations, Orientation) +/
116     /+pragma(inline, true) QFlags!(Orientations.enum_type) operator |(Orientations.enum_type f1, Orientations.enum_type f2)/+noexcept+/{return QFlags!(Orientations.enum_type)(f1)|f2;}+/
117 /+pragma(inline, true) QFlags!(Orientations.enum_type) operator |(Orientations.enum_type f1, QFlags!(Orientations.enum_type) f2)/+noexcept+/{return f2|f1;}+/
118 /+pragma(inline, true) QFlags!(Orientations.enum_type) operator &(Orientations.enum_type f1, Orientations.enum_type f2)/+noexcept+/{return QFlags!(Orientations.enum_type)(f1)&f2;}+/
119 /+pragma(inline, true) QFlags!(Orientations.enum_type) operator &(Orientations.enum_type f1, QFlags!(Orientations.enum_type) f2)/+noexcept+/{return f2&f1;}+/
120 /+pragma(inline, true) void operator +(Orientations.enum_type f1, Orientations.enum_type f2)/+noexcept+/;+/
121 /+pragma(inline, true) void operator +(Orientations.enum_type f1, QFlags!(Orientations.enum_type) f2)/+noexcept+/;+/
122 /+pragma(inline, true) void operator +(int f1, QFlags!(Orientations.enum_type) f2)/+noexcept+/;+/
123 /+pragma(inline, true) void operator -(Orientations.enum_type f1, Orientations.enum_type f2)/+noexcept+/;+/
124 /+pragma(inline, true) void operator -(Orientations.enum_type f1, QFlags!(Orientations.enum_type) f2)/+noexcept+/;+/
125 /+pragma(inline, true) void operator -(int f1, QFlags!(Orientations.enum_type) f2)/+noexcept+/;+/
126 /+pragma(inline, true) QIncompatibleFlag operator |(Orientations.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
127 /+pragma(inline, true) void operator +(int f1, Orientations.enum_type f2)/+noexcept+/;+/
128 /+pragma(inline, true) void operator +(Orientations.enum_type f1, int f2)/+noexcept+/;+/
129 /+pragma(inline, true) void operator -(int f1, Orientations.enum_type f2)/+noexcept+/;+/
130 /+pragma(inline, true) void operator -(Orientations.enum_type f1, int f2)/+noexcept+/;+/
131     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(Orientations) +/
132     enum FocusPolicy {
133         NoFocus = 0,
134         TabFocus = 0x1,
135         ClickFocus = 0x2,
136         StrongFocus = FocusPolicy.TabFocus | FocusPolicy.ClickFocus | 0x8,
137         WheelFocus = FocusPolicy.StrongFocus | 0x4
138     }
139 
140     enum TabFocusBehavior {
141         NoTabFocus           = 0x00,
142         TabFocusTextControls = 0x01,
143         TabFocusListControls = 0x02,
144         TabFocusAllControls  = 0xff
145     }
146 
147     enum SortOrder {
148         AscendingOrder,
149         DescendingOrder
150     }
151 
152     enum SplitBehaviorFlags {
153         KeepEmptyParts = 0,
154         SkipEmptyParts = 0x1,
155     }
156 alias SplitBehavior = QFlags!(SplitBehaviorFlags);
157     /+ Q_DECLARE_FLAGS(SplitBehavior, SplitBehaviorFlags) +/
158     /+pragma(inline, true) QFlags!(SplitBehavior.enum_type) operator |(SplitBehavior.enum_type f1, SplitBehavior.enum_type f2)/+noexcept+/{return QFlags!(SplitBehavior.enum_type)(f1)|f2;}+/
159 /+pragma(inline, true) QFlags!(SplitBehavior.enum_type) operator |(SplitBehavior.enum_type f1, QFlags!(SplitBehavior.enum_type) f2)/+noexcept+/{return f2|f1;}+/
160 /+pragma(inline, true) QFlags!(SplitBehavior.enum_type) operator &(SplitBehavior.enum_type f1, SplitBehavior.enum_type f2)/+noexcept+/{return QFlags!(SplitBehavior.enum_type)(f1)&f2;}+/
161 /+pragma(inline, true) QFlags!(SplitBehavior.enum_type) operator &(SplitBehavior.enum_type f1, QFlags!(SplitBehavior.enum_type) f2)/+noexcept+/{return f2&f1;}+/
162 /+pragma(inline, true) void operator +(SplitBehavior.enum_type f1, SplitBehavior.enum_type f2)/+noexcept+/;+/
163 /+pragma(inline, true) void operator +(SplitBehavior.enum_type f1, QFlags!(SplitBehavior.enum_type) f2)/+noexcept+/;+/
164 /+pragma(inline, true) void operator +(int f1, QFlags!(SplitBehavior.enum_type) f2)/+noexcept+/;+/
165 /+pragma(inline, true) void operator -(SplitBehavior.enum_type f1, SplitBehavior.enum_type f2)/+noexcept+/;+/
166 /+pragma(inline, true) void operator -(SplitBehavior.enum_type f1, QFlags!(SplitBehavior.enum_type) f2)/+noexcept+/;+/
167 /+pragma(inline, true) void operator -(int f1, QFlags!(SplitBehavior.enum_type) f2)/+noexcept+/;+/
168 /+pragma(inline, true) QIncompatibleFlag operator |(SplitBehavior.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
169 /+pragma(inline, true) void operator +(int f1, SplitBehavior.enum_type f2)/+noexcept+/;+/
170 /+pragma(inline, true) void operator +(SplitBehavior.enum_type f1, int f2)/+noexcept+/;+/
171 /+pragma(inline, true) void operator -(int f1, SplitBehavior.enum_type f2)/+noexcept+/;+/
172 /+pragma(inline, true) void operator -(SplitBehavior.enum_type f1, int f2)/+noexcept+/;+/
173     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(SplitBehavior) +/
174     enum TileRule {
175         StretchTile,
176         RepeatTile,
177         RoundTile
178     }
179 
180     // Text formatting flags for QPainter::drawText and QLabel.
181     // The following two enums can be combined to one integer which
182     // is passed as 'flags' to QPainter::drawText, QFontMetrics::boundingRect and qt_format_text.
183 
184     enum AlignmentFlag {
185         AlignLeft = 0x0001,
186         AlignLeading = AlignmentFlag.AlignLeft,
187         AlignRight = 0x0002,
188         AlignTrailing = AlignmentFlag.AlignRight,
189         AlignHCenter = 0x0004,
190         AlignJustify = 0x0008,
191         AlignAbsolute = 0x0010,
192         AlignHorizontal_Mask = AlignmentFlag.AlignLeft | AlignmentFlag.AlignRight | AlignmentFlag.AlignHCenter | AlignmentFlag.AlignJustify | AlignmentFlag.AlignAbsolute,
193 
194         AlignTop = 0x0020,
195         AlignBottom = 0x0040,
196         AlignVCenter = 0x0080,
197         AlignBaseline = 0x0100,
198         // Note that 0x100 will clash with Qt::TextSingleLine = 0x100 due to what the comment above
199         // this enum declaration states. However, since Qt::AlignBaseline is only used by layouts,
200         // it doesn't make sense to pass Qt::AlignBaseline to QPainter::drawText(), so there
201         // shouldn't really be any ambiguity between the two overlapping enum values.
202         AlignVertical_Mask = AlignmentFlag.AlignTop | AlignmentFlag.AlignBottom | AlignmentFlag.AlignVCenter | AlignmentFlag.AlignBaseline,
203 
204         AlignCenter = AlignmentFlag.AlignVCenter | AlignmentFlag.AlignHCenter
205     }
206 alias Alignment = QFlags!(AlignmentFlag);
207 
208     /+ Q_DECLARE_FLAGS(Alignment, AlignmentFlag) +/
209     /+pragma(inline, true) QFlags!(Alignment.enum_type) operator |(Alignment.enum_type f1, Alignment.enum_type f2)/+noexcept+/{return QFlags!(Alignment.enum_type)(f1)|f2;}+/
210 /+pragma(inline, true) QFlags!(Alignment.enum_type) operator |(Alignment.enum_type f1, QFlags!(Alignment.enum_type) f2)/+noexcept+/{return f2|f1;}+/
211 /+pragma(inline, true) QFlags!(Alignment.enum_type) operator &(Alignment.enum_type f1, Alignment.enum_type f2)/+noexcept+/{return QFlags!(Alignment.enum_type)(f1)&f2;}+/
212 /+pragma(inline, true) QFlags!(Alignment.enum_type) operator &(Alignment.enum_type f1, QFlags!(Alignment.enum_type) f2)/+noexcept+/{return f2&f1;}+/
213 /+pragma(inline, true) void operator +(Alignment.enum_type f1, Alignment.enum_type f2)/+noexcept+/;+/
214 /+pragma(inline, true) void operator +(Alignment.enum_type f1, QFlags!(Alignment.enum_type) f2)/+noexcept+/;+/
215 /+pragma(inline, true) void operator +(int f1, QFlags!(Alignment.enum_type) f2)/+noexcept+/;+/
216 /+pragma(inline, true) void operator -(Alignment.enum_type f1, Alignment.enum_type f2)/+noexcept+/;+/
217 /+pragma(inline, true) void operator -(Alignment.enum_type f1, QFlags!(Alignment.enum_type) f2)/+noexcept+/;+/
218 /+pragma(inline, true) void operator -(int f1, QFlags!(Alignment.enum_type) f2)/+noexcept+/;+/
219 /+pragma(inline, true) QIncompatibleFlag operator |(Alignment.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
220 /+pragma(inline, true) void operator +(int f1, Alignment.enum_type f2)/+noexcept+/;+/
221 /+pragma(inline, true) void operator +(Alignment.enum_type f1, int f2)/+noexcept+/;+/
222 /+pragma(inline, true) void operator -(int f1, Alignment.enum_type f2)/+noexcept+/;+/
223 /+pragma(inline, true) void operator -(Alignment.enum_type f1, int f2)/+noexcept+/;+/
224     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(Alignment) +/
225     enum TextFlag {
226         TextSingleLine = 0x0100,
227         TextDontClip = 0x0200,
228         TextExpandTabs = 0x0400,
229         TextShowMnemonic = 0x0800,
230         TextWordWrap = 0x1000,
231         TextWrapAnywhere = 0x2000,
232         TextDontPrint = 0x4000,
233         TextIncludeTrailingSpaces = 0x08000000,
234         TextHideMnemonic = 0x8000,
235         TextJustificationForced = 0x10000,
236         TextForceLeftToRight = 0x20000,
237         TextForceRightToLeft = 0x40000,
238         // Ensures that the longest variant is always used when computing the
239         // size of a multi-variant string.
240         TextLongestVariant = 0x80000
241     }
242 
243     enum TextElideMode {
244         ElideLeft,
245         ElideRight,
246         ElideMiddle,
247         ElideNone
248     }
249 
250     enum WhiteSpaceMode {
251         WhiteSpaceNormal,
252         WhiteSpacePre,
253         WhiteSpaceNoWrap,
254         WhiteSpaceModeUndefined = -1
255     }
256 
257     enum HitTestAccuracy { ExactHit, FuzzyHit }
258 
259     enum WindowType {
260         Widget = 0x00000000,
261         Window = 0x00000001,
262         Dialog = 0x00000002 | WindowType.Window,
263         Sheet = 0x00000004 | WindowType.Window,
264         Drawer = WindowType.Sheet | WindowType.Dialog,
265         Popup = 0x00000008 | WindowType.Window,
266         Tool = WindowType.Popup | WindowType.Dialog,
267         ToolTip = WindowType.Popup | WindowType.Sheet,
268         SplashScreen = WindowType.ToolTip | WindowType.Dialog,
269         Desktop = 0x00000010 | WindowType.Window,
270         SubWindow = 0x00000012,
271         ForeignWindow = 0x00000020 | WindowType.Window,
272         CoverWindow = 0x00000040 | WindowType.Window,
273 
274         WindowType_Mask = 0x000000ff,
275         MSWindowsFixedSizeDialogHint = 0x00000100,
276         MSWindowsOwnDC = 0x00000200,
277         BypassWindowManagerHint = 0x00000400,
278         X11BypassWindowManagerHint = WindowType.BypassWindowManagerHint,
279         FramelessWindowHint = 0x00000800,
280         WindowTitleHint = 0x00001000,
281         WindowSystemMenuHint = 0x00002000,
282         WindowMinimizeButtonHint = 0x00004000,
283         WindowMaximizeButtonHint = 0x00008000,
284         WindowMinMaxButtonsHint = WindowType.WindowMinimizeButtonHint | WindowType.WindowMaximizeButtonHint,
285         WindowContextHelpButtonHint = 0x00010000,
286         WindowShadeButtonHint = 0x00020000,
287         WindowStaysOnTopHint = 0x00040000,
288         WindowTransparentForInput = 0x00080000,
289         WindowOverridesSystemGestures = 0x00100000,
290         WindowDoesNotAcceptFocus = 0x00200000,
291         MaximizeUsingFullscreenGeometryHint = 0x00400000,
292 
293         CustomizeWindowHint = 0x02000000,
294         WindowStaysOnBottomHint = 0x04000000,
295         WindowCloseButtonHint = 0x08000000,
296         MacWindowToolBarButtonHint = 0x10000000,
297         BypassGraphicsProxyWidget = 0x20000000,
298         NoDropShadowWindowHint = 0x40000000,
299         WindowFullscreenButtonHint = 0x80000000
300     }
301 alias WindowFlags = QFlags!(WindowType);
302 
303     /+ Q_DECLARE_FLAGS(WindowFlags, WindowType) +/
304     /+pragma(inline, true) QFlags!(WindowFlags.enum_type) operator |(WindowFlags.enum_type f1, WindowFlags.enum_type f2)/+noexcept+/{return QFlags!(WindowFlags.enum_type)(f1)|f2;}+/
305 /+pragma(inline, true) QFlags!(WindowFlags.enum_type) operator |(WindowFlags.enum_type f1, QFlags!(WindowFlags.enum_type) f2)/+noexcept+/{return f2|f1;}+/
306 /+pragma(inline, true) QFlags!(WindowFlags.enum_type) operator &(WindowFlags.enum_type f1, WindowFlags.enum_type f2)/+noexcept+/{return QFlags!(WindowFlags.enum_type)(f1)&f2;}+/
307 /+pragma(inline, true) QFlags!(WindowFlags.enum_type) operator &(WindowFlags.enum_type f1, QFlags!(WindowFlags.enum_type) f2)/+noexcept+/{return f2&f1;}+/
308 /+pragma(inline, true) void operator +(WindowFlags.enum_type f1, WindowFlags.enum_type f2)/+noexcept+/;+/
309 /+pragma(inline, true) void operator +(WindowFlags.enum_type f1, QFlags!(WindowFlags.enum_type) f2)/+noexcept+/;+/
310 /+pragma(inline, true) void operator +(int f1, QFlags!(WindowFlags.enum_type) f2)/+noexcept+/;+/
311 /+pragma(inline, true) void operator -(WindowFlags.enum_type f1, WindowFlags.enum_type f2)/+noexcept+/;+/
312 /+pragma(inline, true) void operator -(WindowFlags.enum_type f1, QFlags!(WindowFlags.enum_type) f2)/+noexcept+/;+/
313 /+pragma(inline, true) void operator -(int f1, QFlags!(WindowFlags.enum_type) f2)/+noexcept+/;+/
314 /+pragma(inline, true) QIncompatibleFlag operator |(WindowFlags.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
315 /+pragma(inline, true) void operator +(int f1, WindowFlags.enum_type f2)/+noexcept+/;+/
316 /+pragma(inline, true) void operator +(WindowFlags.enum_type f1, int f2)/+noexcept+/;+/
317 /+pragma(inline, true) void operator -(int f1, WindowFlags.enum_type f2)/+noexcept+/;+/
318 /+pragma(inline, true) void operator -(WindowFlags.enum_type f1, int f2)/+noexcept+/;+/
319     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(WindowFlags) +/
320     enum WindowState {
321         WindowNoState    = 0x00000000,
322         WindowMinimized  = 0x00000001,
323         WindowMaximized  = 0x00000002,
324         WindowFullScreen = 0x00000004,
325         WindowActive     = 0x00000008
326     }
327 alias WindowStates = QFlags!(WindowState);
328 
329     /+ Q_DECLARE_FLAGS(WindowStates, WindowState) +/
330     /+pragma(inline, true) QFlags!(WindowStates.enum_type) operator |(WindowStates.enum_type f1, WindowStates.enum_type f2)/+noexcept+/{return QFlags!(WindowStates.enum_type)(f1)|f2;}+/
331 /+pragma(inline, true) QFlags!(WindowStates.enum_type) operator |(WindowStates.enum_type f1, QFlags!(WindowStates.enum_type) f2)/+noexcept+/{return f2|f1;}+/
332 /+pragma(inline, true) QFlags!(WindowStates.enum_type) operator &(WindowStates.enum_type f1, WindowStates.enum_type f2)/+noexcept+/{return QFlags!(WindowStates.enum_type)(f1)&f2;}+/
333 /+pragma(inline, true) QFlags!(WindowStates.enum_type) operator &(WindowStates.enum_type f1, QFlags!(WindowStates.enum_type) f2)/+noexcept+/{return f2&f1;}+/
334 /+pragma(inline, true) void operator +(WindowStates.enum_type f1, WindowStates.enum_type f2)/+noexcept+/;+/
335 /+pragma(inline, true) void operator +(WindowStates.enum_type f1, QFlags!(WindowStates.enum_type) f2)/+noexcept+/;+/
336 /+pragma(inline, true) void operator +(int f1, QFlags!(WindowStates.enum_type) f2)/+noexcept+/;+/
337 /+pragma(inline, true) void operator -(WindowStates.enum_type f1, WindowStates.enum_type f2)/+noexcept+/;+/
338 /+pragma(inline, true) void operator -(WindowStates.enum_type f1, QFlags!(WindowStates.enum_type) f2)/+noexcept+/;+/
339 /+pragma(inline, true) void operator -(int f1, QFlags!(WindowStates.enum_type) f2)/+noexcept+/;+/
340 /+pragma(inline, true) QIncompatibleFlag operator |(WindowStates.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
341 /+pragma(inline, true) void operator +(int f1, WindowStates.enum_type f2)/+noexcept+/;+/
342 /+pragma(inline, true) void operator +(WindowStates.enum_type f1, int f2)/+noexcept+/;+/
343 /+pragma(inline, true) void operator -(int f1, WindowStates.enum_type f2)/+noexcept+/;+/
344 /+pragma(inline, true) void operator -(WindowStates.enum_type f1, int f2)/+noexcept+/;+/
345     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(WindowStates) +/
346     enum ApplicationState {
347         ApplicationSuspended    = 0x00000000,
348         ApplicationHidden       = 0x00000001,
349         ApplicationInactive     = 0x00000002,
350         ApplicationActive       = 0x00000004
351     }
352 alias ApplicationStates = QFlags!(ApplicationState);
353 
354     /+ Q_DECLARE_FLAGS(ApplicationStates, ApplicationState) +/
355     enum ScreenOrientation {
356         PrimaryOrientation           = 0x00000000,
357         PortraitOrientation          = 0x00000001,
358         LandscapeOrientation         = 0x00000002,
359         InvertedPortraitOrientation  = 0x00000004,
360         InvertedLandscapeOrientation = 0x00000008
361     }
362 alias ScreenOrientations = QFlags!(ScreenOrientation);
363 
364     /+ Q_DECLARE_FLAGS(ScreenOrientations, ScreenOrientation) +/
365     /+pragma(inline, true) QFlags!(ScreenOrientations.enum_type) operator |(ScreenOrientations.enum_type f1, ScreenOrientations.enum_type f2)/+noexcept+/{return QFlags!(ScreenOrientations.enum_type)(f1)|f2;}+/
366 /+pragma(inline, true) QFlags!(ScreenOrientations.enum_type) operator |(ScreenOrientations.enum_type f1, QFlags!(ScreenOrientations.enum_type) f2)/+noexcept+/{return f2|f1;}+/
367 /+pragma(inline, true) QFlags!(ScreenOrientations.enum_type) operator &(ScreenOrientations.enum_type f1, ScreenOrientations.enum_type f2)/+noexcept+/{return QFlags!(ScreenOrientations.enum_type)(f1)&f2;}+/
368 /+pragma(inline, true) QFlags!(ScreenOrientations.enum_type) operator &(ScreenOrientations.enum_type f1, QFlags!(ScreenOrientations.enum_type) f2)/+noexcept+/{return f2&f1;}+/
369 /+pragma(inline, true) void operator +(ScreenOrientations.enum_type f1, ScreenOrientations.enum_type f2)/+noexcept+/;+/
370 /+pragma(inline, true) void operator +(ScreenOrientations.enum_type f1, QFlags!(ScreenOrientations.enum_type) f2)/+noexcept+/;+/
371 /+pragma(inline, true) void operator +(int f1, QFlags!(ScreenOrientations.enum_type) f2)/+noexcept+/;+/
372 /+pragma(inline, true) void operator -(ScreenOrientations.enum_type f1, ScreenOrientations.enum_type f2)/+noexcept+/;+/
373 /+pragma(inline, true) void operator -(ScreenOrientations.enum_type f1, QFlags!(ScreenOrientations.enum_type) f2)/+noexcept+/;+/
374 /+pragma(inline, true) void operator -(int f1, QFlags!(ScreenOrientations.enum_type) f2)/+noexcept+/;+/
375 /+pragma(inline, true) QIncompatibleFlag operator |(ScreenOrientations.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
376 /+pragma(inline, true) void operator +(int f1, ScreenOrientations.enum_type f2)/+noexcept+/;+/
377 /+pragma(inline, true) void operator +(ScreenOrientations.enum_type f1, int f2)/+noexcept+/;+/
378 /+pragma(inline, true) void operator -(int f1, ScreenOrientations.enum_type f2)/+noexcept+/;+/
379 /+pragma(inline, true) void operator -(ScreenOrientations.enum_type f1, int f2)/+noexcept+/;+/
380     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(ScreenOrientations) +/
381     enum WidgetAttribute {
382         WA_Disabled = 0,
383         WA_UnderMouse = 1,
384         WA_MouseTracking = 2,
385         // Formerly, 3 was WA_ContentsPropagated.
386         WA_OpaquePaintEvent = 4,
387         WA_StaticContents = 5,
388         WA_LaidOut = 7,
389         WA_PaintOnScreen = 8,
390         WA_NoSystemBackground = 9,
391         WA_UpdatesDisabled = 10,
392         WA_Mapped = 11,
393         // Formerly, 12 was WA_MacNoClickThrough.
394         WA_InputMethodEnabled = 14,
395         WA_WState_Visible = 15,
396         WA_WState_Hidden = 16,
397 
398         WA_ForceDisabled = 32,
399         WA_KeyCompression = 33,
400         WA_PendingMoveEvent = 34,
401         WA_PendingResizeEvent = 35,
402         WA_SetPalette = 36,
403         WA_SetFont = 37,
404         WA_SetCursor = 38,
405         WA_NoChildEventsFromChildren = 39,
406         WA_WindowModified = 41,
407         WA_Resized = 42,
408         WA_Moved = 43,
409         WA_PendingUpdate = 44,
410         WA_InvalidSize = 45,
411         // Formerly 46 was WA_MacBrushedMetal and WA_MacMetalStyle.
412         WA_CustomWhatsThis = 47,
413         WA_LayoutOnEntireRect = 48,
414         WA_OutsideWSRange = 49,
415         WA_GrabbedShortcut = 50,
416         WA_TransparentForMouseEvents = 51,
417         WA_PaintUnclipped = 52,
418         WA_SetWindowIcon = 53,
419         WA_NoMouseReplay = 54,
420         WA_DeleteOnClose = 55,
421         WA_RightToLeft = 56,
422         WA_SetLayoutDirection = 57,
423         WA_NoChildEventsForParent = 58,
424         WA_ForceUpdatesDisabled = 59,
425 
426         WA_WState_Created = 60,
427         WA_WState_CompressKeys = 61,
428         WA_WState_InPaintEvent = 62,
429         WA_WState_Reparented = 63,
430         WA_WState_ConfigPending = 64,
431         WA_WState_Polished = 66,
432         // Formerly, 67 was WA_WState_DND.
433         WA_WState_OwnSizePolicy = 68,
434         WA_WState_ExplicitShowHide = 69,
435 
436         WA_ShowModal = 70, // ## deprecated since since 4.5.1 but still in use :-(
437         WA_MouseNoMask = 71,
438         WA_NoMousePropagation = 73, // for now, might go away.
439         WA_Hover = 74,
440         WA_InputMethodTransparent = 75, // Don't reset IM when user clicks on this (for virtual keyboards on embedded)
441         WA_QuitOnClose = 76,
442 
443         WA_KeyboardFocusChange = 77,
444 
445         WA_AcceptDrops = 78,
446         WA_DropSiteRegistered = 79, // internal
447 
448         WA_WindowPropagation = 80,
449 
450         WA_NoX11EventCompression = 81,
451         WA_TintedBackground = 82,
452         WA_X11OpenGLOverlay = 83,
453         WA_AlwaysShowToolTips = 84,
454         WA_MacOpaqueSizeGrip = 85,
455         WA_SetStyle = 86,
456 
457         WA_SetLocale = 87,
458         WA_MacShowFocusRect = 88,
459 
460         WA_MacNormalSize = 89,  // Mac only
461         WA_MacSmallSize = 90,   // Mac only
462         WA_MacMiniSize = 91,    // Mac only
463 
464         WA_LayoutUsesWidgetRect = 92,
465         WA_StyledBackground = 93, // internal
466         // Formerly, 94 was WA_MSWindowsUseDirect3D.
467         WA_CanHostQMdiSubWindowTitleBar = 95, // Internal
468 
469         WA_MacAlwaysShowToolWindow = 96, // Mac only
470 
471         WA_StyleSheet = 97, // internal
472 
473         WA_ShowWithoutActivating = 98,
474 
475         WA_X11BypassTransientForHint = 99,
476 
477         WA_NativeWindow = 100,
478         WA_DontCreateNativeAncestors = 101,
479 
480         // Formerly WA_MacVariableSize = 102,    // Mac only
481 
482         WA_DontShowOnScreen = 103,
483 
484         // window types from http://standards.freedesktop.org/wm-spec/
485         WA_X11NetWmWindowTypeDesktop = 104,
486         WA_X11NetWmWindowTypeDock = 105,
487         WA_X11NetWmWindowTypeToolBar = 106,
488         WA_X11NetWmWindowTypeMenu = 107,
489         WA_X11NetWmWindowTypeUtility = 108,
490         WA_X11NetWmWindowTypeSplash = 109,
491         WA_X11NetWmWindowTypeDialog = 110,
492         WA_X11NetWmWindowTypeDropDownMenu = 111,
493         WA_X11NetWmWindowTypePopupMenu = 112,
494         WA_X11NetWmWindowTypeToolTip = 113,
495         WA_X11NetWmWindowTypeNotification = 114,
496         WA_X11NetWmWindowTypeCombo = 115,
497         WA_X11NetWmWindowTypeDND = 116,
498         // Formerly, 117 was WA_MacFrameworkScaled.
499         WA_SetWindowModality = 118,
500         WA_WState_WindowOpacitySet = 119, // internal
501         WA_TranslucentBackground = 120,
502 
503         WA_AcceptTouchEvents = 121,
504         WA_WState_AcceptedTouchBeginEvent = 122,
505         WA_TouchPadAcceptSingleTouchEvents = 123,
506 
507         WA_X11DoNotAcceptFocus = 126,
508         // Formerly, 127 was WA_MacNoShadow
509 
510         WA_AlwaysStackOnTop = 128,
511 
512         WA_TabletTracking = 129,
513 
514         WA_ContentsMarginsRespectsSafeArea = 130,
515 
516         WA_StyleSheetTarget = 131,
517 
518         // Add new attributes before this line
519         WA_AttributeCount
520     }
521 
522     enum ApplicationAttribute
523     {
524         // AA_ImmediateWidgetCreation = 0,
525         // AA_MSWindowsUseDirect3DByDefault = 1,
526         AA_DontShowIconsInMenus = 2,
527         AA_NativeWindows = 3,
528         AA_DontCreateNativeWidgetSiblings = 4,
529         AA_PluginApplication = 5,
530         AA_DontUseNativeMenuBar = 6,
531         AA_MacDontSwapCtrlAndMeta = 7,
532         AA_Use96Dpi = 8,
533         AA_DisableNativeVirtualKeyboard = 9,
534         // AA_X11InitThreads = 10,
535         AA_SynthesizeTouchForUnhandledMouseEvents = 11,
536         AA_SynthesizeMouseForUnhandledTouchEvents = 12,
537 /+ #if QT_DEPRECATED_SINCE(6, 0) +/
538         AA_UseHighDpiPixmaps /+ Q_DECL_ENUMERATOR_DEPRECATED_X(
539             "High-DPI pixmaps are always enabled. "
540             "This attribute no longer has any effect.") +/ = 13,
541 /+ #endif +/
542         AA_ForceRasterWidgets = 14,
543         AA_UseDesktopOpenGL = 15,
544         AA_UseOpenGLES = 16,
545         AA_UseSoftwareOpenGL = 17,
546         AA_ShareOpenGLContexts = 18,
547         AA_SetPalette = 19,
548 /+ #if QT_DEPRECATED_SINCE(6, 0) +/
549         AA_EnableHighDpiScaling /+ Q_DECL_ENUMERATOR_DEPRECATED_X(
550             "High-DPI scaling is always enabled. "
551             "This attribute no longer has any effect.") +/ = 20,
552         AA_DisableHighDpiScaling /+ Q_DECL_ENUMERATOR_DEPRECATED_X(
553             "High-DPI scaling is always enabled. "
554             "This attribute no longer has any effect.") +/ = 21,
555 /+ #endif +/
556         AA_UseStyleSheetPropagationInWidgetStyles = 22,
557         AA_DontUseNativeDialogs = 23,
558         AA_SynthesizeMouseForUnhandledTabletEvents = 24,
559         AA_CompressHighFrequencyEvents = 25,
560         AA_DontCheckOpenGLContextThreadAffinity = 26,
561         AA_DisableShaderDiskCache = 27,
562         AA_DontShowShortcutsInContextMenus = 28,
563         AA_CompressTabletEvents = 29,
564         // AA_DisableWindowContextHelpButton = 30,
565         AA_DisableSessionManager = 31,
566 
567         // Add new attributes before this line
568         AA_AttributeCount
569     }
570 
571 
572     // Image conversion flags.  The unusual ordering is caused by
573     // compatibility and default requirements.
574 
575     enum ImageConversionFlag {
576         ColorMode_Mask          = 0x00000003,
577         AutoColor               = 0x00000000,
578         ColorOnly               = 0x00000003,
579         MonoOnly                = 0x00000002,
580         // Reserved             = 0x00000001,
581 
582         AlphaDither_Mask        = 0x0000000c,
583         ThresholdAlphaDither    = 0x00000000,
584         OrderedAlphaDither      = 0x00000004,
585         DiffuseAlphaDither      = 0x00000008,
586         NoAlpha                 = 0x0000000c, // Not supported
587 
588         Dither_Mask             = 0x00000030,
589         DiffuseDither           = 0x00000000,
590         OrderedDither           = 0x00000010,
591         ThresholdDither         = 0x00000020,
592         // ReservedDither       = 0x00000030,
593 
594         DitherMode_Mask         = 0x000000c0,
595         AutoDither              = 0x00000000,
596         PreferDither            = 0x00000040,
597         AvoidDither             = 0x00000080,
598 
599         NoOpaqueDetection       = 0x00000100,
600         NoFormatConversion      = 0x00000200
601     }
602 alias ImageConversionFlags = QFlags!(ImageConversionFlag);
603     /+ Q_DECLARE_FLAGS(ImageConversionFlags, ImageConversionFlag) +/
604     /+pragma(inline, true) QFlags!(ImageConversionFlags.enum_type) operator |(ImageConversionFlags.enum_type f1, ImageConversionFlags.enum_type f2)/+noexcept+/{return QFlags!(ImageConversionFlags.enum_type)(f1)|f2;}+/
605 /+pragma(inline, true) QFlags!(ImageConversionFlags.enum_type) operator |(ImageConversionFlags.enum_type f1, QFlags!(ImageConversionFlags.enum_type) f2)/+noexcept+/{return f2|f1;}+/
606 /+pragma(inline, true) QFlags!(ImageConversionFlags.enum_type) operator &(ImageConversionFlags.enum_type f1, ImageConversionFlags.enum_type f2)/+noexcept+/{return QFlags!(ImageConversionFlags.enum_type)(f1)&f2;}+/
607 /+pragma(inline, true) QFlags!(ImageConversionFlags.enum_type) operator &(ImageConversionFlags.enum_type f1, QFlags!(ImageConversionFlags.enum_type) f2)/+noexcept+/{return f2&f1;}+/
608 /+pragma(inline, true) void operator +(ImageConversionFlags.enum_type f1, ImageConversionFlags.enum_type f2)/+noexcept+/;+/
609 /+pragma(inline, true) void operator +(ImageConversionFlags.enum_type f1, QFlags!(ImageConversionFlags.enum_type) f2)/+noexcept+/;+/
610 /+pragma(inline, true) void operator +(int f1, QFlags!(ImageConversionFlags.enum_type) f2)/+noexcept+/;+/
611 /+pragma(inline, true) void operator -(ImageConversionFlags.enum_type f1, ImageConversionFlags.enum_type f2)/+noexcept+/;+/
612 /+pragma(inline, true) void operator -(ImageConversionFlags.enum_type f1, QFlags!(ImageConversionFlags.enum_type) f2)/+noexcept+/;+/
613 /+pragma(inline, true) void operator -(int f1, QFlags!(ImageConversionFlags.enum_type) f2)/+noexcept+/;+/
614 /+pragma(inline, true) QIncompatibleFlag operator |(ImageConversionFlags.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
615 /+pragma(inline, true) void operator +(int f1, ImageConversionFlags.enum_type f2)/+noexcept+/;+/
616 /+pragma(inline, true) void operator +(ImageConversionFlags.enum_type f1, int f2)/+noexcept+/;+/
617 /+pragma(inline, true) void operator -(int f1, ImageConversionFlags.enum_type f2)/+noexcept+/;+/
618 /+pragma(inline, true) void operator -(ImageConversionFlags.enum_type f1, int f2)/+noexcept+/;+/
619     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(ImageConversionFlags) +/
620     enum BGMode {
621         TransparentMode,
622         OpaqueMode
623     }
624 
625     enum Key {
626         // Unicode Basic Latin block (0x00-0x7f)
627         Key_Space = 0x20,
628         Key_Any = Key.Key_Space,
629         Key_Exclam = 0x21,
630         Key_QuoteDbl = 0x22,
631         Key_NumberSign = 0x23,
632         Key_Dollar = 0x24,
633         Key_Percent = 0x25,
634         Key_Ampersand = 0x26,
635         Key_Apostrophe = 0x27,
636         Key_ParenLeft = 0x28,
637         Key_ParenRight = 0x29,
638         Key_Asterisk = 0x2a,
639         Key_Plus = 0x2b,
640         Key_Comma = 0x2c,
641         Key_Minus = 0x2d,
642         Key_Period = 0x2e,
643         Key_Slash = 0x2f,
644         Key_0 = 0x30,
645         Key_1 = 0x31,
646         Key_2 = 0x32,
647         Key_3 = 0x33,
648         Key_4 = 0x34,
649         Key_5 = 0x35,
650         Key_6 = 0x36,
651         Key_7 = 0x37,
652         Key_8 = 0x38,
653         Key_9 = 0x39,
654         Key_Colon = 0x3a,
655         Key_Semicolon = 0x3b,
656         Key_Less = 0x3c,
657         Key_Equal = 0x3d,
658         Key_Greater = 0x3e,
659         Key_Question = 0x3f,
660         Key_At = 0x40,
661         Key_A = 0x41,
662         Key_B = 0x42,
663         Key_C = 0x43,
664         Key_D = 0x44,
665         Key_E = 0x45,
666         Key_F = 0x46,
667         Key_G = 0x47,
668         Key_H = 0x48,
669         Key_I = 0x49,
670         Key_J = 0x4a,
671         Key_K = 0x4b,
672         Key_L = 0x4c,
673         Key_M = 0x4d,
674         Key_N = 0x4e,
675         Key_O = 0x4f,
676         Key_P = 0x50,
677         Key_Q = 0x51,
678         Key_R = 0x52,
679         Key_S = 0x53,
680         Key_T = 0x54,
681         Key_U = 0x55,
682         Key_V = 0x56,
683         Key_W = 0x57,
684         Key_X = 0x58,
685         Key_Y = 0x59,
686         Key_Z = 0x5a,
687         Key_BracketLeft = 0x5b,
688         Key_Backslash = 0x5c,
689         Key_BracketRight = 0x5d,
690         Key_AsciiCircum = 0x5e,
691         Key_Underscore = 0x5f,
692         Key_QuoteLeft = 0x60,
693         Key_BraceLeft = 0x7b,
694         Key_Bar = 0x7c,
695         Key_BraceRight = 0x7d,
696         Key_AsciiTilde = 0x7e,
697 
698         // Unicode Latin-1 Supplement block (0x80-0xff)
699         Key_nobreakspace = 0x0a0,
700         Key_exclamdown = 0x0a1,
701         Key_cent = 0x0a2,
702         Key_sterling = 0x0a3,
703         Key_currency = 0x0a4,
704         Key_yen = 0x0a5,
705         Key_brokenbar = 0x0a6,
706         Key_section = 0x0a7,
707         Key_diaeresis = 0x0a8,
708         Key_copyright = 0x0a9,
709         Key_ordfeminine = 0x0aa,
710         Key_guillemotleft = 0x0ab,        // left angle quotation mark
711         Key_notsign = 0x0ac,
712         Key_hyphen = 0x0ad,
713         Key_registered = 0x0ae,
714         Key_macron = 0x0af,
715         Key_degree = 0x0b0,
716         Key_plusminus = 0x0b1,
717         Key_twosuperior = 0x0b2,
718         Key_threesuperior = 0x0b3,
719         Key_acute = 0x0b4,
720         Key_mu = 0x0b5,
721         Key_paragraph = 0x0b6,
722         Key_periodcentered = 0x0b7,
723         Key_cedilla = 0x0b8,
724         Key_onesuperior = 0x0b9,
725         Key_masculine = 0x0ba,
726         Key_guillemotright = 0x0bb,        // right angle quotation mark
727         Key_onequarter = 0x0bc,
728         Key_onehalf = 0x0bd,
729         Key_threequarters = 0x0be,
730         Key_questiondown = 0x0bf,
731         Key_Agrave = 0x0c0,
732         Key_Aacute = 0x0c1,
733         Key_Acircumflex = 0x0c2,
734         Key_Atilde = 0x0c3,
735         Key_Adiaeresis = 0x0c4,
736         Key_Aring = 0x0c5,
737         Key_AE = 0x0c6,
738         Key_Ccedilla = 0x0c7,
739         Key_Egrave = 0x0c8,
740         Key_Eacute = 0x0c9,
741         Key_Ecircumflex = 0x0ca,
742         Key_Ediaeresis = 0x0cb,
743         Key_Igrave = 0x0cc,
744         Key_Iacute = 0x0cd,
745         Key_Icircumflex = 0x0ce,
746         Key_Idiaeresis = 0x0cf,
747         Key_ETH = 0x0d0,
748         Key_Ntilde = 0x0d1,
749         Key_Ograve = 0x0d2,
750         Key_Oacute = 0x0d3,
751         Key_Ocircumflex = 0x0d4,
752         Key_Otilde = 0x0d5,
753         Key_Odiaeresis = 0x0d6,
754         Key_multiply = 0x0d7,
755         Key_Ooblique = 0x0d8,
756         Key_Ugrave = 0x0d9,
757         Key_Uacute = 0x0da,
758         Key_Ucircumflex = 0x0db,
759         Key_Udiaeresis = 0x0dc,
760         Key_Yacute = 0x0dd,
761         Key_THORN = 0x0de,
762         Key_ssharp = 0x0df,
763         Key_division = 0x0f7,
764         Key_ydiaeresis = 0x0ff,
765 
766         // The rest of the Unicode values are skipped here,
767         // so that we can represent them along with Qt::Keys
768         // in the same data type. The maximum Unicode value
769         // is 0x0010ffff, so we start our custom keys at
770         // 0x01000000 to not clash with the Unicode values,
771         // but still give plenty of room to grow.
772 
773         Key_Escape = 0x01000000,                // misc keys
774         Key_Tab = 0x01000001,
775         Key_Backtab = 0x01000002,
776         Key_Backspace = 0x01000003,
777         Key_Return = 0x01000004,
778         Key_Enter = 0x01000005,
779         Key_Insert = 0x01000006,
780         Key_Delete = 0x01000007,
781         Key_Pause = 0x01000008,
782         Key_Print = 0x01000009,               // print screen
783         Key_SysReq = 0x0100000a,
784         Key_Clear = 0x0100000b,
785         Key_Home = 0x01000010,                // cursor movement
786         Key_End = 0x01000011,
787         Key_Left = 0x01000012,
788         Key_Up = 0x01000013,
789         Key_Right = 0x01000014,
790         Key_Down = 0x01000015,
791         Key_PageUp = 0x01000016,
792         Key_PageDown = 0x01000017,
793         Key_Shift = 0x01000020,                // modifiers
794         Key_Control = 0x01000021,
795         Key_Meta = 0x01000022,
796         Key_Alt = 0x01000023,
797         Key_CapsLock = 0x01000024,
798         Key_NumLock = 0x01000025,
799         Key_ScrollLock = 0x01000026,
800         Key_F1 = 0x01000030,                // function keys
801         Key_F2 = 0x01000031,
802         Key_F3 = 0x01000032,
803         Key_F4 = 0x01000033,
804         Key_F5 = 0x01000034,
805         Key_F6 = 0x01000035,
806         Key_F7 = 0x01000036,
807         Key_F8 = 0x01000037,
808         Key_F9 = 0x01000038,
809         Key_F10 = 0x01000039,
810         Key_F11 = 0x0100003a,
811         Key_F12 = 0x0100003b,
812         Key_F13 = 0x0100003c,
813         Key_F14 = 0x0100003d,
814         Key_F15 = 0x0100003e,
815         Key_F16 = 0x0100003f,
816         Key_F17 = 0x01000040,
817         Key_F18 = 0x01000041,
818         Key_F19 = 0x01000042,
819         Key_F20 = 0x01000043,
820         Key_F21 = 0x01000044,
821         Key_F22 = 0x01000045,
822         Key_F23 = 0x01000046,
823         Key_F24 = 0x01000047,
824         Key_F25 = 0x01000048,                // F25 .. F35 only on X11
825         Key_F26 = 0x01000049,
826         Key_F27 = 0x0100004a,
827         Key_F28 = 0x0100004b,
828         Key_F29 = 0x0100004c,
829         Key_F30 = 0x0100004d,
830         Key_F31 = 0x0100004e,
831         Key_F32 = 0x0100004f,
832         Key_F33 = 0x01000050,
833         Key_F34 = 0x01000051,
834         Key_F35 = 0x01000052,
835         Key_Super_L = 0x01000053,                 // extra keys
836         Key_Super_R = 0x01000054,
837         Key_Menu = 0x01000055,
838         Key_Hyper_L = 0x01000056,
839         Key_Hyper_R = 0x01000057,
840         Key_Help = 0x01000058,
841         Key_Direction_L = 0x01000059,
842         Key_Direction_R = 0x01000060,
843 
844         // International input method support (X keycode - 0xEE00, the
845         // definition follows Qt/Embedded 2.3.7) Only interesting if
846         // you are writing your own input method
847 
848         // International & multi-key character composition
849         Key_AltGr               = 0x01001103,
850         Key_Multi_key           = 0x01001120,  // Multi-key character compose
851         Key_Codeinput           = 0x01001137,
852         Key_SingleCandidate     = 0x0100113c,
853         Key_MultipleCandidate   = 0x0100113d,
854         Key_PreviousCandidate   = 0x0100113e,
855 
856         // Misc Functions
857         Key_Mode_switch         = 0x0100117e,  // Character set switch
858         //Key_script_switch       = 0x0100117e,  // Alias for mode_switch
859 
860         // Japanese keyboard support
861         Key_Kanji               = 0x01001121,  // Kanji, Kanji convert
862         Key_Muhenkan            = 0x01001122,  // Cancel Conversion
863         //Key_Henkan_Mode         = 0x01001123,  // Start/Stop Conversion
864         Key_Henkan              = 0x01001123,  // Alias for Henkan_Mode
865         Key_Romaji              = 0x01001124,  // to Romaji
866         Key_Hiragana            = 0x01001125,  // to Hiragana
867         Key_Katakana            = 0x01001126,  // to Katakana
868         Key_Hiragana_Katakana   = 0x01001127,  // Hiragana/Katakana toggle
869         Key_Zenkaku             = 0x01001128,  // to Zenkaku
870         Key_Hankaku             = 0x01001129,  // to Hankaku
871         Key_Zenkaku_Hankaku     = 0x0100112a,  // Zenkaku/Hankaku toggle
872         Key_Touroku             = 0x0100112b,  // Add to Dictionary
873         Key_Massyo              = 0x0100112c,  // Delete from Dictionary
874         Key_Kana_Lock           = 0x0100112d,  // Kana Lock
875         Key_Kana_Shift          = 0x0100112e,  // Kana Shift
876         Key_Eisu_Shift          = 0x0100112f,  // Alphanumeric Shift
877         Key_Eisu_toggle         = 0x01001130,  // Alphanumeric toggle
878         //Key_Kanji_Bangou        = 0x01001137,  // Codeinput
879         //Key_Zen_Koho            = 0x0100113d,  // Multiple/All Candidate(s)
880         //Key_Mae_Koho            = 0x0100113e,  // Previous Candidate
881 
882         // Korean keyboard support
883         //
884         // In fact, many Korean users need only 2 keys, Key_Hangul and
885         // Key_Hangul_Hanja. But rest of the keys are good for future.
886 
887         Key_Hangul              = 0x01001131,  // Hangul start/stop(toggle)
888         Key_Hangul_Start        = 0x01001132,  // Hangul start
889         Key_Hangul_End          = 0x01001133,  // Hangul end, English start
890         Key_Hangul_Hanja        = 0x01001134,  // Start Hangul->Hanja Conversion
891         Key_Hangul_Jamo         = 0x01001135,  // Hangul Jamo mode
892         Key_Hangul_Romaja       = 0x01001136,  // Hangul Romaja mode
893         //Key_Hangul_Codeinput    = 0x01001137,  // Hangul code input mode
894         Key_Hangul_Jeonja       = 0x01001138,  // Jeonja mode
895         Key_Hangul_Banja        = 0x01001139,  // Banja mode
896         Key_Hangul_PreHanja     = 0x0100113a,  // Pre Hanja conversion
897         Key_Hangul_PostHanja    = 0x0100113b,  // Post Hanja conversion
898         //Key_Hangul_SingleCandidate   = 0x0100113c,  // Single candidate
899         //Key_Hangul_MultipleCandidate = 0x0100113d,  // Multiple candidate
900         //Key_Hangul_PreviousCandidate = 0x0100113e,  // Previous candidate
901         Key_Hangul_Special      = 0x0100113f,  // Special symbols
902         //Key_Hangul_switch       = 0x0100117e,  // Alias for mode_switch
903 
904         // dead keys (X keycode - 0xED00 to avoid the conflict)
905         Key_Dead_Grave          = 0x01001250,
906         Key_Dead_Acute          = 0x01001251,
907         Key_Dead_Circumflex     = 0x01001252,
908         Key_Dead_Tilde          = 0x01001253,
909         Key_Dead_Macron         = 0x01001254,
910         Key_Dead_Breve          = 0x01001255,
911         Key_Dead_Abovedot       = 0x01001256,
912         Key_Dead_Diaeresis      = 0x01001257,
913         Key_Dead_Abovering      = 0x01001258,
914         Key_Dead_Doubleacute    = 0x01001259,
915         Key_Dead_Caron          = 0x0100125a,
916         Key_Dead_Cedilla        = 0x0100125b,
917         Key_Dead_Ogonek         = 0x0100125c,
918         Key_Dead_Iota           = 0x0100125d,
919         Key_Dead_Voiced_Sound   = 0x0100125e,
920         Key_Dead_Semivoiced_Sound = 0x0100125f,
921         Key_Dead_Belowdot       = 0x01001260,
922         Key_Dead_Hook           = 0x01001261,
923         Key_Dead_Horn           = 0x01001262,
924         Key_Dead_Stroke         = 0x01001263,
925         Key_Dead_Abovecomma     = 0x01001264,
926         Key_Dead_Abovereversedcomma = 0x01001265,
927         Key_Dead_Doublegrave    = 0x01001266,
928         Key_Dead_Belowring      = 0x01001267,
929         Key_Dead_Belowmacron    = 0x01001268,
930         Key_Dead_Belowcircumflex = 0x01001269,
931         Key_Dead_Belowtilde     = 0x0100126a,
932         Key_Dead_Belowbreve     = 0x0100126b,
933         Key_Dead_Belowdiaeresis = 0x0100126c,
934         Key_Dead_Invertedbreve  = 0x0100126d,
935         Key_Dead_Belowcomma     = 0x0100126e,
936         Key_Dead_Currency       = 0x0100126f,
937         Key_Dead_a              = 0x01001280,
938         Key_Dead_A              = 0x01001281,
939         Key_Dead_e              = 0x01001282,
940         Key_Dead_E              = 0x01001283,
941         Key_Dead_i              = 0x01001284,
942         Key_Dead_I              = 0x01001285,
943         Key_Dead_o              = 0x01001286,
944         Key_Dead_O              = 0x01001287,
945         Key_Dead_u              = 0x01001288,
946         Key_Dead_U              = 0x01001289,
947         Key_Dead_Small_Schwa    = 0x0100128a,
948         Key_Dead_Capital_Schwa  = 0x0100128b,
949         Key_Dead_Greek          = 0x0100128c,
950         Key_Dead_Lowline        = 0x01001290,
951         Key_Dead_Aboveverticalline = 0x01001291,
952         Key_Dead_Belowverticalline = 0x01001292,
953         Key_Dead_Longsolidusoverlay = 0x01001293,
954 
955         // multimedia/internet keys - ignored by default - see QKeyEvent c'tor
956         Key_Back  = 0x01000061,
957         Key_Forward  = 0x01000062,
958         Key_Stop  = 0x01000063,
959         Key_Refresh  = 0x01000064,
960         Key_VolumeDown = 0x01000070,
961         Key_VolumeMute  = 0x01000071,
962         Key_VolumeUp = 0x01000072,
963         Key_BassBoost = 0x01000073,
964         Key_BassUp = 0x01000074,
965         Key_BassDown = 0x01000075,
966         Key_TrebleUp = 0x01000076,
967         Key_TrebleDown = 0x01000077,
968         Key_MediaPlay  = 0x01000080,
969         Key_MediaStop  = 0x01000081,
970         Key_MediaPrevious  = 0x01000082,
971         Key_MediaNext  = 0x01000083,
972         Key_MediaRecord = 0x01000084,
973         Key_MediaPause = 0x01000085,
974         Key_MediaTogglePlayPause = 0x01000086,
975         Key_HomePage  = 0x01000090,
976         Key_Favorites  = 0x01000091,
977         Key_Search  = 0x01000092,
978         Key_Standby = 0x01000093,
979         Key_OpenUrl = 0x01000094,
980         Key_LaunchMail  = 0x010000a0,
981         Key_LaunchMedia = 0x010000a1,
982         Key_Launch0  = 0x010000a2,
983         Key_Launch1  = 0x010000a3,
984         Key_Launch2  = 0x010000a4,
985         Key_Launch3  = 0x010000a5,
986         Key_Launch4  = 0x010000a6,
987         Key_Launch5  = 0x010000a7,
988         Key_Launch6  = 0x010000a8,
989         Key_Launch7  = 0x010000a9,
990         Key_Launch8  = 0x010000aa,
991         Key_Launch9  = 0x010000ab,
992         Key_LaunchA  = 0x010000ac,
993         Key_LaunchB  = 0x010000ad,
994         Key_LaunchC  = 0x010000ae,
995         Key_LaunchD  = 0x010000af,
996         Key_LaunchE  = 0x010000b0,
997         Key_LaunchF  = 0x010000b1,
998         Key_MonBrightnessUp = 0x010000b2,
999         Key_MonBrightnessDown = 0x010000b3,
1000         Key_KeyboardLightOnOff = 0x010000b4,
1001         Key_KeyboardBrightnessUp = 0x010000b5,
1002         Key_KeyboardBrightnessDown = 0x010000b6,
1003         Key_PowerOff = 0x010000b7,
1004         Key_WakeUp = 0x010000b8,
1005         Key_Eject = 0x010000b9,
1006         Key_ScreenSaver = 0x010000ba,
1007         Key_WWW = 0x010000bb,
1008         Key_Memo = 0x010000bc,
1009         Key_LightBulb = 0x010000bd,
1010         Key_Shop = 0x010000be,
1011         Key_History = 0x010000bf,
1012         Key_AddFavorite = 0x010000c0,
1013         Key_HotLinks = 0x010000c1,
1014         Key_BrightnessAdjust = 0x010000c2,
1015         Key_Finance = 0x010000c3,
1016         Key_Community = 0x010000c4,
1017         Key_AudioRewind = 0x010000c5, // Media rewind
1018         Key_BackForward = 0x010000c6,
1019         Key_ApplicationLeft = 0x010000c7,
1020         Key_ApplicationRight = 0x010000c8,
1021         Key_Book = 0x010000c9,
1022         Key_CD = 0x010000ca,
1023         Key_Calculator = 0x010000cb,
1024         Key_ToDoList = 0x010000cc,
1025         Key_ClearGrab = 0x010000cd,
1026         Key_Close = 0x010000ce,
1027         Key_Copy = 0x010000cf,
1028         Key_Cut = 0x010000d0,
1029         Key_Display = 0x010000d1, // Output switch key
1030         Key_DOS = 0x010000d2,
1031         Key_Documents = 0x010000d3,
1032         Key_Excel = 0x010000d4,
1033         Key_Explorer = 0x010000d5,
1034         Key_Game = 0x010000d6,
1035         Key_Go = 0x010000d7,
1036         Key_iTouch = 0x010000d8,
1037         Key_LogOff = 0x010000d9,
1038         Key_Market = 0x010000da,
1039         Key_Meeting = 0x010000db,
1040         Key_MenuKB = 0x010000dc,
1041         Key_MenuPB = 0x010000dd,
1042         Key_MySites = 0x010000de,
1043         Key_News = 0x010000df,
1044         Key_OfficeHome = 0x010000e0,
1045         Key_Option = 0x010000e1,
1046         Key_Paste = 0x010000e2,
1047         Key_Phone = 0x010000e3,
1048         Key_Calendar = 0x010000e4,
1049         Key_Reply = 0x010000e5,
1050         Key_Reload = 0x010000e6,
1051         Key_RotateWindows = 0x010000e7,
1052         Key_RotationPB = 0x010000e8,
1053         Key_RotationKB = 0x010000e9,
1054         Key_Save = 0x010000ea,
1055         Key_Send = 0x010000eb,
1056         Key_Spell = 0x010000ec,
1057         Key_SplitScreen = 0x010000ed,
1058         Key_Support = 0x010000ee,
1059         Key_TaskPane = 0x010000ef,
1060         Key_Terminal = 0x010000f0,
1061         Key_Tools = 0x010000f1,
1062         Key_Travel = 0x010000f2,
1063         Key_Video = 0x010000f3,
1064         Key_Word = 0x010000f4,
1065         Key_Xfer = 0x010000f5,
1066         Key_ZoomIn = 0x010000f6,
1067         Key_ZoomOut = 0x010000f7,
1068         Key_Away = 0x010000f8,
1069         Key_Messenger = 0x010000f9,
1070         Key_WebCam = 0x010000fa,
1071         Key_MailForward = 0x010000fb,
1072         Key_Pictures = 0x010000fc,
1073         Key_Music = 0x010000fd,
1074         Key_Battery = 0x010000fe,
1075         Key_Bluetooth = 0x010000ff,
1076         Key_WLAN = 0x01000100,
1077         Key_UWB = 0x01000101,
1078         Key_AudioForward = 0x01000102, // Media fast-forward
1079         Key_AudioRepeat = 0x01000103, // Toggle repeat mode
1080         Key_AudioRandomPlay = 0x01000104, // Toggle shuffle mode
1081         Key_Subtitle = 0x01000105,
1082         Key_AudioCycleTrack = 0x01000106,
1083         Key_Time = 0x01000107,
1084         Key_Hibernate = 0x01000108,
1085         Key_View = 0x01000109,
1086         Key_TopMenu = 0x0100010a,
1087         Key_PowerDown = 0x0100010b,
1088         Key_Suspend = 0x0100010c,
1089         Key_ContrastAdjust = 0x0100010d,
1090 
1091         // We can remove these two for Qt 7:
1092         Key_LaunchG  = 0x0100010e,
1093         Key_LaunchH  = 0x0100010f,
1094 
1095         Key_TouchpadToggle = 0x01000110,
1096         Key_TouchpadOn = 0x01000111,
1097         Key_TouchpadOff = 0x01000112,
1098 
1099         Key_MicMute = 0x01000113,
1100 
1101         Key_Red = 0x01000114,
1102         Key_Green = 0x01000115,
1103         Key_Yellow = 0x01000116,
1104         Key_Blue = 0x01000117,
1105 
1106         Key_ChannelUp = 0x01000118,
1107         Key_ChannelDown = 0x01000119,
1108 
1109         Key_Guide    = 0x0100011a,
1110         Key_Info     = 0x0100011b,
1111         Key_Settings = 0x0100011c,
1112 
1113         Key_MicVolumeUp   = 0x0100011d,
1114         Key_MicVolumeDown = 0x0100011e,
1115 
1116         Key_New      = 0x01000120,
1117         Key_Open     = 0x01000121,
1118         Key_Find     = 0x01000122,
1119         Key_Undo     = 0x01000123,
1120         Key_Redo     = 0x01000124,
1121 
1122         Key_MediaLast = 0x0100ffff,
1123 
1124         // Keypad navigation keys
1125         Key_Select = 0x01010000,
1126         Key_Yes = 0x01010001,
1127         Key_No = 0x01010002,
1128 
1129         // Newer misc keys
1130         Key_Cancel  = 0x01020001,
1131         Key_Printer = 0x01020002,
1132         Key_Execute = 0x01020003,
1133         Key_Sleep   = 0x01020004,
1134         Key_Play    = 0x01020005, // Not the same as Key_MediaPlay
1135         Key_Zoom    = 0x01020006,
1136         //Key_Jisho   = 0x01020007, // IME: Dictionary key
1137         //Key_Oyayubi_Left = 0x01020008, // IME: Left Oyayubi key
1138         //Key_Oyayubi_Right = 0x01020009, // IME: Right Oyayubi key
1139         Key_Exit    = 0x0102000a,
1140 
1141         // Device keys
1142         Key_Context1 = 0x01100000,
1143         Key_Context2 = 0x01100001,
1144         Key_Context3 = 0x01100002,
1145         Key_Context4 = 0x01100003,
1146         Key_Call = 0x01100004,      // set absolute state to in a call (do not toggle state)
1147         Key_Hangup = 0x01100005,    // set absolute state to hang up (do not toggle state)
1148         Key_Flip = 0x01100006,
1149         Key_ToggleCallHangup = 0x01100007, // a toggle key for answering, or hanging up, based on current call state
1150         Key_VoiceDial = 0x01100008,
1151         Key_LastNumberRedial = 0x01100009,
1152 
1153         Key_Camera = 0x01100020,
1154         Key_CameraFocus = 0x01100021,
1155 
1156         // WARNING: Do not add any keys in the range 0x01200000 to 0xffffffff,
1157         // as those bits are reserved for the Qt::KeyboardModifier enum below.
1158 
1159         Key_unknown = 0x01ffffff
1160     }
1161 
1162     enum KeyboardModifier {
1163         NoModifier           = 0x00000000,
1164         ShiftModifier        = 0x02000000,
1165         ControlModifier      = 0x04000000,
1166         AltModifier          = 0x08000000,
1167         MetaModifier         = 0x10000000,
1168         KeypadModifier       = 0x20000000,
1169         GroupSwitchModifier  = 0x40000000,
1170         // Do not extend the mask to include 0x01000000
1171         KeyboardModifierMask = 0xfe000000
1172     }
1173 alias KeyboardModifiers = QFlags!(KeyboardModifier);
1174     /+ Q_DECLARE_FLAGS(KeyboardModifiers, KeyboardModifier) +/
1175     /+pragma(inline, true) QFlags!(KeyboardModifiers.enum_type) operator |(KeyboardModifiers.enum_type f1, KeyboardModifiers.enum_type f2)/+noexcept+/{return QFlags!(KeyboardModifiers.enum_type)(f1)|f2;}+/
1176 /+pragma(inline, true) QFlags!(KeyboardModifiers.enum_type) operator |(KeyboardModifiers.enum_type f1, QFlags!(KeyboardModifiers.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1177 /+pragma(inline, true) QFlags!(KeyboardModifiers.enum_type) operator &(KeyboardModifiers.enum_type f1, KeyboardModifiers.enum_type f2)/+noexcept+/{return QFlags!(KeyboardModifiers.enum_type)(f1)&f2;}+/
1178 /+pragma(inline, true) QFlags!(KeyboardModifiers.enum_type) operator &(KeyboardModifiers.enum_type f1, QFlags!(KeyboardModifiers.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1179 /+pragma(inline, true) void operator +(KeyboardModifiers.enum_type f1, KeyboardModifiers.enum_type f2)/+noexcept+/;+/
1180 /+pragma(inline, true) void operator +(KeyboardModifiers.enum_type f1, QFlags!(KeyboardModifiers.enum_type) f2)/+noexcept+/;+/
1181 /+pragma(inline, true) void operator +(int f1, QFlags!(KeyboardModifiers.enum_type) f2)/+noexcept+/;+/
1182 /+pragma(inline, true) void operator -(KeyboardModifiers.enum_type f1, KeyboardModifiers.enum_type f2)/+noexcept+/;+/
1183 /+pragma(inline, true) void operator -(KeyboardModifiers.enum_type f1, QFlags!(KeyboardModifiers.enum_type) f2)/+noexcept+/;+/
1184 /+pragma(inline, true) void operator -(int f1, QFlags!(KeyboardModifiers.enum_type) f2)/+noexcept+/;+/
1185 /+pragma(inline, true) QIncompatibleFlag operator |(KeyboardModifiers.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1186 /+pragma(inline, true) void operator +(int f1, KeyboardModifiers.enum_type f2)/+noexcept+/;+/
1187 /+pragma(inline, true) void operator +(KeyboardModifiers.enum_type f1, int f2)/+noexcept+/;+/
1188 /+pragma(inline, true) void operator -(int f1, KeyboardModifiers.enum_type f2)/+noexcept+/;+/
1189 /+pragma(inline, true) void operator -(KeyboardModifiers.enum_type f1, int f2)/+noexcept+/;+/
1190     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(KeyboardModifiers) +/
1191     //shorter names for shortcuts
1192     // The use of all-caps identifiers has the potential for clashing with
1193     // user-defined or third-party macros. More so when the identifiers are not
1194     // "namespace"-prefixed. This is considered bad practice and is why
1195     // KeypadModifier was not added to the Modifier enum.
1196     // ### Qt 7: consider deprecating in favor of KeyboardModifier.
1197     enum Modifier {
1198         META          = KeyboardModifier.MetaModifier,
1199         SHIFT         = KeyboardModifier.ShiftModifier,
1200         CTRL          = KeyboardModifier.ControlModifier,
1201         ALT           = KeyboardModifier.AltModifier,
1202         MODIFIER_MASK = KeyboardModifier.KeyboardModifierMask,
1203     }
1204 alias Modifiers = QFlags!(Modifier);
1205     /+ Q_DECLARE_FLAGS(Modifiers, Modifier) +/
1206     /+pragma(inline, true) QFlags!(Modifiers.enum_type) operator |(Modifiers.enum_type f1, Modifiers.enum_type f2)/+noexcept+/{return QFlags!(Modifiers.enum_type)(f1)|f2;}+/
1207 /+pragma(inline, true) QFlags!(Modifiers.enum_type) operator |(Modifiers.enum_type f1, QFlags!(Modifiers.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1208 /+pragma(inline, true) QFlags!(Modifiers.enum_type) operator &(Modifiers.enum_type f1, Modifiers.enum_type f2)/+noexcept+/{return QFlags!(Modifiers.enum_type)(f1)&f2;}+/
1209 /+pragma(inline, true) QFlags!(Modifiers.enum_type) operator &(Modifiers.enum_type f1, QFlags!(Modifiers.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1210 /+pragma(inline, true) void operator +(Modifiers.enum_type f1, Modifiers.enum_type f2)/+noexcept+/;+/
1211 /+pragma(inline, true) void operator +(Modifiers.enum_type f1, QFlags!(Modifiers.enum_type) f2)/+noexcept+/;+/
1212 /+pragma(inline, true) void operator +(int f1, QFlags!(Modifiers.enum_type) f2)/+noexcept+/;+/
1213 /+pragma(inline, true) void operator -(Modifiers.enum_type f1, Modifiers.enum_type f2)/+noexcept+/;+/
1214 /+pragma(inline, true) void operator -(Modifiers.enum_type f1, QFlags!(Modifiers.enum_type) f2)/+noexcept+/;+/
1215 /+pragma(inline, true) void operator -(int f1, QFlags!(Modifiers.enum_type) f2)/+noexcept+/;+/
1216 /+pragma(inline, true) QIncompatibleFlag operator |(Modifiers.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1217 /+pragma(inline, true) void operator +(int f1, Modifiers.enum_type f2)/+noexcept+/;+/
1218 /+pragma(inline, true) void operator +(Modifiers.enum_type f1, int f2)/+noexcept+/;+/
1219 /+pragma(inline, true) void operator -(int f1, Modifiers.enum_type f2)/+noexcept+/;+/
1220 /+pragma(inline, true) void operator -(Modifiers.enum_type f1, int f2)/+noexcept+/;+/
1221     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(Modifiers) +/
1222     enum ArrowType {
1223         NoArrow,
1224         UpArrow,
1225         DownArrow,
1226         LeftArrow,
1227         RightArrow
1228     }
1229 
1230     enum PenStyle { // pen style
1231         NoPen,
1232         SolidLine,
1233         DashLine,
1234         DotLine,
1235         DashDotLine,
1236         DashDotDotLine,
1237         CustomDashLine
1238 /+ #ifndef Q_MOC_RUN +/
1239         , MPenStyle = 0x0f
1240 /+ #endif +/
1241     }
1242 
1243     enum PenCapStyle { // line endcap style
1244         FlatCap = 0x00,
1245         SquareCap = 0x10,
1246         RoundCap = 0x20,
1247         MPenCapStyle = 0x30
1248     }
1249 
1250     enum PenJoinStyle { // line join style
1251         MiterJoin = 0x00,
1252         BevelJoin = 0x40,
1253         RoundJoin = 0x80,
1254         SvgMiterJoin = 0x100,
1255         MPenJoinStyle = 0x1c0
1256     }
1257 
1258     enum BrushStyle { // brush style
1259         NoBrush,
1260         SolidPattern,
1261         Dense1Pattern,
1262         Dense2Pattern,
1263         Dense3Pattern,
1264         Dense4Pattern,
1265         Dense5Pattern,
1266         Dense6Pattern,
1267         Dense7Pattern,
1268         HorPattern,
1269         VerPattern,
1270         CrossPattern,
1271         BDiagPattern,
1272         FDiagPattern,
1273         DiagCrossPattern,
1274         LinearGradientPattern,
1275         RadialGradientPattern,
1276         ConicalGradientPattern,
1277         TexturePattern = 24
1278     }
1279 
1280     enum SizeMode {
1281         AbsoluteSize,
1282         RelativeSize
1283     }
1284 
1285     enum UIEffect {
1286         UI_General,
1287         UI_AnimateMenu,
1288         UI_FadeMenu,
1289         UI_AnimateCombo,
1290         UI_AnimateTooltip,
1291         UI_FadeTooltip,
1292         UI_AnimateToolBox
1293     }
1294 
1295     enum CursorShape {
1296         ArrowCursor,
1297         UpArrowCursor,
1298         CrossCursor,
1299         WaitCursor,
1300         IBeamCursor,
1301         SizeVerCursor,
1302         SizeHorCursor,
1303         SizeBDiagCursor,
1304         SizeFDiagCursor,
1305         SizeAllCursor,
1306         BlankCursor,
1307         SplitVCursor,
1308         SplitHCursor,
1309         PointingHandCursor,
1310         ForbiddenCursor,
1311         WhatsThisCursor,
1312         BusyCursor,
1313         OpenHandCursor,
1314         ClosedHandCursor,
1315         DragCopyCursor,
1316         DragMoveCursor,
1317         DragLinkCursor,
1318         LastCursor = CursorShape.DragLinkCursor,
1319         BitmapCursor = 24,
1320         CustomCursor = 25
1321     }
1322 
1323     enum TextFormat {
1324         PlainText,
1325         RichText,
1326         AutoText,
1327         MarkdownText
1328     }
1329 
1330     enum AspectRatioMode {
1331         IgnoreAspectRatio,
1332         KeepAspectRatio,
1333         KeepAspectRatioByExpanding
1334     }
1335 
1336     enum DockWidgetArea {
1337         LeftDockWidgetArea = 0x1,
1338         RightDockWidgetArea = 0x2,
1339         TopDockWidgetArea = 0x4,
1340         BottomDockWidgetArea = 0x8,
1341 
1342         DockWidgetArea_Mask = 0xf,
1343         AllDockWidgetAreas = DockWidgetArea.DockWidgetArea_Mask,
1344         NoDockWidgetArea = 0
1345     }
1346     enum DockWidgetAreaSizes {
1347         NDockWidgetAreas = 4
1348     }
1349 alias DockWidgetAreas = QFlags!(DockWidgetArea);
1350 
1351     /+ Q_DECLARE_FLAGS(DockWidgetAreas, DockWidgetArea) +/
1352     /+pragma(inline, true) QFlags!(DockWidgetAreas.enum_type) operator |(DockWidgetAreas.enum_type f1, DockWidgetAreas.enum_type f2)/+noexcept+/{return QFlags!(DockWidgetAreas.enum_type)(f1)|f2;}+/
1353 /+pragma(inline, true) QFlags!(DockWidgetAreas.enum_type) operator |(DockWidgetAreas.enum_type f1, QFlags!(DockWidgetAreas.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1354 /+pragma(inline, true) QFlags!(DockWidgetAreas.enum_type) operator &(DockWidgetAreas.enum_type f1, DockWidgetAreas.enum_type f2)/+noexcept+/{return QFlags!(DockWidgetAreas.enum_type)(f1)&f2;}+/
1355 /+pragma(inline, true) QFlags!(DockWidgetAreas.enum_type) operator &(DockWidgetAreas.enum_type f1, QFlags!(DockWidgetAreas.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1356 /+pragma(inline, true) void operator +(DockWidgetAreas.enum_type f1, DockWidgetAreas.enum_type f2)/+noexcept+/;+/
1357 /+pragma(inline, true) void operator +(DockWidgetAreas.enum_type f1, QFlags!(DockWidgetAreas.enum_type) f2)/+noexcept+/;+/
1358 /+pragma(inline, true) void operator +(int f1, QFlags!(DockWidgetAreas.enum_type) f2)/+noexcept+/;+/
1359 /+pragma(inline, true) void operator -(DockWidgetAreas.enum_type f1, DockWidgetAreas.enum_type f2)/+noexcept+/;+/
1360 /+pragma(inline, true) void operator -(DockWidgetAreas.enum_type f1, QFlags!(DockWidgetAreas.enum_type) f2)/+noexcept+/;+/
1361 /+pragma(inline, true) void operator -(int f1, QFlags!(DockWidgetAreas.enum_type) f2)/+noexcept+/;+/
1362 /+pragma(inline, true) QIncompatibleFlag operator |(DockWidgetAreas.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1363 /+pragma(inline, true) void operator +(int f1, DockWidgetAreas.enum_type f2)/+noexcept+/;+/
1364 /+pragma(inline, true) void operator +(DockWidgetAreas.enum_type f1, int f2)/+noexcept+/;+/
1365 /+pragma(inline, true) void operator -(int f1, DockWidgetAreas.enum_type f2)/+noexcept+/;+/
1366 /+pragma(inline, true) void operator -(DockWidgetAreas.enum_type f1, int f2)/+noexcept+/;+/
1367     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(DockWidgetAreas) +/
1368     enum ToolBarArea {
1369         LeftToolBarArea = 0x1,
1370         RightToolBarArea = 0x2,
1371         TopToolBarArea = 0x4,
1372         BottomToolBarArea = 0x8,
1373 
1374         ToolBarArea_Mask = 0xf,
1375         AllToolBarAreas = ToolBarArea.ToolBarArea_Mask,
1376         NoToolBarArea = 0
1377     }
1378 
1379     enum ToolBarAreaSizes {
1380         NToolBarAreas = 4
1381     }
1382 alias ToolBarAreas = QFlags!(ToolBarArea);
1383 
1384     /+ Q_DECLARE_FLAGS(ToolBarAreas, ToolBarArea) +/
1385     /+pragma(inline, true) QFlags!(ToolBarAreas.enum_type) operator |(ToolBarAreas.enum_type f1, ToolBarAreas.enum_type f2)/+noexcept+/{return QFlags!(ToolBarAreas.enum_type)(f1)|f2;}+/
1386 /+pragma(inline, true) QFlags!(ToolBarAreas.enum_type) operator |(ToolBarAreas.enum_type f1, QFlags!(ToolBarAreas.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1387 /+pragma(inline, true) QFlags!(ToolBarAreas.enum_type) operator &(ToolBarAreas.enum_type f1, ToolBarAreas.enum_type f2)/+noexcept+/{return QFlags!(ToolBarAreas.enum_type)(f1)&f2;}+/
1388 /+pragma(inline, true) QFlags!(ToolBarAreas.enum_type) operator &(ToolBarAreas.enum_type f1, QFlags!(ToolBarAreas.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1389 /+pragma(inline, true) void operator +(ToolBarAreas.enum_type f1, ToolBarAreas.enum_type f2)/+noexcept+/;+/
1390 /+pragma(inline, true) void operator +(ToolBarAreas.enum_type f1, QFlags!(ToolBarAreas.enum_type) f2)/+noexcept+/;+/
1391 /+pragma(inline, true) void operator +(int f1, QFlags!(ToolBarAreas.enum_type) f2)/+noexcept+/;+/
1392 /+pragma(inline, true) void operator -(ToolBarAreas.enum_type f1, ToolBarAreas.enum_type f2)/+noexcept+/;+/
1393 /+pragma(inline, true) void operator -(ToolBarAreas.enum_type f1, QFlags!(ToolBarAreas.enum_type) f2)/+noexcept+/;+/
1394 /+pragma(inline, true) void operator -(int f1, QFlags!(ToolBarAreas.enum_type) f2)/+noexcept+/;+/
1395 /+pragma(inline, true) QIncompatibleFlag operator |(ToolBarAreas.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1396 /+pragma(inline, true) void operator +(int f1, ToolBarAreas.enum_type f2)/+noexcept+/;+/
1397 /+pragma(inline, true) void operator +(ToolBarAreas.enum_type f1, int f2)/+noexcept+/;+/
1398 /+pragma(inline, true) void operator -(int f1, ToolBarAreas.enum_type f2)/+noexcept+/;+/
1399 /+pragma(inline, true) void operator -(ToolBarAreas.enum_type f1, int f2)/+noexcept+/;+/
1400     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(ToolBarAreas) +/
1401     enum DateFormat {
1402         TextDate,      // default Qt
1403         ISODate,       // ISO 8601
1404         RFC2822Date = 8, // RFC 2822 (+ 850 and 1036 during parsing)
1405         ISODateWithMs
1406     }
1407 
1408     enum TimeSpec {
1409         LocalTime,
1410         UTC,
1411         OffsetFromUTC,
1412         TimeZone
1413     }
1414 
1415     enum DayOfWeek {
1416         Monday = 1,
1417         Tuesday = 2,
1418         Wednesday = 3,
1419         Thursday = 4,
1420         Friday = 5,
1421         Saturday = 6,
1422         Sunday = 7
1423     }
1424 
1425     enum ScrollBarPolicy {
1426         ScrollBarAsNeeded,
1427         ScrollBarAlwaysOff,
1428         ScrollBarAlwaysOn
1429     }
1430 
1431     enum CaseSensitivity {
1432         CaseInsensitive,
1433         CaseSensitive
1434     }
1435 
1436     enum Corner {
1437         TopLeftCorner = 0x00000,
1438         TopRightCorner = 0x00001,
1439         BottomLeftCorner = 0x00002,
1440         BottomRightCorner = 0x00003
1441     }
1442 
1443     enum Edge {
1444         TopEdge = 0x00001,
1445         LeftEdge = 0x00002,
1446         RightEdge = 0x00004,
1447         BottomEdge = 0x00008
1448     }
1449 alias Edges = QFlags!(Edge);
1450 
1451     /+ Q_DECLARE_FLAGS(Edges, Edge) +/
1452     /+pragma(inline, true) QFlags!(Edges.enum_type) operator |(Edges.enum_type f1, Edges.enum_type f2)/+noexcept+/{return QFlags!(Edges.enum_type)(f1)|f2;}+/
1453 /+pragma(inline, true) QFlags!(Edges.enum_type) operator |(Edges.enum_type f1, QFlags!(Edges.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1454 /+pragma(inline, true) QFlags!(Edges.enum_type) operator &(Edges.enum_type f1, Edges.enum_type f2)/+noexcept+/{return QFlags!(Edges.enum_type)(f1)&f2;}+/
1455 /+pragma(inline, true) QFlags!(Edges.enum_type) operator &(Edges.enum_type f1, QFlags!(Edges.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1456 /+pragma(inline, true) void operator +(Edges.enum_type f1, Edges.enum_type f2)/+noexcept+/;+/
1457 /+pragma(inline, true) void operator +(Edges.enum_type f1, QFlags!(Edges.enum_type) f2)/+noexcept+/;+/
1458 /+pragma(inline, true) void operator +(int f1, QFlags!(Edges.enum_type) f2)/+noexcept+/;+/
1459 /+pragma(inline, true) void operator -(Edges.enum_type f1, Edges.enum_type f2)/+noexcept+/;+/
1460 /+pragma(inline, true) void operator -(Edges.enum_type f1, QFlags!(Edges.enum_type) f2)/+noexcept+/;+/
1461 /+pragma(inline, true) void operator -(int f1, QFlags!(Edges.enum_type) f2)/+noexcept+/;+/
1462 /+pragma(inline, true) QIncompatibleFlag operator |(Edges.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1463 /+pragma(inline, true) void operator +(int f1, Edges.enum_type f2)/+noexcept+/;+/
1464 /+pragma(inline, true) void operator +(Edges.enum_type f1, int f2)/+noexcept+/;+/
1465 /+pragma(inline, true) void operator -(int f1, Edges.enum_type f2)/+noexcept+/;+/
1466 /+pragma(inline, true) void operator -(Edges.enum_type f1, int f2)/+noexcept+/;+/
1467     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(Edges) +/
1468     enum ConnectionType {
1469         AutoConnection,
1470         DirectConnection,
1471         QueuedConnection,
1472         BlockingQueuedConnection,
1473         UniqueConnection =  0x80,
1474         SingleShotConnection = 0x100,
1475     }
1476 
1477     enum ShortcutContext {
1478         WidgetShortcut,
1479         WindowShortcut,
1480         ApplicationShortcut,
1481         WidgetWithChildrenShortcut
1482     }
1483 
1484     enum FillRule {
1485         OddEvenFill,
1486         WindingFill
1487     }
1488 
1489     enum MaskMode {
1490         MaskInColor,
1491         MaskOutColor
1492     }
1493 
1494     enum ClipOperation {
1495         NoClip,
1496         ReplaceClip,
1497         IntersectClip
1498     }
1499 
1500     // Shape = 0x1, BoundingRect = 0x2
1501     enum ItemSelectionMode {
1502         ContainsItemShape = 0x0,
1503         IntersectsItemShape = 0x1,
1504         ContainsItemBoundingRect = 0x2,
1505         IntersectsItemBoundingRect = 0x3
1506     }
1507 
1508     enum ItemSelectionOperation {
1509         ReplaceSelection,
1510         AddToSelection
1511     }
1512 
1513     enum TransformationMode {
1514         FastTransformation,
1515         SmoothTransformation
1516     }
1517 
1518     enum Axis {
1519         XAxis,
1520         YAxis,
1521         ZAxis
1522     }
1523 
1524     enum FocusReason {
1525         MouseFocusReason,
1526         TabFocusReason,
1527         BacktabFocusReason,
1528         ActiveWindowFocusReason,
1529         PopupFocusReason,
1530         ShortcutFocusReason,
1531         MenuBarFocusReason,
1532         OtherFocusReason,
1533         NoFocusReason
1534     }
1535 
1536     enum ContextMenuPolicy {
1537         NoContextMenu,
1538         DefaultContextMenu,
1539         ActionsContextMenu,
1540         CustomContextMenu,
1541         PreventContextMenu
1542     }
1543 
1544     enum InputMethodQuery {
1545         ImEnabled = 0x1,
1546         ImCursorRectangle = 0x2,
1547         ImFont = 0x4,
1548         ImCursorPosition = 0x8,
1549         ImSurroundingText = 0x10,
1550         ImCurrentSelection = 0x20,
1551         ImMaximumTextLength = 0x40,
1552         ImAnchorPosition = 0x80,
1553         ImHints = 0x100,
1554         ImPreferredLanguage = 0x200,
1555 
1556         ImAbsolutePosition = 0x400,
1557         ImTextBeforeCursor = 0x800,
1558         ImTextAfterCursor = 0x1000,
1559         ImEnterKeyType = 0x2000,
1560         ImAnchorRectangle = 0x4000,
1561         ImInputItemClipRectangle = 0x8000,
1562 
1563         ImReadOnly = 0x10000,
1564         ImPlatformData = 0x80000000,
1565         ImQueryInput = InputMethodQuery.ImCursorRectangle | InputMethodQuery.ImCursorPosition | InputMethodQuery.ImSurroundingText |
1566                        InputMethodQuery.ImCurrentSelection | InputMethodQuery.ImAnchorRectangle | InputMethodQuery.ImAnchorPosition,
1567         ImQueryAll = 0xffffffff
1568     }
1569 alias InputMethodQueries = QFlags!(InputMethodQuery);
1570     /+ Q_DECLARE_FLAGS(InputMethodQueries, InputMethodQuery) +/
1571     /+pragma(inline, true) QFlags!(InputMethodQueries.enum_type) operator |(InputMethodQueries.enum_type f1, InputMethodQueries.enum_type f2)/+noexcept+/{return QFlags!(InputMethodQueries.enum_type)(f1)|f2;}+/
1572 /+pragma(inline, true) QFlags!(InputMethodQueries.enum_type) operator |(InputMethodQueries.enum_type f1, QFlags!(InputMethodQueries.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1573 /+pragma(inline, true) QFlags!(InputMethodQueries.enum_type) operator &(InputMethodQueries.enum_type f1, InputMethodQueries.enum_type f2)/+noexcept+/{return QFlags!(InputMethodQueries.enum_type)(f1)&f2;}+/
1574 /+pragma(inline, true) QFlags!(InputMethodQueries.enum_type) operator &(InputMethodQueries.enum_type f1, QFlags!(InputMethodQueries.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1575 /+pragma(inline, true) void operator +(InputMethodQueries.enum_type f1, InputMethodQueries.enum_type f2)/+noexcept+/;+/
1576 /+pragma(inline, true) void operator +(InputMethodQueries.enum_type f1, QFlags!(InputMethodQueries.enum_type) f2)/+noexcept+/;+/
1577 /+pragma(inline, true) void operator +(int f1, QFlags!(InputMethodQueries.enum_type) f2)/+noexcept+/;+/
1578 /+pragma(inline, true) void operator -(InputMethodQueries.enum_type f1, InputMethodQueries.enum_type f2)/+noexcept+/;+/
1579 /+pragma(inline, true) void operator -(InputMethodQueries.enum_type f1, QFlags!(InputMethodQueries.enum_type) f2)/+noexcept+/;+/
1580 /+pragma(inline, true) void operator -(int f1, QFlags!(InputMethodQueries.enum_type) f2)/+noexcept+/;+/
1581 /+pragma(inline, true) QIncompatibleFlag operator |(InputMethodQueries.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1582 /+pragma(inline, true) void operator +(int f1, InputMethodQueries.enum_type f2)/+noexcept+/;+/
1583 /+pragma(inline, true) void operator +(InputMethodQueries.enum_type f1, int f2)/+noexcept+/;+/
1584 /+pragma(inline, true) void operator -(int f1, InputMethodQueries.enum_type f2)/+noexcept+/;+/
1585 /+pragma(inline, true) void operator -(InputMethodQueries.enum_type f1, int f2)/+noexcept+/;+/
1586     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(InputMethodQueries) +/
1587     enum InputMethodHint {
1588         ImhNone = 0x0,
1589 
1590         ImhHiddenText = 0x1,
1591         ImhSensitiveData = 0x2,
1592         ImhNoAutoUppercase = 0x4,
1593         ImhPreferNumbers = 0x8,
1594         ImhPreferUppercase = 0x10,
1595         ImhPreferLowercase = 0x20,
1596         ImhNoPredictiveText = 0x40,
1597 
1598         ImhDate = 0x80,
1599         ImhTime = 0x100,
1600 
1601         ImhPreferLatin = 0x200,
1602 
1603         ImhMultiLine = 0x400,
1604 
1605         ImhNoEditMenu = 0x800,
1606         ImhNoTextHandles = 0x1000,
1607 
1608         ImhDigitsOnly = 0x10000,
1609         ImhFormattedNumbersOnly = 0x20000,
1610         ImhUppercaseOnly = 0x40000,
1611         ImhLowercaseOnly = 0x80000,
1612         ImhDialableCharactersOnly = 0x100000,
1613         ImhEmailCharactersOnly = 0x200000,
1614         ImhUrlCharactersOnly = 0x400000,
1615         ImhLatinOnly = 0x800000,
1616 
1617         ImhExclusiveInputMask = 0xffff0000
1618     }
1619 alias InputMethodHints = QFlags!(InputMethodHint);
1620     /+ Q_DECLARE_FLAGS(InputMethodHints, InputMethodHint) +/
1621     /+pragma(inline, true) QFlags!(InputMethodHints.enum_type) operator |(InputMethodHints.enum_type f1, InputMethodHints.enum_type f2)/+noexcept+/{return QFlags!(InputMethodHints.enum_type)(f1)|f2;}+/
1622 /+pragma(inline, true) QFlags!(InputMethodHints.enum_type) operator |(InputMethodHints.enum_type f1, QFlags!(InputMethodHints.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1623 /+pragma(inline, true) QFlags!(InputMethodHints.enum_type) operator &(InputMethodHints.enum_type f1, InputMethodHints.enum_type f2)/+noexcept+/{return QFlags!(InputMethodHints.enum_type)(f1)&f2;}+/
1624 /+pragma(inline, true) QFlags!(InputMethodHints.enum_type) operator &(InputMethodHints.enum_type f1, QFlags!(InputMethodHints.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1625 /+pragma(inline, true) void operator +(InputMethodHints.enum_type f1, InputMethodHints.enum_type f2)/+noexcept+/;+/
1626 /+pragma(inline, true) void operator +(InputMethodHints.enum_type f1, QFlags!(InputMethodHints.enum_type) f2)/+noexcept+/;+/
1627 /+pragma(inline, true) void operator +(int f1, QFlags!(InputMethodHints.enum_type) f2)/+noexcept+/;+/
1628 /+pragma(inline, true) void operator -(InputMethodHints.enum_type f1, InputMethodHints.enum_type f2)/+noexcept+/;+/
1629 /+pragma(inline, true) void operator -(InputMethodHints.enum_type f1, QFlags!(InputMethodHints.enum_type) f2)/+noexcept+/;+/
1630 /+pragma(inline, true) void operator -(int f1, QFlags!(InputMethodHints.enum_type) f2)/+noexcept+/;+/
1631 /+pragma(inline, true) QIncompatibleFlag operator |(InputMethodHints.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1632 /+pragma(inline, true) void operator +(int f1, InputMethodHints.enum_type f2)/+noexcept+/;+/
1633 /+pragma(inline, true) void operator +(InputMethodHints.enum_type f1, int f2)/+noexcept+/;+/
1634 /+pragma(inline, true) void operator -(int f1, InputMethodHints.enum_type f2)/+noexcept+/;+/
1635 /+pragma(inline, true) void operator -(InputMethodHints.enum_type f1, int f2)/+noexcept+/;+/
1636     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(InputMethodHints) +/
1637     enum EnterKeyType {
1638         EnterKeyDefault,
1639         EnterKeyReturn,
1640         EnterKeyDone,
1641         EnterKeyGo,
1642         EnterKeySend,
1643         EnterKeySearch,
1644         EnterKeyNext,
1645         EnterKeyPrevious
1646     }
1647 
1648     enum ToolButtonStyle {
1649         ToolButtonIconOnly,
1650         ToolButtonTextOnly,
1651         ToolButtonTextBesideIcon,
1652         ToolButtonTextUnderIcon,
1653         ToolButtonFollowStyle
1654     }
1655 
1656     enum LayoutDirection {
1657         LeftToRight,
1658         RightToLeft,
1659         LayoutDirectionAuto
1660     }
1661 
1662     enum AnchorPoint {
1663         AnchorLeft = 0,
1664         AnchorHorizontalCenter,
1665         AnchorRight,
1666         AnchorTop,
1667         AnchorVerticalCenter,
1668         AnchorBottom
1669     }
1670 
1671     enum FindChildOption {
1672         FindDirectChildrenOnly = 0x0,
1673         FindChildrenRecursively = 0x1
1674     }
1675 alias FindChildOptions = QFlags!(FindChildOption);
1676     /+ Q_DECLARE_FLAGS(FindChildOptions, FindChildOption) +/
1677     enum DropAction {
1678         CopyAction = 0x1,
1679         MoveAction = 0x2,
1680         LinkAction = 0x4,
1681         ActionMask = 0xff,
1682         TargetMoveAction = 0x8002,
1683         IgnoreAction = 0x0
1684     }
1685 alias DropActions = QFlags!(DropAction);
1686     /+ Q_DECLARE_FLAGS(DropActions, DropAction) +/
1687     /+pragma(inline, true) QFlags!(DropActions.enum_type) operator |(DropActions.enum_type f1, DropActions.enum_type f2)/+noexcept+/{return QFlags!(DropActions.enum_type)(f1)|f2;}+/
1688 /+pragma(inline, true) QFlags!(DropActions.enum_type) operator |(DropActions.enum_type f1, QFlags!(DropActions.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1689 /+pragma(inline, true) QFlags!(DropActions.enum_type) operator &(DropActions.enum_type f1, DropActions.enum_type f2)/+noexcept+/{return QFlags!(DropActions.enum_type)(f1)&f2;}+/
1690 /+pragma(inline, true) QFlags!(DropActions.enum_type) operator &(DropActions.enum_type f1, QFlags!(DropActions.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1691 /+pragma(inline, true) void operator +(DropActions.enum_type f1, DropActions.enum_type f2)/+noexcept+/;+/
1692 /+pragma(inline, true) void operator +(DropActions.enum_type f1, QFlags!(DropActions.enum_type) f2)/+noexcept+/;+/
1693 /+pragma(inline, true) void operator +(int f1, QFlags!(DropActions.enum_type) f2)/+noexcept+/;+/
1694 /+pragma(inline, true) void operator -(DropActions.enum_type f1, DropActions.enum_type f2)/+noexcept+/;+/
1695 /+pragma(inline, true) void operator -(DropActions.enum_type f1, QFlags!(DropActions.enum_type) f2)/+noexcept+/;+/
1696 /+pragma(inline, true) void operator -(int f1, QFlags!(DropActions.enum_type) f2)/+noexcept+/;+/
1697 /+pragma(inline, true) QIncompatibleFlag operator |(DropActions.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1698 /+pragma(inline, true) void operator +(int f1, DropActions.enum_type f2)/+noexcept+/;+/
1699 /+pragma(inline, true) void operator +(DropActions.enum_type f1, int f2)/+noexcept+/;+/
1700 /+pragma(inline, true) void operator -(int f1, DropActions.enum_type f2)/+noexcept+/;+/
1701 /+pragma(inline, true) void operator -(DropActions.enum_type f1, int f2)/+noexcept+/;+/
1702     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(DropActions) +/
1703     enum CheckState {
1704         Unchecked,
1705         PartiallyChecked,
1706         Checked
1707     }
1708 
1709     enum ItemDataRole {
1710         DisplayRole = 0,
1711         DecorationRole = 1,
1712         EditRole = 2,
1713         ToolTipRole = 3,
1714         StatusTipRole = 4,
1715         WhatsThisRole = 5,
1716         // Metadata
1717         FontRole = 6,
1718         TextAlignmentRole = 7,
1719         BackgroundRole = 8,
1720         ForegroundRole = 9,
1721         CheckStateRole = 10,
1722         // Accessibility
1723         AccessibleTextRole = 11,
1724         AccessibleDescriptionRole = 12,
1725         // More general purpose
1726         SizeHintRole = 13,
1727         InitialSortOrderRole = 14,
1728         // Internal UiLib roles. Start worrying when public roles go that high.
1729         DisplayPropertyRole = 27,
1730         DecorationPropertyRole = 28,
1731         ToolTipPropertyRole = 29,
1732         StatusTipPropertyRole = 30,
1733         WhatsThisPropertyRole = 31,
1734         // Reserved
1735         UserRole = 0x0100
1736     }
1737 
1738     enum ItemFlag {
1739         NoItemFlags = 0,
1740         ItemIsSelectable = 1,
1741         ItemIsEditable = 2,
1742         ItemIsDragEnabled = 4,
1743         ItemIsDropEnabled = 8,
1744         ItemIsUserCheckable = 16,
1745         ItemIsEnabled = 32,
1746         ItemIsAutoTristate = 64,
1747         ItemNeverHasChildren = 128,
1748         ItemIsUserTristate = 256
1749     }
1750 alias ItemFlags = QFlags!(ItemFlag);
1751     /+ Q_DECLARE_FLAGS(ItemFlags, ItemFlag) +/
1752     /+pragma(inline, true) QFlags!(ItemFlags.enum_type) operator |(ItemFlags.enum_type f1, ItemFlags.enum_type f2)/+noexcept+/{return QFlags!(ItemFlags.enum_type)(f1)|f2;}+/
1753 /+pragma(inline, true) QFlags!(ItemFlags.enum_type) operator |(ItemFlags.enum_type f1, QFlags!(ItemFlags.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1754 /+pragma(inline, true) QFlags!(ItemFlags.enum_type) operator &(ItemFlags.enum_type f1, ItemFlags.enum_type f2)/+noexcept+/{return QFlags!(ItemFlags.enum_type)(f1)&f2;}+/
1755 /+pragma(inline, true) QFlags!(ItemFlags.enum_type) operator &(ItemFlags.enum_type f1, QFlags!(ItemFlags.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1756 /+pragma(inline, true) void operator +(ItemFlags.enum_type f1, ItemFlags.enum_type f2)/+noexcept+/;+/
1757 /+pragma(inline, true) void operator +(ItemFlags.enum_type f1, QFlags!(ItemFlags.enum_type) f2)/+noexcept+/;+/
1758 /+pragma(inline, true) void operator +(int f1, QFlags!(ItemFlags.enum_type) f2)/+noexcept+/;+/
1759 /+pragma(inline, true) void operator -(ItemFlags.enum_type f1, ItemFlags.enum_type f2)/+noexcept+/;+/
1760 /+pragma(inline, true) void operator -(ItemFlags.enum_type f1, QFlags!(ItemFlags.enum_type) f2)/+noexcept+/;+/
1761 /+pragma(inline, true) void operator -(int f1, QFlags!(ItemFlags.enum_type) f2)/+noexcept+/;+/
1762 /+pragma(inline, true) QIncompatibleFlag operator |(ItemFlags.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1763 /+pragma(inline, true) void operator +(int f1, ItemFlags.enum_type f2)/+noexcept+/;+/
1764 /+pragma(inline, true) void operator +(ItemFlags.enum_type f1, int f2)/+noexcept+/;+/
1765 /+pragma(inline, true) void operator -(int f1, ItemFlags.enum_type f2)/+noexcept+/;+/
1766 /+pragma(inline, true) void operator -(ItemFlags.enum_type f1, int f2)/+noexcept+/;+/
1767     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(ItemFlags) +/
1768     enum MatchFlag {
1769         MatchExactly = 0,
1770         MatchContains = 1,
1771         MatchStartsWith = 2,
1772         MatchEndsWith = 3,
1773         MatchRegularExpression = 4,
1774         MatchWildcard = 5,
1775         MatchFixedString = 8,
1776         MatchTypeMask = 0x0F,
1777         MatchCaseSensitive = 16,
1778         MatchWrap = 32,
1779         MatchRecursive = 64
1780     }
1781 alias MatchFlags = QFlags!(MatchFlag);
1782     /+ Q_DECLARE_FLAGS(MatchFlags, MatchFlag) +/
1783     /+pragma(inline, true) QFlags!(MatchFlags.enum_type) operator |(MatchFlags.enum_type f1, MatchFlags.enum_type f2)/+noexcept+/{return QFlags!(MatchFlags.enum_type)(f1)|f2;}+/
1784 /+pragma(inline, true) QFlags!(MatchFlags.enum_type) operator |(MatchFlags.enum_type f1, QFlags!(MatchFlags.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1785 /+pragma(inline, true) QFlags!(MatchFlags.enum_type) operator &(MatchFlags.enum_type f1, MatchFlags.enum_type f2)/+noexcept+/{return QFlags!(MatchFlags.enum_type)(f1)&f2;}+/
1786 /+pragma(inline, true) QFlags!(MatchFlags.enum_type) operator &(MatchFlags.enum_type f1, QFlags!(MatchFlags.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1787 /+pragma(inline, true) void operator +(MatchFlags.enum_type f1, MatchFlags.enum_type f2)/+noexcept+/;+/
1788 /+pragma(inline, true) void operator +(MatchFlags.enum_type f1, QFlags!(MatchFlags.enum_type) f2)/+noexcept+/;+/
1789 /+pragma(inline, true) void operator +(int f1, QFlags!(MatchFlags.enum_type) f2)/+noexcept+/;+/
1790 /+pragma(inline, true) void operator -(MatchFlags.enum_type f1, MatchFlags.enum_type f2)/+noexcept+/;+/
1791 /+pragma(inline, true) void operator -(MatchFlags.enum_type f1, QFlags!(MatchFlags.enum_type) f2)/+noexcept+/;+/
1792 /+pragma(inline, true) void operator -(int f1, QFlags!(MatchFlags.enum_type) f2)/+noexcept+/;+/
1793 /+pragma(inline, true) QIncompatibleFlag operator |(MatchFlags.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1794 /+pragma(inline, true) void operator +(int f1, MatchFlags.enum_type f2)/+noexcept+/;+/
1795 /+pragma(inline, true) void operator +(MatchFlags.enum_type f1, int f2)/+noexcept+/;+/
1796 /+pragma(inline, true) void operator -(int f1, MatchFlags.enum_type f2)/+noexcept+/;+/
1797 /+pragma(inline, true) void operator -(MatchFlags.enum_type f1, int f2)/+noexcept+/;+/
1798     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(MatchFlags) +/
1799     alias HANDLE = void*;
1800 
1801     enum WindowModality {
1802         NonModal,
1803         WindowModal,
1804         ApplicationModal
1805     }
1806 
1807     enum TextInteractionFlag {
1808         NoTextInteraction         = 0,
1809         TextSelectableByMouse     = 1,
1810         TextSelectableByKeyboard  = 2,
1811         LinksAccessibleByMouse    = 4,
1812         LinksAccessibleByKeyboard = 8,
1813         TextEditable              = 16,
1814 
1815         TextEditorInteraction     = TextInteractionFlag.TextSelectableByMouse | TextInteractionFlag.TextSelectableByKeyboard | TextInteractionFlag.TextEditable,
1816         TextBrowserInteraction    = TextInteractionFlag.TextSelectableByMouse | TextInteractionFlag.LinksAccessibleByMouse | TextInteractionFlag.LinksAccessibleByKeyboard
1817     }
1818 alias TextInteractionFlags = QFlags!(TextInteractionFlag);
1819     /+ Q_DECLARE_FLAGS(TextInteractionFlags, TextInteractionFlag) +/
1820     /+pragma(inline, true) QFlags!(TextInteractionFlags.enum_type) operator |(TextInteractionFlags.enum_type f1, TextInteractionFlags.enum_type f2)/+noexcept+/{return QFlags!(TextInteractionFlags.enum_type)(f1)|f2;}+/
1821 /+pragma(inline, true) QFlags!(TextInteractionFlags.enum_type) operator |(TextInteractionFlags.enum_type f1, QFlags!(TextInteractionFlags.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1822 /+pragma(inline, true) QFlags!(TextInteractionFlags.enum_type) operator &(TextInteractionFlags.enum_type f1, TextInteractionFlags.enum_type f2)/+noexcept+/{return QFlags!(TextInteractionFlags.enum_type)(f1)&f2;}+/
1823 /+pragma(inline, true) QFlags!(TextInteractionFlags.enum_type) operator &(TextInteractionFlags.enum_type f1, QFlags!(TextInteractionFlags.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1824 /+pragma(inline, true) void operator +(TextInteractionFlags.enum_type f1, TextInteractionFlags.enum_type f2)/+noexcept+/;+/
1825 /+pragma(inline, true) void operator +(TextInteractionFlags.enum_type f1, QFlags!(TextInteractionFlags.enum_type) f2)/+noexcept+/;+/
1826 /+pragma(inline, true) void operator +(int f1, QFlags!(TextInteractionFlags.enum_type) f2)/+noexcept+/;+/
1827 /+pragma(inline, true) void operator -(TextInteractionFlags.enum_type f1, TextInteractionFlags.enum_type f2)/+noexcept+/;+/
1828 /+pragma(inline, true) void operator -(TextInteractionFlags.enum_type f1, QFlags!(TextInteractionFlags.enum_type) f2)/+noexcept+/;+/
1829 /+pragma(inline, true) void operator -(int f1, QFlags!(TextInteractionFlags.enum_type) f2)/+noexcept+/;+/
1830 /+pragma(inline, true) QIncompatibleFlag operator |(TextInteractionFlags.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1831 /+pragma(inline, true) void operator +(int f1, TextInteractionFlags.enum_type f2)/+noexcept+/;+/
1832 /+pragma(inline, true) void operator +(TextInteractionFlags.enum_type f1, int f2)/+noexcept+/;+/
1833 /+pragma(inline, true) void operator -(int f1, TextInteractionFlags.enum_type f2)/+noexcept+/;+/
1834 /+pragma(inline, true) void operator -(TextInteractionFlags.enum_type f1, int f2)/+noexcept+/;+/
1835     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(TextInteractionFlags) +/
1836     enum EventPriority {
1837         HighEventPriority = 1,
1838         NormalEventPriority = 0,
1839         LowEventPriority = -1
1840     }
1841 
1842     enum SizeHint {
1843         MinimumSize,
1844         PreferredSize,
1845         MaximumSize,
1846         MinimumDescent,
1847         NSizeHints
1848     }
1849 
1850     enum WindowFrameSection {
1851         NoSection,
1852         LeftSection,           // For resize
1853         TopLeftSection,
1854         TopSection,
1855         TopRightSection,
1856         RightSection,
1857         BottomRightSection,
1858         BottomSection,
1859         BottomLeftSection,
1860         TitleBarArea    // For move
1861     }
1862 
1863     enum /+ class +/ Initialization {
1864         Uninitialized
1865     }
1866     extern(D) immutable Initialization Uninitialized = Initialization.Uninitialized;
1867 
1868     enum CoordinateSystem {
1869         DeviceCoordinates,
1870         LogicalCoordinates
1871     }
1872 
1873     enum TouchPointState {
1874         TouchPointUnknownState = 0x00,
1875         TouchPointPressed    = 0x01,
1876         TouchPointMoved      = 0x02,
1877         TouchPointStationary = 0x04,
1878         TouchPointReleased   = 0x08
1879     }
1880 alias TouchPointStates = QFlags!(TouchPointState);
1881     /+ Q_DECLARE_FLAGS(TouchPointStates, TouchPointState) +/
1882     /+pragma(inline, true) QFlags!(TouchPointStates.enum_type) operator |(TouchPointStates.enum_type f1, TouchPointStates.enum_type f2)/+noexcept+/{return QFlags!(TouchPointStates.enum_type)(f1)|f2;}+/
1883 /+pragma(inline, true) QFlags!(TouchPointStates.enum_type) operator |(TouchPointStates.enum_type f1, QFlags!(TouchPointStates.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1884 /+pragma(inline, true) QFlags!(TouchPointStates.enum_type) operator &(TouchPointStates.enum_type f1, TouchPointStates.enum_type f2)/+noexcept+/{return QFlags!(TouchPointStates.enum_type)(f1)&f2;}+/
1885 /+pragma(inline, true) QFlags!(TouchPointStates.enum_type) operator &(TouchPointStates.enum_type f1, QFlags!(TouchPointStates.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1886 /+pragma(inline, true) void operator +(TouchPointStates.enum_type f1, TouchPointStates.enum_type f2)/+noexcept+/;+/
1887 /+pragma(inline, true) void operator +(TouchPointStates.enum_type f1, QFlags!(TouchPointStates.enum_type) f2)/+noexcept+/;+/
1888 /+pragma(inline, true) void operator +(int f1, QFlags!(TouchPointStates.enum_type) f2)/+noexcept+/;+/
1889 /+pragma(inline, true) void operator -(TouchPointStates.enum_type f1, TouchPointStates.enum_type f2)/+noexcept+/;+/
1890 /+pragma(inline, true) void operator -(TouchPointStates.enum_type f1, QFlags!(TouchPointStates.enum_type) f2)/+noexcept+/;+/
1891 /+pragma(inline, true) void operator -(int f1, QFlags!(TouchPointStates.enum_type) f2)/+noexcept+/;+/
1892 /+pragma(inline, true) QIncompatibleFlag operator |(TouchPointStates.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1893 /+pragma(inline, true) void operator +(int f1, TouchPointStates.enum_type f2)/+noexcept+/;+/
1894 /+pragma(inline, true) void operator +(TouchPointStates.enum_type f1, int f2)/+noexcept+/;+/
1895 /+pragma(inline, true) void operator -(int f1, TouchPointStates.enum_type f2)/+noexcept+/;+/
1896 /+pragma(inline, true) void operator -(TouchPointStates.enum_type f1, int f2)/+noexcept+/;+/
1897     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(TouchPointStates) +/
1898 version(QT_NO_GESTURES){}else
1899 {
1900     enum GestureState
1901     {
1902         NoGesture,
1903         GestureStarted  = 1,
1904         GestureUpdated  = 2,
1905         GestureFinished = 3,
1906         GestureCanceled = 4
1907     }
1908 
1909     enum GestureType
1910     {
1911         TapGesture        = 1,
1912         TapAndHoldGesture = 2,
1913         PanGesture        = 3,
1914         PinchGesture      = 4,
1915         SwipeGesture      = 5,
1916 
1917         CustomGesture     = 0x0100,
1918 
1919         LastGestureType   = ~0u
1920     }
1921 
1922     enum GestureFlag
1923     {
1924         DontStartGestureOnChildren = 0x01,
1925         ReceivePartialGestures     = 0x02,
1926         IgnoredGesturesPropagateToParent = 0x04
1927     }
1928 alias GestureFlags = QFlags!(GestureFlag);
1929     /+ Q_DECLARE_FLAGS(GestureFlags, GestureFlag) +/
1930     /+pragma(inline, true) QFlags!(GestureFlags.enum_type) operator |(GestureFlags.enum_type f1, GestureFlags.enum_type f2)/+noexcept+/{return QFlags!(GestureFlags.enum_type)(f1)|f2;}+/
1931 /+pragma(inline, true) QFlags!(GestureFlags.enum_type) operator |(GestureFlags.enum_type f1, QFlags!(GestureFlags.enum_type) f2)/+noexcept+/{return f2|f1;}+/
1932 /+pragma(inline, true) QFlags!(GestureFlags.enum_type) operator &(GestureFlags.enum_type f1, GestureFlags.enum_type f2)/+noexcept+/{return QFlags!(GestureFlags.enum_type)(f1)&f2;}+/
1933 /+pragma(inline, true) QFlags!(GestureFlags.enum_type) operator &(GestureFlags.enum_type f1, QFlags!(GestureFlags.enum_type) f2)/+noexcept+/{return f2&f1;}+/
1934 /+pragma(inline, true) void operator +(GestureFlags.enum_type f1, GestureFlags.enum_type f2)/+noexcept+/;+/
1935 /+pragma(inline, true) void operator +(GestureFlags.enum_type f1, QFlags!(GestureFlags.enum_type) f2)/+noexcept+/;+/
1936 /+pragma(inline, true) void operator +(int f1, QFlags!(GestureFlags.enum_type) f2)/+noexcept+/;+/
1937 /+pragma(inline, true) void operator -(GestureFlags.enum_type f1, GestureFlags.enum_type f2)/+noexcept+/;+/
1938 /+pragma(inline, true) void operator -(GestureFlags.enum_type f1, QFlags!(GestureFlags.enum_type) f2)/+noexcept+/;+/
1939 /+pragma(inline, true) void operator -(int f1, QFlags!(GestureFlags.enum_type) f2)/+noexcept+/;+/
1940 /+pragma(inline, true) QIncompatibleFlag operator |(GestureFlags.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
1941 /+pragma(inline, true) void operator +(int f1, GestureFlags.enum_type f2)/+noexcept+/;+/
1942 /+pragma(inline, true) void operator +(GestureFlags.enum_type f1, int f2)/+noexcept+/;+/
1943 /+pragma(inline, true) void operator -(int f1, GestureFlags.enum_type f2)/+noexcept+/;+/
1944 /+pragma(inline, true) void operator -(GestureFlags.enum_type f1, int f2)/+noexcept+/;+/
1945     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(GestureFlags) +/
1946     enum NativeGestureType
1947     {
1948         BeginNativeGesture,
1949         EndNativeGesture,
1950         PanNativeGesture,
1951         ZoomNativeGesture,
1952         SmartZoomNativeGesture,
1953         RotateNativeGesture,
1954         SwipeNativeGesture
1955     }
1956 
1957 }
1958 
1959     enum NavigationMode
1960     {
1961         NavigationModeNone,
1962         NavigationModeKeypadTabOrder,
1963         NavigationModeKeypadDirectional,
1964         NavigationModeCursorAuto,
1965         NavigationModeCursorForceVisible
1966     }
1967 
1968     enum CursorMoveStyle {
1969         LogicalMoveStyle,
1970         VisualMoveStyle
1971     }
1972 
1973     enum TimerType {
1974         PreciseTimer,
1975         CoarseTimer,
1976         VeryCoarseTimer
1977     }
1978 
1979     enum ScrollPhase {
1980         NoScrollPhase = 0,
1981         ScrollBegin,
1982         ScrollUpdate,
1983         ScrollEnd,
1984         ScrollMomentum
1985     }
1986 
1987     enum MouseEventSource {
1988         MouseEventNotSynthesized,
1989         MouseEventSynthesizedBySystem,
1990         MouseEventSynthesizedByQt,
1991         MouseEventSynthesizedByApplication
1992     }
1993 
1994     enum MouseEventFlag {
1995         NoMouseEventFlag = 0x00,
1996         MouseEventCreatedDoubleClick = 0x01,
1997         MouseEventFlagMask = 0xFF
1998     }
1999 alias MouseEventFlags = QFlags!(MouseEventFlag);
2000     /+ Q_DECLARE_FLAGS(MouseEventFlags, MouseEventFlag) +/
2001     /+pragma(inline, true) QFlags!(MouseEventFlags.enum_type) operator |(MouseEventFlags.enum_type f1, MouseEventFlags.enum_type f2)/+noexcept+/{return QFlags!(MouseEventFlags.enum_type)(f1)|f2;}+/
2002 /+pragma(inline, true) QFlags!(MouseEventFlags.enum_type) operator |(MouseEventFlags.enum_type f1, QFlags!(MouseEventFlags.enum_type) f2)/+noexcept+/{return f2|f1;}+/
2003 /+pragma(inline, true) QFlags!(MouseEventFlags.enum_type) operator &(MouseEventFlags.enum_type f1, MouseEventFlags.enum_type f2)/+noexcept+/{return QFlags!(MouseEventFlags.enum_type)(f1)&f2;}+/
2004 /+pragma(inline, true) QFlags!(MouseEventFlags.enum_type) operator &(MouseEventFlags.enum_type f1, QFlags!(MouseEventFlags.enum_type) f2)/+noexcept+/{return f2&f1;}+/
2005 /+pragma(inline, true) void operator +(MouseEventFlags.enum_type f1, MouseEventFlags.enum_type f2)/+noexcept+/;+/
2006 /+pragma(inline, true) void operator +(MouseEventFlags.enum_type f1, QFlags!(MouseEventFlags.enum_type) f2)/+noexcept+/;+/
2007 /+pragma(inline, true) void operator +(int f1, QFlags!(MouseEventFlags.enum_type) f2)/+noexcept+/;+/
2008 /+pragma(inline, true) void operator -(MouseEventFlags.enum_type f1, MouseEventFlags.enum_type f2)/+noexcept+/;+/
2009 /+pragma(inline, true) void operator -(MouseEventFlags.enum_type f1, QFlags!(MouseEventFlags.enum_type) f2)/+noexcept+/;+/
2010 /+pragma(inline, true) void operator -(int f1, QFlags!(MouseEventFlags.enum_type) f2)/+noexcept+/;+/
2011 /+pragma(inline, true) QIncompatibleFlag operator |(MouseEventFlags.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
2012 /+pragma(inline, true) void operator +(int f1, MouseEventFlags.enum_type f2)/+noexcept+/;+/
2013 /+pragma(inline, true) void operator +(MouseEventFlags.enum_type f1, int f2)/+noexcept+/;+/
2014 /+pragma(inline, true) void operator -(int f1, MouseEventFlags.enum_type f2)/+noexcept+/;+/
2015 /+pragma(inline, true) void operator -(MouseEventFlags.enum_type f1, int f2)/+noexcept+/;+/
2016     /+ Q_DECLARE_OPERATORS_FOR_FLAGS(MouseEventFlags) +/
2017     enum ChecksumType {
2018         ChecksumIso3309,
2019         ChecksumItuV41
2020     }
2021 
2022     enum /+ class +/ HighDpiScaleFactorRoundingPolicy {
2023         Unset,
2024         Round,
2025         Ceil,
2026         Floor,
2027         RoundPreferFloor,
2028         PassThrough
2029     }
2030 
2031     // QTBUG-48701
2032     enum ReturnByValueConstant { ReturnByValue } // ### Qt 7: Remove me
2033 
2034 /+ #ifndef Q_QDOC
2035     // NOTE: Generally, do not add Q_ENUM_NS if a corresponding Q_FLAG_NS exists.
2036     Q_ENUM_NS(ScrollBarPolicy)
2037     Q_ENUM_NS(FocusPolicy)
2038     Q_ENUM_NS(ContextMenuPolicy)
2039     Q_ENUM_NS(ArrowType)
2040     Q_ENUM_NS(ToolButtonStyle)
2041     Q_ENUM_NS(PenStyle)
2042     Q_ENUM_NS(PenCapStyle)
2043     Q_ENUM_NS(PenJoinStyle)
2044     Q_ENUM_NS(BrushStyle)
2045     Q_ENUM_NS(FillRule)
2046     Q_ENUM_NS(MaskMode)
2047     Q_ENUM_NS(BGMode)
2048     Q_ENUM_NS(ClipOperation)
2049     Q_ENUM_NS(SizeMode)
2050     Q_ENUM_NS(Axis)
2051     Q_ENUM_NS(Corner)
2052     Q_ENUM_NS(Edge)
2053     Q_ENUM_NS(LayoutDirection)
2054     Q_ENUM_NS(SizeHint)
2055     Q_ENUM_NS(Orientation)
2056     Q_ENUM_NS(DropAction)
2057     Q_FLAG_NS(Alignment)
2058     Q_ENUM_NS(TextFlag)
2059     Q_FLAG_NS(Orientations)
2060     Q_FLAG_NS(SplitBehavior)
2061     Q_FLAG_NS(DropActions)
2062     Q_FLAG_NS(Edges)
2063     Q_FLAG_NS(DockWidgetAreas)
2064     Q_FLAG_NS(ToolBarAreas)
2065     Q_ENUM_NS(DockWidgetArea)
2066     Q_ENUM_NS(ToolBarArea)
2067     Q_ENUM_NS(TextFormat)
2068     Q_ENUM_NS(TextElideMode)
2069     Q_ENUM_NS(DateFormat)
2070     Q_ENUM_NS(TimeSpec)
2071     Q_ENUM_NS(DayOfWeek)
2072     Q_ENUM_NS(CursorShape)
2073     Q_ENUM_NS(GlobalColor)
2074     Q_ENUM_NS(AspectRatioMode)
2075     Q_ENUM_NS(TransformationMode)
2076     Q_FLAG_NS(ImageConversionFlags)
2077     Q_ENUM_NS(Key)
2078     Q_ENUM_NS(ShortcutContext)
2079     Q_ENUM_NS(TextInteractionFlag)
2080     Q_FLAG_NS(TextInteractionFlags)
2081     Q_ENUM_NS(ItemSelectionMode)
2082     Q_ENUM_NS(ItemSelectionOperation)
2083     Q_FLAG_NS(ItemFlags)
2084     Q_ENUM_NS(CheckState)
2085     Q_ENUM_NS(ItemDataRole)
2086     Q_ENUM_NS(SortOrder)
2087     Q_ENUM_NS(CaseSensitivity)
2088     Q_FLAG_NS(MatchFlags)
2089     Q_ENUM_NS(Modifier)
2090     Q_FLAG_NS(Modifiers)
2091     Q_ENUM_NS(KeyboardModifier)
2092     Q_FLAG_NS(KeyboardModifiers)
2093     Q_FLAG_NS(MouseButtons)
2094     Q_ENUM_NS(WindowType)
2095     Q_ENUM_NS(WindowState)
2096     Q_ENUM_NS(WindowModality)
2097     Q_ENUM_NS(WidgetAttribute)
2098     Q_ENUM_NS(ApplicationAttribute)
2099     Q_FLAG_NS(WindowFlags)
2100     Q_FLAG_NS(WindowStates)
2101     Q_ENUM_NS(FocusReason)
2102     Q_ENUM_NS(InputMethodHint)
2103     Q_ENUM_NS(InputMethodQuery)
2104     Q_FLAG_NS(InputMethodHints)
2105     Q_ENUM_NS(EnterKeyType)
2106     Q_FLAG_NS(InputMethodQueries)
2107     Q_FLAG_NS(TouchPointStates)
2108     Q_ENUM_NS(ScreenOrientation)
2109     Q_FLAG_NS(ScreenOrientations)
2110     Q_ENUM_NS(ConnectionType)
2111     Q_ENUM_NS(ApplicationState)
2112 #ifndef QT_NO_GESTURES
2113     Q_ENUM_NS(GestureState)
2114     Q_ENUM_NS(GestureType)
2115     Q_ENUM_NS(NativeGestureType)
2116 #endif
2117     Q_ENUM_NS(CursorMoveStyle)
2118     Q_ENUM_NS(TimerType)
2119     Q_ENUM_NS(ScrollPhase)
2120     Q_ENUM_NS(MouseEventSource)
2121     Q_FLAG_NS(MouseEventFlag)
2122     Q_ENUM_NS(ChecksumType)
2123     Q_ENUM_NS(HighDpiScaleFactorRoundingPolicy)
2124     Q_ENUM_NS(TabFocusBehavior)
2125 #endif +/ // Q_DOC
2126 
2127 }
2128 
2129 alias qInternalCallback = ExternCPPFunc!(bool function(void** ));
2130 
2131 extern(C++, class) struct /+ Q_CORE_EXPORT +/ QInternal {
2132 public:
2133     enum PaintDeviceFlags {
2134         UnknownDevice = 0x00,
2135         Widget        = 0x01,
2136         Pixmap        = 0x02,
2137         Image         = 0x03,
2138         Printer       = 0x04,
2139         Picture       = 0x05,
2140         Pbuffer       = 0x06,    // GL pbuffer
2141         FramebufferObject = 0x07, // GL framebuffer object
2142         CustomRaster  = 0x08,
2143         PaintBuffer   = 0x0a,
2144         OpenGL        = 0x0b
2145     }
2146     enum RelayoutType {
2147         RelayoutNormal,
2148         RelayoutDragging,
2149         RelayoutDropped
2150     }
2151 
2152     enum DockPosition {
2153         LeftDock,
2154         RightDock,
2155         TopDock,
2156         BottomDock,
2157         DockCount
2158     }
2159 
2160     enum Callback {
2161         EventNotifyCallback,
2162         LastCallback
2163     }
2164     static bool registerCallback(Callback, qInternalCallback);
2165     static bool unregisterCallback(Callback, qInternalCallback);
2166     static bool activateCallbacks(Callback, void** );
2167     mixin(CREATE_CONVENIENCE_WRAPPERS);
2168 }
2169 
2170 /// Binding for C++ class [QKeyCombination](https://doc.qt.io/qt-6/qkeycombination.html).
2171 @Q_RELOCATABLE_TYPE extern(C++, class) struct QKeyCombination
2172 {
2173 private:
2174     int combination = Key.Key_unknown;
2175 
2176 public:
2177     this(/+ Qt:: +/Key key/+ = /+ Qt:: +/Key.Key_unknown+/)/+ noexcept+/
2178     {
2179         this.combination = int(key);
2180     }
2181 
2182     /+ explicit +/this(/+ Qt:: +/Modifiers modifiers, /+ Qt:: +/Key key = /+ Qt:: +/Key.Key_unknown)/+ noexcept+/
2183     {
2184         this.combination = modifiers.toInt() | int(key);
2185     }
2186 
2187     /+ explicit +/this(/+ Qt:: +/KeyboardModifiers modifiers, /+ Qt:: +/Key key = /+ Qt:: +/Key.Key_unknown)/+ noexcept+/
2188     {
2189         this.combination = modifiers.toInt() | int(key);
2190     }
2191 
2192     /+ Qt:: +/KeyboardModifiers keyboardModifiers() const/+ noexcept+/
2193     {
2194         return /+ Qt:: +/KeyboardModifiers(cast(QFlag)(combination & /+ Qt:: +/KeyboardModifier.KeyboardModifierMask));
2195     }
2196 
2197     /+ Qt:: +/Key key() const/+ noexcept+/
2198     {
2199         return cast(/+ Qt:: +/Key)(combination & ~int(/+ Qt:: +/KeyboardModifier.KeyboardModifierMask));
2200     }
2201 
2202     static QKeyCombination fromCombined(int combined)
2203     {
2204         QKeyCombination result;
2205         result.combination = combined;
2206         return result;
2207     }
2208 
2209     int toCombined() const/+ noexcept+/
2210     {
2211         return combination;
2212     }
2213 
2214 /+ #if QT_DEPRECATED_SINCE(6, 0) +/
2215     /+/+ QT_DEPRECATED_VERSION_X(6, 0, "Use QKeyCombination instead of int") +/
2216         /+ Q_IMPLICIT +/ auto opCast(T : int)() const/+ noexcept+/
2217     {
2218         return combination;
2219     }+/
2220 /+ #endif +/
2221 
2222     /+ friend constexpr bool operator==(QKeyCombination lhs, QKeyCombination rhs) noexcept
2223     {
2224         return lhs.combination == rhs.combination;
2225     } +/
2226 
2227     /+ friend constexpr bool operator!=(QKeyCombination lhs, QKeyCombination rhs) noexcept
2228     {
2229         return lhs.combination != rhs.combination;
2230     } +/
2231 
2232     /+bool operator <(QKeyCombination) const /+ = delete +/;+/
2233     mixin(CREATE_CONVENIENCE_WRAPPERS);
2234 }
2235 
2236 /+ Q_DECLARE_TYPEINFO(QKeyCombination, Q_RELOCATABLE_TYPE); +/
2237 
2238 /+QKeyCombination operator |(/+ Qt:: +/Modifier modifier, /+ Qt:: +/Key key)/+ noexcept+/
2239 {
2240     return QKeyCombination(modifier, key);
2241 }+/
2242 
2243 /+QKeyCombination operator |(/+ Qt:: +/Modifiers modifiers, /+ Qt:: +/Key key)/+ noexcept+/
2244 {
2245     return QKeyCombination(modifiers, key);
2246 }+/
2247 
2248 /+QKeyCombination operator |(/+ Qt:: +/KeyboardModifier modifier, /+ Qt:: +/Key key)/+ noexcept+/
2249 {
2250     return QKeyCombination(modifier, key);
2251 }+/
2252 
2253 /+QKeyCombination operator |(/+ Qt:: +/KeyboardModifiers modifiers, /+ Qt:: +/Key key)/+ noexcept+/
2254 {
2255     return QKeyCombination(modifiers, key);
2256 }+/
2257 
2258 /+QKeyCombination operator |(/+ Qt:: +/Key key, /+ Qt:: +/Modifier modifier)/+ noexcept+/
2259 {
2260     return QKeyCombination(modifier, key);
2261 }+/
2262 
2263 /+QKeyCombination operator |(/+ Qt:: +/Key key, /+ Qt:: +/Modifiers modifiers)/+ noexcept+/
2264 {
2265     return QKeyCombination(modifiers, key);
2266 }+/
2267 
2268 /+QKeyCombination operator |(/+ Qt:: +/Key key, /+ Qt:: +/KeyboardModifier modifier)/+ noexcept+/
2269 {
2270     return QKeyCombination(modifier, key);
2271 }+/
2272 
2273 /+QKeyCombination operator |(/+ Qt:: +/Key key, /+ Qt:: +/KeyboardModifiers modifiers)/+ noexcept+/
2274 {
2275     return QKeyCombination(modifiers, key);
2276 }+/
2277 
2278 /+ #if QT_DEPRECATED_SINCE(6, 0) +/
2279 /+/+ QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +/
2280 QKeyCombination operator +(/+ Qt:: +/Modifier modifier, /+ Qt:: +/Key key)/+ noexcept+/
2281 {
2282     return QKeyCombination(modifier, key);
2283 }+/
2284 
2285 /+/+ QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +/
2286 QKeyCombination operator +(/+ Qt:: +/Modifiers modifiers, /+ Qt:: +/Key key)/+ noexcept+/
2287 {
2288     return QKeyCombination(modifiers, key);
2289 }+/
2290 
2291 /+/+ QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +/
2292 QKeyCombination operator +(/+ Qt:: +/KeyboardModifier modifier, /+ Qt:: +/Key key)/+ noexcept+/
2293 {
2294     return QKeyCombination(modifier, key);
2295 }+/
2296 
2297 /+/+ QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +/
2298 QKeyCombination operator +(/+ Qt:: +/KeyboardModifiers modifiers, /+ Qt:: +/Key key)/+ noexcept+/
2299 {
2300     return QKeyCombination(modifiers, key);
2301 }+/
2302 
2303 /+/+ QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +/
2304 QKeyCombination operator +(/+ Qt:: +/Key key, /+ Qt:: +/Modifier modifier)/+ noexcept+/
2305 {
2306     return QKeyCombination(modifier, key);
2307 }+/
2308 
2309 /+/+ QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +/
2310 QKeyCombination operator +(/+ Qt:: +/Key key, /+ Qt:: +/Modifiers modifiers)/+ noexcept+/
2311 {
2312     return QKeyCombination(modifiers, key);
2313 }+/
2314 
2315 /+/+ QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +/
2316 QKeyCombination operator +(/+ Qt:: +/Key key, /+ Qt:: +/KeyboardModifier modifier)/+ noexcept+/
2317 {
2318     return QKeyCombination(modifier, key);
2319 }+/
2320 
2321 /+/+ QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +/
2322 QKeyCombination operator +(/+ Qt:: +/Key key, /+ Qt:: +/KeyboardModifiers modifiers)/+ noexcept+/
2323 {
2324     return QKeyCombination(modifiers, key);
2325 }+/
2326 /+ #endif +/
2327