source: trunk/src/gui/styles/qstyleoption.h@ 561

Last change on this file since 561 was 561, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.6.1 sources.

File size: 28.0 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
6**
7** This file is part of the QtGui module of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial Usage
11** Licensees holding valid Qt Commercial licenses may use this file in
12** accordance with the Qt Commercial License Agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and Nokia.
15**
16** GNU Lesser General Public License Usage
17** Alternatively, this file may be used under the terms of the GNU Lesser
18** General Public License version 2.1 as published by the Free Software
19** Foundation and appearing in the file LICENSE.LGPL included in the
20** packaging of this file. Please review the following information to
21** ensure the GNU Lesser General Public License version 2.1 requirements
22** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23**
24** In addition, as a special exception, Nokia gives you certain additional
25** rights. These rights are described in the Nokia Qt LGPL Exception
26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27**
28** GNU General Public License Usage
29** Alternatively, this file may be used under the terms of the GNU
30** General Public License version 3.0 as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL included in the
32** packaging of this file. Please review the following information to
33** ensure the GNU General Public License version 3.0 requirements will be
34** met: http://www.gnu.org/copyleft/gpl.html.
35**
36** If you have questions regarding the use of this file, please contact
37** Nokia at [email protected].
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42#ifndef QSTYLEOPTION_H
43#define QSTYLEOPTION_H
44
45#include <QtCore/qvariant.h>
46#include <QtGui/qabstractspinbox.h>
47#include <QtGui/qicon.h>
48#include <QtGui/qmatrix.h>
49#include <QtGui/qslider.h>
50#include <QtGui/qstyle.h>
51#include <QtGui/qtabbar.h>
52#include <QtGui/qtabwidget.h>
53#include <QtGui/qrubberband.h>
54#include <QtGui/qframe.h>
55#ifndef QT_NO_ITEMVIEWS
56# include <QtCore/qabstractitemmodel.h>
57#endif
58
59QT_BEGIN_HEADER
60
61QT_BEGIN_NAMESPACE
62
63QT_MODULE(Gui)
64
65class QDebug;
66
67class Q_GUI_EXPORT QStyleOption
68{
69public:
70 enum OptionType {
71 SO_Default, SO_FocusRect, SO_Button, SO_Tab, SO_MenuItem,
72 SO_Frame, SO_ProgressBar, SO_ToolBox, SO_Header, SO_Q3DockWindow,
73 SO_DockWidget, SO_Q3ListViewItem, SO_ViewItem, SO_TabWidgetFrame,
74 SO_TabBarBase, SO_RubberBand, SO_ToolBar, SO_GraphicsItem,
75
76 SO_Complex = 0xf0000, SO_Slider, SO_SpinBox, SO_ToolButton, SO_ComboBox,
77 SO_Q3ListView, SO_TitleBar, SO_GroupBox, SO_SizeGrip,
78
79 SO_CustomBase = 0xf00,
80 SO_ComplexCustomBase = 0xf000000
81 };
82
83 enum StyleOptionType { Type = SO_Default };
84 enum StyleOptionVersion { Version = 1 };
85
86 int version;
87 int type;
88 QStyle::State state;
89 Qt::LayoutDirection direction;
90 QRect rect;
91 QFontMetrics fontMetrics;
92 QPalette palette;
93
94 QStyleOption(int version = QStyleOption::Version, int type = SO_Default);
95 QStyleOption(const QStyleOption &other);
96 ~QStyleOption();
97
98 void init(const QWidget *w);
99 inline void initFrom(const QWidget *w) { init(w); }
100 QStyleOption &operator=(const QStyleOption &other);
101};
102
103class Q_GUI_EXPORT QStyleOptionFocusRect : public QStyleOption
104{
105public:
106 enum StyleOptionType { Type = SO_FocusRect };
107 enum StyleOptionVersion { Version = 1 };
108
109 QColor backgroundColor;
110
111 QStyleOptionFocusRect();
112 QStyleOptionFocusRect(const QStyleOptionFocusRect &other) : QStyleOption(Version, Type) { *this = other; }
113
114protected:
115 QStyleOptionFocusRect(int version);
116};
117
118class Q_GUI_EXPORT QStyleOptionFrame : public QStyleOption
119{
120public:
121 enum StyleOptionType { Type = SO_Frame };
122 enum StyleOptionVersion { Version = 1 };
123
124 int lineWidth;
125 int midLineWidth;
126
127 QStyleOptionFrame();
128 QStyleOptionFrame(const QStyleOptionFrame &other) : QStyleOption(Version, Type) { *this = other; }
129
130protected:
131 QStyleOptionFrame(int version);