Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QWindowsVistaStyle Class Reference

The QWindowsVistaStyle class provides a look and feel suitable for applications on Microsoft Windows Vista. More...

#include <qwindowsvistastyle_p.h>

+ Inheritance diagram for QWindowsVistaStyle:
+ Collaboration diagram for QWindowsVistaStyle:

Public Member Functions

 QWindowsVistaStyle ()
 Constructs a QWindowsVistaStyle object.
 
 ~QWindowsVistaStyle () override
 Destructor.
 
void drawPrimitive (PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget=nullptr) const override
 
void drawControl (ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const override
 
void drawComplexControl (ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const override
 
QSize sizeFromContents (ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const override
 
QRect subElementRect (SubElement element, const QStyleOption *option, const QWidget *widget) const override
 
QRect subControlRect (ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc, const QWidget *widget) const override
 
SubControl hitTestComplexControl (ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget=nullptr) const override
 
QIcon standardIcon (StandardPixmap standardIcon, const QStyleOption *option=nullptr, const QWidget *widget=nullptr) const override
 \reimp
 
QPixmap standardPixmap (StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget=nullptr) const override
 
int pixelMetric (PixelMetric metric, const QStyleOption *option=nullptr, const QWidget *widget=nullptr) const override
 
int styleHint (StyleHint hint, const QStyleOption *opt=nullptr, const QWidget *widget=nullptr, QStyleHintReturn *returnData=nullptr) const override
 
void polish (QWidget *widget) override
 
void unpolish (QWidget *widget) override
 
void polish (QPalette &pal) override
 
void polish (QApplication *app) override
 

Friends

class QStyleFactory
 

Detailed Description

The QWindowsVistaStyle class provides a look and feel suitable for applications on Microsoft Windows Vista.

Since
4.3

\inmodule QtWidgets

Warning
This style is only available on the Windows Vista platform because it makes use of Windows Vista's style engine.
See also
QMacStyle, QFusionStyle

Definition at line 24 of file qwindowsvistastyle_p.h.

Constructor & Destructor Documentation

◆ QWindowsVistaStyle()

QWindowsVistaStyle::QWindowsVistaStyle ( )

Constructs a QWindowsVistaStyle object.

Definition at line 1326 of file qwindowsvistastyle.cpp.

◆ ~QWindowsVistaStyle()

QWindowsVistaStyle::~QWindowsVistaStyle ( )
overridedefault

Destructor.

Member Function Documentation

◆ drawComplexControl()

void QWindowsVistaStyle::drawComplexControl ( ComplexControl  control,
const QStyleOptionComplex option,
QPainter painter,
const QWidget widget 
) const
override

see drawPrimitive for comments on the animation support

Definition at line 3296 of file qwindowsvistastyle.cpp.

References QStyleOptionComplex::activeSubControls, QRect::adjust(), QRect::adjusted(), Qt::AlignCenter, Qt::AlignLeft, Qt::AlignVCenter, QVarLengthArray< T, Prealloc >::append(), QRect::bottom(), button, canAnimate(), QRect::center(), clonedAnimationStyleOption(), QWindowsVistaStylePrivate::ComboboxTheme, QVarLengthArray< T, Prealloc >::constData(), createAnimationBuffer(), d, deleteClonedAnimationStyleOption(), QPainter::drawLine(), QPainter::drawLines(), QPainter::drawText(), QWindowsVistaStylePrivate::EditTheme, QWindowsThemeData::handle(), QStyleOptionToolButton::HasMenu, QRect::height(), Qt::Horizontal, iconSize, isActive, QWidget::isActiveWindow, QVarLengthArray< T, Prealloc >::isEmpty(), QSizeF::isEmpty(), QWidget::isEnabled(), QWindowsThemeData::isValid(), QRect::left(), QStyleOptionToolButton::MenuButtonPopup, QWindowsThemeData::mirrorHorizontally, QWindowsThemeData::noContent, QWindowsVistaAnimation::paint(), painter, QWindowsThemeData::partId, pixelMetric(), QStyle::PM_MenuButtonIndicator, populateTitleBarButtonTheme(), pos, QObject::property(), proxy, Q_UNLIKELY, qMin(), qRgb(), QWindowsThemeData::rect, QStyleOption::rect, QPainter::restore(), QRect::right(), Qt::RightToLeft, QPainter::save(), QStyle::SC_MdiMinButton, QWindowsVistaStylePrivate::ScrollBarTheme, QPainter::setClipRect(), QPainter::setPen(), QObject::setProperty(), QWindowsThemeData::size(), QVLABaseBase::size(), QStyle::sliderPositionFromValue(), QWindowsVistaStylePrivate::SpinTheme, state, QStyleOption::state, QStyle::State_Active, QWindowsThemeData::stateId, QAbstractSpinBox::StepDownEnabled, QAbstractSpinBox::StepUpEnabled, styleObject(), sub, subControlRect(), SubControls, subElementRect(), QWidget::testAttribute(), Qt::TextSingleLine, QSlider::TicksAbove, QSlider::TicksBelow, QSlider::TicksLeft, QSlider::TicksRight, TMT_TEXTSHADOWCOLOR, QVariant::toInt(), QWindowsVistaStylePrivate::ToolBarTheme, QRect::top(), QRect::topLeft(), QVariant::toRect(), QWindowsVistaStylePrivate::TrackBarTheme, QPainter::translate(), TST_NONE, QRect::united(), QWindowsVistaStylePrivate::useVista(), Qt::WA_UnderMouse, widget, QRect::width(), Qt::WindowContextHelpButtonHint, Qt::WindowMaximizeButtonHint, Qt::WindowMaximized, Qt::WindowMinimizeButtonHint, Qt::WindowMinimized, Qt::WindowShadeButtonHint, Qt::WindowSystemMenuHint, QWindowsVistaStylePrivate::WindowTheme, QPoint::x(), QRect::x(), QPoint::y(), and QRect::y().

◆ drawControl()

void QWindowsVistaStyle::drawControl ( ControlElement  element,
const QStyleOption option,
QPainter painter,
const QWidget widget 
) const
override

see drawPrimitive for comments on the animation support

Definition at line 2347 of file qwindowsvistastyle.cpp.

References QIcon::Active, QPalette::Active, QRect::adjust(), QRect::adjusted(), Qt::AlignBottom, Qt::AlignCenter, Qt::AlignLeft, alignment, Qt::AlignVCenter, QPalette::All, alphaGradient(), QString::arg(), begin(), QColor::blue(), QMarginsF::bottom(), QRect::bottom(), Qt::BottomLeftCorner, Qt::BottomRightCorner, BP_COMMANDLINK, btn, button, QPalette::Button, buttonStateId(), QPalette::ButtonText, QWindowsVistaStylePrivate::ButtonTheme, QIcon::cacheKey(), canAnimate(), QRect::center(), clonedAnimationStyleOption(), QPalette::color(), QStyleOptionButton::CommandLinkButton, QPainter::CompositionMode_SourceIn, createAnimationBuffer(), QOperatingSystemVersion::current(), d, QPalette::Dark, QColor::darker(), QStyleOptionButton::DefaultButton, QStyleOptionMenuItem::DefaultItem, deleteClonedAnimationStyleOption(), QPainter::device(), QPaintDevice::devicePixelRatio(), QIcon::Disabled, disabled, QStyleHelper::dpiScaled(), dpr(), QCommonStyle::drawControl(), QPainter::drawPixmap(), QPainter::drawRect(), QPainter::drawText(), QFontMetrics::elidedText(), Qt::ElideRight, QPainter::end(), QPainter::eraseRect(), QStyleOptionMenuItem::Exclusive, QStyleOptionButton::features, fill(), QPainter::fillRect(), QPixmapCache::find(), QStyleOptionButton::Flat, QPainter::font(), font, QPainter::fontMetrics(), QImage::Format_ARGB32, QPixmap::fromImage(), QString::fromLatin1(), QColor::green(), QWindowsThemeData::handle(), QStyleOptionButton::HasMenu, header(), QWindowsVistaStylePrivate::HeaderTheme, QRect::height(), QSize::height(), QPalette::Highlight, QPalette::HighlightedText, Qt::Horizontal, QPixmapCache::insert(), isActive, QDockWidget::isFloating(), QPixmap::isNull(), QWindowsThemeData::isValid(), QWidget::isWindow(), QMarginsF::left(), QRect::left(), Qt::LeftToRight, QWindowsThemeData::margins(), QWindowsVistaStylePrivate::MenuTheme, QWindowsThemeData::mirrorHorizontally, QWindowsThemeData::mirrorVertically, QRect::moveCenter(), QRect::moveTop(), QStyleOptionHeader::None, QIcon::Normal, QStyleOptionMenuItem::NotCheckable, QIcon::Off, QIcon::On, p1, p2, QWindowsVistaAnimation::paint(), QWindowsThemeData::painter, painter, palette, QWidget::palette, QWindowsThemeData::partId, QPainter::pen(), pix, QIcon::pixmap(), pixmap, QStyle::PM_DockWidgetTitleMargin, QWindowsVistaStylePrivate::ProgressTheme, QObject::property(), proxy, qMax(), qMin(), qRgb(), qRound(), QWindowsThemeData::rect, rect, QStyleOption::rect, QColor::red(), QPainter::restore(), QSize::rheight(), QMarginsF::right(), QRect::right(), Qt::RightToLeft, QPainter::rotate(), QWindowsThemeData::rotate, QTabBar::RoundedEast, QTabBar::RoundedNorth, QTabBar::RoundedSouth, QTabBar::RoundedWest, QPainter::save(), QStyleOptionMenuItem::Separator, QFont::setBold(), QPainter::setBrush(), QPainter::setClipRect(), QPalette::setColor(), QGradient::setColorAt(), QPainter::setCompositionMode(), QStyleAnimation::setDuration(), QBlendStyleAnimation::setEndImage(), QPainter::setFont(), QRect::setHeight(), QSize::setHeight(), QPainter::setPen(), QObject::setProperty(), QBlendStyleAnimation::setStartImage(), QStyleAnimation::setStartTime(), QRect::setWidth(), QSize::setWidth(), QAbstractItemView::SingleSelection, QWindowsThemeData::size(), QRect::size(), QStyle::SP_TitleBarCloseButton, QStyle::SP_TitleBarMaxButton, state, QStyleOption::state, QStyle::State_Horizontal, QWindowsThemeData::stateId, QWindowsVistaStylePrivate::StatusTheme, styleHint(), styleObject(), subElementRect(), QStyleOptionMenuItem::SubMenu, QWindowsVistaStylePrivate::TabTheme, QPalette::Text, Qt::TextDontClip, Qt::TextHideMnemonic, textRect, Qt::TextShowMnemonic, Qt::TextSingleLine, TMT_TEXTSHADOWCOLOR, QVariant::toBool(), QVariant::toInt(), QWindowsVistaStylePrivate::ToolBarTheme, QMarginsF::top(), QRect::topLeft(), Qt::TopLeftCorner, QRect::topRight(), Qt::TopRightCorner, QVariant::toRect(), QPainter::translate(), Qt::transparent, TST_NONE, QWindowsVistaStylePrivate::useVista(), Qt::Vertical, view, QStyle::visualPos(), visualRect(), QStyle::visualRect(), widget, QPixmap::width(), QRect::width(), QSize::width(), QPalette::Window, QGuiApplication::windowIcon, QWidget::windowIcon, QOperatingSystemVersion::Windows11, windowsArrowHMargin, windowsItemFrame, windowsItemHMargin, windowsItemVMargin, windowsRightBorder, QPalette::WindowText, and QWindowsVistaStylePrivate::WindowTheme.

◆ drawPrimitive()

void QWindowsVistaStyle::drawPrimitive ( PrimitiveElement  element,
const QStyleOption option,
QPainter painter,
const QWidget widget = nullptr 
) const
override

Animations are used for some state transitions on specific widgets.

Only one running animation can exist for a widget at any specific time. Animations can be added through QWindowsVistaStylePrivate::startAnimation(Animation *) and any existing animation on a widget can be retrieved with QWindowsVistaStylePrivate::widgetAnimation(Widget *).

Once an animation has been started, QWindowsVistaStylePrivate::timerEvent(QTimerEvent *) will continuously call update() on the widget until it is stopped, meaning that drawPrimitive will be called many times until the transition has completed. During this time, the result will be retrieved by the Animation::paint(...) function and not by the style itself.

To determine if a transition should occur, the style needs to know the previous state of the widget as well as the current one. This is solved by updating dynamic properties on the widget every time the function is called.

Transitions interrupting existing transitions should always be smooth, so whenever a hover-transition is started on a pulsating button, it uses the current frame of the pulse-animation as the starting image for the hover transition.

Definition at line 1366 of file qwindowsvistastyle.cpp.

References QRect::adjusted(), QString::arg(), QPalette::Base, QPalette::brush(), QPainter::brushOrigin(), btn, button, QPalette::Button, buttonStateId(), QWindowsVistaStylePrivate::ButtonTheme, canAnimate(), clonedAnimationStyleOption(), createAnimationBuffer(), d, QStyleOptionButton::DefaultButton, deleteClonedAnimationStyleOption(), Qt::Dense4Pattern, QPalette::Disabled, QPainter::drawLine(), QPainter::drawPixmap(), QPainter::drawRect(), QWindowsVistaStylePrivate::EditTheme, QStyleOptionButton::features, fill(), QPainter::fillRect(), QPixmapCache::find(), QObject::findChild(), QStyleOptionFrame::Flat, frame, QString::fromLatin1(), QWidget::geometry, QWindowsThemeData::handle(), header(), QWindowsVistaStylePrivate::HeaderTheme, QRect::height(), QSize::height(), if(), QPalette::Inactive, QObject::inherits(), QPixmapCache::insert(), QWindowsVistaStylePrivate::isItemViewDelegateLineEdit(), QWindowsVistaStylePrivate::isLineEditBaseColorSet(), QWindowsThemeData::isValid(), LISS_HOT, LISS_HOTSELECTED, LISS_SELECTED, LISS_SELECTEDNOTFOCUS, QWindowsVistaStylePrivate::MenuTheme, QWindowsThemeData::mirrorHorizontally, QWindowsThemeData::mirrorVertically, Qt::NoBrush, QWindowsThemeData::noContent, QPalette::Normal, QAbstractItemView::NoSelection, p1, p2, QWindowsVistaAnimation::paint(), painter, QWidget::palette, panel, QWidget::parentWidget(), QWindowsThemeData::partId, QPainter::pen(), pixmap, QObject::property(), proxy, qDrawWinButton(), qMax(), qRgb(), qRound(), QWindowsVistaStylePrivate::RebarTheme, QWindowsThemeData::rect, rect, QWidget::rect, QPainter::restore(), Qt::RightToLeft, QTabBar::RoundedEast, QTabBar::RoundedNorth, QTabBar::RoundedSouth, QTabBar::RoundedWest, QPainter::save(), QStyle::SE_ItemViewItemFocusRect, QAbstractItemView::SelectRows, QRect::setBottom(), QPainter::setBrush(), QPainter::setBrushOrigin(), QPainter::setClipRect(), QPainter::setClipRegion(), QStyleAnimation::setDuration(), QBlendStyleAnimation::setEndImage(), QPainter::setPen(), QObject::setProperty(), QBlendStyleAnimation::setStartImage(), QStyleAnimation::setStartTime(), QRect::setTop(), QSize::setWidth(), QWindowsThemeData::size(), QRect::size(), QStyleOptionHeader::SortDown, state, QStyleOption::state, QStyle::State_Active, QStyle::State_Enabled, QStyle::State_MouseOver, QStyle::State_Open, QStyle::State_Selected, QWindowsThemeData::stateId, QWindowsVistaStylePrivate::StatusTheme, styleObject(), QStyleOption::styleObject, subElementRect(), supportsStateTransition(), QWindowsVistaStylePrivate::TabTheme, QWindowsVistaStylePrivate::TaskDialogTheme, QVariant::toInt(), QWindowsVistaStylePrivate::ToolBarTheme, QWindowsVistaStylePrivate::ToolTipTheme, QRect::top(), QRect::topLeft(), QRect::topRight(), QVariant::toRect(), Qt::transparent, QTabBar::TriangularEast, QTabBar::TriangularNorth, QTabBar::TriangularSouth, QTabBar::TriangularWest, QWindowsVistaStylePrivate::useVista(), view, QWindowsVistaStylePrivate::VistaTreeViewTheme, widget, QRect::width(), QSize::width(), QWindowsVistaStylePrivate::WindowTheme, QRect::x(), and QRect::y().

◆ hitTestComplexControl()

QStyle::SubControl QWindowsVistaStyle::hitTestComplexControl ( ComplexControl  control,
const QStyleOptionComplex option,
const QPoint pos,
const QWidget widget = nullptr 
) const
override

Definition at line 4524 of file qwindowsvistastyle.cpp.

References pos, and widget.

◆ pixelMetric()

int QWindowsVistaStyle::pixelMetric ( PixelMetric  metric,
const QStyleOption option = nullptr,
const QWidget widget = nullptr 
) const
override

Definition at line 4533 of file qwindowsvistastyle.cpp.

References QStyleHelper::dpiScaled(), QWindowsVistaStylePrivate::fixedPixelMetric(), QWindowsVistaStylePrivate::pixelMetricFromSystemDp(), qRound(), ret, QTabBar::RoundedEast, QTabBar::RoundedNorth, QTabBar::RoundedSouth, QTabBar::RoundedWest, QTabBar::TriangularEast, QTabBar::TriangularNorth, QTabBar::TriangularSouth, QTabBar::TriangularWest, QWindowsVistaStylePrivate::useVista(), and widget.

Referenced by drawComplexControl(), and sizeFromContents().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ polish() [1/3]

void QWindowsVistaStyle::polish ( QApplication app)
override

Definition at line 4840 of file qwindowsvistastyle.cpp.

References app, Qt::Dark, QApplication::palette(), qApp, QPalette::resolveMask(), and QApplication::setPalette().

+ Here is the call graph for this function:

◆ polish() [2/3]

void QWindowsVistaStyle::polish ( QPalette pal)
override

Definition at line 4803 of file qwindowsvistastyle.cpp.

References QPalette::AlternateBase, QPalette::base(), QWindowsVistaStylePrivate::ButtonTheme, QPixmapCache::clear(), QBrush::color(), QGuiApplicationPrivate::colorScheme(), d, Qt::Dark, QColor::darker(), QWindowsThemeData::handle(), QGuiApplicationPrivate::platformIntegration(), qRgb(), and QPalette::setBrush().

+ Here is the call graph for this function:

◆ polish() [3/3]

◆ sizeFromContents()

◆ standardIcon()

QIcon QWindowsVistaStyle::standardIcon ( StandardPixmap  standardIcon,
const QStyleOption option = nullptr,
const QWidget widget = nullptr 
) const
override

\reimp

Definition at line 4906 of file qwindowsvistastyle.cpp.

References QIcon::Active, QIcon::addPixmap(), BP_COMMANDLINKGLYPH, QWindowsVistaStylePrivate::ButtonTheme, CBS_INACTIVE, CMDLGS_DISABLED, CMDLGS_HOT, CMDLGS_NORMAL, CMDLGS_PRESSED, d, QIcon::Disabled, QPixmap::fill(), QWindowsThemeData::isValid(), QWidget::isWindow(), MAXBS_INACTIVE, QIcon::Normal, QIcon::Off, QIcon::On, QWindowsThemeData::painter, QWindowsThemeData::partId, RBS_INACTIVE, QWindowsThemeData::rect, QWindowsThemeData::size(), standardIcon(), QWindowsThemeData::stateId, QSizeF::toSize(), Qt::transparent, QWindowsVistaStylePrivate::useVista(), widget, and QWindowsVistaStylePrivate::WindowTheme.

Referenced by standardIcon().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ standardPixmap()

QPixmap QWindowsVistaStyle::standardPixmap ( StandardPixmap  standardPixmap,
const QStyleOption option,
const QWidget widget = nullptr 
) const
override

Definition at line 4875 of file qwindowsvistastyle.cpp.

References QWindowsThemeData::isValid(), QWidget::isWindow(), QIcon::pixmap(), QWindowsThemeData::size(), standardPixmap(), QWindowsVistaStylePrivate::useVista(), widget, and QWindowsVistaStylePrivate::WindowTheme.

Referenced by standardPixmap().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ styleHint()

int QWindowsVistaStyle::styleHint ( StyleHint  hint,
const QStyleOption option = nullptr,
const QWidget widget = nullptr,
QStyleHintReturn returnData = nullptr 
) const
override

Definition at line 2242 of file qwindowsvistastyle.cpp.

References Qt::AlignHCenter, Qt::AlignTop, QPalette::Base, d, hint(), QWidget::isEnabled(), proxy, ret, QRect::setHeight(), QWindowsVistaStylePrivate::ToolTipTheme, widget, Qt::WindowMinimized, and QWindowsVistaStylePrivate::WindowTheme.

Referenced by drawControl().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ subControlRect()

QRect QWindowsVistaStyle::subControlRect ( ComplexControl  control,
const QStyleOptionComplex option,
SubControl  subControl,
const QWidget widget 
) const
override

Definition at line 4310 of file qwindowsvistastyle.cpp.

References buttonVisible(), cb, QStyleHelper::dpiScaled(), iconSize, leftOffset, proxy, Q_FALLTHROUGH, qRound(), rect, QWindowsVistaStylePrivate::useVista(), visualRect(), widget, Qt::WindowContextHelpButtonHint, Qt::WindowMaximizeButtonHint, Qt::WindowMaximized, Qt::WindowMinimizeButtonHint, Qt::WindowMinimized, Qt::WindowShadeButtonHint, and Qt::WindowSystemMenuHint.

Referenced by drawComplexControl().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ subElementRect()

QRect QWindowsVistaStyle::subElementRect ( SubElement  element,
const QStyleOption option,
const QWidget widget 
) const
override

◆ unpolish()

void QWindowsVistaStyle::unpolish ( QWidget widget)
override

Definition at line 4714 of file qwindowsvistastyle.cpp.

References d, QFont::families(), QObject::findChild(), font, QApplication::font(), QWidget::font, newState(), QT_CONFIG, QWidget::setAttribute(), QWidget::setContentsMargins(), QFont::setFamilies(), QWidget::setFont(), QWidget::setWindowOpacity(), QWindowsVistaStylePrivate::useVista(), Qt::WA_Hover, Qt::WA_StyledBackground, and widget.

+ Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ QStyleFactory

friend class QStyleFactory
friend

Definition at line 66 of file qwindowsvistastyle_p.h.


The documentation for this class was generated from the following files: