Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-12 09:23:46

0001 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 // Qt-Security score:significant reason:default
0004 
0005 #ifndef QSTYLEPAINTER_H
0006 #define QSTYLEPAINTER_H
0007 
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtGui/qpainter.h>
0010 #include <QtWidgets/qstyle.h>
0011 #include <QtWidgets/qwidget.h>
0012 
0013 QT_BEGIN_NAMESPACE
0014 
0015 
0016 class QStylePainter : public QPainter
0017 {
0018 public:
0019     inline QStylePainter() : QPainter(), widget(nullptr), wstyle(nullptr) {}
0020     inline explicit QStylePainter(QWidget *w) { begin(w, w); }
0021     inline QStylePainter(QPaintDevice *pd, QWidget *w) { begin(pd, w); }
0022     inline bool begin(QWidget *w) { return begin(w, w); }
0023     inline bool begin(QPaintDevice *pd, QWidget *w) {
0024         Q_ASSERT_X(w, "QStylePainter::QStylePainter", "Widget must be non-zero");
0025         widget = w;
0026         wstyle = w->style();
0027         const bool res = QPainter::begin(pd);
0028         setRenderHint(QPainter::SmoothPixmapTransform);
0029         return res;
0030     }
0031     inline void drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption &opt);
0032     inline void drawControl(QStyle::ControlElement ce, const QStyleOption &opt);
0033     inline void drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex &opt);
0034     inline void drawItemText(const QRect &r, int flags, const QPalette &pal, bool enabled,
0035                              const QString &text, QPalette::ColorRole textRole = QPalette::NoRole);
0036     inline void drawItemPixmap(const QRect &r, int flags, const QPixmap &pixmap);
0037     inline QStyle *style() const { return wstyle; }
0038 
0039 private:
0040     QWidget *widget;
0041     QStyle *wstyle;
0042     Q_DISABLE_COPY(QStylePainter)
0043 };
0044 
0045 void QStylePainter::drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption &opt)
0046 {
0047     wstyle->drawPrimitive(pe, &opt, this, widget);
0048 }
0049 
0050 void QStylePainter::drawControl(QStyle::ControlElement ce, const QStyleOption &opt)
0051 {
0052     wstyle->drawControl(ce, &opt, this, widget);
0053 }
0054 
0055 void QStylePainter::drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex &opt)
0056 {
0057     wstyle->drawComplexControl(cc, &opt, this, widget);
0058 }
0059 
0060 void QStylePainter::drawItemText(const QRect &r, int flags, const QPalette &pal, bool enabled,
0061                                  const QString &text, QPalette::ColorRole textRole)
0062 {
0063     wstyle->drawItemText(this, r, flags, pal, enabled, text, textRole);
0064 }
0065 
0066 void QStylePainter::drawItemPixmap(const QRect &r, int flags, const QPixmap &pixmap)
0067 {
0068     wstyle->drawItemPixmap(this, r, flags, pixmap);
0069 }
0070 
0071 QT_END_NAMESPACE
0072 
0073 #endif // QSTYLEPAINTER_H