42 typedef QWindowsStyle ParentStyle;
46 QStyleSheetStyle(QStyle *baseStyle);
49 void drawComplexControl(ComplexControl cc,
const QStyleOptionComplex *opt, QPainter *p,
50 const QWidget *w =
nullptr)
const override;
51 void drawControl(ControlElement element,
const QStyleOption *opt, QPainter *p,
52 const QWidget *w =
nullptr)
const override;
53 void drawItemPixmap(QPainter *painter,
const QRect &rect,
int alignment,
const QPixmap &pixmap)
const override;
54 void drawItemText(QPainter *painter,
const QRect& rect,
int alignment,
const QPalette &pal,
55 bool enabled,
const QString& text, QPalette::ColorRole textRole = QPalette::NoRole)
const override;
56 void drawPrimitive(PrimitiveElement pe,
const QStyleOption *opt, QPainter *p,
57 const QWidget *w =
nullptr)
const override;
58 QPixmap generatedIconPixmap(QIcon::Mode iconMode,
const QPixmap &pixmap,
59 const QStyleOption *option)
const override;
60 SubControl hitTestComplexControl(ComplexControl cc,
const QStyleOptionComplex *opt,
61 const QPoint &pt,
const QWidget *w =
nullptr)
const override;
62 QRect itemPixmapRect(
const QRect &rect,
int alignment,
const QPixmap &pixmap)
const override;
63 QRect itemTextRect(
const QFontMetrics &metrics,
const QRect &rect,
int alignment,
bool enabled,
64 const QString &text)
const override;
65 int pixelMetric(PixelMetric metric,
const QStyleOption *option =
nullptr,
const QWidget *widget =
nullptr)
const override;
66 void polish(QWidget *widget) override;
67 void polish(QApplication *app) override;
68 void polish(QPalette &pal) override;
69 QSize sizeFromContents(ContentsType ct,
const QStyleOption *opt,
70 const QSize &contentsSize,
const QWidget *widget =
nullptr)
const override;
71 QPalette standardPalette()
const override;
72 QIcon standardIcon(StandardPixmap standardIcon,
const QStyleOption *opt =
nullptr,
73 const QWidget *widget =
nullptr)
const override;
74 QPixmap standardPixmap(StandardPixmap standardPixmap,
const QStyleOption *option =
nullptr,
75 const QWidget *w =
nullptr )
const override;
76 int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2,
77 Qt::Orientation orientation,
const QStyleOption *option =
nullptr,
78 const QWidget *widget =
nullptr)
const override;
79 int styleHint(StyleHint sh,
const QStyleOption *opt =
nullptr,
const QWidget *w =
nullptr,
80 QStyleHintReturn *shret =
nullptr)
const override;
81 QRect subElementRect(SubElement r,
const QStyleOption *opt,
const QWidget *widget =
nullptr)
const override;
82 QRect subControlRect(ComplexControl cc,
const QStyleOptionComplex *opt, SubControl sc,
83 const QWidget *w =
nullptr)
const override;
86 QStyle *baseStyle()
const;
87 void repolish(QWidget *widget);
88 void repolish(QApplication *app);
90 void unpolish(QWidget *widget) override;
91 void unpolish(QApplication *app) override;
94 void ref() { ++refcount; }
95 void deref() { Q_ASSERT(refcount > 0);
if (!--refcount)
delete this; }
97 void updateStyleSheetFont(QWidget* w)
const;
98 void saveWidgetFont(QWidget* w,
const QFont& font)
const;
99 void clearWidgetFont(QWidget* w)
const;
101 bool styleSheetPalette(
const QWidget* w,
const QStyleOption* opt, QPalette* pal);
104 bool event(QEvent *e) override;
109 friend class QRenderRule;
110 int nativeFrameWidth(
const QWidget *);
111 QRenderRule renderRule(
const QObject *,
int, quint64 = 0)
const;
112 QRenderRule renderRule(
const QObject *,
const QStyleOption *,
int = 0)
const;
113 QSize defaultSize(
const QWidget *, QSize,
const QRect&,
int)
const;
114 QRect positionRect(
const QWidget *,
const QRenderRule&,
const QRenderRule&,
int,
115 const QRect&, Qt::LayoutDirection)
const;
116 QRect positionRect(
const QWidget *w,
const QRenderRule &rule2,
int pe,
117 const QRect &originRect, Qt::LayoutDirection dir)
const;
119 mutable QCss::Parser parser;
121 void setPalette(QWidget *);
122 void unsetPalette(QWidget *);
123 void setProperties(QWidget *);
124 void setGeometry(QWidget *);
125 void unsetStyleSheetFont(QWidget *)
const;
126 QList<QCss::StyleRule> styleRules(
const QObject *obj)
const;
127 bool hasStyleRule(
const QObject *obj,
int part)
const;
129 QHash<QStyle::SubControl, QRect> titleBarLayout(
const QWidget *w,
const QStyleOptionTitleBar *tb)
const;
131 QCss::StyleSheet getDefaultStyleSheet()
const;
133 static Qt::Alignment resolveAlignment(Qt::LayoutDirection, Qt::Alignment);
134 static bool isNaturalChild(
const QObject *obj);
135 static QPixmap loadPixmap(
const QString &fileName,
const QObject *context);
136 bool initObject(
const QObject *obj)
const;
137 void renderMenuItemIcon(
const QStyleOptionMenuItem *mi, QPainter *p,
const QWidget *w,
138 const QRect &rect, QRenderRule &subRule)
const;
140 static int numinstances;
143 Q_DISABLE_COPY_MOVE(QStyleSheetStyle)
144 Q_DECLARE_PRIVATE(QStyleSheetStyle)