1// qstyle.sip generated by MetaSIP
2//
3// This file is part of the QtWidgets Python extension module.
4//
5// Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
6//
7// This file is part of PyQt5.
8//
9// This file may be used under the terms of the GNU General Public License
10// version 3.0 as published by the Free Software Foundation and appearing in
11// the file LICENSE included in the packaging of this file.  Please review the
12// following information to ensure the GNU General Public License version 3.0
13// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
14//
15// If you do not wish to use this file under the terms of the GPL version 3.0
16// then you may purchase a commercial license.  For more information contact
17// info@riverbankcomputing.com.
18//
19// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
22
23class QStyle : QObject
24{
25%TypeHeaderCode
26#include <qstyle.h>
27%End
28
29public:
30    QStyle();
31    virtual ~QStyle();
32    virtual void polish(QWidget *);
33    virtual void unpolish(QWidget *);
34    virtual void polish(QApplication *);
35    virtual void unpolish(QApplication *);
36    virtual void polish(QPalette & /In,Out/);
37    virtual QRect itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const;
38    virtual QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const;
39    virtual void drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const;
40    virtual void drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const;
41    virtual QPalette standardPalette() const;
42
43    enum StateFlag
44    {
45        State_None,
46        State_Enabled,
47        State_Raised,
48        State_Sunken,
49        State_Off,
50        State_NoChange,
51        State_On,
52        State_DownArrow,
53        State_Horizontal,
54        State_HasFocus,
55        State_Top,
56        State_Bottom,
57        State_FocusAtBorder,
58        State_AutoRaise,
59        State_MouseOver,
60        State_UpArrow,
61        State_Selected,
62        State_Active,
63        State_Open,
64        State_Children,
65        State_Item,
66        State_Sibling,
67        State_Editing,
68        State_KeyboardFocusChange,
69        State_ReadOnly,
70        State_Window,
71        State_Small,
72        State_Mini,
73    };
74
75    typedef QFlags<QStyle::StateFlag> State;
76
77    enum PrimitiveElement
78    {
79        PE_Frame,
80        PE_FrameDefaultButton,
81        PE_FrameDockWidget,
82        PE_FrameFocusRect,
83        PE_FrameGroupBox,
84        PE_FrameLineEdit,
85        PE_FrameMenu,
86        PE_FrameStatusBar,
87        PE_FrameTabWidget,
88        PE_FrameWindow,
89        PE_FrameButtonBevel,
90        PE_FrameButtonTool,
91        PE_FrameTabBarBase,
92        PE_PanelButtonCommand,
93        PE_PanelButtonBevel,
94        PE_PanelButtonTool,
95        PE_PanelMenuBar,
96        PE_PanelToolBar,
97        PE_PanelLineEdit,
98        PE_IndicatorArrowDown,
99        PE_IndicatorArrowLeft,
100        PE_IndicatorArrowRight,
101        PE_IndicatorArrowUp,
102        PE_IndicatorBranch,
103        PE_IndicatorButtonDropDown,
104        PE_IndicatorViewItemCheck,
105        PE_IndicatorCheckBox,
106        PE_IndicatorDockWidgetResizeHandle,
107        PE_IndicatorHeaderArrow,
108        PE_IndicatorMenuCheckMark,
109        PE_IndicatorProgressChunk,
110        PE_IndicatorRadioButton,
111        PE_IndicatorSpinDown,
112        PE_IndicatorSpinMinus,
113        PE_IndicatorSpinPlus,
114        PE_IndicatorSpinUp,
115        PE_IndicatorToolBarHandle,
116        PE_IndicatorToolBarSeparator,
117        PE_PanelTipLabel,
118        PE_IndicatorTabTear,
119        PE_PanelScrollAreaCorner,
120        PE_Widget,
121        PE_IndicatorColumnViewArrow,
122        PE_FrameStatusBarItem,
123        PE_IndicatorItemViewItemCheck,
124        PE_IndicatorItemViewItemDrop,
125        PE_PanelItemViewItem,
126        PE_PanelItemViewRow,
127        PE_PanelStatusBar,
128        PE_IndicatorTabClose,
129        PE_PanelMenu,
130%If (Qt_5_7_0 -)
131        PE_IndicatorTabTearLeft,
132%End
133%If (Qt_5_7_0 -)
134        PE_IndicatorTabTearRight,
135%End
136        PE_CustomBase,
137    };
138
139    virtual void drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *widget = 0) const = 0;
140
141    enum ControlElement
142    {
143        CE_PushButton,
144        CE_PushButtonBevel,
145        CE_PushButtonLabel,
146        CE_CheckBox,
147        CE_CheckBoxLabel,
148        CE_RadioButton,
149        CE_RadioButtonLabel,
150        CE_TabBarTab,
151        CE_TabBarTabShape,
152        CE_TabBarTabLabel,
153        CE_ProgressBar,
154        CE_ProgressBarGroove,
155        CE_ProgressBarContents,
156        CE_ProgressBarLabel,
157        CE_MenuItem,
158        CE_MenuScroller,
159        CE_MenuVMargin,
160        CE_MenuHMargin,
161        CE_MenuTearoff,
162        CE_MenuEmptyArea,
163        CE_MenuBarItem,
164        CE_MenuBarEmptyArea,
165        CE_ToolButtonLabel,
166        CE_Header,
167        CE_HeaderSection,
168        CE_HeaderLabel,
169        CE_ToolBoxTab,
170        CE_SizeGrip,
171        CE_Splitter,
172        CE_RubberBand,
173        CE_DockWidgetTitle,
174        CE_ScrollBarAddLine,
175        CE_ScrollBarSubLine,
176        CE_ScrollBarAddPage,
177        CE_ScrollBarSubPage,
178        CE_ScrollBarSlider,
179        CE_ScrollBarFirst,
180        CE_ScrollBarLast,
181        CE_FocusFrame,
182        CE_ComboBoxLabel,
183        CE_ToolBar,
184        CE_ToolBoxTabShape,
185        CE_ToolBoxTabLabel,
186        CE_HeaderEmptyArea,
187        CE_ColumnViewGrip,
188        CE_ItemViewItem,
189        CE_ShapedFrame,
190        CE_CustomBase,
191    };
192
193    virtual void drawControl(QStyle::ControlElement element, const QStyleOption *opt, QPainter *p, const QWidget *widget = 0) const = 0;
194
195    enum SubElement
196    {
197        SE_PushButtonContents,
198        SE_PushButtonFocusRect,
199        SE_CheckBoxIndicator,
200        SE_CheckBoxContents,
201        SE_CheckBoxFocusRect,
202        SE_CheckBoxClickRect,
203        SE_RadioButtonIndicator,
204        SE_RadioButtonContents,
205        SE_RadioButtonFocusRect,
206        SE_RadioButtonClickRect,
207        SE_ComboBoxFocusRect,
208        SE_SliderFocusRect,
209        SE_ProgressBarGroove,
210        SE_ProgressBarContents,
211        SE_ProgressBarLabel,
212        SE_ToolBoxTabContents,
213        SE_HeaderLabel,
214        SE_HeaderArrow,
215        SE_TabWidgetTabBar,
216        SE_TabWidgetTabPane,
217        SE_TabWidgetTabContents,
218        SE_TabWidgetLeftCorner,
219        SE_TabWidgetRightCorner,
220        SE_ViewItemCheckIndicator,
221        SE_TabBarTearIndicator,
222        SE_TreeViewDisclosureItem,
223        SE_LineEditContents,
224        SE_FrameContents,
225        SE_DockWidgetCloseButton,
226        SE_DockWidgetFloatButton,
227        SE_DockWidgetTitleBarText,
228        SE_DockWidgetIcon,
229        SE_CheckBoxLayoutItem,
230        SE_ComboBoxLayoutItem,
231        SE_DateTimeEditLayoutItem,
232        SE_DialogButtonBoxLayoutItem,
233        SE_LabelLayoutItem,
234        SE_ProgressBarLayoutItem,
235        SE_PushButtonLayoutItem,
236        SE_RadioButtonLayoutItem,
237        SE_SliderLayoutItem,
238        SE_SpinBoxLayoutItem,
239        SE_ToolButtonLayoutItem,
240        SE_FrameLayoutItem,
241        SE_GroupBoxLayoutItem,
242        SE_TabWidgetLayoutItem,
243        SE_ItemViewItemCheckIndicator,
244        SE_ItemViewItemDecoration,
245        SE_ItemViewItemText,
246        SE_ItemViewItemFocusRect,
247        SE_TabBarTabLeftButton,
248        SE_TabBarTabRightButton,
249        SE_TabBarTabText,
250        SE_ShapedFrameContents,
251        SE_ToolBarHandle,
252%If (Qt_5_7_0 -)
253        SE_TabBarTearIndicatorLeft,
254%End
255%If (Qt_5_7_0 -)
256        SE_TabBarScrollLeftButton,
257%End
258%If (Qt_5_7_0 -)
259        SE_TabBarScrollRightButton,
260%End
261%If (Qt_5_7_0 -)
262        SE_TabBarTearIndicatorRight,
263%End
264%If (Qt_5_15_0 -)
265        SE_PushButtonBevel,
266%End
267        SE_CustomBase,
268    };
269
270    virtual QRect subElementRect(QStyle::SubElement subElement, const QStyleOption *option, const QWidget *widget = 0) const = 0;
271
272    enum ComplexControl
273    {
274        CC_SpinBox,
275        CC_ComboBox,
276        CC_ScrollBar,
277        CC_Slider,
278        CC_ToolButton,
279        CC_TitleBar,
280        CC_Dial,
281        CC_GroupBox,
282        CC_MdiControls,
283        CC_CustomBase,
284    };
285
286    enum SubControl
287    {
288        SC_None,
289        SC_ScrollBarAddLine,
290        SC_ScrollBarSubLine,
291        SC_ScrollBarAddPage,
292        SC_ScrollBarSubPage,
293        SC_ScrollBarFirst,
294        SC_ScrollBarLast,
295        SC_ScrollBarSlider,
296        SC_ScrollBarGroove,
297        SC_SpinBoxUp,
298        SC_SpinBoxDown,
299        SC_SpinBoxFrame,
300        SC_SpinBoxEditField,
301        SC_ComboBoxFrame,
302        SC_ComboBoxEditField,
303        SC_ComboBoxArrow,
304        SC_ComboBoxListBoxPopup,
305        SC_SliderGroove,
306        SC_SliderHandle,
307        SC_SliderTickmarks,
308        SC_ToolButton,
309        SC_ToolButtonMenu,
310        SC_TitleBarSysMenu,
311        SC_TitleBarMinButton,
312        SC_TitleBarMaxButton,
313        SC_TitleBarCloseButton,
314        SC_TitleBarNormalButton,
315        SC_TitleBarShadeButton,
316        SC_TitleBarUnshadeButton,
317        SC_TitleBarContextHelpButton,
318        SC_TitleBarLabel,
319        SC_DialGroove,
320        SC_DialHandle,
321        SC_DialTickmarks,
322        SC_GroupBoxCheckBox,
323        SC_GroupBoxLabel,
324        SC_GroupBoxContents,
325        SC_GroupBoxFrame,
326        SC_MdiMinButton,
327        SC_MdiNormalButton,
328        SC_MdiCloseButton,
329        SC_CustomBase,
330        SC_All,
331    };
332
333    typedef QFlags<QStyle::SubControl> SubControls;
334    virtual void drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p, const QWidget *widget = 0) const = 0;
335    virtual QStyle::SubControl hitTestComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt, const QWidget *widget = 0) const = 0;
336    virtual QRect subControlRect(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, QStyle::SubControl sc, const QWidget *widget = 0) const = 0;
337
338    enum PixelMetric
339    {
340        PM_ButtonMargin,
341        PM_ButtonDefaultIndicator,
342        PM_MenuButtonIndicator,
343        PM_ButtonShiftHorizontal,
344        PM_ButtonShiftVertical,
345        PM_DefaultFrameWidth,
346        PM_SpinBoxFrameWidth,
347        PM_ComboBoxFrameWidth,
348        PM_MaximumDragDistance,
349        PM_ScrollBarExtent,
350        PM_ScrollBarSliderMin,
351        PM_SliderThickness,
352        PM_SliderControlThickness,
353        PM_SliderLength,
354        PM_SliderTickmarkOffset,
355        PM_SliderSpaceAvailable,
356        PM_DockWidgetSeparatorExtent,
357        PM_DockWidgetHandleExtent,
358        PM_DockWidgetFrameWidth,
359        PM_TabBarTabOverlap,
360        PM_TabBarTabHSpace,
361        PM_TabBarTabVSpace,
362        PM_TabBarBaseHeight,
363        PM_TabBarBaseOverlap,
364        PM_ProgressBarChunkWidth,
365        PM_SplitterWidth,
366        PM_TitleBarHeight,
367        PM_MenuScrollerHeight,
368        PM_MenuHMargin,
369        PM_MenuVMargin,
370        PM_MenuPanelWidth,
371        PM_MenuTearoffHeight,
372        PM_MenuDesktopFrameWidth,
373        PM_MenuBarPanelWidth,
374        PM_MenuBarItemSpacing,
375        PM_MenuBarVMargin,
376        PM_MenuBarHMargin,
377        PM_IndicatorWidth,
378        PM_IndicatorHeight,
379        PM_ExclusiveIndicatorWidth,
380        PM_ExclusiveIndicatorHeight,
381        PM_DialogButtonsSeparator,
382        PM_DialogButtonsButtonWidth,
383        PM_DialogButtonsButtonHeight,
384        PM_MdiSubWindowFrameWidth,
385        PM_MDIFrameWidth,
386        PM_MdiSubWindowMinimizedWidth,
387        PM_MDIMinimizedWidth,
388        PM_HeaderMargin,
389        PM_HeaderMarkSize,
390        PM_HeaderGripMargin,
391        PM_TabBarTabShiftHorizontal,
392        PM_TabBarTabShiftVertical,
393        PM_TabBarScrollButtonWidth,
394        PM_ToolBarFrameWidth,
395        PM_ToolBarHandleExtent,
396        PM_ToolBarItemSpacing,
397        PM_ToolBarItemMargin,
398        PM_ToolBarSeparatorExtent,
399        PM_ToolBarExtensionExtent,
400        PM_SpinBoxSliderHeight,
401        PM_DefaultTopLevelMargin,
402        PM_DefaultChildMargin,
403        PM_DefaultLayoutSpacing,
404        PM_ToolBarIconSize,
405        PM_ListViewIconSize,
406        PM_IconViewIconSize,
407        PM_SmallIconSize,
408        PM_LargeIconSize,
409        PM_FocusFrameVMargin,
410        PM_FocusFrameHMargin,
411        PM_ToolTipLabelFrameWidth,
412        PM_CheckBoxLabelSpacing,
413        PM_TabBarIconSize,
414        PM_SizeGripSize,
415        PM_DockWidgetTitleMargin,
416        PM_MessageBoxIconSize,
417        PM_ButtonIconSize,
418        PM_DockWidgetTitleBarButtonMargin,
419        PM_RadioButtonLabelSpacing,
420        PM_LayoutLeftMargin,
421        PM_LayoutTopMargin,
422        PM_LayoutRightMargin,
423        PM_LayoutBottomMargin,
424        PM_LayoutHorizontalSpacing,
425        PM_LayoutVerticalSpacing,
426        PM_TabBar_ScrollButtonOverlap,
427        PM_TextCursorWidth,
428        PM_TabCloseIndicatorWidth,
429        PM_TabCloseIndicatorHeight,
430        PM_ScrollView_ScrollBarSpacing,
431        PM_SubMenuOverlap,
432        PM_ScrollView_ScrollBarOverlap,
433%If (Qt_5_4_0 -)
434        PM_TreeViewIndentation,
435%End
436%If (Qt_5_5_0 -)
437        PM_HeaderDefaultSectionSizeHorizontal,
438%End
439%If (Qt_5_5_0 -)
440        PM_HeaderDefaultSectionSizeVertical,
441%End
442%If (Qt_5_8_0 -)
443        PM_TitleBarButtonIconSize,
444%End
445%If (Qt_5_8_0 -)
446        PM_TitleBarButtonSize,
447%End
448        PM_CustomBase,
449    };
450
451    virtual int pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const = 0;
452
453    enum ContentsType
454    {
455        CT_PushButton,
456        CT_CheckBox,
457        CT_RadioButton,
458        CT_ToolButton,
459        CT_ComboBox,
460        CT_Splitter,
461        CT_ProgressBar,
462        CT_MenuItem,
463        CT_MenuBarItem,
464        CT_MenuBar,
465        CT_Menu,
466        CT_TabBarTab,
467        CT_Slider,
468        CT_ScrollBar,
469        CT_LineEdit,
470        CT_SpinBox,
471        CT_SizeGrip,
472        CT_TabWidget,
473        CT_DialogButtons,
474        CT_HeaderSection,
475        CT_GroupBox,
476        CT_MdiControls,
477        CT_ItemViewItem,
478        CT_CustomBase,
479    };
480
481    virtual QSize sizeFromContents(QStyle::ContentsType ct, const QStyleOption *opt, const QSize &contentsSize, const QWidget *widget = 0) const = 0;
482
483    enum StyleHint
484    {
485        SH_EtchDisabledText,
486        SH_DitherDisabledText,
487        SH_ScrollBar_MiddleClickAbsolutePosition,
488        SH_ScrollBar_ScrollWhenPointerLeavesControl,
489        SH_TabBar_SelectMouseType,
490        SH_TabBar_Alignment,
491        SH_Header_ArrowAlignment,
492        SH_Slider_SnapToValue,
493        SH_Slider_SloppyKeyEvents,
494        SH_ProgressDialog_CenterCancelButton,
495        SH_ProgressDialog_TextLabelAlignment,
496        SH_PrintDialog_RightAlignButtons,
497        SH_MainWindow_SpaceBelowMenuBar,
498        SH_FontDialog_SelectAssociatedText,
499        SH_Menu_AllowActiveAndDisabled,
500        SH_Menu_SpaceActivatesItem,
501        SH_Menu_SubMenuPopupDelay,
502        SH_ScrollView_FrameOnlyAroundContents,
503        SH_MenuBar_AltKeyNavigation,
504        SH_ComboBox_ListMouseTracking,
505        SH_Menu_MouseTracking,
506        SH_MenuBar_MouseTracking,
507        SH_ItemView_ChangeHighlightOnFocus,
508        SH_Widget_ShareActivation,
509        SH_Workspace_FillSpaceOnMaximize,
510        SH_ComboBox_Popup,
511        SH_TitleBar_NoBorder,
512        SH_ScrollBar_StopMouseOverSlider,
513        SH_BlinkCursorWhenTextSelected,
514        SH_RichText_FullWidthSelection,
515        SH_Menu_Scrollable,
516        SH_GroupBox_TextLabelVerticalAlignment,
517        SH_GroupBox_TextLabelColor,
518        SH_Menu_SloppySubMenus,
519        SH_Table_GridLineColor,
520        SH_LineEdit_PasswordCharacter,
521        SH_DialogButtons_DefaultButton,
522        SH_ToolBox_SelectedPageTitleBold,
523        SH_TabBar_PreferNoArrows,
524        SH_ScrollBar_LeftClickAbsolutePosition,
525        SH_UnderlineShortcut,
526        SH_SpinBox_AnimateButton,
527        SH_SpinBox_KeyPressAutoRepeatRate,
528        SH_SpinBox_ClickAutoRepeatRate,
529        SH_Menu_FillScreenWithScroll,
530        SH_ToolTipLabel_Opacity,
531        SH_DrawMenuBarSeparator,
532        SH_TitleBar_ModifyNotification,
533        SH_Button_FocusPolicy,
534        SH_MessageBox_UseBorderForButtonSpacing,
535        SH_TitleBar_AutoRaise,
536        SH_ToolButton_PopupDelay,
537        SH_FocusFrame_Mask,
538        SH_RubberBand_Mask,
539        SH_WindowFrame_Mask,
540        SH_SpinControls_DisableOnBounds,
541        SH_Dial_BackgroundRole,
542        SH_ComboBox_LayoutDirection,
543        SH_ItemView_EllipsisLocation,
544        SH_ItemView_ShowDecorationSelected,
545        SH_ItemView_ActivateItemOnSingleClick,
546        SH_ScrollBar_ContextMenu,
547        SH_ScrollBar_RollBetweenButtons,
548        SH_Slider_StopMouseOverSlider,
549        SH_Slider_AbsoluteSetButtons,
550        SH_Slider_PageSetButtons,
551        SH_Menu_KeyboardSearch,
552        SH_TabBar_ElideMode,
553        SH_DialogButtonLayout,
554        SH_ComboBox_PopupFrameStyle,
555        SH_MessageBox_TextInteractionFlags,
556        SH_DialogButtonBox_ButtonsHaveIcons,
557        SH_SpellCheckUnderlineStyle,
558        SH_MessageBox_CenterButtons,
559        SH_Menu_SelectionWrap,
560        SH_ItemView_MovementWithoutUpdatingSelection,
561        SH_ToolTip_Mask,
562        SH_FocusFrame_AboveWidget,
563        SH_TextControl_FocusIndicatorTextCharFormat,
564        SH_WizardStyle,
565        SH_ItemView_ArrowKeysNavigateIntoChildren,
566        SH_Menu_Mask,
567        SH_Menu_FlashTriggeredItem,
568        SH_Menu_FadeOutOnHide,
569        SH_SpinBox_ClickAutoRepeatThreshold,
570        SH_ItemView_PaintAlternatingRowColorsForEmptyArea,
571        SH_FormLayoutWrapPolicy,
572        SH_TabWidget_DefaultTabPosition,
573        SH_ToolBar_Movable,
574        SH_FormLayoutFieldGrowthPolicy,
575        SH_FormLayoutFormAlignment,
576        SH_FormLayoutLabelAlignment,
577        SH_ItemView_DrawDelegateFrame,
578        SH_TabBar_CloseButtonPosition,
579        SH_DockWidget_ButtonsHaveFrame,
580        SH_ToolButtonStyle,
581        SH_RequestSoftwareInputPanel,
582        SH_ListViewExpand_SelectMouseType,
583        SH_ScrollBar_Transient,
584%If (Qt_5_1_0 -)
585        SH_Menu_SupportsSections,
586%End
587%If (Qt_5_2_0 -)
588        SH_ToolTip_WakeUpDelay,
589%End
590%If (Qt_5_2_0 -)
591        SH_ToolTip_FallAsleepDelay,
592%End
593%If (Qt_5_2_0 -)
594        SH_Widget_Animate,
595%End
596%If (Qt_5_2_0 -)
597        SH_Splitter_OpaqueResize,
598%End
599%If (Qt_5_4_0 -)
600        SH_LineEdit_PasswordMaskDelay,
601%End
602%If (Qt_5_4_0 -)
603        SH_TabBar_ChangeCurrentDelay,
604%End
605%If (Qt_5_5_0 -)
606        SH_Menu_SubMenuUniDirection,
607%End
608%If (Qt_5_5_0 -)
609        SH_Menu_SubMenuUniDirectionFailCount,
610%End
611%If (Qt_5_5_0 -)
612        SH_Menu_SubMenuSloppySelectOtherActions,
613%End
614%If (Qt_5_5_0 -)
615        SH_Menu_SubMenuSloppyCloseTimeout,
616%End
617%If (Qt_5_5_0 -)
618        SH_Menu_SubMenuResetWhenReenteringParent,
619%End
620%If (Qt_5_5_0 -)
621        SH_Menu_SubMenuDontStartSloppyOnLeave,
622%End
623%If (Qt_5_7_0 -)
624        SH_ItemView_ScrollMode,
625%End
626%If (Qt_5_10_0 -)
627        SH_TitleBar_ShowToolTipsOnButtons,
628%End
629%If (Qt_5_10_0 -)
630        SH_Widget_Animation_Duration,
631%End
632%If (Qt_5_11_0 -)
633        SH_ComboBox_AllowWheelScrolling,
634%End
635%If (Qt_5_11_0 -)
636        SH_SpinBox_ButtonsInsideFrame,
637%End
638%If (Qt_5_12_0 -)
639        SH_SpinBox_StepModifier,
640%End
641        SH_CustomBase,
642    };
643
644    virtual int styleHint(QStyle::StyleHint stylehint, const QStyleOption *option = 0, const QWidget *widget = 0, QStyleHintReturn *returnData = 0) const = 0;
645
646    enum StandardPixmap
647    {
648        SP_TitleBarMenuButton,
649        SP_TitleBarMinButton,
650        SP_TitleBarMaxButton,
651        SP_TitleBarCloseButton,
652        SP_TitleBarNormalButton,
653        SP_TitleBarShadeButton,
654        SP_TitleBarUnshadeButton,
655        SP_TitleBarContextHelpButton,
656        SP_DockWidgetCloseButton,
657        SP_MessageBoxInformation,
658        SP_MessageBoxWarning,
659        SP_MessageBoxCritical,
660        SP_MessageBoxQuestion,
661        SP_DesktopIcon,
662        SP_TrashIcon,
663        SP_ComputerIcon,
664        SP_DriveFDIcon,
665        SP_DriveHDIcon,
666        SP_DriveCDIcon,
667        SP_DriveDVDIcon,
668        SP_DriveNetIcon,
669        SP_DirOpenIcon,
670        SP_DirClosedIcon,
671        SP_DirLinkIcon,
672        SP_FileIcon,
673        SP_FileLinkIcon,
674        SP_ToolBarHorizontalExtensionButton,
675        SP_ToolBarVerticalExtensionButton,
676        SP_FileDialogStart,
677        SP_FileDialogEnd,
678        SP_FileDialogToParent,
679        SP_FileDialogNewFolder,
680        SP_FileDialogDetailedView,
681        SP_FileDialogInfoView,
682        SP_FileDialogContentsView,
683        SP_FileDialogListView,
684        SP_FileDialogBack,
685        SP_DirIcon,
686        SP_DialogOkButton,
687        SP_DialogCancelButton,
688        SP_DialogHelpButton,
689        SP_DialogOpenButton,
690        SP_DialogSaveButton,
691        SP_DialogCloseButton,
692        SP_DialogApplyButton,
693        SP_DialogResetButton,
694        SP_DialogDiscardButton,
695        SP_DialogYesButton,
696        SP_DialogNoButton,
697        SP_ArrowUp,
698        SP_ArrowDown,
699        SP_ArrowLeft,
700        SP_ArrowRight,
701        SP_ArrowBack,
702        SP_ArrowForward,
703        SP_DirHomeIcon,
704        SP_CommandLink,
705        SP_VistaShield,
706        SP_BrowserReload,
707        SP_BrowserStop,
708        SP_MediaPlay,
709        SP_MediaStop,
710        SP_MediaPause,
711        SP_MediaSkipForward,
712        SP_MediaSkipBackward,
713        SP_MediaSeekForward,
714        SP_MediaSeekBackward,
715        SP_MediaVolume,
716        SP_MediaVolumeMuted,
717        SP_DirLinkOpenIcon,
718%If (Qt_5_2_0 -)
719        SP_LineEditClearButton,
720%End
721%If (Qt_5_14_0 -)
722        SP_DialogYesToAllButton,
723%End
724%If (Qt_5_14_0 -)
725        SP_DialogNoToAllButton,
726%End
727%If (Qt_5_14_0 -)
728        SP_DialogSaveAllButton,
729%End
730%If (Qt_5_14_0 -)
731        SP_DialogAbortButton,
732%End
733%If (Qt_5_14_0 -)
734        SP_DialogRetryButton,
735%End
736%If (Qt_5_14_0 -)
737        SP_DialogIgnoreButton,
738%End
739%If (Qt_5_14_0 -)
740        SP_RestoreDefaultsButton,
741%End
742        SP_CustomBase,
743    };
744
745    virtual QPixmap standardPixmap(QStyle::StandardPixmap standardPixmap, const QStyleOption *option = 0, const QWidget *widget = 0) const = 0;
746    virtual QIcon standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = 0, const QWidget *widget = 0) const = 0;
747    virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const = 0;
748    static QRect visualRect(Qt::LayoutDirection direction, const QRect &boundingRect, const QRect &logicalRect);
749    static QPoint visualPos(Qt::LayoutDirection direction, const QRect &boundingRect, const QPoint &logicalPos);
750    static int sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown = false);
751    static int sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown = false);
752    static Qt::Alignment visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment);
753    static QRect alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle);
754    virtual int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = 0, const QWidget *widget = 0) const = 0;
755    int combinedLayoutSpacing(QSizePolicy::ControlTypes controls1, QSizePolicy::ControlTypes controls2, Qt::Orientation orientation, QStyleOption *option = 0, QWidget *widget = 0) const;
756
757    enum RequestSoftwareInputPanel
758    {
759        RSIP_OnMouseClickAndAlreadyFocused,
760        RSIP_OnMouseClick,
761    };
762
763    const QStyle *proxy() const;
764};
765
766QFlags<QStyle::StateFlag> operator|(QStyle::StateFlag f1, QFlags<QStyle::StateFlag> f2);
767QFlags<QStyle::SubControl> operator|(QStyle::SubControl f1, QFlags<QStyle::SubControl> f2);
768