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