Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-18 09:25:19

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