src/gui/styles/qstyle.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 **
00003 ** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.
00004 **
00005 ** This file is part of the QtGui module of the Qt Toolkit.
00006 **
00007 ** This file may be used under the terms of the GNU General Public
00008 ** License version 2.0 as published by the Free Software Foundation
00009 ** and appearing in the file LICENSE.GPL included in the packaging of
00010 ** this file.  Please review the following information to ensure GNU
00011 ** General Public Licensing requirements will be met:
00012 ** http://www.trolltech.com/products/qt/opensource.html
00013 **
00014 ** If you are unsure which license is appropriate for your use, please
00015 ** review the following information:
00016 ** http://www.trolltech.com/products/qt/licensing.html or contact the
00017 ** sales department at sales@trolltech.com.
00018 **
00019 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00020 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00021 **
00022 ****************************************************************************/
00023 
00024 #ifndef QSTYLE_H
00025 #define QSTYLE_H
00026 
00027 #include <QtCore/qobject.h>
00028 #include <QtCore/qrect.h>
00029 #include <QtCore/qsize.h>
00030 #include <QtGui/qicon.h>
00031 #include <QtGui/qpixmap.h>
00032 #include <QtGui/qpalette.h>
00033 #include <QtCore/qobject.h>
00034 
00035 QT_BEGIN_HEADER
00036 
00037 QT_MODULE(Gui)
00038 
00039 class QAction;
00040 class QDebug;
00041 class QTab;
00042 class QFontMetrics;
00043 class QStyleHintReturn;
00044 class QStyleOption;
00045 class QStyleOptionComplex;
00046 class QStylePrivate;
00047 
00048 class Q_GUI_EXPORT QStyle : public QObject
00049 {
00050     Q_OBJECT
00051     Q_DECLARE_PRIVATE(QStyle)
00052 
00053 protected:
00054     QStyle(QStylePrivate &dd);
00055 
00056 public:
00057     QStyle();
00058     virtual ~QStyle();
00059 
00060     virtual void polish(QWidget *);
00061     virtual void unpolish(QWidget *);
00062 
00063     virtual void polish(QApplication *);
00064     virtual void unpolish(QApplication *);
00065 
00066     virtual void polish(QPalette &);
00067 
00068     virtual QRect itemTextRect(const QFontMetrics &fm, const QRect &r,
00069                            int flags, bool enabled,
00070                            const QString &text) const;
00071 
00072     virtual QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const;
00073 
00074     virtual void drawItemText(QPainter *painter, const QRect &rect,
00075                               int flags, const QPalette &pal, bool enabled,
00076                               const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const;
00077 
00078     virtual void drawItemPixmap(QPainter *painter, const QRect &rect,
00079                                 int alignment, const QPixmap &pixmap) const;
00080 
00081     virtual QPalette standardPalette() const;
00082 
00083     enum StateFlag {
00084         State_None    =       0x00000000,
00085 #ifdef QT3_SUPPORT
00086         State_Default = State_None,
00087 #endif
00088         State_Enabled =       0x00000001,
00089         State_Raised =        0x00000002,
00090         State_Sunken =        0x00000004,
00091         State_Off =           0x00000008,
00092         State_NoChange =      0x00000010,
00093         State_On =            0x00000020,
00094         State_DownArrow =     0x00000040,
00095         State_Horizontal =    0x00000080,
00096         State_HasFocus =      0x00000100,
00097         State_Top =           0x00000200,
00098         State_Bottom =        0x00000400,
00099         State_FocusAtBorder = 0x00000800,
00100         State_AutoRaise =     0x00001000,
00101         State_MouseOver =     0x00002000,
00102         State_UpArrow =       0x00004000,
00103         State_Selected =      0x00008000,
00104         State_Active =        0x00010000,
00105         State_Open =          0x00040000,
00106         State_Children =      0x00080000,
00107         State_Item =          0x00100000,
00108         State_Sibling =       0x00200000,
00109         State_Editing =       0x00400000,
00110         State_KeyboardFocusChange = 0x00800000,
00111 #ifdef QT_KEYPAD_NAVIGATION
00112         State_HasEditFocus =  0x01000000,
00113 #endif
00114         State_ReadOnly =      0x02000000
00115     };
00116     Q_DECLARE_FLAGS(State, StateFlag)
00117 
00118 #ifdef QT3_SUPPORT
00119     typedef State SFlags;
00120 #endif
00121 
00122     enum PrimitiveElement {
00123         PE_Q3CheckListController,
00124         PE_Q3CheckListExclusiveIndicator,
00125         PE_Q3CheckListIndicator,
00126         PE_Q3DockWindowSeparator,
00127         PE_Q3Separator,
00128 
00129         PE_Frame,
00130         PE_FrameDefaultButton,
00131         PE_FrameDockWidget,
00132         PE_FrameFocusRect,
00133         PE_FrameGroupBox,
00134         PE_FrameLineEdit,
00135         PE_FrameMenu,
00136         PE_FrameStatusBar,
00137         PE_FrameTabWidget,
00138         PE_FrameWindow,
00139         PE_FrameButtonBevel,
00140         PE_FrameButtonTool,
00141         PE_FrameTabBarBase,
00142 
00143         PE_PanelButtonCommand,
00144         PE_PanelButtonBevel,
00145         PE_PanelButtonTool,
00146         PE_PanelMenuBar,
00147         PE_PanelToolBar,
00148         PE_PanelLineEdit,
00149 
00150         PE_IndicatorArrowDown,
00151         PE_IndicatorArrowLeft,
00152         PE_IndicatorArrowRight,
00153         PE_IndicatorArrowUp,
00154         PE_IndicatorBranch,
00155         PE_IndicatorButtonDropDown,
00156         PE_IndicatorViewItemCheck,
00157         PE_IndicatorCheckBox,
00158         PE_IndicatorDockWidgetResizeHandle,
00159         PE_IndicatorHeaderArrow,
00160         PE_IndicatorMenuCheckMark,
00161         PE_IndicatorProgressChunk,
00162         PE_IndicatorRadioButton,
00163         PE_IndicatorSpinDown,
00164         PE_IndicatorSpinMinus,
00165         PE_IndicatorSpinPlus,
00166         PE_IndicatorSpinUp,
00167         PE_IndicatorToolBarHandle,
00168         PE_IndicatorToolBarSeparator,
00169         PE_PanelTipLabel,
00170         PE_IndicatorTabTear,
00171         PE_PanelScrollAreaCorner,
00172 
00173         PE_Widget,
00174 
00175         // do not add any values below/greater this
00176         PE_CustomBase = 0xf000000
00177     };
00178 
00179     virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p,
00180                                const QWidget *w = 0) const = 0;
00181     enum ControlElement {
00182         CE_PushButton,
00183         CE_PushButtonBevel,
00184         CE_PushButtonLabel,
00185 
00186         CE_CheckBox,
00187         CE_CheckBoxLabel,
00188 
00189         CE_RadioButton,
00190         CE_RadioButtonLabel,
00191 
00192         CE_TabBarTab,
00193         CE_TabBarTabShape,
00194         CE_TabBarTabLabel,
00195 
00196         CE_ProgressBar,
00197         CE_ProgressBarGroove,
00198         CE_ProgressBarContents,
00199         CE_ProgressBarLabel,
00200 
00201         CE_MenuItem,
00202         CE_MenuScroller,
00203         CE_MenuVMargin,
00204         CE_MenuHMargin,
00205         CE_MenuTearoff,
00206         CE_MenuEmptyArea,
00207 
00208         CE_MenuBarItem,
00209         CE_MenuBarEmptyArea,
00210 
00211         CE_ToolButtonLabel,
00212 
00213         CE_Header,
00214         CE_HeaderSection,
00215         CE_HeaderLabel,
00216 
00217         CE_Q3DockWindowEmptyArea,
00218         CE_ToolBoxTab,
00219         CE_SizeGrip,
00220         CE_Splitter,
00221         CE_RubberBand,
00222         CE_DockWidgetTitle,
00223 
00224         CE_ScrollBarAddLine,
00225         CE_ScrollBarSubLine,
00226         CE_ScrollBarAddPage,
00227         CE_ScrollBarSubPage,
00228         CE_ScrollBarSlider,
00229         CE_ScrollBarFirst,
00230         CE_ScrollBarLast,
00231 
00232         CE_FocusFrame,
00233         CE_ComboBoxLabel,
00234 
00235         CE_ToolBar,
00236 
00237         // do not add any values below/greater than this
00238         CE_CustomBase = 0xf0000000
00239     };
00240 
00241     virtual void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p,
00242                              const QWidget *w = 0) const = 0;
00243 
00244     enum SubElement {
00245         SE_PushButtonContents,
00246         SE_PushButtonFocusRect,
00247 
00248         SE_CheckBoxIndicator,
00249         SE_CheckBoxContents,
00250         SE_CheckBoxFocusRect,
00251         SE_CheckBoxClickRect,
00252 
00253         SE_RadioButtonIndicator,
00254         SE_RadioButtonContents,
00255         SE_RadioButtonFocusRect,
00256         SE_RadioButtonClickRect,
00257 
00258         SE_ComboBoxFocusRect,
00259 
00260         SE_SliderFocusRect,
00261 
00262         SE_Q3DockWindowHandleRect,
00263 
00264         SE_ProgressBarGroove,
00265         SE_ProgressBarContents,
00266         SE_ProgressBarLabel,
00267 
00268 
00269         SE_DialogButtonAccept,
00270         SE_DialogButtonReject,
00271         SE_DialogButtonApply,
00272         SE_DialogButtonHelp,
00273         SE_DialogButtonAll,
00274         SE_DialogButtonAbort,
00275         SE_DialogButtonIgnore,
00276         SE_DialogButtonRetry,
00277         SE_DialogButtonCustom,
00278 
00279         SE_ToolBoxTabContents,
00280 
00281         SE_HeaderLabel,
00282         SE_HeaderArrow,
00283 
00284         SE_TabWidgetTabBar,
00285         SE_TabWidgetTabPane,
00286         SE_TabWidgetTabContents,
00287         SE_TabWidgetLeftCorner,
00288         SE_TabWidgetRightCorner,
00289 
00290         SE_ViewItemCheckIndicator,
00291 
00292         SE_TabBarTearIndicator,
00293 
00294         SE_TreeViewDisclosureItem,
00295 
00296         SE_LineEditContents,
00297         SE_FrameContents,
00298 
00299         // do not add any values below/greater than this
00300         SE_CustomBase = 0xf0000000
00301     };
00302 
00303     virtual QRect subElementRect(SubElement subElement, const QStyleOption *option,
00304                                  const QWidget *widget = 0) const = 0;
00305 
00306 
00307     enum ComplexControl {
00308         CC_SpinBox,
00309         CC_ComboBox,
00310         CC_ScrollBar,
00311         CC_Slider,
00312         CC_ToolButton,
00313         CC_TitleBar,
00314         CC_Q3ListView,
00315         CC_Dial,
00316         CC_GroupBox,
00317 
00318         // do not add any values below/greater than this
00319         CC_CustomBase = 0xf0000000
00320     };
00321 
00322     enum SubControl {
00323         SC_None =                  0x00000000,
00324 
00325         SC_ScrollBarAddLine =      0x00000001,
00326         SC_ScrollBarSubLine =      0x00000002,
00327         SC_ScrollBarAddPage =      0x00000004,
00328         SC_ScrollBarSubPage =      0x00000008,
00329         SC_ScrollBarFirst =        0x00000010,
00330         SC_ScrollBarLast =         0x00000020,
00331         SC_ScrollBarSlider =       0x00000040,
00332         SC_ScrollBarGroove =       0x00000080,
00333 
00334         SC_SpinBoxUp =             0x00000001,
00335         SC_SpinBoxDown =           0x00000002,
00336         SC_SpinBoxFrame =          0x00000004,
00337         SC_SpinBoxEditField =      0x00000008,
00338 
00339         SC_ComboBoxFrame =         0x00000001,
00340         SC_ComboBoxEditField =     0x00000002,
00341         SC_ComboBoxArrow =         0x00000004,
00342         SC_ComboBoxListBoxPopup =  0x00000008,
00343 
00344         SC_SliderGroove =          0x00000001,
00345         SC_SliderHandle =          0x00000002,
00346         SC_SliderTickmarks =       0x00000004,
00347 
00348         SC_ToolButton =            0x00000001,
00349         SC_ToolButtonMenu =        0x00000002,
00350 
00351         SC_TitleBarSysMenu =       0x00000001,
00352         SC_TitleBarMinButton =     0x00000002,
00353         SC_TitleBarMaxButton =     0x00000004,
00354         SC_TitleBarCloseButton =   0x00000008,
00355         SC_TitleBarNormalButton =  0x00000010,
00356         SC_TitleBarShadeButton =   0x00000020,
00357         SC_TitleBarUnshadeButton = 0x00000040,
00358         SC_TitleBarContextHelpButton = 0x00000080,
00359         SC_TitleBarLabel =         0x00000100,
00360 
00361         SC_Q3ListView =            0x00000001,
00362         SC_Q3ListViewBranch =      0x00000002,
00363         SC_Q3ListViewExpand =      0x00000004,
00364 
00365         SC_DialGroove =            0x00000001,
00366         SC_DialHandle =            0x00000002,
00367         SC_DialTickmarks =         0x00000004,
00368 
00369         SC_GroupBoxCheckBox =      0x00000001,
00370         SC_GroupBoxLabel =         0x00000002,
00371         SC_GroupBoxContents =      0x00000004,
00372         SC_GroupBoxFrame =         0x00000008,
00373 
00374         SC_All =                   0xffffffff
00375     };
00376     Q_DECLARE_FLAGS(SubControls, SubControl)
00377 
00378 #ifdef QT3_SUPPORT
00379     typedef SubControls SCFlags;
00380 #endif
00381 
00382     virtual void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p,
00383                                     const QWidget *widget = 0) const = 0;
00384     virtual SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt,
00385                                              const QPoint &pt, const QWidget *widget = 0) const = 0;
00386     virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt,
00387                                  SubControl sc, const QWidget *widget = 0) const = 0;
00388 
00389     enum PixelMetric {
00390         PM_ButtonMargin,
00391         PM_ButtonDefaultIndicator,
00392         PM_MenuButtonIndicator,
00393         PM_ButtonShiftHorizontal,
00394         PM_ButtonShiftVertical,
00395 
00396         PM_DefaultFrameWidth,
00397         PM_SpinBoxFrameWidth,
00398         PM_ComboBoxFrameWidth,
00399 
00400         PM_MaximumDragDistance,
00401 
00402         PM_ScrollBarExtent,
00403         PM_ScrollBarSliderMin,
00404 
00405         PM_SliderThickness,             // total slider thickness
00406         PM_SliderControlThickness,      // thickness of the business part
00407         PM_SliderLength,                // total length of slider
00408         PM_SliderTickmarkOffset,        //
00409         PM_SliderSpaceAvailable,        // available space for slider to move
00410 
00411         PM_DockWidgetSeparatorExtent,
00412         PM_DockWidgetHandleExtent,
00413         PM_DockWidgetFrameWidth,
00414 
00415         PM_TabBarTabOverlap,
00416         PM_TabBarTabHSpace,
00417         PM_TabBarTabVSpace,
00418         PM_TabBarBaseHeight,
00419         PM_TabBarBaseOverlap,
00420 
00421         PM_ProgressBarChunkWidth,
00422 
00423         PM_SplitterWidth,
00424         PM_TitleBarHeight,
00425 
00426         PM_MenuScrollerHeight,
00427         PM_MenuHMargin,
00428         PM_MenuVMargin,
00429         PM_MenuPanelWidth,
00430         PM_MenuTearoffHeight,
00431         PM_MenuDesktopFrameWidth,
00432 
00433         PM_MenuBarPanelWidth,
00434         PM_MenuBarItemSpacing,
00435         PM_MenuBarVMargin,
00436         PM_MenuBarHMargin,
00437 
00438         PM_IndicatorWidth,
00439         PM_IndicatorHeight,
00440         PM_ExclusiveIndicatorWidth,
00441         PM_ExclusiveIndicatorHeight,
00442         PM_CheckListButtonSize,
00443         PM_CheckListControllerSize,
00444 
00445         PM_DialogButtonsSeparator,
00446         PM_DialogButtonsButtonWidth,
00447         PM_DialogButtonsButtonHeight,
00448 
00449         PM_MDIFrameWidth,
00450         PM_MDIMinimizedWidth,
00451         PM_HeaderMargin,
00452         PM_HeaderMarkSize,
00453         PM_HeaderGripMargin,
00454         PM_TabBarTabShiftHorizontal,
00455         PM_TabBarTabShiftVertical,
00456         PM_TabBarScrollButtonWidth,
00457 
00458         PM_ToolBarFrameWidth,
00459         PM_ToolBarHandleExtent,
00460         PM_ToolBarItemSpacing,
00461         PM_ToolBarItemMargin,
00462         PM_ToolBarSeparatorExtent,
00463         PM_ToolBarExtensionExtent,
00464 
00465         PM_SpinBoxSliderHeight,
00466 
00467         PM_DefaultTopLevelMargin,
00468         PM_DefaultChildMargin,
00469         PM_DefaultLayoutSpacing,
00470 
00471         PM_ToolBarIconSize,
00472         PM_ListViewIconSize,
00473         PM_IconViewIconSize,
00474         PM_SmallIconSize,
00475         PM_LargeIconSize,
00476 
00477         PM_FocusFrameVMargin,
00478         PM_FocusFrameHMargin,
00479 
00480         PM_ToolTipLabelFrameWidth,
00481         PM_CheckBoxLabelSpacing,
00482         PM_TabBarIconSize,
00483         PM_SizeGripSize,
00484         PM_DockWidgetTitleMargin,
00485         PM_MessageBoxIconSize,
00486         PM_ButtonIconSize,
00487 
00488 
00489         // do not add any values below/greater than this
00490         PM_CustomBase = 0xf0000000
00491     };
00492 
00493     virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = 0,
00494                             const QWidget *widget = 0) const = 0;
00495 
00496     enum ContentsType {
00497         CT_PushButton,
00498         CT_CheckBox,
00499         CT_RadioButton,
00500         CT_ToolButton,
00501         CT_ComboBox,
00502         CT_Splitter,
00503         CT_Q3DockWindow,
00504         CT_ProgressBar,
00505         CT_MenuItem,
00506         CT_MenuBarItem,
00507         CT_MenuBar,
00508         CT_Menu,
00509         CT_TabBarTab,
00510         CT_Slider,
00511         CT_ScrollBar,
00512         CT_Q3Header,
00513         CT_LineEdit,
00514         CT_SpinBox,
00515         CT_SizeGrip,
00516         CT_TabWidget,
00517         CT_DialogButtons,
00518         CT_HeaderSection,
00519         CT_GroupBox,
00520         // do not add any values below/greater than this
00521         CT_CustomBase = 0xf0000000
00522     };
00523 
00524     virtual QSize sizeFromContents(ContentsType ct, const QStyleOption *opt,
00525                                    const QSize &contentsSize, const QWidget *w = 0) const = 0;
00526 
00527     enum StyleHint {
00528         SH_EtchDisabledText,
00529         SH_DitherDisabledText,
00530         SH_ScrollBar_MiddleClickAbsolutePosition,
00531         SH_ScrollBar_ScrollWhenPointerLeavesControl,
00532         SH_TabBar_SelectMouseType,
00533         SH_TabBar_Alignment,
00534         SH_Header_ArrowAlignment,
00535         SH_Slider_SnapToValue,
00536         SH_Slider_SloppyKeyEvents,
00537         SH_ProgressDialog_CenterCancelButton,
00538         SH_ProgressDialog_TextLabelAlignment,
00539         SH_PrintDialog_RightAlignButtons,
00540         SH_MainWindow_SpaceBelowMenuBar,
00541         SH_FontDialog_SelectAssociatedText,
00542         SH_Menu_AllowActiveAndDisabled,
00543         SH_Menu_SpaceActivatesItem,
00544         SH_Menu_SubMenuPopupDelay,
00545         SH_ScrollView_FrameOnlyAroundContents,
00546         SH_MenuBar_AltKeyNavigation,
00547         SH_ComboBox_ListMouseTracking,
00548         SH_Menu_MouseTracking,
00549         SH_MenuBar_MouseTracking,
00550         SH_ItemView_ChangeHighlightOnFocus,
00551         SH_Widget_ShareActivation,
00552         SH_Workspace_FillSpaceOnMaximize,
00553         SH_ComboBox_Popup,
00554         SH_TitleBar_NoBorder,
00555         SH_Slider_StopMouseOverSlider,
00556         SH_ScrollBar_StopMouseOverSlider = SH_Slider_StopMouseOverSlider, // obsolete
00557         SH_BlinkCursorWhenTextSelected,
00558         SH_RichText_FullWidthSelection,
00559         SH_Menu_Scrollable,
00560         SH_GroupBox_TextLabelVerticalAlignment,
00561         SH_GroupBox_TextLabelColor,
00562         SH_Menu_SloppySubMenus,
00563         SH_Table_GridLineColor,
00564         SH_LineEdit_PasswordCharacter,
00565         SH_DialogButtons_DefaultButton,
00566         SH_ToolBox_SelectedPageTitleBold,
00567         SH_TabBar_PreferNoArrows,
00568         SH_ScrollBar_LeftClickAbsolutePosition,
00569         SH_Q3ListViewExpand_SelectMouseType,
00570         SH_UnderlineShortcut,
00571         SH_SpinBox_AnimateButton,
00572         SH_SpinBox_KeyPressAutoRepeatRate,
00573         SH_SpinBox_ClickAutoRepeatRate,
00574         SH_Menu_FillScreenWithScroll,
00575         SH_ToolTipLabel_Opacity,
00576         SH_DrawMenuBarSeparator,
00577         SH_TitleBar_ModifyNotification,
00578         SH_Button_FocusPolicy,
00579         SH_MenuBar_DismissOnSecondClick,
00580         SH_MessageBox_UseBorderForButtonSpacing,
00581         SH_TitleBar_AutoRaise,
00582         SH_ToolButton_PopupDelay,
00583         SH_FocusFrame_Mask,
00584         SH_RubberBand_Mask,
00585         SH_WindowFrame_Mask,
00586         SH_SpinControls_DisableOnBounds,
00587         SH_Dial_BackgroundRole,
00588         SH_ComboBox_LayoutDirection,
00589         SH_ItemView_EllipsisLocation,
00590         SH_ItemView_ShowDecorationSelected,
00591         SH_ItemView_ActivateItemOnSingleClick,
00592         SH_ScrollBar_ContextMenu,
00593         SH_ScrollBar_RollBetweenButtons,
00594         SH_Slider_AbsoluteSetButtons,
00595         SH_Slider_PageSetButtons,
00596         SH_Menu_KeyboardSearch,
00597         SH_TabBar_ElideMode,
00598         SH_DialogButtonLayout,
00599         SH_ComboBox_PopupFrameStyle,
00600         SH_MessageBox_TextInteractionFlags,
00601         SH_DialogButtonBox_ButtonsHaveIcons,
00602         SH_SpellCheckUnderlineStyle,
00603         SH_MessageBox_CenterButtons,
00604         SH_Menu_SelectionWrap,
00605         SH_ItemView_MovementWithoutUpdatingSelection,
00606 
00607         // Add new style hint values here
00608 
00609 #ifdef QT3_SUPPORT
00610         SH_GUIStyle = 0x00000100,
00611         SH_ScrollBar_BackgroundMode,
00612         // Add other compat values here
00613 
00614         SH_UnderlineAccelerator = SH_UnderlineShortcut,
00615 #endif
00616         SH_CustomBase = 0xf0000000
00617     };
00618 
00619     virtual int styleHint(StyleHint stylehint, const QStyleOption *opt = 0,
00620                           const QWidget *widget = 0, QStyleHintReturn* returnData = 0) const = 0;
00621 
00622     enum StandardPixmap {
00623         SP_TitleBarMenuButton,
00624         SP_TitleBarMinButton,
00625         SP_TitleBarMaxButton,
00626         SP_TitleBarCloseButton,
00627         SP_TitleBarNormalButton,
00628         SP_TitleBarShadeButton,
00629         SP_TitleBarUnshadeButton,
00630         SP_TitleBarContextHelpButton,
00631         SP_DockWidgetCloseButton,
00632         SP_MessageBoxInformation,
00633         SP_MessageBoxWarning,
00634         SP_MessageBoxCritical,
00635         SP_MessageBoxQuestion,
00636         SP_DesktopIcon,
00637         SP_TrashIcon,
00638         SP_ComputerIcon,
00639         SP_DriveFDIcon,
00640         SP_DriveHDIcon,
00641         SP_DriveCDIcon,
00642         SP_DriveDVDIcon,
00643         SP_DriveNetIcon,
00644         SP_DirOpenIcon,
00645         SP_DirClosedIcon,
00646         SP_DirLinkIcon,
00647         SP_FileIcon,
00648         SP_FileLinkIcon,
00649         SP_ToolBarHorizontalExtensionButton,
00650         SP_ToolBarVerticalExtensionButton,
00651         SP_FileDialogStart,
00652         SP_FileDialogEnd,
00653         SP_FileDialogToParent,
00654         SP_FileDialogNewFolder,
00655         SP_FileDialogDetailedView,
00656         SP_FileDialogInfoView,
00657         SP_FileDialogContentsView,
00658         SP_FileDialogListView,
00659         SP_FileDialogBack,
00660         SP_DirIcon,
00661         SP_DialogOkButton,
00662         SP_DialogCancelButton,
00663         SP_DialogHelpButton,
00664         SP_DialogOpenButton,
00665         SP_DialogSaveButton,
00666         SP_DialogCloseButton,
00667         SP_DialogApplyButton,
00668         SP_DialogResetButton,
00669         SP_DialogDiscardButton,
00670         SP_DialogYesButton,
00671         SP_DialogNoButton,
00672         SP_ArrowUp,
00673         SP_ArrowDown,
00674         SP_ArrowLeft,
00675         SP_ArrowRight,
00676         SP_ArrowBack,
00677         SP_ArrowForward,
00678         // do not add any values below/greater than this
00679         SP_CustomBase = 0xf0000000
00680     };
00681 
00682     virtual QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt = 0,
00683                                    const QWidget *widget = 0) const = 0;
00684 
00685     QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = 0,
00686                        const QWidget *widget = 0) const;
00687 
00688     virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap,
00689                                         const QStyleOption *opt) const = 0;
00690 
00691     static QRect visualRect(Qt::LayoutDirection direction, const QRect &boundingRect,
00692                             const QRect &logicalRect);
00693     static QPoint visualPos(Qt::LayoutDirection direction, const QRect &boundingRect,
00694                             const QPoint &logicalPos);
00695     static int sliderPositionFromValue(int min, int max, int val, int space,
00696                                        bool upsideDown = false);
00697     static int sliderValueFromPosition(int min, int max, int pos, int space,
00698                                        bool upsideDown = false);
00699     static Qt::Alignment visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment);
00700     static QRect alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment,
00701                              const QSize &size, const QRect &rectangle);
00702 
00703 protected Q_SLOTS:
00704     QIcon standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *opt = 0,
00705                                      const QWidget *widget = 0) const;
00706 
00707 private:
00708     Q_DISABLE_COPY(QStyle)
00709     friend class QWidget;
00710     friend class QWidgetPrivate;
00711     friend class QApplication;
00712 };
00713 
00714 Q_DECLARE_OPERATORS_FOR_FLAGS(QStyle::State)
00715 Q_DECLARE_OPERATORS_FOR_FLAGS(QStyle::SubControls)
00716 
00717 #if !defined(QT_NO_DEBUG_STREAM) && !defined(QT_NO_DEBUG)
00718 Q_GUI_EXPORT QDebug operator<<(QDebug debug, QStyle::State state);
00719 #endif
00720 
00721 QT_END_HEADER
00722 
00723 #endif // QSTYLE_H

Generated on Thu Mar 15 11:55:44 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1