00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
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;
00283 ToolBarPosition positionWithinLine;
00284 Qt::ToolBarArea toolBarArea;
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
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
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
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