Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qqc2qstyleoption_p.h
Go to the documentation of this file.
1// Copyright (C) 2020 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QQC2QSTYLEOPTION_P_H
6#define QQC2QSTYLEOPTION_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include <private/qqc2qstyle_p.h>
20#include <private/qtquick-config_p.h>
21
22#include <QtGui/qicon.h>
23#include <QtGui/qfontmetrics.h>
24
25#include <QtCore/qdebug.h>
26#include <QtCore/qlocale.h>
27#include <QtCore/qvariant.h>
28
29#if QT_CONFIG(quick_itemview)
30#include <QtCore/qabstractitemmodel.h>
31#endif
32
33QT_BEGIN_NAMESPACE
34
35class QQuickItem;
36
37namespace QQC2 {
38
40{
41public:
54
57
58 int version; // TODO: Remove version information
59 int type;
66
67 // QQC2 additions. Remember to also update copy
68 // constructor and assignment operator when adding
69 // new variables here.
70 QQuickItem *control;
72
73 QStyleOption(int version = QStyleOption::Version, int type = SO_Default);
74 QStyleOption(const QStyleOption &other);
75 ~QStyleOption();
76
77 QStyleOption &operator=(const QStyleOption &other);
78};
79
95
97{
98public:
102 None = 0x00,
103 Flat = 0x01,
104 Rounded = 0x02
105 };
106 Q_DECLARE_FLAGS(FrameFeatures, FrameFeature)
107 enum Shape {
108 NoFrame = 0, // no frame
109 Box = 0x0001, // rectangular box
110 Panel = 0x0002, // rectangular panel
111 WinPanel = 0x0003, // rectangular panel (Windows)
112 HLine = 0x0004, // horizontal line
113 VLine = 0x0005, // vertical line
114 StyledPanel = 0x0006 // rectangular panel depending on the GUI style
115 };
116 enum Shadow {
117 Plain = 0x0010, // plain line
118 Raised = 0x0020, // raised shadow effect
119 Sunken = 0x0030 // sunken shadow effect
120 };
121
126
130
131protected:
132 QStyleOptionFrame(int version);
133};
134
135Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionFrame::FrameFeatures)
137
139Q_DECL_DEPRECATED typedef QStyleOptionFrame QStyleOptionFrameV3;
140
178
202
203Q_DECL_DEPRECATED typedef QStyleOptionTabWidgetFrame QStyleOptionTabWidgetFrameV2;
204
205
226
254
256{
257public:
260
261 enum ButtonFeature { None = 0x00, Flat = 0x01, HasMenu = 0x02, DefaultButton = 0x04,
263 Q_DECLARE_FLAGS(ButtonFeatures, ButtonFeature)
264
269
273
274protected:
275 QStyleOptionButton(int version);
276};
277
278Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionButton::ButtonFeatures)
279
281{
282public:
285 int tabIndex = -1;
286};
287
288Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionTab::CornerWidgets)
289
291Q_DECL_DEPRECATED typedef QStyleOptionTab QStyleOptionTabV3;
292
293
295{
296public:
300 enum ToolBarFeature { None = 0x0, Movable = 0x1 };
301 Q_DECLARE_FLAGS(ToolBarFeatures, ToolBarFeature)
302
303 ToolBarPosition positionOfLine; // The toolbar line position
304 ToolBarPosition positionWithinLine; // The position within a toolbar
305 Qt::ToolBarArea toolBarArea; // The toolbar docking area
309
313
314protected:
315 QStyleOptionToolBar(int version);
316};
317
318Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionToolBar::ToolBarFeatures)
319
342
371
391
392Q_DECL_DEPRECATED typedef QStyleOptionDockWidget QStyleOptionDockWidgetV2;
393
394#if QT_CONFIG(quick_itemview)
396{
397public:
399 enum StyleOptionVersion { Version = 4 };
400
401 enum Position { Left, Right, Top, Bottom };
402 enum ScrollMode { ScrollPerItem, ScrollPerPixel }; // Doesn't really belong in this class.
403
409 QFont font;
411
412 enum ViewItemFeature {
413 None = 0x00,
414 WrapText = 0x01,
415 Alternate = 0x02,
416 HasCheckIndicator = 0x04,
417 HasDisplay = 0x08,
418 HasDecoration = 0x10
419 };
421
423
425
427
430 QIcon icon;
434
438
439protected:
441};
442
444
448#endif // QT_CONFIG(quick_itemview)
449
472
473Q_DECL_DEPRECATED typedef QStyleOptionToolBox QStyleOptionToolBoxV2;
474
492
493// -------------------------- Complex style options -------------------------------
507
544
564
591
592Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionToolButton::ToolButtonFeatures)
593
614
615
635
654
674
689
706
707template <typename T>
709{
710 typedef typename std::remove_cv<typename std::remove_pointer<T>::type>::type Opt;
711 if (opt && opt->version >= Opt::Version && (opt->type == Opt::Type
712 || int(Opt::Type) == QStyleOption::SO_Default
713 || (int(Opt::Type) == QStyleOption::SO_Complex
714 && opt->type > QStyleOption::SO_Complex)))
715 return static_cast<T>(opt);
716 return nullptr;
717}
718
719template <typename T>
721{
722 typedef typename std::remove_cv<typename std::remove_pointer<T>::type>::type Opt;
723 if (opt && opt->version >= Opt::Version && (opt->type == Opt::Type
724 || int(Opt::Type) == QStyleOption::SO_Default
725 || (int(Opt::Type) == QStyleOption::SO_Complex
726 && opt->type > QStyleOption::SO_Complex)))
727 return static_cast<T>(opt);
728 return nullptr;
729}
730
731// -------------------------- QStyleHintReturn -------------------------------
732
734{
735public:
739
742
743 QStyleHintReturn(int version = QStyleOption::Version, int type = SH_Default);
745
747 int type;
748};
749
761
773
774template <typename T>
776{
777 typedef typename std::remove_cv<typename std::remove_pointer<T>::type>::type Opt;
778 if (hint && hint->version <= Opt::Version &&
779 (hint->type == Opt::Type || int(Opt::Type) == QStyleHintReturn::SH_Default))
780 return static_cast<T>(hint);
781 return nullptr;
782}
783
784template <typename T>
786{
787 typedef typename std::remove_cv<typename std::remove_pointer<T>::type>::type Opt;
788 if (hint && hint->version <= Opt::Version &&
789 (hint->type == Opt::Type || int(Opt::Type) == QStyleHintReturn::SH_Default))
790 return static_cast<T>(hint);
791 return nullptr;
792}
793
794#if !defined(QT_NO_DEBUG_STREAM)
795QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType);
796QDebug operator<<(QDebug debug, const QStyleOption &option);
797#endif
798
799} // namespace QQC2
800
801QT_END_NAMESPACE
802
803#endif // QQC2QSTYLEOPTION_P_H
QStyleHintReturn(int version=QStyleOption::Version, int type=SH_Default)
QStyleOptionButton & operator=(const QStyleOptionButton &)=default
QStyleOptionButton(const QStyleOptionButton &other)
QStyleOptionComboBox(const QStyleOptionComboBox &other)
QStyleOptionComboBox & operator=(const QStyleOptionComboBox &)=default
QStyle::SubControls subControls
QStyle::SubControls activeSubControls
QStyleOptionComplex(int version=QStyleOptionComplex::Version, int type=SO_Complex)
QStyleOptionComplex & operator=(const QStyleOptionComplex &)=default
QStyleOptionComplex(const QStyleOptionComplex &other)
QStyleOptionDockWidget(const QStyleOptionDockWidget &other)
QStyleOptionDockWidget & operator=(const QStyleOptionDockWidget &)=default
QStyleOptionFocusRect & operator=(const QStyleOptionFocusRect &)=default
QStyleOptionFocusRect(const QStyleOptionFocusRect &other)
QStyleOptionFrame(const QStyleOptionFrame &other)
QStyleOptionFrame & operator=(const QStyleOptionFrame &)=default
static qreal levelOfDetailFromTransform(const QTransform &worldTransform)
QStyleOptionGraphicsItem(const QStyleOptionGraphicsItem &other)
QStyleOptionGraphicsItem & operator=(const QStyleOptionGraphicsItem &)=default
QStyleOptionFrame::FrameFeatures features
QStyleOptionGroupBox(const QStyleOptionGroupBox &other)
QStyleOptionGroupBox & operator=(const QStyleOptionGroupBox &)=default
QStyleOptionHeader & operator=(const QStyleOptionHeader &)=default
QStyleOptionHeader(const QStyleOptionHeader &other)
SelectedPosition selectedPosition
QStyleOptionMenuItem & operator=(const QStyleOptionMenuItem &)=default
QStyleOptionMenuItem(const QStyleOptionMenuItem &other)
QStyleOptionProgressBar & operator=(const QStyleOptionProgressBar &)=default
QStyleOptionProgressBar(const QStyleOptionProgressBar &other)
QStyleOptionRubberBand(const QStyleOptionRubberBand &other)
QStyleOptionRubberBand & operator=(const QStyleOptionRubberBand &)=default
QStyleOptionSearchField & operator=(const QStyleOptionSearchField &)=default
QStyleOptionSearchField(const QStyleOptionSearchField &other)
QStyleOptionSizeGrip & operator=(const QStyleOptionSizeGrip &)=default
QStyleOptionSizeGrip(const QStyleOptionSizeGrip &other)
QStyleOptionSlider(const QStyleOptionSlider &other)
QStyleOptionSlider & operator=(const QStyleOptionSlider &)=default
QStyleOptionSpinBox(const QStyleOptionSpinBox &other)
QStyleOptionSpinBox & operator=(const QStyleOptionSpinBox &)=default
QStyleOptionTabBarBase(const QStyleOptionTabBarBase &other)
QStyleOptionTabBarBase & operator=(const QStyleOptionTabBarBase &)=default
QStyleOptionTabWidgetFrame & operator=(const QStyleOptionTabWidgetFrame &)=default
QStyleOptionTabWidgetFrame(const QStyleOptionTabWidgetFrame &other)
QStyleOptionTab(const QStyleOptionTab &other)
SelectedPosition selectedPosition
QStyleOptionTab & operator=(const QStyleOptionTab &)=default
QStyleOptionTitleBar & operator=(const QStyleOptionTitleBar &)=default
QStyleOptionTitleBar(const QStyleOptionTitleBar &other)
QStyleOptionToolBar(const QStyleOptionToolBar &other)
QStyleOptionToolBar & operator=(const QStyleOptionToolBar &)=default
QStyleOptionToolBox & operator=(const QStyleOptionToolBox &)=default
QStyleOptionToolBox(const QStyleOptionToolBox &other)
Qt::ToolButtonStyle toolButtonStyle
QStyleOptionToolButton & operator=(const QStyleOptionToolButton &)=default
QStyleOptionToolButton(const QStyleOptionToolButton &other)
Qt::LayoutDirection direction
QStyleOption(int version=QStyleOption::Version, int type=SO_Default)
QStyleOption(const QStyleOption &other)
QStyleOption & operator=(const QStyleOption &other)
T qstyleoption_cast(QStyleOption *opt)
QDebug operator<<(QDebug debug, const QStyleOption &option)
T qstyleoption_cast(const QStyleHintReturn *hint)
T qstyleoption_cast(const QStyleOption *opt)
T qstyleoption_cast(QStyleHintReturn *hint)
QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType)
Combined button and popup list for selecting options.