Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-18 09:26:39

0001 // Copyright (C) 2020 The Qt Company Ltd.
0002 // Copyright (C) 2020 Klaralvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
0003 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0004 
0005 #ifndef QNAMESPACE_H
0006 #define QNAMESPACE_H
0007 
0008 #if 0
0009 #pragma qt_class(Qt)
0010 #endif
0011 
0012 #include <QtCore/qglobal.h>
0013 #include <QtCore/qcompare.h>
0014 #include <QtCore/qtclasshelpermacros.h>
0015 #include <QtCore/qtmetamacros.h>
0016 
0017 #if defined(__OBJC__) && !defined(__cplusplus)
0018 #  warning "File built in Objective-C mode (.m), but using Qt requires Objective-C++ (.mm)"
0019 #endif
0020 
0021 QT_BEGIN_NAMESPACE
0022 
0023 struct QMetaObject;
0024 
0025 namespace Qt {
0026     Q_NAMESPACE_EXPORT(Q_CORE_EXPORT)
0027 
0028     enum GlobalColor {
0029         color0,
0030         color1,
0031         black,
0032         white,
0033         darkGray,
0034         gray,
0035         lightGray,
0036         red,
0037         green,
0038         blue,
0039         cyan,
0040         magenta,
0041         yellow,
0042         darkRed,
0043         darkGreen,
0044         darkBlue,
0045         darkCyan,
0046         darkMagenta,
0047         darkYellow,
0048         transparent
0049     };
0050 
0051     enum class ColorScheme {
0052         Unknown,
0053         Light,
0054         Dark,
0055     };
0056 
0057     enum MouseButton {
0058         NoButton         = 0x00000000,
0059         LeftButton       = 0x00000001,
0060         RightButton      = 0x00000002,
0061         MiddleButton     = 0x00000004,
0062         BackButton       = 0x00000008,
0063         XButton1         = BackButton,
0064         ExtraButton1     = XButton1,
0065         ForwardButton    = 0x00000010,
0066         XButton2         = ForwardButton,
0067         ExtraButton2     = ForwardButton,
0068         TaskButton       = 0x00000020,
0069         ExtraButton3     = TaskButton,
0070         ExtraButton4     = 0x00000040,
0071         ExtraButton5     = 0x00000080,
0072         ExtraButton6     = 0x00000100,
0073         ExtraButton7     = 0x00000200,
0074         ExtraButton8     = 0x00000400,
0075         ExtraButton9     = 0x00000800,
0076         ExtraButton10    = 0x00001000,
0077         ExtraButton11    = 0x00002000,
0078         ExtraButton12    = 0x00004000,
0079         ExtraButton13    = 0x00008000,
0080         ExtraButton14    = 0x00010000,
0081         ExtraButton15    = 0x00020000,
0082         ExtraButton16    = 0x00040000,
0083         ExtraButton17    = 0x00080000,
0084         ExtraButton18    = 0x00100000,
0085         ExtraButton19    = 0x00200000,
0086         ExtraButton20    = 0x00400000,
0087         ExtraButton21    = 0x00800000,
0088         ExtraButton22    = 0x01000000,
0089         ExtraButton23    = 0x02000000,
0090         ExtraButton24    = 0x04000000,
0091         AllButtons       = 0x07ffffff,
0092         MaxMouseButton   = ExtraButton24,
0093         // 4 high-order bits remain available for future use (0x08000000 through 0x40000000).
0094         MouseButtonMask  = 0xffffffff
0095     };
0096     Q_DECLARE_FLAGS(MouseButtons, MouseButton)
0097     Q_DECLARE_OPERATORS_FOR_FLAGS(MouseButtons)
0098 
0099     enum Orientation {
0100         Horizontal = 0x1,
0101         Vertical = 0x2
0102     };
0103 
0104     Q_DECLARE_FLAGS(Orientations, Orientation)
0105     Q_DECLARE_OPERATORS_FOR_FLAGS(Orientations)
0106 
0107     enum FocusPolicy {
0108         NoFocus = 0,
0109         TabFocus = 0x1,
0110         ClickFocus = 0x2,
0111         StrongFocus = TabFocus | ClickFocus | 0x8,
0112         WheelFocus = StrongFocus | 0x4
0113     };
0114 
0115     enum TabFocusBehavior {
0116         NoTabFocus           = 0x00,
0117         TabFocusTextControls = 0x01,
0118         TabFocusListControls = 0x02,
0119         TabFocusAllControls  = 0xff
0120     };
0121 
0122     enum SortOrder {
0123         AscendingOrder,
0124         DescendingOrder
0125     };
0126 
0127     enum SplitBehaviorFlags {
0128         KeepEmptyParts = 0,
0129         SkipEmptyParts = 0x1,
0130     };
0131     Q_DECLARE_FLAGS(SplitBehavior, SplitBehaviorFlags)
0132     Q_DECLARE_OPERATORS_FOR_FLAGS(SplitBehavior)
0133 
0134     enum TileRule {
0135         StretchTile,
0136         RepeatTile,
0137         RoundTile
0138     };
0139 
0140     // Text formatting flags for QPainter::drawText and QLabel.
0141     // The following two enums can be combined to one integer which
0142     // is passed as 'flags' to QPainter::drawText, QFontMetrics::boundingRect and qt_format_text.
0143 
0144     enum AlignmentFlag {
0145         AlignLeft = 0x0001,
0146         AlignLeading = AlignLeft,
0147         AlignRight = 0x0002,
0148         AlignTrailing = AlignRight,
0149         AlignHCenter = 0x0004,
0150         AlignJustify = 0x0008,
0151         AlignAbsolute = 0x0010,
0152         AlignHorizontal_Mask = AlignLeft | AlignRight | AlignHCenter | AlignJustify | AlignAbsolute,
0153 
0154         AlignTop = 0x0020,
0155         AlignBottom = 0x0040,
0156         AlignVCenter = 0x0080,
0157         AlignBaseline = 0x0100,
0158         // Note that 0x100 will clash with Qt::TextSingleLine = 0x100 due to what the comment above
0159         // this enum declaration states. However, since Qt::AlignBaseline is only used by layouts,
0160         // it doesn't make sense to pass Qt::AlignBaseline to QPainter::drawText(), so there
0161         // shouldn't really be any ambiguity between the two overlapping enum values.
0162         AlignVertical_Mask = AlignTop | AlignBottom | AlignVCenter | AlignBaseline,
0163 
0164         AlignCenter = AlignVCenter | AlignHCenter
0165     };
0166 
0167     Q_DECLARE_FLAGS(Alignment, AlignmentFlag)
0168     Q_DECLARE_OPERATORS_FOR_FLAGS(Alignment)
0169 
0170     enum TextFlag {
0171         TextSingleLine = 0x0100,
0172         TextDontClip = 0x0200,
0173         TextExpandTabs = 0x0400,
0174         TextShowMnemonic = 0x0800,
0175         TextWordWrap = 0x1000,
0176         TextWrapAnywhere = 0x2000,
0177         TextDontPrint = 0x4000,
0178         TextIncludeTrailingSpaces = 0x08000000,
0179         TextHideMnemonic = 0x8000,
0180         TextJustificationForced = 0x10000,
0181         TextForceLeftToRight = 0x20000,
0182         TextForceRightToLeft = 0x40000,
0183         // Ensures that the longest variant is always used when computing the
0184         // size of a multi-variant string.
0185         TextLongestVariant = 0x80000
0186     };
0187     Q_DECLARE_MIXED_ENUM_OPERATORS_SYMMETRIC(int, AlignmentFlag, TextFlag)
0188 
0189     enum TextElideMode {
0190         ElideLeft,
0191         ElideRight,
0192         ElideMiddle,
0193         ElideNone
0194     };
0195     Q_DECLARE_MIXED_ENUM_OPERATORS_SYMMETRIC(int, TextElideMode, TextFlag)
0196 
0197     enum WhiteSpaceMode {
0198         WhiteSpaceNormal,
0199         WhiteSpacePre,
0200         WhiteSpaceNoWrap,
0201         WhiteSpaceModeUndefined = -1
0202     };
0203 
0204     enum HitTestAccuracy { ExactHit, FuzzyHit };
0205 
0206     enum WindowType {
0207         Widget = 0x00000000,
0208         Window = 0x00000001,
0209         Dialog = 0x00000002 | Window,
0210         Sheet = 0x00000004 | Window,
0211         Drawer = Sheet | Dialog,
0212         Popup = 0x00000008 | Window,
0213         Tool = Popup | Dialog,
0214         ToolTip = Popup | Sheet,
0215         SplashScreen = ToolTip | Dialog,
0216         Desktop = 0x00000010 | Window,
0217         SubWindow = 0x00000012, // Note QTBUG-115729 before using
0218         ForeignWindow = 0x00000020 | Window,
0219         CoverWindow = 0x00000040 | Window,
0220 
0221         WindowType_Mask = 0x000000ff,
0222         MSWindowsFixedSizeDialogHint = 0x00000100,
0223         MSWindowsOwnDC = 0x00000200,
0224         BypassWindowManagerHint = 0x00000400,
0225         X11BypassWindowManagerHint = BypassWindowManagerHint,
0226         FramelessWindowHint = 0x00000800,
0227         WindowTitleHint = 0x00001000,
0228         WindowSystemMenuHint = 0x00002000,
0229         WindowMinimizeButtonHint = 0x00004000,
0230         WindowMaximizeButtonHint = 0x00008000,
0231         WindowMinMaxButtonsHint = WindowMinimizeButtonHint | WindowMaximizeButtonHint,
0232         WindowContextHelpButtonHint = 0x00010000,
0233         WindowShadeButtonHint = 0x00020000,
0234         WindowStaysOnTopHint = 0x00040000,
0235         WindowTransparentForInput = 0x00080000,
0236         WindowOverridesSystemGestures = 0x00100000,
0237         WindowDoesNotAcceptFocus = 0x00200000,
0238 #if QT_DEPRECATED_SINCE(6, 13)
0239         MaximizeUsingFullscreenGeometryHint Q_DECL_ENUMERATOR_DEPRECATED_X(
0240             "Use Qt::ExpandedClientAreaHint instead") = 0x00400000,
0241 #endif
0242         ExpandedClientAreaHint = 0x00400000,
0243         NoTitleBarBackgroundHint = 0x00800000,
0244 
0245         CustomizeWindowHint = 0x02000000,
0246         WindowStaysOnBottomHint = 0x04000000,
0247         WindowCloseButtonHint = 0x08000000,
0248 #if QT_DEPRECATED_SINCE(6, 9)
0249         MacWindowToolBarButtonHint Q_DECL_ENUMERATOR_DEPRECATED_X(
0250             "This flag has been a no-op since Qt 5") = 0x10000000,
0251 #endif
0252         BypassGraphicsProxyWidget = 0x20000000,
0253         NoDropShadowWindowHint = 0x40000000,
0254         WindowFullscreenButtonHint = 0x80000000
0255     };
0256 
0257     Q_DECLARE_FLAGS(WindowFlags, WindowType)
0258     Q_DECLARE_OPERATORS_FOR_FLAGS(WindowFlags)
0259 
0260     enum WindowState {
0261         WindowNoState    = 0x00000000,
0262         WindowMinimized  = 0x00000001,
0263         WindowMaximized  = 0x00000002,
0264         WindowFullScreen = 0x00000004,
0265         WindowActive     = 0x00000008
0266     };
0267 
0268     Q_DECLARE_FLAGS(WindowStates, WindowState)
0269     Q_DECLARE_OPERATORS_FOR_FLAGS(WindowStates)
0270 
0271     enum ApplicationState {
0272         ApplicationSuspended    = 0x00000000,
0273         ApplicationHidden       = 0x00000001,
0274         ApplicationInactive     = 0x00000002,
0275         ApplicationActive       = 0x00000004
0276     };
0277 
0278     Q_DECLARE_FLAGS(ApplicationStates, ApplicationState)
0279 
0280     enum ScreenOrientation {
0281         PrimaryOrientation           = 0x00000000,
0282         PortraitOrientation          = 0x00000001,
0283         LandscapeOrientation         = 0x00000002,
0284         InvertedPortraitOrientation  = 0x00000004,
0285         InvertedLandscapeOrientation = 0x00000008
0286     };
0287 
0288     Q_DECLARE_FLAGS(ScreenOrientations, ScreenOrientation)
0289     Q_DECLARE_OPERATORS_FOR_FLAGS(ScreenOrientations)
0290 
0291     enum WidgetAttribute {
0292         WA_Disabled = 0,
0293         WA_UnderMouse = 1,
0294         WA_MouseTracking = 2,
0295         // Formerly, 3 was WA_ContentsPropagated.
0296         WA_OpaquePaintEvent = 4,
0297         WA_StaticContents = 5,
0298         WA_LaidOut = 7,
0299         WA_PaintOnScreen = 8,
0300         WA_NoSystemBackground = 9,
0301         WA_UpdatesDisabled = 10,
0302         WA_Mapped = 11,
0303         // Formerly, 12 was WA_MacNoClickThrough.
0304         WA_InputMethodEnabled = 14,
0305         WA_WState_Visible = 15,
0306         WA_WState_Hidden = 16,
0307 
0308         WA_ForceDisabled = 32,
0309         WA_KeyCompression = 33,
0310         WA_PendingMoveEvent = 34,
0311         WA_PendingResizeEvent = 35,
0312         WA_SetPalette = 36,
0313         WA_SetFont = 37,
0314         WA_SetCursor = 38,
0315         WA_NoChildEventsFromChildren = 39,
0316         WA_WindowModified = 41,
0317         WA_Resized = 42,
0318         WA_Moved = 43,
0319         WA_PendingUpdate = 44,
0320         WA_InvalidSize = 45,
0321         // Formerly 46 was WA_MacBrushedMetal and WA_MacMetalStyle.
0322         WA_CustomWhatsThis = 47,
0323         WA_LayoutOnEntireRect = 48,
0324         WA_OutsideWSRange = 49,
0325         WA_GrabbedShortcut = 50,
0326         WA_TransparentForMouseEvents = 51,
0327         WA_PaintUnclipped = 52,
0328         WA_SetWindowIcon = 53,
0329         WA_NoMouseReplay = 54,
0330         WA_DeleteOnClose = 55,
0331         WA_RightToLeft = 56,
0332         WA_SetLayoutDirection = 57,
0333         WA_NoChildEventsForParent = 58,
0334         WA_ForceUpdatesDisabled = 59,
0335 
0336         WA_WState_Created = 60,
0337         WA_WState_CompressKeys = 61,
0338         WA_WState_InPaintEvent = 62,
0339         WA_WState_Reparented = 63,
0340         WA_WState_ConfigPending = 64,
0341         WA_WState_Polished = 66,
0342         // Formerly, 67 was WA_WState_DND.
0343         WA_WState_OwnSizePolicy = 68,
0344         WA_WState_ExplicitShowHide = 69,
0345 
0346         WA_ShowModal = 70, // ## deprecated since since 4.5.1 but still in use :-(
0347         WA_MouseNoMask = 71,
0348         WA_NoMousePropagation = 73, // for now, might go away.
0349         WA_Hover = 74,
0350         WA_InputMethodTransparent = 75, // Don't reset IM when user clicks on this (for virtual keyboards on embedded)
0351         WA_QuitOnClose = 76,
0352 
0353         WA_KeyboardFocusChange = 77,
0354 
0355         WA_AcceptDrops = 78,
0356         WA_DropSiteRegistered = 79, // internal
0357 
0358         WA_WindowPropagation = 80,
0359 
0360         WA_NoX11EventCompression = 81,
0361         WA_TintedBackground = 82,
0362         WA_X11OpenGLOverlay = 83,
0363         WA_AlwaysShowToolTips = 84,
0364         WA_MacOpaqueSizeGrip = 85,
0365         WA_SetStyle = 86,
0366 
0367         WA_SetLocale = 87,
0368         WA_MacShowFocusRect = 88,
0369 
0370         WA_MacNormalSize = 89,  // Mac only
0371         WA_MacSmallSize = 90,   // Mac only
0372         WA_MacMiniSize = 91,    // Mac only
0373 
0374         WA_LayoutUsesWidgetRect = 92,
0375         WA_StyledBackground = 93, // internal
0376         // Formerly, 94 was WA_MSWindowsUseDirect3D.
0377         WA_CanHostQMdiSubWindowTitleBar = 95, // Internal
0378 
0379         WA_MacAlwaysShowToolWindow = 96, // Mac only
0380 
0381         WA_StyleSheet = 97, // internal
0382 
0383         WA_ShowWithoutActivating = 98,
0384 
0385         WA_X11BypassTransientForHint = 99,
0386 
0387         WA_NativeWindow = 100,
0388         WA_DontCreateNativeAncestors = 101,
0389 
0390         // Formerly WA_MacVariableSize = 102,    // Mac only
0391 
0392         WA_DontShowOnScreen = 103,
0393 
0394         // window types from http://standards.freedesktop.org/wm-spec/
0395         WA_X11NetWmWindowTypeDesktop = 104,
0396         WA_X11NetWmWindowTypeDock = 105,
0397         WA_X11NetWmWindowTypeToolBar = 106,
0398         WA_X11NetWmWindowTypeMenu = 107,
0399         WA_X11NetWmWindowTypeUtility = 108,
0400         WA_X11NetWmWindowTypeSplash = 109,
0401         WA_X11NetWmWindowTypeDialog = 110,
0402         WA_X11NetWmWindowTypeDropDownMenu = 111,
0403         WA_X11NetWmWindowTypePopupMenu = 112,
0404         WA_X11NetWmWindowTypeToolTip = 113,
0405         WA_X11NetWmWindowTypeNotification = 114,
0406         WA_X11NetWmWindowTypeCombo = 115,
0407         WA_X11NetWmWindowTypeDND = 116,
0408         // Formerly, 117 was WA_MacFrameworkScaled.
0409         WA_SetWindowModality = 118,
0410         WA_WState_WindowOpacitySet = 119, // internal
0411         WA_TranslucentBackground = 120,
0412 
0413         WA_AcceptTouchEvents = 121,
0414         WA_WState_AcceptedTouchBeginEvent = 122,
0415         WA_TouchPadAcceptSingleTouchEvents = 123,
0416 
0417         WA_X11DoNotAcceptFocus = 126,
0418         // Formerly, 127 was WA_MacNoShadow
0419 
0420         WA_AlwaysStackOnTop = 128,
0421 
0422         WA_TabletTracking = 129,
0423 
0424         WA_ContentsMarginsRespectsSafeArea = 130,
0425 
0426         WA_StyleSheetTarget = 131,
0427 
0428         // Add new attributes before this line
0429         WA_AttributeCount
0430     };
0431 
0432     enum ApplicationAttribute
0433     {
0434         // AA_ImmediateWidgetCreation = 0,
0435         AA_QtQuickUseDefaultSizePolicy = 1,
0436         AA_DontShowIconsInMenus = 2,
0437         AA_NativeWindows = 3,
0438         AA_DontCreateNativeWidgetSiblings = 4,
0439         AA_PluginApplication = 5,
0440         AA_DontUseNativeMenuBar = 6,
0441         AA_MacDontSwapCtrlAndMeta = 7,
0442         AA_Use96Dpi = 8,
0443         AA_DisableNativeVirtualKeyboard = 9,
0444         AA_DontUseNativeMenuWindows = 10,
0445         AA_SynthesizeTouchForUnhandledMouseEvents = 11,
0446         AA_SynthesizeMouseForUnhandledTouchEvents = 12,
0447 #if QT_DEPRECATED_SINCE(6, 0)
0448         AA_UseHighDpiPixmaps Q_DECL_ENUMERATOR_DEPRECATED_X(
0449             "High-DPI pixmaps are always enabled. " \
0450             "This attribute no longer has any effect.") = 13,
0451 #endif
0452         AA_ForceRasterWidgets = 14,
0453         AA_UseDesktopOpenGL = 15,
0454         AA_UseOpenGLES = 16,
0455         AA_UseSoftwareOpenGL = 17,
0456         AA_ShareOpenGLContexts = 18,
0457         AA_SetPalette = 19,
0458 #if QT_DEPRECATED_SINCE(6, 0)
0459         AA_EnableHighDpiScaling Q_DECL_ENUMERATOR_DEPRECATED_X(
0460             "High-DPI scaling is always enabled. " \
0461             "This attribute no longer has any effect.") = 20,
0462         AA_DisableHighDpiScaling Q_DECL_ENUMERATOR_DEPRECATED_X(
0463             "High-DPI scaling is always enabled. " \
0464             "This attribute no longer has any effect.") = 21,
0465 #endif
0466         AA_UseStyleSheetPropagationInWidgetStyles = 22,
0467         AA_DontUseNativeDialogs = 23,
0468         AA_SynthesizeMouseForUnhandledTabletEvents = 24,
0469         AA_CompressHighFrequencyEvents = 25,
0470         AA_DontCheckOpenGLContextThreadAffinity = 26,
0471         AA_DisableShaderDiskCache = 27,
0472         AA_DontShowShortcutsInContextMenus = 28,
0473         AA_CompressTabletEvents = 29,
0474         // AA_DisableWindowContextHelpButton = 30, (in Qt 5)
0475         AA_DisableSessionManager = 31,
0476 
0477         // Add new attributes before this line
0478         AA_AttributeCount
0479     };
0480 
0481 
0482     // Image conversion flags.  The unusual ordering is caused by
0483     // compatibility and default requirements.
0484 
0485     enum ImageConversionFlag {
0486         ColorMode_Mask          = 0x00000003,
0487         AutoColor               = 0x00000000,
0488         ColorOnly               = 0x00000003,
0489         MonoOnly                = 0x00000002,
0490         // Reserved             = 0x00000001,
0491 
0492         AlphaDither_Mask        = 0x0000000c,
0493         ThresholdAlphaDither    = 0x00000000,
0494         OrderedAlphaDither      = 0x00000004,
0495         DiffuseAlphaDither      = 0x00000008,
0496         NoAlpha                 = 0x0000000c, // Not supported
0497 
0498         Dither_Mask             = 0x00000030,
0499         DiffuseDither           = 0x00000000,
0500         OrderedDither           = 0x00000010,
0501         ThresholdDither         = 0x00000020,
0502         // ReservedDither       = 0x00000030,
0503 
0504         DitherMode_Mask         = 0x000000c0,
0505         AutoDither              = 0x00000000,
0506         PreferDither            = 0x00000040,
0507         AvoidDither             = 0x00000080,
0508 
0509         NoOpaqueDetection       = 0x00000100,
0510         NoFormatConversion      = 0x00000200
0511     };
0512     Q_DECLARE_FLAGS(ImageConversionFlags, ImageConversionFlag)
0513     Q_DECLARE_OPERATORS_FOR_FLAGS(ImageConversionFlags)
0514 
0515     enum BGMode {
0516         TransparentMode,
0517         OpaqueMode
0518     };
0519 
0520     enum Key {
0521         // Unicode Basic Latin block (0x00-0x7f)
0522         Key_Space = 0x20,
0523         Key_Any = Key_Space,
0524         Key_Exclam = 0x21,
0525         Key_QuoteDbl = 0x22,
0526         Key_NumberSign = 0x23,
0527         Key_Dollar = 0x24,
0528         Key_Percent = 0x25,
0529         Key_Ampersand = 0x26,
0530         Key_Apostrophe = 0x27,
0531         Key_ParenLeft = 0x28,
0532         Key_ParenRight = 0x29,
0533         Key_Asterisk = 0x2a,
0534         Key_Plus = 0x2b,
0535         Key_Comma = 0x2c,
0536         Key_Minus = 0x2d,
0537         Key_Period = 0x2e,
0538         Key_Slash = 0x2f,
0539         Key_0 = 0x30,
0540         Key_1 = 0x31,
0541         Key_2 = 0x32,
0542         Key_3 = 0x33,
0543         Key_4 = 0x34,
0544         Key_5 = 0x35,
0545         Key_6 = 0x36,
0546         Key_7 = 0x37,
0547         Key_8 = 0x38,
0548         Key_9 = 0x39,
0549         Key_Colon = 0x3a,
0550         Key_Semicolon = 0x3b,
0551         Key_Less = 0x3c,
0552         Key_Equal = 0x3d,
0553         Key_Greater = 0x3e,
0554         Key_Question = 0x3f,
0555         Key_At = 0x40,
0556         Key_A = 0x41,
0557         Key_B = 0x42,
0558         Key_C = 0x43,
0559         Key_D = 0x44,
0560         Key_E = 0x45,
0561         Key_F = 0x46,
0562         Key_G = 0x47,
0563         Key_H = 0x48,
0564         Key_I = 0x49,
0565         Key_J = 0x4a,
0566         Key_K = 0x4b,
0567         Key_L = 0x4c,
0568         Key_M = 0x4d,
0569         Key_N = 0x4e,
0570         Key_O = 0x4f,
0571         Key_P = 0x50,
0572         Key_Q = 0x51,
0573         Key_R = 0x52,
0574         Key_S = 0x53,
0575         Key_T = 0x54,
0576         Key_U = 0x55,
0577         Key_V = 0x56,
0578         Key_W = 0x57,
0579         Key_X = 0x58,
0580         Key_Y = 0x59,
0581         Key_Z = 0x5a,
0582         Key_BracketLeft = 0x5b,
0583         Key_Backslash = 0x5c,
0584         Key_BracketRight = 0x5d,
0585         Key_AsciiCircum = 0x5e,
0586         Key_Underscore = 0x5f,
0587         Key_QuoteLeft = 0x60,
0588         Key_BraceLeft = 0x7b,
0589         Key_Bar = 0x7c,
0590         Key_BraceRight = 0x7d,
0591         Key_AsciiTilde = 0x7e,
0592 
0593         // Unicode Latin-1 Supplement block (0x80-0xff)
0594         Key_nobreakspace = 0x0a0,
0595         Key_exclamdown = 0x0a1,
0596         Key_cent = 0x0a2,
0597         Key_sterling = 0x0a3,
0598         Key_currency = 0x0a4,
0599         Key_yen = 0x0a5,
0600         Key_brokenbar = 0x0a6,
0601         Key_section = 0x0a7,
0602         Key_diaeresis = 0x0a8,
0603         Key_copyright = 0x0a9,
0604         Key_ordfeminine = 0x0aa,
0605         Key_guillemotleft = 0x0ab,        // left angle quotation mark
0606         Key_notsign = 0x0ac,
0607         Key_hyphen = 0x0ad,
0608         Key_registered = 0x0ae,
0609         Key_macron = 0x0af,
0610         Key_degree = 0x0b0,
0611         Key_plusminus = 0x0b1,
0612         Key_twosuperior = 0x0b2,
0613         Key_threesuperior = 0x0b3,
0614         Key_acute = 0x0b4,
0615         Key_micro = 0x0b5,
0616 #if QT_DEPRECATED_SINCE(6, 11)
0617         Key_mu Q_DECL_ENUMERATOR_DEPRECATED_X("This key was misnamed, use Key_micro instead")
0618             = Key_micro,
0619 #endif
0620         Key_paragraph = 0x0b6,
0621         Key_periodcentered = 0x0b7,
0622         Key_cedilla = 0x0b8,
0623         Key_onesuperior = 0x0b9,
0624         Key_masculine = 0x0ba,
0625         Key_guillemotright = 0x0bb,        // right angle quotation mark
0626         Key_onequarter = 0x0bc,
0627         Key_onehalf = 0x0bd,
0628         Key_threequarters = 0x0be,
0629         Key_questiondown = 0x0bf,
0630         Key_Agrave = 0x0c0,
0631         Key_Aacute = 0x0c1,
0632         Key_Acircumflex = 0x0c2,
0633         Key_Atilde = 0x0c3,
0634         Key_Adiaeresis = 0x0c4,
0635         Key_Aring = 0x0c5,
0636         Key_AE = 0x0c6,
0637         Key_Ccedilla = 0x0c7,
0638         Key_Egrave = 0x0c8,
0639         Key_Eacute = 0x0c9,
0640         Key_Ecircumflex = 0x0ca,
0641         Key_Ediaeresis = 0x0cb,
0642         Key_Igrave = 0x0cc,
0643         Key_Iacute = 0x0cd,
0644         Key_Icircumflex = 0x0ce,
0645         Key_Idiaeresis = 0x0cf,
0646         Key_ETH = 0x0d0,
0647         Key_Ntilde = 0x0d1,
0648         Key_Ograve = 0x0d2,
0649         Key_Oacute = 0x0d3,
0650         Key_Ocircumflex = 0x0d4,
0651         Key_Otilde = 0x0d5,
0652         Key_Odiaeresis = 0x0d6,
0653         Key_multiply = 0x0d7,
0654         Key_Ooblique = 0x0d8,
0655         Key_Ugrave = 0x0d9,
0656         Key_Uacute = 0x0da,
0657         Key_Ucircumflex = 0x0db,
0658         Key_Udiaeresis = 0x0dc,
0659         Key_Yacute = 0x0dd,
0660         Key_THORN = 0x0de,
0661         Key_ssharp = 0x0df,
0662         Key_division = 0x0f7,
0663         Key_ydiaeresis = 0x0ff,
0664 
0665         // The rest of the Unicode values are skipped here,
0666         // so that we can represent them along with Qt::Keys
0667         // in the same data type. The maximum Unicode value
0668         // is 0x0010ffff, so we start our custom keys at
0669         // 0x01000000 to not clash with the Unicode values,
0670         // but still give plenty of room to grow.
0671 
0672         Key_Escape = 0x01000000,                // misc keys
0673         Key_Tab = 0x01000001,
0674         Key_Backtab = 0x01000002,
0675         Key_Backspace = 0x01000003,
0676         Key_Return = 0x01000004,
0677         Key_Enter = 0x01000005,
0678         Key_Insert = 0x01000006,
0679         Key_Delete = 0x01000007,
0680         Key_Pause = 0x01000008,
0681         Key_Print = 0x01000009,               // print screen
0682         Key_SysReq = 0x0100000a,
0683         Key_Clear = 0x0100000b,
0684         Key_Home = 0x01000010,                // cursor movement
0685         Key_End = 0x01000011,
0686         Key_Left = 0x01000012,
0687         Key_Up = 0x01000013,
0688         Key_Right = 0x01000014,
0689         Key_Down = 0x01000015,
0690         Key_PageUp = 0x01000016,
0691         Key_PageDown = 0x01000017,
0692         Key_Shift = 0x01000020,                // modifiers
0693         Key_Control = 0x01000021,
0694         Key_Meta = 0x01000022,
0695         Key_Alt = 0x01000023,
0696         Key_CapsLock = 0x01000024,
0697         Key_NumLock = 0x01000025,
0698         Key_ScrollLock = 0x01000026,
0699         Key_F1 = 0x01000030,                // function keys
0700         Key_F2 = 0x01000031,
0701         Key_F3 = 0x01000032,
0702         Key_F4 = 0x01000033,
0703         Key_F5 = 0x01000034,
0704         Key_F6 = 0x01000035,
0705         Key_F7 = 0x01000036,
0706         Key_F8 = 0x01000037,
0707         Key_F9 = 0x01000038,
0708         Key_F10 = 0x01000039,
0709         Key_F11 = 0x0100003a,
0710         Key_F12 = 0x0100003b,
0711         Key_F13 = 0x0100003c,
0712         Key_F14 = 0x0100003d,
0713         Key_F15 = 0x0100003e,
0714         Key_F16 = 0x0100003f,
0715         Key_F17 = 0x01000040,
0716         Key_F18 = 0x01000041,
0717         Key_F19 = 0x01000042,
0718         Key_F20 = 0x01000043,
0719         Key_F21 = 0x01000044,
0720         Key_F22 = 0x01000045,
0721         Key_F23 = 0x01000046,
0722         Key_F24 = 0x01000047,
0723         Key_F25 = 0x01000048,                // F25 .. F35 only on X11
0724         Key_F26 = 0x01000049,
0725         Key_F27 = 0x0100004a,
0726         Key_F28 = 0x0100004b,
0727         Key_F29 = 0x0100004c,
0728         Key_F30 = 0x0100004d,
0729         Key_F31 = 0x0100004e,
0730         Key_F32 = 0x0100004f,
0731         Key_F33 = 0x01000050,
0732         Key_F34 = 0x01000051,
0733         Key_F35 = 0x01000052,
0734         Key_Super_L = 0x01000053,                 // extra keys
0735         Key_Super_R = 0x01000054,
0736         Key_Menu = 0x01000055,
0737         Key_Hyper_L = 0x01000056,
0738         Key_Hyper_R = 0x01000057,
0739         Key_Help = 0x01000058,
0740         Key_Direction_L = 0x01000059,
0741         Key_Direction_R = 0x01000060,
0742 
0743         // International input method support (X keycode - 0xEE00, the
0744         // definition follows Qt/Embedded 2.3.7) Only interesting if
0745         // you are writing your own input method
0746 
0747         // International & multi-key character composition
0748         Key_AltGr               = 0x01001103,
0749         Key_Multi_key           = 0x01001120,  // Multi-key character compose
0750         Key_Codeinput           = 0x01001137,
0751         Key_SingleCandidate     = 0x0100113c,
0752         Key_MultipleCandidate   = 0x0100113d,
0753         Key_PreviousCandidate   = 0x0100113e,
0754 
0755         // Misc Functions
0756         Key_Mode_switch         = 0x0100117e,  // Character set switch
0757         //Key_script_switch       = 0x0100117e,  // Alias for mode_switch
0758 
0759         // Japanese keyboard support
0760         Key_Kanji               = 0x01001121,  // Kanji, Kanji convert
0761         Key_Muhenkan            = 0x01001122,  // Cancel Conversion
0762         //Key_Henkan_Mode         = 0x01001123,  // Start/Stop Conversion
0763         Key_Henkan              = 0x01001123,  // Alias for Henkan_Mode
0764         Key_Romaji              = 0x01001124,  // to Romaji
0765         Key_Hiragana            = 0x01001125,  // to Hiragana
0766         Key_Katakana            = 0x01001126,  // to Katakana
0767         Key_Hiragana_Katakana   = 0x01001127,  // Hiragana/Katakana toggle
0768         Key_Zenkaku             = 0x01001128,  // to Zenkaku
0769         Key_Hankaku             = 0x01001129,  // to Hankaku
0770         Key_Zenkaku_Hankaku     = 0x0100112a,  // Zenkaku/Hankaku toggle
0771         Key_Touroku             = 0x0100112b,  // Add to Dictionary
0772         Key_Massyo              = 0x0100112c,  // Delete from Dictionary
0773         Key_Kana_Lock           = 0x0100112d,  // Kana Lock
0774         Key_Kana_Shift          = 0x0100112e,  // Kana Shift
0775         Key_Eisu_Shift          = 0x0100112f,  // Alphanumeric Shift
0776         Key_Eisu_toggle         = 0x01001130,  // Alphanumeric toggle
0777         //Key_Kanji_Bangou        = 0x01001137,  // Codeinput
0778         //Key_Zen_Koho            = 0x0100113d,  // Multiple/All Candidate(s)
0779         //Key_Mae_Koho            = 0x0100113e,  // Previous Candidate
0780 
0781         // Korean keyboard support
0782         //
0783         // In fact, many Korean users need only 2 keys, Key_Hangul and
0784         // Key_Hangul_Hanja. But rest of the keys are good for future.
0785 
0786         Key_Hangul              = 0x01001131,  // Hangul start/stop(toggle)
0787         Key_Hangul_Start        = 0x01001132,  // Hangul start
0788         Key_Hangul_End          = 0x01001133,  // Hangul end, English start
0789         Key_Hangul_Hanja        = 0x01001134,  // Start Hangul->Hanja Conversion
0790         Key_Hangul_Jamo         = 0x01001135,  // Hangul Jamo mode
0791         Key_Hangul_Romaja       = 0x01001136,  // Hangul Romaja mode
0792         //Key_Hangul_Codeinput    = 0x01001137,  // Hangul code input mode
0793         Key_Hangul_Jeonja       = 0x01001138,  // Jeonja mode
0794         Key_Hangul_Banja        = 0x01001139,  // Banja mode
0795         Key_Hangul_PreHanja     = 0x0100113a,  // Pre Hanja conversion
0796         Key_Hangul_PostHanja    = 0x0100113b,  // Post Hanja conversion
0797         //Key_Hangul_SingleCandidate   = 0x0100113c,  // Single candidate
0798         //Key_Hangul_MultipleCandidate = 0x0100113d,  // Multiple candidate
0799         //Key_Hangul_PreviousCandidate = 0x0100113e,  // Previous candidate
0800         Key_Hangul_Special      = 0x0100113f,  // Special symbols
0801         //Key_Hangul_switch       = 0x0100117e,  // Alias for mode_switch
0802 
0803         // dead keys (X keycode - 0xED00 to avoid the conflict)
0804         Key_Dead_Grave          = 0x01001250,
0805         Key_Dead_Acute          = 0x01001251,
0806         Key_Dead_Circumflex     = 0x01001252,
0807         Key_Dead_Tilde          = 0x01001253,
0808         Key_Dead_Macron         = 0x01001254,
0809         Key_Dead_Breve          = 0x01001255,
0810         Key_Dead_Abovedot       = 0x01001256,
0811         Key_Dead_Diaeresis      = 0x01001257,
0812         Key_Dead_Abovering      = 0x01001258,
0813         Key_Dead_Doubleacute    = 0x01001259,
0814         Key_Dead_Caron          = 0x0100125a,
0815         Key_Dead_Cedilla        = 0x0100125b,
0816         Key_Dead_Ogonek         = 0x0100125c,
0817         Key_Dead_Iota           = 0x0100125d,
0818         Key_Dead_Voiced_Sound   = 0x0100125e,
0819         Key_Dead_Semivoiced_Sound = 0x0100125f,
0820         Key_Dead_Belowdot       = 0x01001260,
0821         Key_Dead_Hook           = 0x01001261,
0822         Key_Dead_Horn           = 0x01001262,
0823         Key_Dead_Stroke         = 0x01001263,
0824         Key_Dead_Abovecomma     = 0x01001264,
0825         Key_Dead_Abovereversedcomma = 0x01001265,
0826         Key_Dead_Doublegrave    = 0x01001266,
0827         Key_Dead_Belowring      = 0x01001267,
0828         Key_Dead_Belowmacron    = 0x01001268,
0829         Key_Dead_Belowcircumflex = 0x01001269,
0830         Key_Dead_Belowtilde     = 0x0100126a,
0831         Key_Dead_Belowbreve     = 0x0100126b,
0832         Key_Dead_Belowdiaeresis = 0x0100126c,
0833         Key_Dead_Invertedbreve  = 0x0100126d,
0834         Key_Dead_Belowcomma     = 0x0100126e,
0835         Key_Dead_Currency       = 0x0100126f,
0836         Key_Dead_a              = 0x01001280,
0837         Key_Dead_A              = 0x01001281,
0838         Key_Dead_e              = 0x01001282,
0839         Key_Dead_E              = 0x01001283,
0840         Key_Dead_i              = 0x01001284,
0841         Key_Dead_I              = 0x01001285,
0842         Key_Dead_o              = 0x01001286,
0843         Key_Dead_O              = 0x01001287,
0844         Key_Dead_u              = 0x01001288,
0845         Key_Dead_U              = 0x01001289,
0846         Key_Dead_Small_Schwa    = 0x0100128a,
0847         Key_Dead_Capital_Schwa  = 0x0100128b,
0848         Key_Dead_Greek          = 0x0100128c,
0849         Key_Dead_Lowline        = 0x01001290,
0850         Key_Dead_Aboveverticalline = 0x01001291,
0851         Key_Dead_Belowverticalline = 0x01001292,
0852         Key_Dead_Longsolidusoverlay = 0x01001293,
0853 
0854         // multimedia/internet keys - ignored by default - see QKeyEvent c'tor
0855         Key_Back  = 0x01000061,
0856         Key_Forward  = 0x01000062,
0857         Key_Stop  = 0x01000063,
0858         Key_Refresh  = 0x01000064,
0859         Key_VolumeDown = 0x01000070,
0860         Key_VolumeMute  = 0x01000071,
0861         Key_VolumeUp = 0x01000072,
0862         Key_BassBoost = 0x01000073,
0863         Key_BassUp = 0x01000074,
0864         Key_BassDown = 0x01000075,
0865         Key_TrebleUp = 0x01000076,
0866         Key_TrebleDown = 0x01000077,
0867         Key_MediaPlay  = 0x01000080,
0868         Key_MediaStop  = 0x01000081,
0869         Key_MediaPrevious  = 0x01000082,
0870         Key_MediaNext  = 0x01000083,
0871         Key_MediaRecord = 0x01000084,
0872         Key_MediaPause = 0x01000085,
0873         Key_MediaTogglePlayPause = 0x01000086,
0874         Key_HomePage  = 0x01000090,
0875         Key_Favorites  = 0x01000091,
0876         Key_Search  = 0x01000092,
0877         Key_Standby = 0x01000093,
0878         Key_OpenUrl = 0x01000094,
0879         Key_LaunchMail  = 0x010000a0,
0880         Key_LaunchMedia = 0x010000a1,
0881         Key_Launch0  = 0x010000a2,
0882         Key_Launch1  = 0x010000a3,
0883         Key_Launch2  = 0x010000a4,
0884         Key_Launch3  = 0x010000a5,
0885         Key_Launch4  = 0x010000a6,
0886         Key_Launch5  = 0x010000a7,
0887         Key_Launch6  = 0x010000a8,
0888         Key_Launch7  = 0x010000a9,
0889         Key_Launch8  = 0x010000aa,
0890         Key_Launch9  = 0x010000ab,
0891         Key_LaunchA  = 0x010000ac,
0892         Key_LaunchB  = 0x010000ad,
0893         Key_LaunchC  = 0x010000ae,
0894         Key_LaunchD  = 0x010000af,
0895         Key_LaunchE  = 0x010000b0,
0896         Key_LaunchF  = 0x010000b1,
0897         Key_MonBrightnessUp = 0x010000b2,
0898         Key_MonBrightnessDown = 0x010000b3,
0899         Key_KeyboardLightOnOff = 0x010000b4,
0900         Key_KeyboardBrightnessUp = 0x010000b5,
0901         Key_KeyboardBrightnessDown = 0x010000b6,
0902         Key_PowerOff = 0x010000b7,
0903         Key_WakeUp = 0x010000b8,
0904         Key_Eject = 0x010000b9,
0905         Key_ScreenSaver = 0x010000ba,
0906         Key_WWW = 0x010000bb,
0907         Key_Memo = 0x010000bc,
0908         Key_LightBulb = 0x010000bd,
0909         Key_Shop = 0x010000be,
0910         Key_History = 0x010000bf,
0911         Key_AddFavorite = 0x010000c0,
0912         Key_HotLinks = 0x010000c1,
0913         Key_BrightnessAdjust = 0x010000c2,
0914         Key_Finance = 0x010000c3,
0915         Key_Community = 0x010000c4,
0916         Key_AudioRewind = 0x010000c5, // Media rewind
0917         Key_BackForward = 0x010000c6,
0918         Key_ApplicationLeft = 0x010000c7,
0919         Key_ApplicationRight = 0x010000c8,
0920         Key_Book = 0x010000c9,
0921         Key_CD = 0x010000ca,
0922         Key_Calculator = 0x010000cb,
0923         Key_ToDoList = 0x010000cc,
0924         Key_ClearGrab = 0x010000cd,
0925         Key_Close = 0x010000ce,
0926         Key_Copy = 0x010000cf,
0927         Key_Cut = 0x010000d0,
0928         Key_Display = 0x010000d1, // Output switch key
0929         Key_DOS = 0x010000d2,
0930         Key_Documents = 0x010000d3,
0931         Key_Excel = 0x010000d4,
0932         Key_Explorer = 0x010000d5,
0933         Key_Game = 0x010000d6,
0934         Key_Go = 0x010000d7,
0935         Key_iTouch = 0x010000d8,
0936         Key_LogOff = 0x010000d9,
0937         Key_Market = 0x010000da,
0938         Key_Meeting = 0x010000db,
0939         Key_MenuKB = 0x010000dc,
0940         Key_MenuPB = 0x010000dd,
0941         Key_MySites = 0x010000de,
0942         Key_News = 0x010000df,
0943         Key_OfficeHome = 0x010000e0,
0944         Key_Option = 0x010000e1,
0945         Key_Paste = 0x010000e2,
0946         Key_Phone = 0x010000e3,
0947         Key_Calendar = 0x010000e4,
0948         Key_Reply = 0x010000e5,
0949         Key_Reload = 0x010000e6,
0950         Key_RotateWindows = 0x010000e7,
0951         Key_RotationPB = 0x010000e8,
0952         Key_RotationKB = 0x010000e9,
0953         Key_Save = 0x010000ea,
0954         Key_Send = 0x010000eb,
0955         Key_Spell = 0x010000ec,
0956         Key_SplitScreen = 0x010000ed,
0957         Key_Support = 0x010000ee,
0958         Key_TaskPane = 0x010000ef,
0959         Key_Terminal = 0x010000f0,
0960         Key_Tools = 0x010000f1,
0961         Key_Travel = 0x010000f2,
0962         Key_Video = 0x010000f3,
0963         Key_Word = 0x010000f4,
0964         Key_Xfer = 0x010000f5,
0965         Key_ZoomIn = 0x010000f6,
0966         Key_ZoomOut = 0x010000f7,
0967         Key_Away = 0x010000f8,
0968         Key_Messenger = 0x010000f9,
0969         Key_WebCam = 0x010000fa,
0970         Key_MailForward = 0x010000fb,
0971         Key_Pictures = 0x010000fc,
0972         Key_Music = 0x010000fd,
0973         Key_Battery = 0x010000fe,
0974         Key_Bluetooth = 0x010000ff,
0975         Key_WLAN = 0x01000100,
0976         Key_UWB = 0x01000101,
0977         Key_AudioForward = 0x01000102, // Media fast-forward
0978         Key_AudioRepeat = 0x01000103, // Toggle repeat mode
0979         Key_AudioRandomPlay = 0x01000104, // Toggle shuffle mode
0980         Key_Subtitle = 0x01000105,
0981         Key_AudioCycleTrack = 0x01000106,
0982         Key_Time = 0x01000107,
0983         Key_Hibernate = 0x01000108,
0984         Key_View = 0x01000109,
0985         Key_TopMenu = 0x0100010a,
0986         Key_PowerDown = 0x0100010b,
0987         Key_Suspend = 0x0100010c,
0988         Key_ContrastAdjust = 0x0100010d,
0989 
0990         // We can remove these two for Qt 7:
0991         Key_LaunchG  = 0x0100010e,
0992         Key_LaunchH  = 0x0100010f,
0993 
0994         Key_TouchpadToggle = 0x01000110,
0995         Key_TouchpadOn = 0x01000111,
0996         Key_TouchpadOff = 0x01000112,
0997 
0998         Key_MicMute = 0x01000113,
0999 
1000         Key_Red = 0x01000114,
1001         Key_Green = 0x01000115,
1002         Key_Yellow = 0x01000116,
1003         Key_Blue = 0x01000117,
1004 
1005         Key_ChannelUp = 0x01000118,
1006         Key_ChannelDown = 0x01000119,
1007 
1008         Key_Guide    = 0x0100011a,
1009         Key_Info     = 0x0100011b,
1010         Key_Settings = 0x0100011c,
1011 
1012         Key_MicVolumeUp   = 0x0100011d,
1013         Key_MicVolumeDown = 0x0100011e,
1014 
1015         Key_New      = 0x01000120,
1016         Key_Open     = 0x01000121,
1017         Key_Find     = 0x01000122,
1018         Key_Undo     = 0x01000123,
1019         Key_Redo     = 0x01000124,
1020 
1021         Key_MediaLast = 0x0100ffff,
1022 
1023         // Keypad navigation keys
1024         Key_Select = 0x01010000,
1025         Key_Yes = 0x01010001,
1026         Key_No = 0x01010002,
1027 
1028         // Newer misc keys
1029         Key_Cancel  = 0x01020001,
1030         Key_Printer = 0x01020002,
1031         Key_Execute = 0x01020003,
1032         Key_Sleep   = 0x01020004,
1033         Key_Play    = 0x01020005, // Not the same as Key_MediaPlay
1034         Key_Zoom    = 0x01020006,
1035         //Key_Jisho   = 0x01020007, // IME: Dictionary key
1036         //Key_Oyayubi_Left = 0x01020008, // IME: Left Oyayubi key
1037         //Key_Oyayubi_Right = 0x01020009, // IME: Right Oyayubi key
1038         Key_Exit    = 0x0102000a,
1039 
1040         // Device keys
1041         Key_Context1 = 0x01100000,
1042         Key_Context2 = 0x01100001,
1043         Key_Context3 = 0x01100002,
1044         Key_Context4 = 0x01100003,
1045         Key_Call = 0x01100004,      // set absolute state to in a call (do not toggle state)
1046         Key_Hangup = 0x01100005,    // set absolute state to hang up (do not toggle state)
1047         Key_Flip = 0x01100006,
1048         Key_ToggleCallHangup = 0x01100007, // a toggle key for answering, or hanging up, based on current call state
1049         Key_VoiceDial = 0x01100008,
1050         Key_LastNumberRedial = 0x01100009,
1051 
1052         Key_Camera = 0x01100020,
1053         Key_CameraFocus = 0x01100021,
1054 
1055         // WARNING: Do not add any keys in the range 0x01200000 to 0xffffffff,
1056         // as those bits are reserved for the Qt::KeyboardModifier enum below.
1057 
1058         Key_unknown = 0x01ffffff
1059     };
1060 
1061     enum KeyboardModifier {
1062         NoModifier           = 0x00000000,
1063         ShiftModifier        = 0x02000000,
1064         ControlModifier      = 0x04000000,
1065         AltModifier          = 0x08000000,
1066         MetaModifier         = 0x10000000,
1067         KeypadModifier       = 0x20000000,
1068         GroupSwitchModifier  = 0x40000000,
1069         // Do not extend the mask to include 0x01000000
1070         KeyboardModifierMask = 0xfe000000
1071     };
1072     Q_DECLARE_FLAGS(KeyboardModifiers, KeyboardModifier)
1073     Q_DECLARE_OPERATORS_FOR_FLAGS(KeyboardModifiers)
1074 
1075     //shorter names for shortcuts
1076     // The use of all-caps identifiers has the potential for clashing with
1077     // user-defined or third-party macros. More so when the identifiers are not
1078     // "namespace"-prefixed. This is considered bad practice and is why
1079     // KeypadModifier was not added to the Modifier enum.
1080     // ### Qt 7: consider deprecating in favor of KeyboardModifier.
1081     enum Modifier {
1082         META          = Qt::MetaModifier,
1083         SHIFT         = Qt::ShiftModifier,
1084         CTRL          = Qt::ControlModifier,
1085         ALT           = Qt::AltModifier,
1086         MODIFIER_MASK = KeyboardModifierMask,
1087     };
1088     Q_DECLARE_FLAGS(Modifiers, Modifier)
1089     Q_DECLARE_OPERATORS_FOR_FLAGS(Modifiers)
1090 
1091     enum ArrowType {
1092         NoArrow,
1093         UpArrow,
1094         DownArrow,
1095         LeftArrow,
1096         RightArrow
1097     };
1098 
1099     enum PenStyle { // pen style
1100         NoPen,
1101         SolidLine,
1102         DashLine,
1103         DotLine,
1104         DashDotLine,
1105         DashDotDotLine,
1106         CustomDashLine
1107 #ifndef Q_MOC_RUN
1108         , MPenStyle = 0x0f
1109 #endif
1110     };
1111 
1112     enum PenCapStyle { // line endcap style
1113         FlatCap = 0x00,
1114         SquareCap = 0x10,
1115         RoundCap = 0x20,
1116         MPenCapStyle = 0x30
1117     };
1118 
1119     enum PenJoinStyle { // line join style
1120         MiterJoin = 0x00,
1121         BevelJoin = 0x40,
1122         RoundJoin = 0x80,
1123         SvgMiterJoin = 0x100,
1124         MPenJoinStyle = 0x1c0
1125     };
1126 
1127     enum BrushStyle { // brush style
1128         NoBrush,
1129         SolidPattern,
1130         Dense1Pattern,
1131         Dense2Pattern,
1132         Dense3Pattern,
1133         Dense4Pattern,
1134         Dense5Pattern,
1135         Dense6Pattern,
1136         Dense7Pattern,
1137         HorPattern,
1138         VerPattern,
1139         CrossPattern,
1140         BDiagPattern,
1141         FDiagPattern,
1142         DiagCrossPattern,
1143         LinearGradientPattern,
1144         RadialGradientPattern,
1145         ConicalGradientPattern,
1146         TexturePattern = 24
1147     };
1148 
1149     enum SizeMode {
1150         AbsoluteSize,
1151         RelativeSize
1152     };
1153 
1154     enum UIEffect {
1155         UI_General,
1156         UI_AnimateMenu,
1157         UI_FadeMenu,
1158         UI_AnimateCombo,
1159         UI_AnimateTooltip,
1160         UI_FadeTooltip,
1161         UI_AnimateToolBox
1162     };
1163 
1164     enum CursorShape {
1165         ArrowCursor,
1166         UpArrowCursor,
1167         CrossCursor,
1168         WaitCursor,
1169         IBeamCursor,
1170         SizeVerCursor,
1171         SizeHorCursor,
1172         SizeBDiagCursor,
1173         SizeFDiagCursor,
1174         SizeAllCursor,
1175         BlankCursor,
1176         SplitVCursor,
1177         SplitHCursor,
1178         PointingHandCursor,
1179         ForbiddenCursor,
1180         WhatsThisCursor,
1181         BusyCursor,
1182         OpenHandCursor,
1183         ClosedHandCursor,
1184         DragCopyCursor,
1185         DragMoveCursor,
1186         DragLinkCursor,
1187         LastCursor = DragLinkCursor,
1188         BitmapCursor = 24,
1189         CustomCursor = 25
1190     };
1191 
1192     enum TextFormat {
1193         PlainText,
1194         RichText,
1195         AutoText,
1196         MarkdownText
1197     };
1198 
1199     enum AspectRatioMode {
1200         IgnoreAspectRatio,
1201         KeepAspectRatio,
1202         KeepAspectRatioByExpanding
1203     };
1204 
1205     enum DockWidgetArea {
1206         LeftDockWidgetArea = 0x1,
1207         RightDockWidgetArea = 0x2,
1208         TopDockWidgetArea = 0x4,
1209         BottomDockWidgetArea = 0x8,
1210 
1211         DockWidgetArea_Mask = 0xf,
1212         AllDockWidgetAreas = DockWidgetArea_Mask,
1213         NoDockWidgetArea = 0
1214     };
1215     enum DockWidgetAreaSizes {
1216         NDockWidgetAreas = 4
1217     };
1218 
1219     Q_DECLARE_FLAGS(DockWidgetAreas, DockWidgetArea)
1220     Q_DECLARE_OPERATORS_FOR_FLAGS(DockWidgetAreas)
1221 
1222     enum ToolBarArea {
1223         LeftToolBarArea = 0x1,
1224         RightToolBarArea = 0x2,
1225         TopToolBarArea = 0x4,
1226         BottomToolBarArea = 0x8,
1227 
1228         ToolBarArea_Mask = 0xf,
1229         AllToolBarAreas = ToolBarArea_Mask,
1230         NoToolBarArea = 0
1231     };
1232 
1233     enum ToolBarAreaSizes {
1234         NToolBarAreas = 4
1235     };
1236 
1237     Q_DECLARE_FLAGS(ToolBarAreas, ToolBarArea)
1238     Q_DECLARE_OPERATORS_FOR_FLAGS(ToolBarAreas)
1239 
1240     enum DateFormat {
1241         TextDate,      // default Qt
1242         ISODate,       // ISO 8601
1243         RFC2822Date = 8, // RFC 2822 (+ 850 and 1036 during parsing)
1244         ISODateWithMs
1245     };
1246 
1247     enum TimeSpec {
1248         LocalTime,
1249         UTC,
1250         OffsetFromUTC,
1251         TimeZone
1252     };
1253 
1254     enum DayOfWeek {
1255         Monday = 1,
1256         Tuesday = 2,
1257         Wednesday = 3,
1258         Thursday = 4,
1259         Friday = 5,
1260         Saturday = 6,
1261         Sunday = 7
1262     };
1263 
1264     enum ScrollBarPolicy {
1265         ScrollBarAsNeeded,
1266         ScrollBarAlwaysOff,
1267         ScrollBarAlwaysOn
1268     };
1269 
1270     enum CaseSensitivity {
1271         CaseInsensitive,
1272         CaseSensitive
1273     };
1274 
1275     enum Corner {
1276         TopLeftCorner = 0x00000,
1277         TopRightCorner = 0x00001,
1278         BottomLeftCorner = 0x00002,
1279         BottomRightCorner = 0x00003
1280     };
1281 
1282     enum Edge {
1283         TopEdge = 0x00001,
1284         LeftEdge = 0x00002,
1285         RightEdge = 0x00004,
1286         BottomEdge = 0x00008
1287     };
1288 
1289     Q_DECLARE_FLAGS(Edges, Edge)
1290     Q_DECLARE_OPERATORS_FOR_FLAGS(Edges)
1291 
1292     enum ConnectionType {
1293         AutoConnection,
1294         DirectConnection,
1295         QueuedConnection,
1296         BlockingQueuedConnection,
1297         UniqueConnection =  0x80,
1298         SingleShotConnection = 0x100,
1299     };
1300 
1301     enum ShortcutContext {
1302         WidgetShortcut,
1303         WindowShortcut,
1304         ApplicationShortcut,
1305         WidgetWithChildrenShortcut
1306     };
1307 
1308     enum FillRule {
1309         OddEvenFill,
1310         WindingFill
1311     };
1312 
1313     enum MaskMode {
1314         MaskInColor,
1315         MaskOutColor
1316     };
1317 
1318     enum ClipOperation {
1319         NoClip,
1320         ReplaceClip,
1321         IntersectClip
1322     };
1323 
1324     // Shape = 0x1, BoundingRect = 0x2
1325     enum ItemSelectionMode {
1326         ContainsItemShape = 0x0,
1327         IntersectsItemShape = 0x1,
1328         ContainsItemBoundingRect = 0x2,
1329         IntersectsItemBoundingRect = 0x3
1330     };
1331 
1332     enum ItemSelectionOperation {
1333         ReplaceSelection,
1334         AddToSelection
1335     };
1336 
1337     enum TransformationMode {
1338         FastTransformation,
1339         SmoothTransformation
1340     };
1341 
1342     enum Axis {
1343         XAxis,
1344         YAxis,
1345         ZAxis
1346     };
1347 
1348     enum FocusReason {
1349         MouseFocusReason,
1350         TabFocusReason,
1351         BacktabFocusReason,
1352         ActiveWindowFocusReason,
1353         PopupFocusReason,
1354         ShortcutFocusReason,
1355         MenuBarFocusReason,
1356         OtherFocusReason,
1357         NoFocusReason
1358     };
1359 
1360     enum ContextMenuPolicy {
1361         NoContextMenu,
1362         DefaultContextMenu,
1363         ActionsContextMenu,
1364         CustomContextMenu,
1365         PreventContextMenu
1366     };
1367 
1368     enum class ContextMenuTrigger {
1369         Press,
1370         Release,
1371     };
1372 
1373     enum InputMethodQuery {
1374         ImEnabled = 0x1,
1375         ImCursorRectangle = 0x2,
1376         ImFont = 0x4,
1377         ImCursorPosition = 0x8,
1378         ImSurroundingText = 0x10,
1379         ImCurrentSelection = 0x20,
1380         ImMaximumTextLength = 0x40,
1381         ImAnchorPosition = 0x80,
1382         ImHints = 0x100,
1383         ImPreferredLanguage = 0x200,
1384 
1385         ImAbsolutePosition = 0x400,
1386         ImTextBeforeCursor = 0x800,
1387         ImTextAfterCursor = 0x1000,
1388         ImEnterKeyType = 0x2000,
1389         ImAnchorRectangle = 0x4000,
1390         ImInputItemClipRectangle = 0x8000,
1391 
1392         ImReadOnly = 0x10000,
1393         ImPlatformData = 0x80000000,
1394         ImQueryInput = ImCursorRectangle | ImCursorPosition | ImSurroundingText |
1395                        ImCurrentSelection | ImAnchorRectangle | ImAnchorPosition,
1396         ImQueryAll = 0xffffffff
1397     };
1398     Q_DECLARE_FLAGS(InputMethodQueries, InputMethodQuery)
1399     Q_DECLARE_OPERATORS_FOR_FLAGS(InputMethodQueries)
1400 
1401     enum InputMethodHint {
1402         ImhNone = 0x0,
1403 
1404         ImhHiddenText = 0x1,
1405         ImhSensitiveData = 0x2,
1406         ImhNoAutoUppercase = 0x4,
1407         ImhPreferNumbers = 0x8,
1408         ImhPreferUppercase = 0x10,
1409         ImhPreferLowercase = 0x20,
1410         ImhNoPredictiveText = 0x40,
1411 
1412         ImhDate = 0x80,
1413         ImhTime = 0x100,
1414 
1415         ImhPreferLatin = 0x200,
1416 
1417         ImhMultiLine = 0x400,
1418 
1419         ImhNoEditMenu = 0x800,
1420         ImhNoTextHandles = 0x1000,
1421 
1422         ImhDigitsOnly = 0x10000,
1423         ImhFormattedNumbersOnly = 0x20000,
1424         ImhUppercaseOnly = 0x40000,
1425         ImhLowercaseOnly = 0x80000,
1426         ImhDialableCharactersOnly = 0x100000,
1427         ImhEmailCharactersOnly = 0x200000,
1428         ImhUrlCharactersOnly = 0x400000,
1429         ImhLatinOnly = 0x800000,
1430 
1431         ImhExclusiveInputMask = 0xffff0000
1432     };
1433     Q_DECLARE_FLAGS(InputMethodHints, InputMethodHint)
1434     Q_DECLARE_OPERATORS_FOR_FLAGS(InputMethodHints)
1435 
1436     enum EnterKeyType {
1437         EnterKeyDefault,
1438         EnterKeyReturn,
1439         EnterKeyDone,
1440         EnterKeyGo,
1441         EnterKeySend,
1442         EnterKeySearch,
1443         EnterKeyNext,
1444         EnterKeyPrevious
1445     };
1446 
1447     enum ToolButtonStyle {
1448         ToolButtonIconOnly,
1449         ToolButtonTextOnly,
1450         ToolButtonTextBesideIcon,
1451         ToolButtonTextUnderIcon,
1452         ToolButtonFollowStyle
1453     };
1454 
1455     enum LayoutDirection {
1456         LeftToRight,
1457         RightToLeft,
1458         // ### Qt 7: make auto the first one (with value 0)
1459         LayoutDirectionAuto
1460     };
1461 
1462     enum AnchorPoint {
1463         AnchorLeft = 0,
1464         AnchorHorizontalCenter,
1465         AnchorRight,
1466         AnchorTop,
1467         AnchorVerticalCenter,
1468         AnchorBottom
1469     };
1470 
1471     enum FindChildOption {
1472         FindDirectChildrenOnly = 0x0,
1473         FindChildrenRecursively = 0x1
1474     };
1475     Q_DECLARE_FLAGS(FindChildOptions, FindChildOption)
1476 
1477     enum DropAction {
1478         CopyAction = 0x1,
1479         MoveAction = 0x2,
1480         LinkAction = 0x4,
1481         ActionMask = 0xff,
1482         TargetMoveAction = 0x8002,
1483         IgnoreAction = 0x0
1484     };
1485     Q_DECLARE_FLAGS(DropActions, DropAction)
1486     Q_DECLARE_OPERATORS_FOR_FLAGS(DropActions)
1487 
1488     enum CheckState {
1489         Unchecked,
1490         PartiallyChecked,
1491         Checked
1492     };
1493 
1494     enum ItemDataRole {
1495         DisplayRole = 0,
1496         DecorationRole = 1,
1497         EditRole = 2,
1498         ToolTipRole = 3,
1499         StatusTipRole = 4,
1500         WhatsThisRole = 5,
1501         // Metadata
1502         FontRole = 6,
1503         TextAlignmentRole = 7,
1504         BackgroundRole = 8,
1505         ForegroundRole = 9,
1506         CheckStateRole = 10,
1507         // Accessibility
1508         AccessibleTextRole = 11,
1509         AccessibleDescriptionRole = 12,
1510         // More general purpose
1511         SizeHintRole = 13,
1512         InitialSortOrderRole = 14,
1513         // Internal UiLib roles. Start worrying when public roles go that high.
1514         DisplayPropertyRole = 27,
1515         DecorationPropertyRole = 28,
1516         ToolTipPropertyRole = 29,
1517         StatusTipPropertyRole = 30,
1518         WhatsThisPropertyRole = 31,
1519         // Reserved
1520         UserRole = 0x0100
1521     };
1522 
1523     enum ItemFlag {
1524         NoItemFlags = 0,
1525         ItemIsSelectable = 1,
1526         ItemIsEditable = 2,
1527         ItemIsDragEnabled = 4,
1528         ItemIsDropEnabled = 8,
1529         ItemIsUserCheckable = 16,
1530         ItemIsEnabled = 32,
1531         ItemIsAutoTristate = 64,
1532         ItemNeverHasChildren = 128,
1533         ItemIsUserTristate = 256
1534     };
1535     Q_DECLARE_FLAGS(ItemFlags, ItemFlag)
1536     Q_DECLARE_OPERATORS_FOR_FLAGS(ItemFlags)
1537 
1538     enum MatchFlag {
1539         MatchExactly = 0,
1540         MatchContains = 1,
1541         MatchStartsWith = 2,
1542         MatchEndsWith = 3,
1543         MatchRegularExpression = 4,
1544         MatchWildcard = 5,
1545         MatchFixedString = 8,
1546         MatchTypeMask = 0x0F,
1547         MatchCaseSensitive = 16,
1548         MatchWrap = 32,
1549         MatchRecursive = 64
1550     };
1551     Q_DECLARE_FLAGS(MatchFlags, MatchFlag)
1552     Q_DECLARE_OPERATORS_FOR_FLAGS(MatchFlags)
1553 
1554     typedef void * HANDLE;
1555 
1556     enum WindowModality {
1557         NonModal,
1558         WindowModal,
1559         ApplicationModal
1560     };
1561 
1562     enum TextInteractionFlag {
1563         NoTextInteraction         = 0,
1564         TextSelectableByMouse     = 1,
1565         TextSelectableByKeyboard  = 2,
1566         LinksAccessibleByMouse    = 4,
1567         LinksAccessibleByKeyboard = 8,
1568         TextEditable              = 16,
1569 
1570         TextEditorInteraction     = TextSelectableByMouse | TextSelectableByKeyboard | TextEditable,
1571         TextBrowserInteraction    = TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard
1572     };
1573     Q_DECLARE_FLAGS(TextInteractionFlags, TextInteractionFlag)
1574     Q_DECLARE_OPERATORS_FOR_FLAGS(TextInteractionFlags)
1575 
1576     enum EventPriority {
1577         HighEventPriority = 1,
1578         NormalEventPriority = 0,
1579         LowEventPriority = -1
1580     };
1581 
1582     enum SizeHint {
1583         MinimumSize,
1584         PreferredSize,
1585         MaximumSize,
1586         MinimumDescent,
1587         NSizeHints
1588     };
1589 
1590     enum WindowFrameSection {
1591         NoSection,
1592         LeftSection,           // For resize
1593         TopLeftSection,
1594         TopSection,
1595         TopRightSection,
1596         RightSection,
1597         BottomRightSection,
1598         BottomSection,
1599         BottomLeftSection,
1600         TitleBarArea    // For move
1601     };
1602 
1603     enum class Initialization {
1604         Uninitialized
1605     };
1606     inline constexpr Initialization Uninitialized = Initialization::Uninitialized;
1607 
1608     inline QT_DEFINE_TAG(Disambiguated);
1609 
1610     enum CoordinateSystem {
1611         DeviceCoordinates,
1612         LogicalCoordinates
1613     };
1614 
1615     enum TouchPointState {
1616         TouchPointUnknownState = 0x00,
1617         TouchPointPressed    = 0x01,
1618         TouchPointMoved      = 0x02,
1619         TouchPointStationary = 0x04,
1620         TouchPointReleased   = 0x08
1621     };
1622     Q_DECLARE_FLAGS(TouchPointStates, TouchPointState)
1623     Q_DECLARE_OPERATORS_FOR_FLAGS(TouchPointStates)
1624 
1625 #ifndef QT_NO_GESTURES
1626     enum GestureState
1627     {
1628         NoGesture,
1629         GestureStarted  = 1,
1630         GestureUpdated  = 2,
1631         GestureFinished = 3,
1632         GestureCanceled = 4
1633     };
1634 
1635     enum GestureType
1636     {
1637         TapGesture        = 1,
1638         TapAndHoldGesture = 2,
1639         PanGesture        = 3,
1640         PinchGesture      = 4,
1641         SwipeGesture      = 5,
1642 
1643         CustomGesture     = 0x0100,
1644 
1645         LastGestureType   = ~0u
1646     };
1647 
1648     enum GestureFlag
1649     {
1650         DontStartGestureOnChildren = 0x01,
1651         ReceivePartialGestures     = 0x02,
1652         IgnoredGesturesPropagateToParent = 0x04
1653     };
1654     Q_DECLARE_FLAGS(GestureFlags, GestureFlag)
1655     Q_DECLARE_OPERATORS_FOR_FLAGS(GestureFlags)
1656 
1657     enum NativeGestureType
1658     {
1659         BeginNativeGesture,
1660         EndNativeGesture,
1661         PanNativeGesture,
1662         ZoomNativeGesture,
1663         SmartZoomNativeGesture,
1664         RotateNativeGesture,
1665         SwipeNativeGesture
1666     };
1667 
1668 #endif // QT_NO_GESTURES
1669 
1670     enum NavigationMode
1671     {
1672         NavigationModeNone,
1673         NavigationModeKeypadTabOrder,
1674         NavigationModeKeypadDirectional,
1675         NavigationModeCursorAuto,
1676         NavigationModeCursorForceVisible
1677     };
1678 
1679     enum CursorMoveStyle {
1680         LogicalMoveStyle,
1681         VisualMoveStyle
1682     };
1683 
1684     enum TimerType {
1685         PreciseTimer,
1686         CoarseTimer,
1687         VeryCoarseTimer
1688     };
1689 
1690     enum class TimerId {
1691         Invalid = 0,
1692     };
1693 
1694     enum ScrollPhase {
1695         NoScrollPhase = 0,
1696         ScrollBegin,
1697         ScrollUpdate,
1698         ScrollEnd,
1699         ScrollMomentum
1700     };
1701 
1702     enum MouseEventSource {
1703         MouseEventNotSynthesized,
1704         MouseEventSynthesizedBySystem,
1705         MouseEventSynthesizedByQt,
1706         MouseEventSynthesizedByApplication
1707     };
1708 
1709     enum MouseEventFlag {
1710         NoMouseEventFlag = 0x00,
1711         MouseEventCreatedDoubleClick = 0x01,
1712         MouseEventFlagMask = 0xFF
1713     };
1714     Q_DECLARE_FLAGS(MouseEventFlags, MouseEventFlag)
1715     Q_DECLARE_OPERATORS_FOR_FLAGS(MouseEventFlags)
1716 
1717     enum ChecksumType {
1718         ChecksumIso3309,
1719         ChecksumItuV41
1720     };
1721 
1722     enum class HighDpiScaleFactorRoundingPolicy {
1723         Unset,
1724         Round,
1725         Ceil,
1726         Floor,
1727         RoundPreferFloor,
1728         PassThrough
1729     };
1730 
1731     enum class PermissionStatus {
1732         Undetermined,
1733         Granted,
1734         Denied,
1735     };
1736 
1737     // QTBUG-48701
1738     enum ReturnByValueConstant { ReturnByValue }; // ### Qt 7: Remove me
1739 
1740 #ifndef Q_QDOC
1741     // NOTE: Generally, do not add Q_ENUM_NS if a corresponding Q_FLAG_NS exists.
1742     Q_ENUM_NS(ScrollBarPolicy)
1743     Q_ENUM_NS(FocusPolicy)
1744     Q_ENUM_NS(ContextMenuPolicy)
1745     Q_ENUM_NS(ContextMenuTrigger)
1746     Q_ENUM_NS(ArrowType)
1747     Q_ENUM_NS(ToolButtonStyle)
1748     Q_ENUM_NS(PenStyle)
1749     Q_ENUM_NS(PenCapStyle)
1750     Q_ENUM_NS(PenJoinStyle)
1751     Q_ENUM_NS(BrushStyle)
1752     Q_ENUM_NS(FillRule)
1753     Q_ENUM_NS(MaskMode)
1754     Q_ENUM_NS(BGMode)
1755     Q_ENUM_NS(ClipOperation)
1756     Q_ENUM_NS(SizeMode)
1757     Q_ENUM_NS(Axis)
1758     Q_ENUM_NS(Corner)
1759     Q_ENUM_NS(Edge)
1760     Q_ENUM_NS(LayoutDirection)
1761     Q_ENUM_NS(SizeHint)
1762     Q_ENUM_NS(Orientation)
1763     Q_ENUM_NS(DropAction)
1764     Q_FLAG_NS(Alignment)
1765     Q_ENUM_NS(TextFlag)
1766     Q_FLAG_NS(Orientations)
1767     Q_FLAG_NS(SplitBehavior)
1768     Q_FLAG_NS(DropActions)
1769     Q_FLAG_NS(Edges)
1770     Q_FLAG_NS(DockWidgetAreas)
1771     Q_FLAG_NS(ToolBarAreas)
1772     Q_ENUM_NS(DockWidgetArea)
1773     Q_ENUM_NS(ToolBarArea)
1774     Q_ENUM_NS(TextFormat)
1775     Q_ENUM_NS(TextElideMode)
1776     Q_ENUM_NS(DateFormat)
1777     Q_ENUM_NS(TimeSpec)
1778     Q_ENUM_NS(DayOfWeek)
1779     Q_ENUM_NS(CursorShape)
1780     Q_ENUM_NS(GlobalColor)
1781     Q_ENUM_NS(ColorScheme)
1782     Q_ENUM_NS(AspectRatioMode)
1783     Q_ENUM_NS(TransformationMode)
1784     Q_FLAG_NS(ImageConversionFlags)
1785     Q_ENUM_NS(Key)
1786     Q_ENUM_NS(ShortcutContext)
1787     Q_ENUM_NS(TextInteractionFlag)
1788     Q_FLAG_NS(TextInteractionFlags)
1789     Q_ENUM_NS(ItemSelectionMode)
1790     Q_ENUM_NS(ItemSelectionOperation)
1791     Q_FLAG_NS(ItemFlags)
1792     Q_ENUM_NS(CheckState)
1793     Q_ENUM_NS(ItemDataRole)
1794     Q_ENUM_NS(SortOrder)
1795     Q_ENUM_NS(CaseSensitivity)
1796     Q_FLAG_NS(MatchFlags)
1797     Q_ENUM_NS(Modifier)
1798     Q_FLAG_NS(Modifiers)
1799     Q_ENUM_NS(KeyboardModifier)
1800     Q_FLAG_NS(KeyboardModifiers)
1801     Q_FLAG_NS(MouseButtons)
1802     Q_ENUM_NS(WindowType)
1803     Q_ENUM_NS(WindowState)
1804     Q_ENUM_NS(WindowModality)
1805     Q_ENUM_NS(WidgetAttribute)
1806     Q_ENUM_NS(ApplicationAttribute)
1807     Q_FLAG_NS(WindowFlags)
1808     Q_FLAG_NS(WindowStates)
1809     Q_ENUM_NS(FocusReason)
1810     Q_ENUM_NS(InputMethodHint)
1811     Q_ENUM_NS(InputMethodQuery)
1812     Q_FLAG_NS(InputMethodHints)
1813     Q_ENUM_NS(EnterKeyType)
1814     Q_FLAG_NS(InputMethodQueries)
1815     Q_FLAG_NS(TouchPointStates)
1816     Q_ENUM_NS(ScreenOrientation)
1817     Q_FLAG_NS(ScreenOrientations)
1818     Q_ENUM_NS(ConnectionType)
1819     Q_ENUM_NS(ApplicationState)
1820 #ifndef QT_NO_GESTURES
1821     Q_ENUM_NS(GestureState)
1822     Q_ENUM_NS(GestureType)
1823     Q_ENUM_NS(NativeGestureType)
1824 #endif
1825     Q_ENUM_NS(CursorMoveStyle)
1826     Q_ENUM_NS(TimerType)
1827     Q_ENUM_NS(TimerId)
1828     Q_ENUM_NS(ScrollPhase)
1829     Q_ENUM_NS(MouseEventSource)
1830     Q_FLAG_NS(MouseEventFlags)
1831     Q_ENUM_NS(ChecksumType)
1832     Q_ENUM_NS(HighDpiScaleFactorRoundingPolicy)
1833     Q_ENUM_NS(TabFocusBehavior)
1834     Q_ENUM_NS(PermissionStatus)
1835 #endif // Q_DOC
1836 
1837 }
1838 
1839 typedef bool (*qInternalCallback)(void **);
1840 
1841 class Q_CORE_EXPORT QInternal {
1842 public:
1843     enum PaintDeviceFlags {
1844         UnknownDevice = 0x00,
1845         Widget        = 0x01,
1846         Pixmap        = 0x02,
1847         Image         = 0x03,
1848         Printer       = 0x04,
1849         Picture       = 0x05,
1850         Pbuffer       = 0x06,    // GL pbuffer
1851         FramebufferObject = 0x07, // GL framebuffer object
1852         CustomRaster  = 0x08,
1853         PaintBuffer   = 0x0a,
1854         OpenGL        = 0x0b
1855     };
1856     enum RelayoutType {
1857         RelayoutNormal,
1858         RelayoutDragging,
1859         RelayoutDropped
1860     };
1861 
1862     enum DockPosition {
1863         LeftDock,
1864         RightDock,
1865         TopDock,
1866         BottomDock,
1867         DockCount
1868     };
1869 
1870     enum Callback {
1871         EventNotifyCallback,
1872         LastCallback
1873     };
1874     static bool registerCallback(Callback, qInternalCallback);
1875     static bool unregisterCallback(Callback, qInternalCallback);
1876     static bool activateCallbacks(Callback, void **);
1877 };
1878 
1879 class QKeyCombination
1880 {
1881     int combination;
1882 
1883 public:
1884     constexpr Q_IMPLICIT QKeyCombination(Qt::Key key = Qt::Key_unknown) noexcept
1885         : combination(int(key))
1886     {}
1887 
1888     constexpr explicit QKeyCombination(Qt::Modifiers modifiers, Qt::Key key = Qt::Key_unknown) noexcept
1889         : combination(modifiers.toInt() | int(key))
1890     {}
1891 
1892     constexpr explicit QKeyCombination(Qt::KeyboardModifiers modifiers, Qt::Key key = Qt::Key_unknown) noexcept
1893         : combination(modifiers.toInt() | int(key))
1894     {}
1895 
1896     constexpr Qt::KeyboardModifiers keyboardModifiers() const noexcept
1897     {
1898         return Qt::KeyboardModifiers(combination & Qt::KeyboardModifierMask);
1899     }
1900 
1901     constexpr Qt::Key key() const noexcept
1902     {
1903         return Qt::Key(combination & ~int(Qt::KeyboardModifierMask));
1904     }
1905 
1906     static constexpr QKeyCombination fromCombined(int combined)
1907     {
1908         QKeyCombination result;
1909         result.combination = combined;
1910         return result;
1911     }
1912 
1913     constexpr int toCombined() const noexcept
1914     {
1915         return combination;
1916     }
1917 
1918 #if QT_DEPRECATED_SINCE(6, 0)
1919     QT_DEPRECATED_VERSION_X(6, 0, "Use QKeyCombination instead of int")
1920     constexpr Q_IMPLICIT operator int() const noexcept
1921     {
1922         return combination;
1923     }
1924 #endif
1925     bool operator<(QKeyCombination) const = delete;
1926 private:
1927     friend constexpr bool comparesEqual(const QKeyCombination &lhs,
1928                                         const QKeyCombination &rhs) noexcept
1929     {
1930         return lhs.combination == rhs.combination;
1931     }
1932     Q_DECLARE_EQUALITY_COMPARABLE_LITERAL_TYPE(QKeyCombination)
1933 };
1934 
1935 Q_DECLARE_TYPEINFO(QKeyCombination, Q_RELOCATABLE_TYPE);
1936 
1937 namespace Qt {
1938 constexpr QKeyCombination operator|(Qt::Modifier modifier, Qt::Key key) noexcept
1939 {
1940     return QKeyCombination(modifier, key);
1941 }
1942 
1943 constexpr QKeyCombination operator|(Qt::Modifiers modifiers, Qt::Key key) noexcept
1944 {
1945     return QKeyCombination(modifiers, key);
1946 }
1947 
1948 constexpr QKeyCombination operator|(Qt::KeyboardModifier modifier, Qt::Key key) noexcept
1949 {
1950     return QKeyCombination(modifier, key);
1951 }
1952 
1953 constexpr QKeyCombination operator|(Qt::KeyboardModifiers modifiers, Qt::Key key) noexcept
1954 {
1955     return QKeyCombination(modifiers, key);
1956 }
1957 
1958 constexpr QKeyCombination operator|(Qt::Key key, Qt::Modifier modifier) noexcept
1959 {
1960     return QKeyCombination(modifier, key);
1961 }
1962 
1963 constexpr QKeyCombination operator|(Qt::Key key, Qt::Modifiers modifiers) noexcept
1964 {
1965     return QKeyCombination(modifiers, key);
1966 }
1967 
1968 constexpr QKeyCombination operator|(Qt::Key key, Qt::KeyboardModifier modifier) noexcept
1969 {
1970     return QKeyCombination(modifier, key);
1971 }
1972 
1973 constexpr QKeyCombination operator|(Qt::Key key, Qt::KeyboardModifiers modifiers) noexcept
1974 {
1975     return QKeyCombination(modifiers, key);
1976 }
1977 
1978 #if QT_DEPRECATED_SINCE(6, 0)
1979 QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead")
1980 constexpr QKeyCombination operator+(Qt::Modifier modifier, Qt::Key key) noexcept
1981 {
1982     return QKeyCombination(modifier, key);
1983 }
1984 
1985 QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead")
1986 constexpr QKeyCombination operator+(Qt::Modifiers modifiers, Qt::Key key) noexcept
1987 {
1988     return QKeyCombination(modifiers, key);
1989 }
1990 
1991 QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead")
1992 constexpr QKeyCombination operator+(Qt::KeyboardModifier modifier, Qt::Key key) noexcept
1993 {
1994     return QKeyCombination(modifier, key);
1995 }
1996 
1997 QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead")
1998 constexpr QKeyCombination operator+(Qt::KeyboardModifiers modifiers, Qt::Key key) noexcept
1999 {
2000     return QKeyCombination(modifiers, key);
2001 }
2002 
2003 QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead")
2004 constexpr QKeyCombination operator+(Qt::Key key, Qt::Modifier modifier) noexcept
2005 {
2006     return QKeyCombination(modifier, key);
2007 }
2008 
2009 QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead")
2010 constexpr QKeyCombination operator+(Qt::Key key, Qt::Modifiers modifiers) noexcept
2011 {
2012     return QKeyCombination(modifiers, key);
2013 }
2014 
2015 QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead")
2016 constexpr QKeyCombination operator+(Qt::Key key, Qt::KeyboardModifier modifier) noexcept
2017 {
2018     return QKeyCombination(modifier, key);
2019 }
2020 
2021 QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead")
2022 constexpr QKeyCombination operator+(Qt::Key key, Qt::KeyboardModifiers modifiers) noexcept
2023 {
2024     return QKeyCombination(modifiers, key);
2025 }
2026 #endif
2027 }
2028 
2029 QT_END_NAMESPACE
2030 
2031 #endif // QNAMESPACE_H