6#include <private/qstyleanimation_p.h>
7#include <private/qstylehelper_p.h>
8#include <private/qapplication_p.h>
11#include <QGraphicsDropShadowEffect>
12#include <QtWidgets/qcombobox.h>
13#include <QtWidgets/qcommandlinkbutton.h>
14#include <QtWidgets/qgraphicsview.h>
15#include <QtWidgets/qlistview.h>
16#include <QtWidgets/qmenu.h>
17#include <QtWidgets/qmdiarea.h>
18#include <QtWidgets/qtextedit.h>
19#include <QtWidgets/qtreeview.h>
49 QColor(0x00,0x00,0x00,0x09),
50 QColor(0x00,0x00,0x00,0x06),
51 QColor(0x00,0x00,0x00,0x0F),
52 QColor(0x00,0x00,0x00,0x9c),
53 QColor(0x00,0x00,0x00,0x72),
54 QColor(0x00,0x00,0x00,0x29),
55 QColor(0x00,0x00,0x00,0x14),
56 QColor(0xF9,0xF9,0xF9,0x00),
57 QColor(0xF9,0xF9,0xF9,0x80),
58 QColor(0xFF,0xFF,0xFF,0xFF),
59 QColor(0xFF,0xFF,0xFF,0xFF),
60 QColor(0xFF,0xFF,0xFF,0x7F),
61 QColor(0x00,0x00,0x00,0x7F),
62 QColor(0x00,0x00,0x00,0x66),
63 QColor(0xFF,0xFF,0xFF,0xFF),
64 QColor(0x75,0x75,0x75,0x66),
68 QColor(0xFF,0xFF,0xFF,0x0F),
69 QColor(0xFF,0xFF,0xFF,0x0A),
70 QColor(0xFF,0xFF,0xFF,0x12),
71 QColor(0xFF,0xFF,0xFF,0x8B),
72 QColor(0xFF,0xFF,0xFF,0x8B),
73 QColor(0xFF,0xFF,0xFF,0x18),
74 QColor(0xFF,0xFF,0xFF,0x12),
75 QColor(0xF9,0xF9,0xF9,0x00),
76 QColor(0xF9,0xF9,0xF9,0x80),
77 QColor(0x0F,0x0F,0x0F,0xFF),
78 QColor(0x00,0x00,0x00,0xFF),
79 QColor(0x00,0x00,0x00,0x80),
80 QColor(0xFF,0xFF,0xFF,0x87),
81 QColor(0xFF,0xFF,0xFF,0x14),
82 QColor(0x45,0x45,0x45,0xFF),
83 QColor(0x75,0x75,0x75,0x66),
93#if QT_CONFIG(toolbutton)
98 switch (toolbutton->arrowType) {
135QWindows11Style::QWindows11Style() : QWindowsVistaStyle(*new QWindows11StylePrivate)
166 flags |= State_MouseOver;
170 if (
d->transitionsEnabled()) {
171 if (control == CC_Slider) {
172 if (
const auto *slider = qstyleoption_cast<const QStyleOptionSlider *>(
option)) {
176 auto center = thumbRect.center();
177 const qreal outerRadius =
qMin(8.0, (slider->orientation ==
Qt::Horizontal ? thumbRect.height() / 2.0 : thumbRect.width() / 2.0) - 1);
179 thumbRect.setWidth(outerRadius);
180 thumbRect.setHeight(outerRadius);
181 thumbRect.moveCenter(center);
183 bool isInsideHandle = thumbRect.contains(cursorPos);
194 if (
option->styleObject->property(
"_q_end_radius").isNull())
195 option->styleObject->setProperty(
"_q_end_radius", outerRadius * 0.43);
197 bool doTransition = (((
state & State_Sunken) != (oldState & State_Sunken)
198 || ((oldIsInsideHandle) != (isInsideHandle))
199 || oldActiveControls !=
int(
option->activeSubControls))
200 &&
state & State_Enabled);
202 if (oldRect !=
option->rect) {
203 doTransition =
false;
211 if (
state & State_Sunken)
212 t->setEndValue(outerRadius * 0.29);
213 else if (isInsideHandle)
214 t->setEndValue(outerRadius * 0.71);
216 t->setEndValue(outerRadius * 0.43);
220 t->setStartTime(
d->animationTime());
222 d->startAnimation(
t);
229#if QT_CONFIG(spinbox)
231 if (
const QStyleOptionSpinBox *sb = qstyleoption_cast<const QStyleOptionSpinBox *>(
option)) {
232 if (sb->frame && (
sub & SC_SpinBoxFrame)) {
235 clipRegion -=
option->rect.adjusted(2, 2, -2, -2);
243 frameRect.
adjust(0.5,0.5,-0.5,-0.5);
250 if (
sub & SC_SpinBoxEditField) {
252 if (
rect.contains(mousePos) && !(
state & State_HasFocus)) {
259 if (
sub & SC_SpinBoxUp) {
262 if (
rect.contains(mousePos)) {
277 if (
sub & SC_SpinBoxDown) {
280 if (
rect.contains(mousePos)) {
300 if (
const auto *slider = qstyleoption_cast<const QStyleOptionSlider *>(
option)) {
301 QRectF slrect = slider->rect;
302 QRegion tickreg = slrect.toRect();
304 if (
sub & SC_SliderGroove) {
307 QPointF handlePos = handleRect.center();
312 rect =
QRect(slrect.left(),
rect.center().y() - 2, slrect.width() - 5, 4);
314 rightRect =
QRect(handlePos.x(),
rect.top(), (
rect.width() - handlePos.x()),
rect.height());
316 rect =
QRect(
rect.center().x() - 2, slrect.top(), 4, slrect.height() - 5);
318 leftRect =
QRect(
rect.left(), handlePos.y(),
rect.width(), (
rect.height() - handlePos.y()));
332 tickreg -=
rect.toRect();
334 if (
sub & SC_SliderTickmarks) {
335 int tickOffset =
proxy()->pixelMetric(PM_SliderTickmarkOffset, slider,
widget);
336 int ticks = slider->tickPosition;
337 int thickness =
proxy()->pixelMetric(PM_SliderControlThickness, slider,
widget);
339 int available =
proxy()->pixelMetric(PM_SliderSpaceAvailable, slider,
widget);
340 int interval = slider->tickInterval;
342 interval = slider->singleStep;
347 interval = slider->pageStep;
355 QVarLengthArray<QLine, 32> lines;
356 int v = slider->minimum;
357 while (v <= slider->maximum + 1) {
358 if (
v == slider->maximum + 1 && interval == 1)
360 const int v_ =
qMin(
v, slider->maximum);
361 int tickLength = (v_ == slider->minimum || v_ >= slider->maximum) ? 4 : 3;
363 v_, available) + fudge;
366 lines.append(
QLine(
pos, tickOffset - 1 - bothOffset,
367 pos, tickOffset - 1 - bothOffset - tickLength));
371 lines.append(
QLine(
pos, tickOffset + thickness + bothOffset,
372 pos, tickOffset + thickness + bothOffset + tickLength));
376 lines.append(
QLine(tickOffset - 1 - bothOffset,
pos,
377 tickOffset - 1 - bothOffset - tickLength,
pos));
381 lines.append(
QLine(tickOffset + thickness + bothOffset,
pos,
382 tickOffset + thickness + bothOffset + tickLength,
pos));
386 int nextInterval =
v + interval;
387 if (nextInterval <
v)
391 if (!lines.isEmpty()) {
398 if (
sub & SC_SliderHandle) {
399 if (
const auto *slider = qstyleoption_cast<const QStyleOptionSlider *>(
option)) {
408 option->styleObject->setProperty(
"_q_inner_radius",
option->styleObject->property(
"_q_end_radius"));
411 const float innerRadius =
option->styleObject->property(
"_q_inner_radius").toFloat();
425 if (slider->state & State_HasFocus) {
427 fropt.QStyleOption::operator=(*slider);
434#if QT_CONFIG(combobox)
445 if (
state & State_MouseOver) {
452 rect.adjust(0.5,0.5,-0.5,-0.5);
456 if (
sub & SC_ComboBoxArrow) {
462 if (combobox->editable) {
466 if (
state & State_HasFocus)
473 if (
const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(
option)) {
482 if (
state & State_MouseOver) {
487 rect.moveCenter(center);
496 if (
sub & SC_ScrollBarSlider) {
499 if (
flags & State_MouseOver) {
512 rect.moveCenter(center);
517 if (
sub & SC_ScrollBarAddLine) {
519 if (
flags & State_MouseOver) {
528 if (
sub & SC_ScrollBarSubLine) {
530 if (
flags & State_MouseOver) {
541 if (
const auto* titlebar = qstyleoption_cast<const QStyleOptionTitleBar*>(
option)) {
555 buttonFont.setPointSize(8);
559 const QRect minButtonRect =
proxy()->subControlRect(CC_TitleBar, titlebar, SC_TitleBarMinButton,
widget);
560 if (minButtonRect.isValid()) {
561 bool hover = (titlebar->activeSubControls & SC_TitleBarMinButton) && (titlebar->state & State_MouseOver);
564 const QString textToDraw(
"\uE921");
573 const QRectF maxButtonRect =
proxy()->subControlRect(CC_TitleBar, titlebar, SC_TitleBarMaxButton,
widget);
574 if (maxButtonRect.isValid()) {
575 bool hover = (titlebar->activeSubControls & SC_TitleBarMaxButton) && (titlebar->state & State_MouseOver);
578 const QString textToDraw(
"\uE922");
587 const QRect closeButtonRect =
proxy()->subControlRect(CC_TitleBar, titlebar, SC_TitleBarCloseButton,
widget);
588 if (closeButtonRect.
isValid()) {
589 bool hover = (titlebar->activeSubControls & SC_TitleBarCloseButton) && (titlebar->state & State_MouseOver);
592 const QString textToDraw(
"\uE8BB");
593 painter->
setPen(
QPen(hover ? titlebar->palette.highlightedText().color() : titlebar->palette.text().color()));
600 if ((titlebar->subControls & SC_TitleBarNormalButton) &&
605 const QRect normalButtonRect =
proxy()->subControlRect(CC_TitleBar, titlebar, SC_TitleBarNormalButton,
widget);
606 if (normalButtonRect.isValid()) {
607 bool hover = (titlebar->activeSubControls & SC_TitleBarNormalButton) && (titlebar->state & State_MouseOver);
610 const QString textToDraw(
"\uE923");
618 if (titlebar->subControls & SC_TitleBarContextHelpButton
620 const QRect contextHelpButtonRect =
proxy()->subControlRect(CC_TitleBar, titlebar, SC_TitleBarContextHelpButton,
widget);
621 if (contextHelpButtonRect.isValid()) {
622 bool hover = (titlebar->activeSubControls & SC_TitleBarCloseButton) && (titlebar->state & State_MouseOver);
625 const QString textToDraw(
"\uE897");
634 const QRect shadeButtonRect =
proxy()->subControlRect(CC_TitleBar, titlebar, SC_TitleBarShadeButton,
widget);
635 if (shadeButtonRect.isValid()) {
636 bool hover = (titlebar->activeSubControls & SC_TitleBarShadeButton) && (titlebar->state & State_MouseOver);
639 const QString textToDraw(
"\uE010");
648 const QRect unshadeButtonRect =
proxy()->subControlRect(CC_TitleBar, titlebar, SC_TitleBarUnshadeButton,
widget);
649 if (unshadeButtonRect.isValid()) {
650 bool hover = (titlebar->activeSubControls & SC_TitleBarUnshadeButton) && (titlebar->state & State_MouseOver);
653 const QString textToDraw(
"\uE011");
662 const QRect iconRect =
proxy()->subControlRect(CC_TitleBar, titlebar, SC_TitleBarSysMenu,
widget);
663 if (iconRect.isValid()) {
664 if (!titlebar->icon.isNull()) {
665 titlebar->icon.paint(
painter, iconRect);
668 QPixmap pm =
proxy()->standardIcon(SP_TitleBarMenuButton, &tool,
widget).pixmap(16, 16);
669 tool.
rect = iconRect;
692 if (
d->transitionsEnabled() && (element == PE_IndicatorCheckBox || element == PE_IndicatorRadioButton)) {
698 bool doTransition = (((
state & State_Sunken) != (oldState & State_Sunken)
699 || ((
state & State_MouseOver) != (oldState & State_MouseOver))
700 || (
state & State_On) != (oldState & State_On))
701 &&
state & State_Enabled);
703 if (element == PE_IndicatorRadioButton) {
706 t->setEndValue(7.0f);
707 if (
option->state & State_Sunken)
708 t->setEndValue(2.0f);
709 else if (
option->state & State_MouseOver && !(
option->state & State_On))
710 t->setEndValue(7.0f);
711 else if (
option->state & State_MouseOver && (
option->state & State_On))
712 t->setEndValue(5.0f);
713 else if (
option->state & State_On)
714 t->setEndValue(4.0f);
716 t->setStartTime(
d->animationTime());
718 d->startAnimation(
t);
720 else if (element == PE_IndicatorCheckBox) {
721 if ((oldState & State_Off &&
state & State_On) || (oldState & State_NoChange &&
state & State_On)) {
723 t->setStartValue(0.0f);
724 t->setEndValue(1.0f);
725 t->setStartTime(
d->animationTime());
727 d->startAnimation(
t);
732 }
else if (!
d->transitionsEnabled() && element == PE_IndicatorRadioButton) {
736 if (
option->state & State_Sunken)
738 else if (
option->state & State_MouseOver && !(
option->state & State_On))
740 else if (
option->state & State_MouseOver && (
option->state & State_On))
742 else if (
option->state & State_On)
748 case PE_PanelTipLabel: {
759 case PE_FrameTabWidget:
760 if (
const QStyleOptionTabWidgetFrame *
frame = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(
option)) {
771 case PE_FrameGroupBox:
774 frameRect.
adjust(0.5,0.5,-0.5,-0.5);
787 case PE_IndicatorCheckBox:
796 rect.moveCenter(center);
799 QRectF clipRect = fm.boundingRect(
"\uE001");
806 if (
state & State_MouseOver && (
option->state & State_On ||
option->state & State_NoChange))
807 fillBrush.
setColor(fillBrush.color().lighter(107));
808 else if (
state & State_MouseOver && !(
option->state & State_On ||
option->state & State_NoChange))
809 fillBrush.setColor(fillBrush.color().darker(107));
821 if (
option->state & State_On)
823 else if (
option->state & State_NoChange)
828 case PE_IndicatorRadioButton:
830 if (
option->styleObject->property(
"_q_end_radius").isNull())
831 option->styleObject->setProperty(
"_q_end_radius",
option->state & State_On ? 4.0f :7.0f);
836 option->styleObject->setProperty(
"_q_inner_radius",
option->styleObject->property(
"_q_end_radius"));
837 int innerRadius =
option->styleObject->property(
"_q_inner_radius").toFloat();
843 rect.moveCenter(center);
846 innerRect.setHeight(8);
847 innerRect.moveCenter(center);
851 if (
option->state & State_MouseOver &&
option->state & State_Enabled)
869 if (
option->state & State_MouseOver &&
option->state & State_Enabled)
874 case PE_PanelButtonBevel:{
876 rect.adjust(-0.5,-0.5,0.5,0.5);
883 if (!(
state & (State_Raised)))
885 else if (
state & State_MouseOver)
891 if (
state & State_Raised)
895 case PE_FrameDefaultButton:
913 case PE_PanelLineEdit:
916 if (
const auto *
panel = qstyleoption_cast<const QStyleOptionFrame *>(
option)) {
918 frameRect.
adjust(0.5,0.5,-0.5,-0.5);
925 if (
state & State_MouseOver && !(
state & State_HasFocus)) {
931 if (
panel->lineWidth > 0)
935 case PE_FrameLineEdit: {
940 clipRegion -=
option->rect.adjusted(2, 2, -2, -2);
948 if (
const auto *
frame = qstyleoption_cast<const QStyleOptionFrame *>(
option)) {
966 if (qobject_cast<const QTextEdit *>(
widget)) {
976 if (
const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(
option)) {
977 if ((vopt->state & State_Selected || vopt->state & State_MouseOver) && vopt->showDecorationSelected) {
981 const int offset = qobject_cast<const QTreeView *>(
widget) ? 2 : 0;
982 if (vopt->viewItemPosition == QStyleOptionViewItem::Beginning &&
option->state & State_Selected) {
991#if QT_CONFIG(dialogbuttonbox)
993 if (qobject_cast<const QMessageBox *> (
widget))
995#if QT_CONFIG(inputdialog)
996 else if (qobject_cast<const QInputDialog *> (
widget))
1006 if (
const auto *frm = qstyleoption_cast<const QStyleOptionFrame *>(
option)) {
1009 int fwidth = int((frm->lineWidth + frm->midLineWidth) / QWindowsStylePrivate::nativeMetricScaleFactor(
widget));
1085 if (
const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(
option)) {
1089 if (tab->state & State_MouseOver){
1091 }
else if (tab->state & State_Selected) {
1104 case CE_ToolButtonLabel:
1106 = qstyleoption_cast<const QStyleOptionToolButton *>(
option)) {
1110 if (toolbutton->state & (State_Sunken | State_On)) {
1111 shiftX =
proxy()->pixelMetric(PM_ButtonShiftHorizontal, toolbutton,
widget);
1112 shiftY =
proxy()->pixelMetric(PM_ButtonShiftVertical, toolbutton,
widget);
1116 if (((!hasArrow && toolbutton->icon.isNull()) && !toolbutton->text.isEmpty())
1121 rect.translate(shiftX, shiftY);
1129 toolbutton->state & State_Enabled,
text);
1132 QSize pmSize = toolbutton->iconSize;
1133 if (!toolbutton->icon.isNull()) {
1136 if (!(toolbutton->state & State_Enabled))
1138 else if ((toolbutton->state & State_MouseOver) && (toolbutton->state & State_AutoRaise))
1156 pr.setHeight(pmSize.height() + 4);
1157 tr.adjust(0, pr.height() - 1, 0, -1);
1158 pr.translate(shiftX, shiftY);
1166 pr.setWidth(pmSize.width() + 4);
1167 tr.adjust(pr.width(), 0, 0, 0);
1168 pr.translate(shiftX, shiftY);
1176 tr.translate(shiftX, shiftY);
1183 toolbutton->state & State_Enabled,
text);
1185 rect.translate(shiftX, shiftY);
1197 int frameShape =
f->frameShape;
1204 int lw =
f->lineWidth;
1205 int mlw =
f->midLineWidth;
1207 switch (frameShape) {
1231 rect.moveTop(center.y());
1234 rect.moveLeft(center.x());
1244 const qreal progressBarThickness = 3;
1245 const qreal progressBarHalfThickness = progressBarThickness / 2.0;
1249 bool isIndeterminate = progbaropt->maximum == 0 && progbaropt->minimum == 0;
1250 float fillPercentage = 0;
1253 || (orientation ==
Qt::Vertical &&
int(
rect.width()) % 2 == 0) ? 0.5 : 0.0;
1255 if (!isIndeterminate) {
1256 fillPercentage = ((float(progbaropt->progress) - float(progbaropt->minimum)) / (
float(progbaropt->maximum) - float(progbaropt->minimum)));
1258 rect.setHeight(progressBarThickness);
1259 rect.moveTop(center.y() - progressBarHalfThickness -
offset);
1260 rect.setWidth(
rect.width() * fillPercentage);
1262 float oldHeight =
rect.height();
1263 rect.setWidth(progressBarThickness);
1264 rect.moveLeft(center.x() - progressBarHalfThickness -
offset);
1265 rect.moveTop(oldHeight * (1.0f - fillPercentage));
1266 rect.setHeight(oldHeight * fillPercentage);
1269 auto elapsedTime = std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());
1270 fillPercentage = (elapsedTime.time_since_epoch().count() % 5000)/(5000.0f*0.75);
1272 float barBegin =
qMin(
qMax(fillPercentage-0.25,0.0) *
rect.width(),
float(
rect.width()));
1273 float barEnd =
qMin(fillPercentage *
rect.width(),
float(
rect.width()));
1275 rect.setHeight(progressBarThickness);
1276 rect.moveTop(center.y() - progressBarHalfThickness -
offset);
1278 float barBegin =
qMin(
qMax(fillPercentage-0.25,0.0) *
rect.height(),
float(
rect.height()));
1279 float barEnd =
qMin(fillPercentage *
rect.height(),
float(
rect.height()));
1281 rect.setWidth(progressBarThickness);
1282 rect.moveLeft(center.x() - progressBarHalfThickness -
offset);
1286 if (progbaropt->invertedAppearance && orientation ==
Qt::Horizontal)
1287 rect.moveLeft(originalRect.width() * (1.0 - fillPercentage));
1288 else if (progbaropt->invertedAppearance && orientation ==
Qt::Vertical)
1289 rect.moveBottom(originalRect.height() * fillPercentage);
1302 case CE_PushButtonLabel:
1311 int indicatorSize =
proxy()->pixelMetric(PM_MenuButtonIndicator,
btn,
widget);
1328 int pixmapHeight =
pixmap.height() /
pixmap.devicePixelRatio();
1329 int labelWidth = pixmapWidth;
1330 int labelHeight = pixmapHeight;
1331 int iconSpacing = 4;
1334 labelWidth += (textWidth + iconSpacing);
1339 pixmapWidth, pixmapHeight);
1348 textRect.
setLeft(iconRect.left() + iconRect.width() + iconSpacing / 2);
1351 if (
btn->
state & (State_On | State_Sunken))
1367 case CE_PushButtonBevel:
1371 if (
flags & (State_Sunken | State_On)) {
1374 else if (
flags & State_MouseOver) {
1383 if (
flags.testFlags(State_Sunken | State_MouseOver)) {
1384 if (
flags & (State_Sunken))
1386 else if (
flags & State_MouseOver)
1391 rect.adjust(0.5,0.5,-0.5,-0.5);
1397 if (
flags & State_Raised)
1402 case CE_MenuBarItem:
1403 if (
const auto *mbi = qstyleoption_cast<const QStyleOptionMenuItem *>(
option)) {
1404 constexpr int hPadding = 11;
1405 constexpr int topPadding = 4;
1406 constexpr int bottomPadding = 6;
1407 bool active = mbi->state & State_Selected;
1408 bool hasFocus = mbi->state & State_HasFocus;
1409 bool down = mbi->state & State_Sunken;
1410 bool enabled = mbi->state & State_Enabled;
1413 if (
enabled && (active || hasFocus)) {
1416 if (active && hasFocus) {
1423 newMbi.rect.adjust(hPadding,topPadding,-hPadding,-bottomPadding);
1430 case CE_MenuEmptyArea:
1434 if (
const auto *menuitem = qstyleoption_cast<const QStyleOptionMenuItem *>(
option)) {
1436 menuitem->rect.getRect(&
x, &
y, &
w, &
h);
1437 int tab = menuitem->reservedShortcutWidth;
1438 bool dis = !(menuitem->state & State_Enabled);
1440 ? menuitem->checked :
false;
1441 bool act = menuitem->state & State_Selected;
1444 int checkcol = qMax<int>(menuitem->maxIconWidth, 32);
1451 if (act && dis ==
false)
1461 QRect vCheckRect =
visualRect(
option->direction, menuitem->rect,
QRect(menuitem->rect.x(), menuitem->rect.y(), checkcol, menuitem->rect.height()));
1462 if (!menuitem->icon.isNull() && checked) {
1465 menuitem->palette,
true, 1,
1475 if (!menuitem->icon.isNull()) {
1485 pmr.moveCenter(vCheckRect.center());
1488 }
else if (checked) {
1490 newMi.
state = State_None;
1492 newMi.state |= State_Enabled;
1494 newMi.state |= State_On | State_Selected;
1495 newMi.rect =
visualRect(
option->direction, menuitem->rect,
QRect(menuitem->rect.x() + QWindowsStylePrivate::windowsItemFrame,
1496 menuitem->rect.y() + QWindowsStylePrivate::windowsItemFrame,
1497 checkcol - 2 * QWindowsStylePrivate::windowsItemFrame,
1498 menuitem->rect.height() - 2 * QWindowsStylePrivate::windowsItemFrame));
1502 discol = menuitem->palette.text().color();
1505 int xm = int(QWindowsStylePrivate::windowsItemFrame) + checkcol / 4 + int(QWindowsStylePrivate::windowsItemHMargin);
1506 int xpos = menuitem->rect.x() + xm;
1507 QRect textRect(xpos,
y + QWindowsStylePrivate::windowsItemVMargin,
1508 w - xm - QWindowsStylePrivate::windowsRightBorder - tab + 1,
h - 2 * QWindowsStylePrivate::windowsItemVMargin);
1518 const QString textToDraw(
"\uE001");
1523 painter->
setPen(act ? menuitem->palette.highlightedText().color() : menuitem->palette.buttonText().color());
1525 QColor discol = menuitem->palette.text().color();
1531 int xm = int(QWindowsStylePrivate::windowsItemFrame) + checkcol + int(QWindowsStylePrivate::windowsItemHMargin);
1532 int xpos = menuitem->rect.x() + xm;
1533 QRect textRect(xpos,
y + QWindowsStylePrivate::windowsItemVMargin,
1534 w - xm - QWindowsStylePrivate::windowsRightBorder - tab + 1,
h - 2 * QWindowsStylePrivate::windowsItemVMargin);
1550 painter->
drawText(vShortcutRect.adjusted(1, 1, 1, 1), text_flags, textToDraw);
1567 int dim = (
h - 2 * QWindowsStylePrivate::windowsItemFrame) / 2;
1568 xpos =
x +
w - QWindowsStylePrivate::windowsArrowHMargin - QWindowsStylePrivate::windowsItemFrame - dim;
1571 newMI.
rect = vSubMenuRect;
1572 newMI.state = dis ? State_None : State_Enabled;
1575 newMI.palette.highlightedText().color());
1582 const QString textToDraw(
"\uE013");
1590 case CE_MenuBarEmptyArea: {
1593 case CE_HeaderEmptyArea:
1595 case CE_HeaderSection: {
1626 if (
const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(
option)) {
1628 QRect checkRect =
proxy()->subElementRect(SE_ItemViewItemCheckIndicator, vopt,
widget);
1629 QRect iconRect =
proxy()->subElementRect(SE_ItemViewItemDecoration, vopt,
widget);
1635 if (vopt->viewItemPosition == QStyleOptionViewItem::OnlyOne || vopt->viewItemPosition == QStyleOptionViewItem::Invalid) {
1636 }
else if (vopt->viewItemPosition == QStyleOptionViewItem::Beginning) {
1639 }
else if (vopt->viewItemPosition == QStyleOptionViewItem::End) {
1650 const bool isTreeView = qobject_cast<const QTreeView *>(
widget);
1652 if ((vopt->state & State_Selected || vopt->state & State_MouseOver) && !(isTreeView && vopt->state & State_MouseOver) && vopt->showDecorationSelected) {
1656 QPalette pal = editorWidget->palette();
1659 pal.
setColor(editorWidget->backgroundRole(),editorBgColor);
1660 editorWidget->setPalette(pal);
1667 if (vopt->viewItemPosition == QStyleOptionViewItem::OnlyOne || vopt->viewItemPosition == QStyleOptionViewItem::Invalid) {
1669 }
else if (vopt->viewItemPosition == QStyleOptionViewItem::Beginning) {
1671 }
else if (vopt->viewItemPosition == QStyleOptionViewItem::End) {
1678 if (vopt->features & QStyleOptionViewItem::HasCheckIndicator) {
1679 QStyleOptionViewItem
option(*vopt);
1683 switch (vopt->checkState) {
1704 vopt->icon.paint(
painter, iconRect, vopt->decorationAlignment,
mode,
state);
1707 if (!
view || !
view->isPersistentEditorOpen(vopt->index))
1709 if (vopt->state & State_Selected
1710 && (vopt->viewItemPosition == QStyleOptionViewItem::Beginning
1711 || vopt->viewItemPosition == QStyleOptionViewItem::OnlyOne
1712 || vopt->viewItemPosition == QStyleOptionViewItem::Invalid)) {
1735 case SH_GroupBox_TextLabelColor:
1759 if (
const auto *
item = qstyleoption_cast<const QStyleOptionViewItem *>(
option)) {
1760 const int decorationOffset =
item->features.testFlag(QStyleOptionViewItem::HasDecoration) ?
item->decorationSize.width() : 0;
1763 ret =
option->rect.adjusted(decorationOffset + 5, 0, -5, 0);
1786#if QT_CONFIG(spinbox)
1788 if (
const QStyleOptionSpinBox *spinbox = qstyleoption_cast<const QStyleOptionSpinBox *>(
option)) {
1790 int fw = spinbox->frame ?
proxy()->pixelMetric(PM_SpinBoxFrameWidth, spinbox,
widget) : 0;
1791 bs.setHeight(
qMax(8, spinbox->rect.height() - fw));
1792 bs.setWidth(
qMin(24.0, spinbox->rect.width()*(1.0/4.0)));
1793 int y = fw + spinbox->rect.y();
1795 x = spinbox->rect.x() + spinbox->rect.width() - fw - 2 * bs.width();
1798 switch (subControl) {
1804 case SC_SpinBoxDown:
1807 ret =
QRect(
x + bs.width(),
y, bs.width(), bs.height());
1809 case SC_SpinBoxEditField:
1811 ret =
QRect(lx, fw, spinbox->rect.width() - 2*fw, spinbox->rect.height() - 2*fw);
1813 ret =
QRect(lx, fw,
rx, spinbox->rect.height() - 2*fw);
1816 case SC_SpinBoxFrame:
1817 ret = spinbox->rect;
1826 SubControl sc = subControl;
1828 static constexpr int indent = 3;
1829 static constexpr int controlWidthMargin = 2;
1830 const int controlHeight = titlebar->rect.height();
1831 const int controlWidth = 46;
1833 int offset = -(controlWidthMargin + indent);
1839 case SC_TitleBarLabel:
1841 ret = titlebar->rect;
1843 ret.adjust(
iconSize + controlWidthMargin + indent, 0, -controlWidth, 0);
1845 ret.adjust(0, 0, -controlWidth, 0);
1847 ret.adjust(0, 0, -controlWidth, 0);
1849 ret.adjust(0, 0, -controlWidth, 0);
1851 ret.adjust(0, 0, -controlWidth, 0);
1854 case SC_TitleBarContextHelpButton:
1858 case SC_TitleBarMinButton:
1861 else if (sc == SC_TitleBarMinButton)
1864 case SC_TitleBarNormalButton:
1869 else if (sc == SC_TitleBarNormalButton)
1872 case SC_TitleBarMaxButton:
1875 else if (sc == SC_TitleBarMaxButton)
1878 case SC_TitleBarShadeButton:
1881 else if (sc == SC_TitleBarShadeButton)
1884 case SC_TitleBarUnshadeButton:
1887 else if (sc == SC_TitleBarUnshadeButton)
1890 case SC_TitleBarCloseButton:
1893 else if (sc == SC_TitleBarCloseButton)
1895 ret.setRect(titlebar->rect.right() -
offset, titlebar->rect.top(),
1896 controlWidth, controlHeight);
1898 case SC_TitleBarSysMenu:
1900 ret.setRect(titlebar->rect.left() + controlWidthMargin + indent, titlebar->rect.top() +
iconSize/2,
1917 switch (subControl) {
1919 if (
const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(
option)) {
1921 ret =
ret.adjusted(2,2,-2,-3);
1923 ret =
ret.adjusted(3,2,-2,-2);
1928 if (
const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(
option)) {
1930 ret =
ret.adjusted(2,2,-2,-3);
1932 ret =
ret.adjusted(3,2,-2,-2);
1958 contentSize +=
QSize(10, 0);
1961#if QT_CONFIG(menubar)
1962 case CT_MenuBarItem:
1964 constexpr int hMargin = 2 * 6;
1965 constexpr int hPadding = 2 * 11;
1966 constexpr int itemHeight = 32;
2018 const bool isScrollBar = qobject_cast<QScrollBar *>(
widget);
2019 if (isScrollBar || qobject_cast<QMenu *>(
widget) ||
widget->
inherits(
"QComboBoxPrivateContainer")) {
2033 dropshadow->setBlurRadius(3);
2034 dropshadow->setXOffset(3);
2035 dropshadow->setYOffset(3);
2036 widget->setGraphicsEffect(dropshadow);
2039 if (
cb->isEditable()) {
2041 le->setFrame(
false);
2045 }
else if (qobject_cast<QGraphicsView *>(
widget) && !qobject_cast<QTextEdit *>(
widget)) {
2049 }
else if (
const auto *scrollarea = qobject_cast<QAbstractScrollArea *>(
widget);
2050 scrollarea && !qobject_cast<QMdiArea *>(
widget)) {
2051 QPalette pal = scrollarea->viewport()->palette();
2052 const QPalette originalPalette = pal;
2054 scrollarea->viewport()->setPalette(pal);
2055 scrollarea->viewport()->setProperty(
"_q_original_background_palette", originalPalette);
2056 }
else if (qobject_cast<QCommandLinkButton *>(
widget)) {
2068 if (
const auto *scrollarea = qobject_cast<QAbstractScrollArea *>(
widget);
2069 scrollarea && !qobject_cast<QMdiArea *>(
widget)) {
2070 const QPalette pal = scrollarea->viewport()->property(
"_q_original_background_palette").value<
QPalette>();
2071 scrollarea->viewport()->setPalette(pal);
2072 scrollarea->viewport()->setProperty(
"_q_original_background_palette",
QVariant());
2080#define SET_IF_UNRESOLVED(GROUP, ROLE, VALUE) \
2081 if (!result.isBrushSet(QPalette::Inactive, ROLE) || styleSheetChanged) \
2082 result.setColor(GROUP, ROLE, VALUE)
2087 const bool styleSheetChanged = oldStyleSheet !=
qApp->styleSheet();
2112 oldStyleSheet =
qApp->styleSheet();
2123 if (!highContrastTheme && colorSchemeIndex == 0)
2126 const bool styleSheetChanged =
false;
2138 if (highContrastTheme)
2142#undef SET_IF_UNRESOLVED
The QAbstractItemView class provides the basic functionality for item view classes.
void setColor(const QColor &color)
Sets the brush color to the given color.
const QColor & color() const
Returns the brush color.
The QColor class provides colors based on RGB, HSV or CMYK values.
QRgb rgba() const noexcept
Returns the RGB value of the color, including its alpha.
void setAlpha(int alpha)
Sets the alpha of this color to alpha.
The QComboBox widget combines a button with a dropdown list.
void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p, const QWidget *w=nullptr) const override
\reimp
QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc, const QWidget *w=nullptr) const override
\reimp
static QPoint pos()
Returns the position of the cursor (hot spot) of the primary screen in global screen coordinates.
\reentrant \inmodule QtGui
QRect boundingRect(QChar) const
Returns the rectangle that is covered by ink if character ch were to be drawn at the origin of the co...
QString elidedText(const QString &text, Qt::TextElideMode mode, int width, int flags=0) const
void setPointSize(int)
Sets the point size to pointSize.
void setBold(bool)
If enable is true sets the font's weight to \l{Weight}{QFont::Bold}; otherwise sets the weight to \l{...
Shape frameShape
the frame shape value from the frame style
The QGraphicsDropShadowEffect class provides a drop shadow effect.
static QStyleHints * styleHints()
Returns the application's style hints.
bool isNull() const
Returns true if the icon is empty; otherwise returns false.
Mode
This enum type describes the mode for which a pixmap is intended to be used.
State
This enum describes the state for which a pixmap is intended to be used.
QPixmap pixmap(const QSize &size, Mode mode=Normal, State state=Off) const
Returns a pixmap with the requested size, mode, and state, generating one if necessary.
The QLineEdit widget is a one-line text editor.
\inmodule QtCore\compares equality \compareswith equality QLineF \endcompareswith
The QListView class provides a list or icon view onto a model.
ViewMode viewMode
the view mode of the QListView.
T findChild(QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
Returns the child of this object that can be cast into type T and that is called name,...
QString objectName
the name of this object
QVariant property(const char *name) const
Returns the value of the object's name property.
bool setProperty(const char *name, const QVariant &value)
Sets the value of the object's name property to value.
bool inherits(const char *classname) const
Returns true if this object is an instance of a class that inherits className or a QObject subclass t...
qreal devicePixelRatio() const
The QPainter class performs low-level painting on widgets and other paint devices.
void drawRect(const QRectF &rect)
Draws the current rectangle with the current pen and brush.
QPaintDevice * device() const
Returns the paint device on which this painter is currently painting, or \nullptr if the painter is n...
void drawPie(const QRectF &rect, int a, int alen)
Draws a pie defined by the given rectangle, startAngle and spanAngle.
void setPen(const QColor &color)
This is an overloaded member function, provided for convenience. It differs from the above function o...
void drawLine(const QLineF &line)
Draws a line defined by line.
void setBrushOrigin(int x, int y)
This is an overloaded member function, provided for convenience. It differs from the above function o...
void restore()
Restores the current painter state (pops a saved state off the stack).
void scale(qreal sx, qreal sy)
Scales the coordinate system by ({sx}, {sy}).
const QBrush & brush() const
Returns the painter's current brush.
QFontMetrics fontMetrics() const
Returns the font metrics for the painter if the painter is active.
void drawLines(const QLineF *lines, int lineCount)
Draws the first lineCount lines in the array lines using the current pen.
void save()
Saves the current painter state (pushes the state onto a stack).
void setFont(const QFont &f)
Sets the painter's font to the given font.
void drawText(const QPointF &p, const QString &s)
Draws the given text with the currently defined text direction, beginning at the given position.
void drawPixmap(const QRectF &targetRect, const QPixmap &pixmap, const QRectF &sourceRect)
Draws the rectangular portion source of the given pixmap into the given target in the paint device.
void drawArc(const QRectF &rect, int a, int alen)
Draws the arc defined by the given rectangle, startAngle and spanAngle.
QPoint brushOrigin() const
Returns the currently set brush origin.
void drawEllipse(const QRectF &r)
Draws the ellipse defined by the given rectangle.
void setBrush(const QBrush &brush)
Sets the painter's brush to the given brush.
void translate(const QPointF &offset)
Translates the coordinate system by the given offset; i.e.
void fillRect(const QRectF &, const QBrush &)
Fills the given rectangle with the brush specified.
void setRenderHint(RenderHint hint, bool on=true)
Sets the given render hint on the painter if on is true; otherwise clears the render hint.
void drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode=Qt::AbsoluteSize)
void setClipRegion(const QRegion &, Qt::ClipOperation op=Qt::ReplaceClip)
Sets the clip region to the given region using the specified clip operation.
The QPalette class contains color groups for each widget state.
const QBrush & text() const
Returns the text foreground brush of the current color group.
void setColor(ColorGroup cg, ColorRole cr, const QColor &color)
Sets the color in the specified color group, used for the given color role, to the specified solid co...
const QBrush & window() const
Returns the window (general background) brush of the current color group.
const QBrush & base() const
Returns the base brush of the current color group.
const QBrush & buttonText() const
Returns the button text foreground brush of the current color group.
Returns a copy of the pixmap that is transformed using the given transformation transform and transfo...
QSize size() const
Returns the size of the pixmap.
int width() const
Returns the width of the pixmap.
qreal devicePixelRatio() const
Returns the device pixel ratio for the pixmap.
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
constexpr void moveCenter(const QPointF &p) noexcept
Moves the rectangle, leaving the center point at the given position.
constexpr void setLeft(qreal pos) noexcept
Sets the left edge of the rectangle to the given finite x coordinate.
constexpr qreal width() const noexcept
Returns the width of the rectangle.
constexpr QRectF marginsRemoved(const QMarginsF &margins) const noexcept
constexpr QRectF adjusted(qreal x1, qreal y1, qreal x2, qreal y2) const noexcept
Returns a new rectangle with dx1, dy1, dx2 and dy2 added respectively to the existing coordinates of ...
constexpr void setWidth(qreal w) noexcept
Sets the width of the rectangle to the given finite width.
constexpr void adjust(qreal x1, qreal y1, qreal x2, qreal y2) noexcept
Adds dx1, dy1, dx2 and dy2 respectively to the existing coordinates of the rectangle.
\inmodule QtCore\reentrant
constexpr int height() const noexcept
Returns the height of the rectangle.
constexpr bool isValid() const noexcept
Returns true if the rectangle is valid, otherwise returns false.
constexpr int bottom() const noexcept
Returns the y-coordinate of the rectangle's bottom edge.
constexpr QRect marginsRemoved(const QMargins &margins) const noexcept
Removes the margins from the rectangle, shrinking it.
constexpr void setRight(int pos) noexcept
Sets the right edge of the rectangle to the given x coordinate.
constexpr QRect adjusted(int x1, int y1, int x2, int y2) const noexcept
Returns a new rectangle with dx1, dy1, dx2 and dy2 added respectively to the existing coordinates of ...
constexpr QPoint topRight() const noexcept
Returns the position of the rectangle's top-right corner.
constexpr void setLeft(int pos) noexcept
Sets the left edge of the rectangle to the given x coordinate.
constexpr int x() const noexcept
Returns the x-coordinate of the rectangle's left edge.
constexpr int width() const noexcept
Returns the width of the rectangle.
constexpr int y() const noexcept
Returns the y-coordinate of the rectangle's top edge.
The QRegion class specifies a clip region for a painter.
constexpr int width() const noexcept
Returns the width.
constexpr void setWidth(int w) noexcept
Sets the width to the given width.
constexpr bool isEmpty() const noexcept
Returns true if either of the width and height is less than or equal to 0; otherwise returns false.
constexpr void setHeight(int h) noexcept
Sets the height to the given height.
\macro QT_RESTRICTED_CAST_FROM_ASCII
QString left(qsizetype n) const &
QString mid(qsizetype position, qsizetype n=-1) const &
bool isEmpty() const noexcept
Returns true if the string has no characters; otherwise returns false.
\variable QStyleOptionGraphicsItem::exposedRect
\variable QStyleOptionToolButton::features
\variable QStyleOptionMenuItem::menuItemType
\variable QStyleOption::palette
\variable QStyleOptionFocusRect::backgroundColor
\variable QStyleOptionButton::features
\variable QStyleOptionToolBox::selectedPosition
The QStyleOption class stores the parameters used by QStyle functions.
Qt::LayoutDirection direction
The QStyle class is an abstract base class that encapsulates the look and feel of a GUI.
@ SH_Slider_PageSetButtons
@ SH_Slider_AbsoluteSetButtons
@ SH_ItemView_ShowDecorationSelected
static int sliderPositionFromValue(int min, int max, int val, int space, bool upsideDown=false)
Converts the given logicalValue to a pixel position.
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.
@ PM_TitleBarButtonIconSize
@ PM_ExclusiveIndicatorHeight
@ PM_ExclusiveIndicatorWidth
PrimitiveElement
This enum describes the various primitive elements.
@ PE_IndicatorItemViewItemCheck
SubElement
This enum represents a sub-area of a widget.
virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *w=nullptr) const =0
Draws the given primitive element with the provided painter using the style options specified by opti...
QVariant currentValue
the current value of the animation.
int toInt(bool *ok=nullptr) const
Returns the variant as an int if the variant has userType() \l QMetaType::Int, \l QMetaType::Bool,...
float toFloat(bool *ok=nullptr) const
Returns the variant as a float if the variant has userType() \l QMetaType::Double,...
bool toBool() const
Returns the variant as a bool if the variant has userType() Bool.
QRect toRect() const
Returns the variant as a QRect if the variant has userType() \l QMetaType::QRect; otherwise returns a...
The QWindows11Style class provides a look and feel suitable for applications on Microsoft Windows 11.
void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const override
QWindows11Style()
Constructs a QWindows11Style object.
void unpolish(QWidget *widget) override
void polish(QWidget *widget) 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 subControlRect(ComplexControl control, const QStyleOptionComplex *option, SubControl subControl, const QWidget *widget) 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 drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const override
QRect subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget=nullptr) const override
~QWindows11Style() override
Destructor.
The QWindowsVistaStyle class provides a look and feel suitable for applications on Microsoft Windows ...
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
int styleHint(StyleHint hint, const QStyleOption *opt=nullptr, const QWidget *widget=nullptr, QStyleHintReturn *returnData=nullptr) const override
void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const override
void polish(QWidget *widget) override
int pixelMetric(PixelMetric metric, const QStyleOption *option=nullptr, const QWidget *widget=nullptr) const override
void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget=nullptr) const override
QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const override
void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const override
void unpolish(QWidget *widget) override
const QStyleOptionButton * btn
[3]
Q_WIDGETS_EXPORT qreal dpiScaled(qreal value, qreal dpi)
Combined button and popup list for selecting options.
@ WA_TranslucentBackground
@ WindowContextHelpButtonHint
@ WindowMaximizeButtonHint
@ WindowMinimizeButtonHint
@ ToolButtonTextUnderIcon
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter * sub
static QString header(const QString &name)
void qDrawShadePanel(QPainter *p, int x, int y, int w, int h, const QPalette &pal, bool sunken, int lineWidth, const QBrush *fill)
void qDrawPlainRoundedRect(QPainter *p, int x, int y, int w, int h, qreal rx, qreal ry, const QColor &c, int lineWidth, const QBrush *fill)
void qDrawShadeRect(QPainter *p, int x, int y, int w, int h, const QPalette &pal, bool sunken, int lineWidth, int midLineWidth, const QBrush *fill)
static void visualRect(QRectF *geom, Qt::LayoutDirection dir, const QRectF &contentsRect)
static const QStyle::SubControl SubControls[]
constexpr const T & qMin(const T &a, const T &b)
constexpr const T & qMax(const T &a, const T &b)
GLsizei const GLfloat * v
[13]
GLint GLint GLint GLint GLint x
[0]
GLfloat GLfloat GLfloat w
[0]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLenum GLuint GLintptr offset
GLint GLint GLint GLint GLint GLint GLint GLbitfield mask
GLfloat GLfloat GLfloat GLfloat h
GLenum GLenum GLenum GLenum GLenum scale
SSL_CTX int(* cb)(SSL *ssl, unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg)
QLatin1StringView QLatin1String
static QT_BEGIN_NAMESPACE QVariant hint(QPlatformIntegration::StyleHint h)
#define SET_IF_UNRESOLVED(GROUP, ROLE, VALUE)
static const QColor * WINUI3Colors[]
static void populateLightSystemBasePalette(QPalette &result)
QT_BEGIN_NAMESPACE static const int topLevelRoundingRadius
static const int secondLevelRoundingRadius
static const QColor WINUI3ColorsDark[]
static const QColor WINUI3ColorsLight[]
const QColor shellCloseButtonColor(0xC4, 0x2B, 0x1C, 0xFF)
@ controlStrokeOnAccentSecondary
QObject * styleObject(const QStyleOption *option)