src/gui/styles/qstyleoption.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 QSTYLEOPTION_H
00025 #define QSTYLEOPTION_H
00026 
00027 #include <QtGui/qabstractspinbox.h>
00028 #include <QtGui/qicon.h>
00029 #include <QtGui/qmatrix.h>
00030 #include <QtGui/qslider.h>
00031 #include <QtGui/qstyle.h>
00032 #include <QtGui/qtabbar.h>
00033 #include <QtGui/qtabwidget.h>
00034 #include <QtGui/qrubberband.h>
00035 
00036 QT_BEGIN_HEADER
00037 
00038 QT_MODULE(Gui)
00039 
00040 class QDebug;
00041 
00042 class Q_GUI_EXPORT QStyleOption
00043 {
00044 public:
00045     enum OptionType {
00046                       SO_Default, SO_FocusRect, SO_Button, SO_Tab, SO_MenuItem,
00047                       SO_Frame, SO_ProgressBar, SO_ToolBox, SO_Header, SO_Q3DockWindow,
00048                       SO_DockWidget, SO_Q3ListViewItem, SO_ViewItem, SO_TabWidgetFrame,
00049                       SO_TabBarBase, SO_RubberBand, SO_ToolBar, SO_GraphicsItem,
00050 
00051                       SO_Complex = 0xf0000, SO_Slider, SO_SpinBox, SO_ToolButton, SO_ComboBox,
00052                       SO_Q3ListView, SO_TitleBar, SO_GroupBox, SO_SizeGrip,
00053 
00054                       SO_CustomBase = 0xf00,
00055                       SO_ComplexCustomBase = 0xf000000
00056                     };
00057 
00058     enum StyleOptionType { Type = SO_Default };
00059     enum StyleOptionVersion { Version = 1 };
00060 
00061     int version;
00062     int type;
00063     QStyle::State state;
00064     Qt::LayoutDirection direction;
00065     QRect rect;
00066     QFontMetrics fontMetrics;
00067     QPalette palette;
00068 
00069     QStyleOption(int version = QStyleOption::Version, int type = SO_Default);
00070     QStyleOption(const QStyleOption &other);
00071     ~QStyleOption();
00072 
00073     void init(const QWidget *w);
00074     inline void initFrom(const QWidget *w) { init(w); }
00075     QStyleOption &operator=(const QStyleOption &other);
00076 };
00077 
00078 class Q_GUI_EXPORT QStyleOptionFocusRect : public QStyleOption
00079 {
00080 public:
00081     enum StyleOptionType { Type = SO_FocusRect };
00082     enum StyleOptionVersion { Version = 1 };
00083 
00084     QColor backgroundColor;
00085 
00086     QStyleOptionFocusRect();
00087     QStyleOptionFocusRect(const QStyleOptionFocusRect &other) : QStyleOption(Version, Type) { *this = other; }
00088 
00089 protected:
00090     QStyleOptionFocusRect(int version);
00091 };
00092 
00093 class Q_GUI_EXPORT QStyleOptionFrame : public QStyleOption
00094 {
00095 public:
00096     enum StyleOptionType { Type = SO_Frame };
00097     enum StyleOptionVersion { Version = 1 };
00098 
00099     int lineWidth;
00100     int midLineWidth;
00101 
00102     QStyleOptionFrame();
00103     QStyleOptionFrame(const QStyleOptionFrame &other) : QStyleOption(Version, Type) { *this = other; }
00104 
00105 protected:
00106     QStyleOptionFrame(int version);
00107 };
00108 
00109 class Q_GUI_EXPORT QStyleOptionFrameV2 : public QStyleOptionFrame
00110 {
00111 public:
00112     enum StyleOptionVersion { Version = 2 };
00113     enum FrameFeature {
00114         None = 0x00,
00115         Flat = 0x01
00116     };
00117     Q_DECLARE_FLAGS(FrameFeatures, FrameFeature)
00118     FrameFeatures features;
00119 
00120     QStyleOptionFrameV2();
00121     QStyleOptionFrameV2(const QStyleOptionFrameV2 &other) : QStyleOptionFrame(Version) { *this = other; }
00122     QStyleOptionFrameV2(const QStyleOptionFrame &other);
00123     QStyleOptionFrameV2 &operator=(const QStyleOptionFrame &other);
00124 
00125 protected:
00126     QStyleOptionFrameV2(int version);
00127 };
00128 
00129 Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionFrameV2::FrameFeatures)
00130 
00131 #ifndef QT_NO_TABWIDGET
00132 class Q_GUI_EXPORT QStyleOptionTabWidgetFrame : public QStyleOption
00133 {
00134 public:
00135     enum StyleOptionType { Type = SO_TabWidgetFrame };
00136     enum StyleOptionVersion { Version = 1 };
00137 
00138     int lineWidth;
00139     int midLineWidth;
00140     QTabBar::Shape shape;
00141     QSize tabBarSize;
00142     QSize rightCornerWidgetSize;
00143     QSize leftCornerWidgetSize;
00144 
00145     QStyleOptionTabWidgetFrame();
00146     inline QStyleOptionTabWidgetFrame(const QStyleOptionTabWidgetFrame &other)
00147         : QStyleOption(Version, Type) { *this = other; }
00148 
00149 protected:
00150     QStyleOptionTabWidgetFrame(int version);
00151 };
00152 #endif
00153 
00154 #ifndef QT_NO_TABBAR
00155 class Q_GUI_EXPORT QStyleOptionTabBarBase : public QStyleOption
00156 {
00157 public:
00158     enum StyleOptionType { Type = SO_TabBarBase };
00159     enum StyleOptionVersion { Version = 1 };
00160 
00161     QTabBar::Shape shape;
00162     QRect tabBarRect;
00163     QRect selectedTabRect;
00164 
00165     QStyleOptionTabBarBase();
00166     QStyleOptionTabBarBase(const QStyleOptionTabBarBase &other) : QStyleOption(Version, Type) { *this = other; }
00167 
00168 protected:
00169     QStyleOptionTabBarBase(int version);
00170 };
00171 #endif
00172 
00173 class Q_GUI_EXPORT QStyleOptionHeader : public QStyleOption
00174 {
00175 public:
00176     enum StyleOptionType { Type = SO_Header };
00177     enum StyleOptionVersion { Version = 1 };
00178 
00179     enum SectionPosition { Beginning, Middle, End, OnlyOneSection };
00180     enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected,
00181                             NextAndPreviousAreSelected };
00182     enum SortIndicator { None, SortUp, SortDown };
00183 
00184     int section;
00185     QString text;
00186     Qt::Alignment textAlignment;
00187     QIcon icon;
00188     Qt::Alignment iconAlignment;
00189     SectionPosition position;
00190     SelectedPosition selectedPosition;
00191     SortIndicator sortIndicator;
00192     Qt::Orientation orientation;
00193 
00194     QStyleOptionHeader();
00195     QStyleOptionHeader(const QStyleOptionHeader &other) : QStyleOption(Version, Type) { *this = other; }
00196 
00197 protected:
00198     QStyleOptionHeader(int version);
00199 };
00200 
00201 class Q_GUI_EXPORT QStyleOptionButton : public QStyleOption
00202 {
00203 public:
00204     enum StyleOptionType { Type = SO_Button };
00205     enum StyleOptionVersion { Version = 1 };
00206 
00207     enum ButtonFeature { None = 0x00, Flat = 0x01, HasMenu = 0x02, DefaultButton = 0x04,
00208                          AutoDefaultButton = 0x08 };
00209     Q_DECLARE_FLAGS(ButtonFeatures, ButtonFeature)
00210 
00211     ButtonFeatures features;
00212     QString text;
00213     QIcon icon;
00214     QSize iconSize;
00215 
00216     QStyleOptionButton();
00217     QStyleOptionButton(const QStyleOptionButton &other) : QStyleOption(Version, Type) { *this = other; }
00218 
00219 protected:
00220     QStyleOptionButton(int version);
00221 };
00222 
00223 Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionButton::ButtonFeatures)
00224 
00225 #ifndef QT_NO_TABBAR
00226 class Q_GUI_EXPORT QStyleOptionTab : public QStyleOption
00227 {
00228 public:
00229     enum StyleOptionType { Type = SO_Tab };
00230     enum StyleOptionVersion { Version = 1 };
00231 
00232     enum TabPosition { Beginning, Middle, End, OnlyOneTab };
00233     enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected };
00234     enum CornerWidget { NoCornerWidgets = 0x00, LeftCornerWidget = 0x01,
00235                         RightCornerWidget = 0x02 };
00236     Q_DECLARE_FLAGS(CornerWidgets, CornerWidget)
00237 
00238     QTabBar::Shape shape;
00239     QString text;
00240     QIcon icon;
00241     int row;
00242     TabPosition position;
00243     SelectedPosition selectedPosition;
00244     CornerWidgets cornerWidgets;
00245 
00246     QStyleOptionTab();
00247     QStyleOptionTab(const QStyleOptionTab &other) : QStyleOption(Version, Type) { *this = other; }
00248 
00249 protected:
00250     QStyleOptionTab(int version);
00251 };
00252 
00253 Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionTab::CornerWidgets)
00254 
00255 class Q_GUI_EXPORT QStyleOptionTabV2 : public QStyleOptionTab
00256 {
00257 public:
00258     enum StyleOptionVersion { Version = 2 };
00259     QSize iconSize;
00260     QStyleOptionTabV2();
00261     QStyleOptionTabV2(const QStyleOptionTabV2 &other) : QStyleOptionTab(Version) { *this = other; }
00262     QStyleOptionTabV2(const QStyleOptionTab &other);
00263     QStyleOptionTabV2 &operator=(const QStyleOptionTab &other);
00264 
00265 protected:
00266     QStyleOptionTabV2(int version);
00267 };
00268 
00269 #endif
00270 
00271 
00272 #ifndef QT_NO_TOOLBAR
00273 
00274 class Q_GUI_EXPORT QStyleOptionToolBar : public QStyleOption
00275 {
00276 public:
00277     enum StyleOptionType { Type = SO_ToolBar };
00278     enum StyleOptionVersion { Version = 1 };
00279     enum ToolBarPosition { Beginning, Middle, End, OnlyOne };
00280     enum ToolBarFeature { None = 0x0, Movable = 0x1 };
00281     Q_DECLARE_FLAGS(ToolBarFeatures, ToolBarFeature)
00282     ToolBarPosition positionOfLine; // The toolbar line position
00283     ToolBarPosition positionWithinLine; // The position within a toolbar
00284     Qt::ToolBarArea toolBarArea; // The toolbar docking area
00285     ToolBarFeatures features;
00286     int lineWidth;
00287     int midLineWidth;
00288     QStyleOptionToolBar();
00289     QStyleOptionToolBar(const QStyleOptionToolBar &other) : QStyleOption(Version, Type) { *this = other; }
00290 
00291 protected:
00292     QStyleOptionToolBar(int version);
00293 };
00294 
00295 Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionToolBar::ToolBarFeatures)
00296 
00297 #endif
00298 
00299 
00300 
00301 class Q_GUI_EXPORT QStyleOptionProgressBar : public QStyleOption
00302 {
00303 public:
00304     enum StyleOptionType { Type = SO_ProgressBar };
00305     enum StyleOptionVersion { Version = 1 };
00306 
00307     int minimum;
00308     int maximum;
00309     int progress;
00310     QString text;
00311     Qt::Alignment textAlignment;
00312     bool textVisible;
00313 
00314     QStyleOptionProgressBar();
00315     QStyleOptionProgressBar(const QStyleOptionProgressBar &other) : QStyleOption(Version, Type) { *this = other; }
00316 
00317 protected:
00318     QStyleOptionProgressBar(int version);
00319 };
00320 
00321 // Adds style info for vertical progress bars
00322 class Q_GUI_EXPORT QStyleOptionProgressBarV2 : public QStyleOptionProgressBar
00323 {
00324 public:
00325     enum StyleOptionType { Type = SO_ProgressBar };
00326     enum StyleOptionVersion { Version = 2 };
00327     Qt::Orientation orientation;
00328     bool invertedAppearance;
00329     bool bottomToTop;
00330 
00331     QStyleOptionProgressBarV2();
00332     QStyleOptionProgressBarV2(const QStyleOptionProgressBar &other);
00333     QStyleOptionProgressBarV2(const QStyleOptionProgressBarV2 &other);
00334     QStyleOptionProgressBarV2 &operator=(const QStyleOptionProgressBar &other);
00335 
00336 protected:
00337     QStyleOptionProgressBarV2(int version);
00338 };
00339 
00340 class Q_GUI_EXPORT QStyleOptionMenuItem : public QStyleOption
00341 {
00342 public:
00343     enum StyleOptionType { Type = SO_MenuItem };
00344     enum StyleOptionVersion { Version = 1 };
00345 
00346     enum MenuItemType { Normal, DefaultItem, Separator, SubMenu, Scroller, TearOff, Margin,
00347                         EmptyArea };
00348     enum CheckType { NotCheckable, Exclusive, NonExclusive };
00349 
00350     MenuItemType menuItemType;
00351     CheckType checkType;
00352     bool checked;
00353     bool menuHasCheckableItems;
00354     QRect menuRect;
00355     QString text;
00356     QIcon icon;
00357     int maxIconWidth;
00358     int tabWidth;
00359     QFont font;
00360 
00361     QStyleOptionMenuItem();
00362     QStyleOptionMenuItem(const QStyleOptionMenuItem &other) : QStyleOption(Version, Type) { *this = other; }
00363 
00364 protected:
00365     QStyleOptionMenuItem(int version);
00366 };
00367 
00368 class Q_GUI_EXPORT QStyleOptionQ3ListViewItem : public QStyleOption
00369 {
00370 public:
00371     enum StyleOptionType { Type = SO_Q3ListViewItem };
00372     enum StyleOptionVersion { Version = 1 };
00373 
00374     enum Q3ListViewItemFeature { None = 0x00, Expandable = 0x01, MultiLine = 0x02, Visible = 0x04,
00375                                  ParentControl = 0x08 };
00376     Q_DECLARE_FLAGS(Q3ListViewItemFeatures, Q3ListViewItemFeature)
00377 
00378     Q3ListViewItemFeatures features;
00379     int height;
00380     int totalHeight;
00381     int itemY;
00382     int childCount;
00383 
00384     QStyleOptionQ3ListViewItem();
00385     QStyleOptionQ3ListViewItem(const QStyleOptionQ3ListViewItem &other) : QStyleOption(Version, Type) { *this = other; }
00386 
00387 protected:
00388     QStyleOptionQ3ListViewItem(int version);
00389 };
00390 
00391 Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionQ3ListViewItem::Q3ListViewItemFeatures)
00392 
00393 class Q_GUI_EXPORT QStyleOptionQ3DockWindow : public QStyleOption
00394 {
00395 public:
00396     enum StyleOptionType { Type = SO_Q3DockWindow };
00397     enum StyleOptionVersion { Version = 1 };
00398 
00399     bool docked;
00400     bool closeEnabled;
00401 
00402     QStyleOptionQ3DockWindow();
00403     QStyleOptionQ3DockWindow(const QStyleOptionQ3DockWindow &other) : QStyleOption(Version, Type) { *this = other; }
00404 
00405 protected:
00406     QStyleOptionQ3DockWindow(int version);
00407 };
00408 
00409 class Q_GUI_EXPORT QStyleOptionDockWidget : public QStyleOption
00410 {
00411 public:
00412     enum StyleOptionType { Type = SO_DockWidget };
00413     enum StyleOptionVersion { Version = 1 };
00414 
00415     QString title;
00416     bool closable;
00417     bool movable;
00418     bool floatable;
00419 
00420     QStyleOptionDockWidget();
00421     QStyleOptionDockWidget(const QStyleOptionDockWidget &other) : QStyleOption(Version, Type) { *this = other; }
00422 
00423 protected:
00424     QStyleOptionDockWidget(int version);
00425 };
00426 
00427 class Q_GUI_EXPORT QStyleOptionViewItem : public QStyleOption
00428 {
00429 public:
00430     enum StyleOptionType { Type = SO_ViewItem };
00431     enum StyleOptionVersion { Version = 1 };
00432 
00433     enum Position { Left, Right, Top, Bottom };
00434 
00435     Qt::Alignment displayAlignment;
00436     Qt::Alignment decorationAlignment;
00437     Qt::TextElideMode textElideMode;
00438     Position decorationPosition;
00439     QSize decorationSize;
00440     QFont font;
00441     bool showDecorationSelected;
00442 
00443     QStyleOptionViewItem();
00444     QStyleOptionViewItem(const QStyleOptionViewItem &other) : QStyleOption(Version, Type) { *this = other; }
00445 
00446 protected:
00447     QStyleOptionViewItem(int version);
00448 };
00449 
00450 class Q_GUI_EXPORT QStyleOptionViewItemV2 : public QStyleOptionViewItem
00451 {
00452 public:
00453     enum StyleOptionVersion { Version = 2 };
00454 
00455     enum ViewItemFeature {
00456         None = 0x00,
00457         WrapText = 0x01,
00458         Alternate = 0x02
00459     };
00460     Q_DECLARE_FLAGS(ViewItemFeatures, ViewItemFeature)
00461 
00462     ViewItemFeatures features;
00463 
00464     QStyleOptionViewItemV2();
00465     QStyleOptionViewItemV2(const QStyleOptionViewItemV2 &other) : QStyleOptionViewItem(Version) { *this = other; }
00466     QStyleOptionViewItemV2(const QStyleOptionViewItem &other);
00467     QStyleOptionViewItemV2 &operator=(const QStyleOptionViewItem &other);
00468 
00469 protected:
00470     QStyleOptionViewItemV2(int version);
00471 };
00472 
00473 Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionViewItemV2::ViewItemFeatures)
00474 
00475 class Q_GUI_EXPORT QStyleOptionToolBox : public QStyleOption
00476 {
00477 public:
00478     enum StyleOptionType { Type = SO_ToolBox };
00479     enum StyleOptionVersion { Version = 1 };
00480 
00481     QString text;
00482     QIcon icon;
00483 
00484     QStyleOptionToolBox();
00485     QStyleOptionToolBox(const QStyleOptionToolBox &other) : QStyleOption(Version, Type) { *this = other; }
00486 
00487 protected:
00488     QStyleOptionToolBox(int version);
00489 };
00490 
00491 #ifndef QT_NO_RUBBERBAND
00492 class Q_GUI_EXPORT QStyleOptionRubberBand : public QStyleOption
00493 {
00494 public:
00495     enum StyleOptionType { Type = SO_RubberBand };
00496     enum StyleOptionVersion { Version = 1 };
00497 
00498     QRubberBand::Shape shape;
00499     bool opaque;
00500 
00501     QStyleOptionRubberBand();
00502     QStyleOptionRubberBand(const QStyleOptionRubberBand &other) : QStyleOption(Version, Type) { *this = other; }
00503 
00504 protected:
00505     QStyleOptionRubberBand(int version);
00506 };
00507 #endif // QT_NO_RUBBERBAND
00508 
00509 // -------------------------- Complex style options -------------------------------
00510 class Q_GUI_EXPORT QStyleOptionComplex : public QStyleOption
00511 {
00512 public:
00513     enum StyleOptionType { Type = SO_Complex };
00514     enum StyleOptionVersion { Version = 1 };
00515 
00516     QStyle::SubControls subControls;
00517     QStyle::SubControls activeSubControls;
00518 
00519     QStyleOptionComplex(int version = QStyleOptionComplex::Version, int type = SO_Complex);
00520     QStyleOptionComplex(const QStyleOptionComplex &other) : QStyleOption(Version, Type) { *this = other; }
00521 };
00522 
00523 #ifndef QT_NO_SLIDER
00524 class Q_GUI_EXPORT QStyleOptionSlider : public QStyleOptionComplex
00525 {
00526 public:
00527     enum StyleOptionType { Type = SO_Slider };
00528     enum StyleOptionVersion { Version = 1 };
00529 
00530     Qt::Orientation orientation;
00531     int minimum;
00532     int maximum;
00533     QSlider::TickPosition tickPosition;
00534     int tickInterval;
00535     bool upsideDown;
00536     int sliderPosition;
00537     int sliderValue;
00538     int singleStep;
00539     int pageStep;
00540     qreal notchTarget;
00541     bool dialWrapping;
00542 
00543     QStyleOptionSlider();
00544     QStyleOptionSlider(const QStyleOptionSlider &other) : QStyleOptionComplex(Version, Type) { *this = other; }
00545 
00546 protected:
00547     QStyleOptionSlider(int version);
00548 };
00549 #endif // QT_NO_SLIDER
00550 
00551 #ifndef QT_NO_SPINBOX
00552 class Q_GUI_EXPORT QStyleOptionSpinBox : public QStyleOptionComplex
00553 {
00554 public:
00555     enum StyleOptionType { Type = SO_SpinBox };
00556     enum StyleOptionVersion { Version = 1 };
00557 
00558     QAbstractSpinBox::ButtonSymbols buttonSymbols;
00559     QAbstractSpinBox::StepEnabled stepEnabled;
00560     bool frame;
00561 
00562     QStyleOptionSpinBox();
00563     QStyleOptionSpinBox(const QStyleOptionSpinBox &other) : QStyleOptionComplex(Version, Type) { *this = other; }
00564 
00565 protected:
00566     QStyleOptionSpinBox(int version);
00567 };
00568 #endif // QT_NO_SPINBOX
00569 
00570 class Q_GUI_EXPORT QStyleOptionQ3ListView : public QStyleOptionComplex
00571 {
00572 public:
00573     enum StyleOptionType { Type = SO_Q3ListView };
00574     enum StyleOptionVersion { Version = 1 };
00575 
00576     QList<QStyleOptionQ3ListViewItem> items;
00577     QPalette viewportPalette;
00578     QPalette::ColorRole viewportBGRole;
00579     int sortColumn;
00580     int itemMargin;
00581     int treeStepSize;
00582     bool rootIsDecorated;
00583 
00584     QStyleOptionQ3ListView();
00585     QStyleOptionQ3ListView(const QStyleOptionQ3ListView &other) : QStyleOptionComplex(Version, Type) { *this = other; }
00586 
00587 protected:
00588     QStyleOptionQ3ListView(int version);
00589 };
00590 
00591 class Q_GUI_EXPORT QStyleOptionToolButton : public QStyleOptionComplex
00592 {
00593 public:
00594     enum StyleOptionType { Type = SO_ToolButton };
00595     enum StyleOptionVersion { Version = 1 };
00596 
00597     enum ToolButtonFeature { None = 0x00, Arrow = 0x01, Menu = 0x04, PopupDelay = 0x08 };
00598     Q_DECLARE_FLAGS(ToolButtonFeatures, ToolButtonFeature)
00599 
00600     ToolButtonFeatures features;
00601     QIcon icon;
00602     QSize iconSize;
00603     QString text;
00604     Qt::ArrowType arrowType;
00605     Qt::ToolButtonStyle toolButtonStyle;
00606     QPoint pos;
00607     QFont font;
00608 
00609     QStyleOptionToolButton();
00610     QStyleOptionToolButton(const QStyleOptionToolButton &other) : QStyleOptionComplex(Version, Type) { *this = other; }
00611 
00612 protected:
00613     QStyleOptionToolButton(int version);
00614 };
00615 
00616 Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionToolButton::ToolButtonFeatures)
00617 
00618 class Q_GUI_EXPORT QStyleOptionComboBox : public QStyleOptionComplex
00619 {
00620 public:
00621     enum StyleOptionType { Type = SO_ComboBox };
00622     enum StyleOptionVersion { Version = 1 };
00623 
00624     bool editable;
00625     QRect popupRect;
00626     bool frame;
00627     QString currentText;
00628     QIcon currentIcon;
00629     QSize iconSize;
00630 
00631     QStyleOptionComboBox();
00632     QStyleOptionComboBox(const QStyleOptionComboBox &other) : QStyleOptionComplex(Version, Type) { *this = other; }
00633 
00634 protected:
00635     QStyleOptionComboBox(int version);
00636 };
00637 
00638 class Q_GUI_EXPORT QStyleOptionTitleBar : public QStyleOptionComplex
00639 {
00640 public:
00641     enum StyleOptionType { Type = SO_TitleBar };
00642     enum StyleOptionVersion { Version = 1 };
00643 
00644     QString text;
00645     QIcon icon;
00646     int titleBarState;
00647     Qt::WindowFlags titleBarFlags;
00648 
00649     QStyleOptionTitleBar();
00650     QStyleOptionTitleBar(const QStyleOptionTitleBar &other) : QStyleOptionComplex(Version, Type) { *this = other; }
00651 
00652 protected:
00653     QStyleOptionTitleBar(int version);
00654 };
00655 
00656 class Q_GUI_EXPORT QStyleOptionGroupBox : public QStyleOptionComplex
00657 {
00658 public:
00659     enum StyleOptionType { Type = SO_GroupBox };
00660     enum StyleOptionVersion { Version = 1 };
00661 
00662     QStyleOptionFrameV2::FrameFeatures features;
00663     QString text;
00664     Qt::Alignment textAlignment;
00665     QColor textColor;
00666     int lineWidth;
00667     int midLineWidth;
00668 
00669     QStyleOptionGroupBox();
00670     QStyleOptionGroupBox(const QStyleOptionGroupBox &other) : QStyleOptionComplex(Version, Type) { *this = other; }
00671 protected:
00672     QStyleOptionGroupBox(int version);
00673 };
00674 
00675 class Q_GUI_EXPORT QStyleOptionSizeGrip : public QStyleOptionComplex
00676 {
00677 public:
00678     enum StyleOptionType { Type = SO_SizeGrip };
00679     enum StyleOptionVersion { Version = 1 };
00680 
00681     Qt::Corner corner;
00682 
00683     QStyleOptionSizeGrip();
00684     QStyleOptionSizeGrip(const QStyleOptionSizeGrip &other) : QStyleOptionComplex(Version, Type) { *this = other; }
00685 protected:
00686     QStyleOptionSizeGrip(int version);
00687 };
00688 
00689 class Q_GUI_EXPORT QStyleOptionGraphicsItem : public QStyleOption
00690 {
00691 public:
00692     enum StyleOptionType { Type = SO_GraphicsItem };
00693     enum StyleOptionVersion { Version = 1 };
00694 
00695     QRectF exposedRect;
00696     QMatrix matrix;
00697     qreal levelOfDetail;
00698 
00699     QStyleOptionGraphicsItem();
00700     QStyleOptionGraphicsItem(const QStyleOptionGraphicsItem &other) : QStyleOption(Version, Type) { *this = other; }
00701 protected:
00702     QStyleOptionGraphicsItem(int version);
00703 };
00704 
00705 template <typename T>
00706 T qstyleoption_cast(const QStyleOption *opt)
00707 {
00708     if (opt && opt->version >= static_cast<T>(0)->Version && (opt->type == static_cast<T>(0)->Type
00709         || int(static_cast<T>(0)->Type) == QStyleOption::SO_Default
00710         || (int(static_cast<T>(0)->Type) == QStyleOption::SO_Complex
00711             && opt->type > QStyleOption::SO_Complex)))
00712         return static_cast<T>(opt);
00713     return 0;
00714 }
00715 
00716 template <typename T>
00717 T qstyleoption_cast(QStyleOption *opt)
00718 {
00719     if (opt && opt->version >= static_cast<T>(0)->Version && (opt->type == static_cast<T>(0)->Type
00720         || int(static_cast<T>(0)->Type) == QStyleOption::SO_Default
00721         || (int(static_cast<T>(0)->Type) == QStyleOption::SO_Complex
00722             && opt->type > QStyleOption::SO_Complex)))
00723         return static_cast<T>(opt);
00724     return 0;
00725 }
00726 
00727 // -------------------------- QStyleHintReturn -------------------------------
00728 class Q_GUI_EXPORT QStyleHintReturn {
00729 public:
00730     enum HintReturnType {
00731         SH_Default=0xf000, SH_Mask
00732     };
00733 
00734     enum StyleOptionType { Type = SH_Default };
00735     enum StyleOptionVersion { Version = 1 };
00736 
00737     QStyleHintReturn(int version = QStyleOption::Version, int type = SH_Default);
00738     ~QStyleHintReturn();
00739 
00740     int version;
00741     int type;
00742 };
00743 
00744 class Q_GUI_EXPORT QStyleHintReturnMask : public QStyleHintReturn {
00745 public:
00746     enum StyleOptionType { Type = SH_Mask };
00747     enum StyleOptionVersion { Version = 1 };
00748 
00749     QStyleHintReturnMask();
00750 
00751     QRegion region;
00752 };
00753 
00754 template <typename T>
00755 T qstyleoption_cast(const QStyleHintReturn *hint)
00756 {
00757     if (hint && hint->version <= static_cast<T>(0)->Version &&
00758         (hint->type == static_cast<T>(0)->Type || int(static_cast<T>(0)->Type) == QStyleHintReturn::SH_Default))
00759         return static_cast<T>(hint);
00760     return 0;
00761 }
00762 
00763 template <typename T>
00764 T qstyleoption_cast(QStyleHintReturn *hint)
00765 {
00766     if (hint && hint->version <= static_cast<T>(0)->Version &&
00767         (hint->type == static_cast<T>(0)->Type || int(static_cast<T>(0)->Type) == QStyleHintReturn::SH_Default))
00768         return static_cast<T>(hint);
00769     return 0;
00770 }
00771 
00772 #if !defined(QT_NO_DEBUG_STREAM) && !defined(QT_NO_DEBUG)
00773 Q_GUI_EXPORT QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType);
00774 Q_GUI_EXPORT QDebug operator<<(QDebug debug, const QStyleOption &option);
00775 #endif
00776 
00777 QT_END_HEADER
00778 
00779 #endif // QSTYLEOPTION_H

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