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
qquickstyleoption.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 QSTYLEOPTION_H
6#define QSTYLEOPTION_H
7
8#include "qquickstyle.h"
9
10#include <QtCore/qlocale.h>
11#include <QtCore/qvariant.h>
12#include <QtCore/qdebug.h>
13
14#include <QtGui/qicon.h>
15#include <QtGui/qfontmetrics.h>
16
17#include <QtQuick/private/qtquick-config_p.h>
18#if QT_CONFIG(quick_itemview)
19#include <QtCore/qabstractitemmodel.h>
20#endif
21
23
24class QQuickItem;
25
26namespace QQC2 {
27
29{
30public:
43
46
47 int version; // TODO: Remove version information
48 int type;
52 QFontMetrics fontMetrics;
55
56 // QQC2 additions. Remember to also update copy
57 // constructor and assignment operator when adding
58 // new variables here.
59 QQuickItem *control;
61
62 QStyleOption(int version = QStyleOption::Version, int type = SO_Default);
63 QStyleOption(const QStyleOption &other);
64 ~QStyleOption();
65
66 QStyleOption &operator=(const QStyleOption &other);
67};
68
84
86{
87public:
91 None = 0x00,
92 Flat = 0x01,
93 Rounded = 0x02
94 };
95 Q_DECLARE_FLAGS(FrameFeatures, FrameFeature)
96 enum Shape {
97 NoFrame = 0, // no frame
98 Box = 0x0001, // rectangular box
99 Panel = 0x0002, // rectangular panel
100 WinPanel = 0x0003, // rectangular panel (Windows)
101 HLine = 0x0004, // horizontal line
102 VLine = 0x0005, // vertical line
103 StyledPanel = 0x0006 // rectangular panel depending on the GUI style
104 };
105 enum Shadow {
106 Plain = 0x0010, // plain line
107 Raised = 0x0020, // raised shadow effect
108 Sunken = 0x0030 // sunken shadow effect
109 };
110
115
119
120protected:
121 QStyleOptionFrame(int version);
122};
123
124Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionFrame::FrameFeatures)
126
128Q_DECL_DEPRECATED typedef QStyleOptionFrame QStyleOptionFrameV3;
129
167
191
192Q_DECL_DEPRECATED typedef QStyleOptionTabWidgetFrame QStyleOptionTabWidgetFrameV2;
193
194
215
243
245{
246public:
249
250 enum ButtonFeature { None = 0x00, Flat = 0x01, HasMenu = 0x02, DefaultButton = 0x04,
252 Q_DECLARE_FLAGS(ButtonFeatures, ButtonFeature)
253
258
262
263protected:
264 QStyleOptionButton(int version);
265};
266
267Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionButton::ButtonFeatures)
268
270{
271public:
274 int tabIndex = -1;
275};
276
277Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionTab::CornerWidgets)
278
280Q_DECL_DEPRECATED typedef QStyleOptionTab QStyleOptionTabV3;
281
282
284{
285public:
289 enum ToolBarFeature { None = 0x0, Movable = 0x1 };
290 Q_DECLARE_FLAGS(ToolBarFeatures, ToolBarFeature)
291
292 ToolBarPosition positionOfLine; // The toolbar line position
293 ToolBarPosition positionWithinLine; // The position within a toolbar
294 Qt::ToolBarArea toolBarArea; // The toolbar docking area
298
302
303protected:
304 QStyleOptionToolBar(int version);
305};
306
307Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionToolBar::ToolBarFeatures)
308
331
360
380
381Q_DECL_DEPRECATED typedef QStyleOptionDockWidget QStyleOptionDockWidgetV2;
382
383#if QT_CONFIG(quick_itemview)
385{
386public:
388 enum StyleOptionVersion { Version = 4 };
389
390 enum Position { Left, Right, Top, Bottom };
391 enum ScrollMode { ScrollPerItem, ScrollPerPixel }; // Doesn't really belong in this class.
392
398 QFont font;
400
401 enum ViewItemFeature {
402 None = 0x00,
403 WrapText = 0x01,
404 Alternate = 0x02,
405 HasCheckIndicator = 0x04,
406 HasDisplay = 0x08,
407 HasDecoration = 0x10
408 };
410
412
414
416
419 QIcon icon;
423
427
428protected:
430};
431
433
437#endif // QT_CONFIG(quick_itemview)
438
461
462Q_DECL_DEPRECATED typedef QStyleOptionToolBox QStyleOptionToolBoxV2;
463
481
482// -------------------------- Complex style options -------------------------------
496
533
553
580
581Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionToolButton::ToolButtonFeatures)
582
603
604
624
643
663
678
695
696template <typename T>
698{
699 typedef typename std::remove_cv<typename std::remove_pointer<T>::type>::type Opt;
700 if (opt && opt->version >= Opt::Version && (opt->type == Opt::Type
701 || int(Opt::Type) == QStyleOption::SO_Default
702 || (int(Opt::Type) == QStyleOption::SO_Complex
703 && opt->type > QStyleOption::SO_Complex)))
704 return static_cast<T>(opt);
705 return nullptr;
706}
707
708template <typename T>
710{
711 typedef typename std::remove_cv<typename std::remove_pointer<T>::type>::type Opt;
712 if (opt && opt->version >= Opt::Version && (opt->type == Opt::Type
713 || int(Opt::Type) == QStyleOption::SO_Default
714 || (int(Opt::Type) == QStyleOption::SO_Complex
715 && opt->type > QStyleOption::SO_Complex)))
716 return static_cast<T>(opt);
717 return nullptr;
718}
719
720// -------------------------- QStyleHintReturn -------------------------------
721
723{
724public:
728
731
732 QStyleHintReturn(int version = QStyleOption::Version, int type = SH_Default);
734
736 int type;
737};
738
750
762
763template <typename T>
765{
766 typedef typename std::remove_cv<typename std::remove_pointer<T>::type>::type Opt;
767 if (hint && hint->version <= Opt::Version &&
768 (hint->type == Opt::Type || int(Opt::Type) == QStyleHintReturn::SH_Default))
769 return static_cast<T>(hint);
770 return nullptr;
771}
772
773template <typename T>
775{
776 typedef typename std::remove_cv<typename std::remove_pointer<T>::type>::type Opt;
777 if (hint && hint->version <= Opt::Version &&
778 (hint->type == Opt::Type || int(Opt::Type) == QStyleHintReturn::SH_Default))
779 return static_cast<T>(hint);
780 return nullptr;
781}
782
783#if !defined(QT_NO_DEBUG_STREAM)
784QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType);
785QDebug operator<<(QDebug debug, const QStyleOption &option);
786#endif
787
788} // namespace QQC2
789
790QT_END_NAMESPACE
791
792#endif // QSTYLEOPTION_H
QStyleHintReturnMask()
Constructs a QStyleHintReturnMask.
QStyleHintReturnVariant()
Constructs a QStyleHintReturnVariant.
QStyleHintReturn(int version=QStyleOption::Version, int type=SH_Default)
Constructs a QStyleHintReturn with version version and type type.
QStyleOptionButton & operator=(const QStyleOptionButton &)=default
QStyleOptionButton(const QStyleOptionButton &other)
QStyleOptionButton()
Constructs a QStyleOptionButton, initializing the members variables to their default values.
QStyleOptionComboBox(const QStyleOptionComboBox &other)
QStyleOptionComboBox()
Creates a QStyleOptionComboBox, initializing the members variables to their default values.
QStyleOptionComboBox & operator=(const QStyleOptionComboBox &)=default
QStyle::SubControls subControls
QStyle::SubControls activeSubControls
QStyleOptionComplex(int version=QStyleOptionComplex::Version, int type=SO_Complex)
Constructs a QStyleOptionComplex of the specified type and version, initializing the member variables...
QStyleOptionComplex & operator=(const QStyleOptionComplex &)=default
QStyleOptionComplex(const QStyleOptionComplex &other)
QStyleOptionDockWidget(const QStyleOptionDockWidget &other)
QStyleOptionDockWidget & operator=(const QStyleOptionDockWidget &)=default
QStyleOptionDockWidget()
Constructs a QStyleOptionDockWidget, initializing the member variables to their default values.
QStyleOptionFocusRect()
Constructs a QStyleOptionFocusRect, initializing the members variables to their default values.
QStyleOptionFocusRect & operator=(const QStyleOptionFocusRect &)=default
QStyleOptionFocusRect(const QStyleOptionFocusRect &other)
QStyleOptionFrame(const QStyleOptionFrame &other)
QStyleOptionFrame()
Constructs a QStyleOptionFrame, initializing the members variables to their default values.
QStyleOptionFrame & operator=(const QStyleOptionFrame &)=default
static qreal levelOfDetailFromTransform(const QTransform &worldTransform)
QStyleOptionGraphicsItem()
Constructs a QStyleOptionGraphicsItem.
QStyleOptionGraphicsItem(const QStyleOptionGraphicsItem &other)
QStyleOptionGraphicsItem & operator=(const QStyleOptionGraphicsItem &)=default
QStyleOptionGroupBox()
Constructs a QStyleOptionGroupBox, initializing the members variables to their default values.
QStyleOptionFrame::FrameFeatures features
QStyleOptionGroupBox(const QStyleOptionGroupBox &other)
QStyleOptionGroupBox & operator=(const QStyleOptionGroupBox &)=default
QStyleOptionHeader & operator=(const QStyleOptionHeader &)=default
QStyleOptionHeader(const QStyleOptionHeader &other)
SelectedPosition selectedPosition
QStyleOptionHeader()
Constructs a QStyleOptionHeader, initializing the members variables to their default values.
QStyleOptionMenuItem & operator=(const QStyleOptionMenuItem &)=default
QStyleOptionMenuItem()
Constructs a QStyleOptionMenuItem, initializing the members variables to their default values.
QStyleOptionMenuItem(const QStyleOptionMenuItem &other)
QStyleOptionProgressBar()
Constructs a QStyleOptionProgressBar, initializing the members variables to their default values.
QStyleOptionProgressBar & operator=(const QStyleOptionProgressBar &)=default
QStyleOptionProgressBar(const QStyleOptionProgressBar &other)
QStyleOptionRubberBand(const QStyleOptionRubberBand &other)
QStyleOptionRubberBand & operator=(const QStyleOptionRubberBand &)=default
QStyleOptionRubberBand()
Creates a QStyleOptionRubberBand, initializing the members variables to their default values.
QStyleOptionSearchField & operator=(const QStyleOptionSearchField &)=default
QStyleOptionSearchField(const QStyleOptionSearchField &other)
QStyleOptionSearchField()
Creates a QStyleOptionSearchField, initializing the members variables to their default values.
QStyleOptionSizeGrip & operator=(const QStyleOptionSizeGrip &)=default
QStyleOptionSizeGrip()
Constructs a QStyleOptionSizeGrip.
QStyleOptionSizeGrip(const QStyleOptionSizeGrip &other)
QStyleOptionSlider(const QStyleOptionSlider &other)
QStyleOptionSlider & operator=(const QStyleOptionSlider &)=default
QStyleOptionSlider()
Constructs a QStyleOptionSlider, initializing the members variables to their default values.
QStyleOptionSpinBox()
Constructs a QStyleOptionSpinBox, initializing the members variables to their default values.
QStyleOptionSpinBox(const QStyleOptionSpinBox &other)
QStyleOptionSpinBox & operator=(const QStyleOptionSpinBox &)=default
QStyleOptionTabBarBase(const QStyleOptionTabBarBase &other)
QStyleOptionTabBarBase & operator=(const QStyleOptionTabBarBase &)=default
QStyleOptionTabBarBase()
Construct a QStyleOptionTabBarBase, initializing the members vaiables to their default values.
QStyleOptionTab::Shape shape
QStyleOptionTabV4()
Constructs a QStyleOptionTabV4 object, initializing the members variables to their default values.
QStyleOptionTabWidgetFrame()
Constructs a QStyleOptionTabWidgetFrame, initializing the members variables to their default values.
QStyleOptionTabWidgetFrame & operator=(const QStyleOptionTabWidgetFrame &)=default
QStyleOptionTabWidgetFrame(const QStyleOptionTabWidgetFrame &other)
QStyleOptionTab()
Constructs a QStyleOptionTab object, initializing the members variables to their default values.
QStyleOptionTab(const QStyleOptionTab &other)
SelectedPosition selectedPosition
QStyleOptionTab & operator=(const QStyleOptionTab &)=default
QStyleOptionTitleBar & operator=(const QStyleOptionTitleBar &)=default
QStyleOptionTitleBar()
Constructs a QStyleOptionTitleBar, initializing the members variables to their default values.
QStyleOptionTitleBar(const QStyleOptionTitleBar &other)
QStyleOptionToolBar(const QStyleOptionToolBar &other)
Constructs a copy of the other style option.
QStyleOptionToolBar()
Constructs a QStyleOptionToolBar, initializing the members variables to their default values.
QStyleOptionToolBar & operator=(const QStyleOptionToolBar &)=default
QStyleOptionToolBox & operator=(const QStyleOptionToolBox &)=default
SelectedPosition selectedPosition
QStyleOptionToolBox(const QStyleOptionToolBox &other)
QStyleOptionToolBox()
Creates a QStyleOptionToolBox, initializing the members variables to their default values.
Qt::ToolButtonStyle toolButtonStyle
QStyleOptionToolButton & operator=(const QStyleOptionToolButton &)=default
QStyleOptionToolButton()
Constructs a QStyleOptionToolButton, initializing the members variables to their default values.
QStyleOptionToolButton(const QStyleOptionToolButton &other)
Qt::LayoutDirection direction
QStyleOption(int version=QStyleOption::Version, int type=SO_Default)
~QStyleOption()
Destroys this style option object.
QStyleOption(const QStyleOption &other)
Constructs a copy of other.
QStyleOption & operator=(const QStyleOption &other)
Assign other to this QStyleOption.
virtual void polish()
const QStyle * proxy() const
virtual QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt=nullptr) const =0
virtual QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const
Returns the area within the given rectangle in which to draw the specified pixmap according to the de...
virtual QPalette standardPalette() const
Returns the style's standard palette.
virtual QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &contentsSize) const =0
static Qt::Alignment visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment)
Transforms an alignment of Qt::AlignLeft or Qt::AlignRight without Qt::AlignAbsolute into Qt::AlignLe...
virtual int pixelMetric(PixelMetric metric, const QStyleOption *option=nullptr) const =0
virtual void handleThemeChange()
virtual ~QStyle()
Destroys the style object.
virtual void drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const
Draws the given pixmap in the specified rectangle, according to the specified alignment,...
virtual void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p) const =0
virtual void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p) const =0
virtual QFont font(ControlElement element, const QStyle::State state) const =0
QStyle()
Constructs a style object.
static QRect alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle)
Returns a new rectangle of the specified size that is aligned to the given rectangle according to the...
virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p) const =0
static int sliderPositionFromValue(int min, int max, int val, int space, bool upsideDown=false)
Converts the given logicalValue to a pixel position.
virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc) const =0
static QRect visualRect(Qt::LayoutDirection direction, const QRect &boundingRect, const QRect &logicalRect)
Returns the given logicalRectangle converted to screen coordinates based on the specified direction.
virtual QRect subElementRect(SubElement subElement, const QStyleOption *option) const =0
static int sliderValueFromPosition(int min, int max, int pos, int space, bool upsideDown=false)
Converts the given pixel position to a logical value.
virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const =0
virtual int styleHint(StyleHint stylehint, const QStyleOption *opt=nullptr, QStyleHintReturn *returnData=nullptr) const =0
@ State_KeyboardFocusChange
Definition qquickstyle.h:66
virtual QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option=nullptr) const =0
virtual void drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole=QPalette::NoRole) const
Draws the given text in the specified rectangle using the provided painter and palette.
virtual QMargins ninePatchMargins(ComplexControl cc, const QStyleOptionComplex *opt, const QSize &imageSize) const =0
virtual SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt) const =0
virtual QMargins ninePatchMargins(ControlElement ce, const QStyleOption *opt, const QSize &imageSize) const =0
static QPoint visualPos(Qt::LayoutDirection direction, const QRect &boundingRect, const QPoint &logicalPos)
Returns the given logicalPosition converted to screen coordinates based on the specified direction.
T qstyleoption_cast(QStyleOption *opt)
T qstyleoption_cast(const QStyleHintReturn *hint)
QPixmap styleCachePixmap(const QSize &size)
QImage styleCacheImage(const QSize &size)
T qstyleoption_cast(const QStyleOption *opt)
T qstyleoption_cast(QStyleHintReturn *hint)