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