00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef QSTYLEPAINTER_H
00043 #define QSTYLEPAINTER_H
00044
00045 #include <QtGui/qpainter.h>
00046 #include <QtGui/qstyle.h>
00047 #include <QtGui/qwidget.h>
00048
00049 QT_BEGIN_HEADER
00050
00051 QT_BEGIN_NAMESPACE
00052
00053 QT_MODULE(Gui)
00054
00055 class QStylePainter : public QPainter
00056 {
00057 public:
00058 inline QStylePainter() : QPainter(), widget(0), wstyle(0) {}
00059 inline explicit QStylePainter(QWidget *w) { begin(w, w); }
00060 inline QStylePainter(QPaintDevice *pd, QWidget *w) { begin(pd, w); }
00061 inline bool begin(QWidget *w) { return begin(w, w); }
00062 inline bool begin(QPaintDevice *pd, QWidget *w) {
00063 Q_ASSERT_X(w, "QStylePainter::QStylePainter", "Widget must be non-zero");
00064 widget = w;
00065 wstyle = w->style();
00066 return QPainter::begin(pd);
00067 };
00068 inline void drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption &opt);
00069 inline void drawControl(QStyle::ControlElement ce, const QStyleOption &opt);
00070 inline void drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex &opt);
00071 inline void drawItemText(const QRect &r, int flags, const QPalette &pal, bool enabled,
00072 const QString &text, QPalette::ColorRole textRole = QPalette::NoRole);
00073 inline void drawItemPixmap(const QRect &r, int flags, const QPixmap &pixmap);
00074 inline QStyle *style() const { return wstyle; }
00075
00076 private:
00077 QWidget *widget;
00078 QStyle *wstyle;
00079 Q_DISABLE_COPY(QStylePainter)
00080 };
00081
00082 void QStylePainter::drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption &opt)
00083 {
00084 wstyle->drawPrimitive(pe, &opt, this, widget);
00085 }
00086
00087 void QStylePainter::drawControl(QStyle::ControlElement ce, const QStyleOption &opt)
00088 {
00089 wstyle->drawControl(ce, &opt, this, widget);
00090 }
00091
00092 void QStylePainter::drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex &opt)
00093 {
00094 wstyle->drawComplexControl(cc, &opt, this, widget);
00095 }
00096
00097 void QStylePainter::drawItemText(const QRect &r, int flags, const QPalette &pal, bool enabled,
00098 const QString &text, QPalette::ColorRole textRole)
00099 {
00100 wstyle->drawItemText(this, r, flags, pal, enabled, text, textRole);
00101 }
00102
00103 void QStylePainter::drawItemPixmap(const QRect &r, int flags, const QPixmap &pixmap)
00104 {
00105 wstyle->drawItemPixmap(this, r, flags, pixmap);
00106 }
00107
00108 QT_END_NAMESPACE
00109
00110 QT_END_HEADER
00111
00112 #endif // QSTYLEPAINTER_H