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