5#ifndef QQC2QSTYLE_P_P_H
6#define QQC2QSTYLE_P_P_H
19#include <private/qobject_p.h>
20#include <private/qqc2qstyle_p.h>
22#include <QtGui/qguiapplication.h>
30 Q_DECLARE_PUBLIC(QStyle)
40 const qreal pixelRatio = qApp->devicePixelRatio();
41 QImage cacheImage = QImage(size * pixelRatio, QImage::Format_ARGB32_Premultiplied);
42 cacheImage.setDevicePixelRatio(pixelRatio);
48 const qreal pixelRatio = qApp->devicePixelRatio();
49 QPixmap cachePixmap = QPixmap(size * pixelRatio);
50 cachePixmap.setDevicePixelRatio(pixelRatio);
54#define BEGIN_STYLE_PIXMAPCACHE(a)
55 QRect rect = option->rect;
56 QPixmap internalPixmapCache;
58 QPainter *p = painter;
59 QString unique = QStyleHelper::uniqueName((a), option, option->rect.size());
60 int txType = painter->deviceTransform().type() | painter->worldTransform().type();
61 bool doPixmapCache = (!option->rect.isEmpty())
62 && ((txType <= QTransform::TxTranslate) || (painter->deviceTransform().type() == QTransform::TxScale));
63 if (doPixmapCache && QPixmapCache::find(unique, &internalPixmapCache)) {
64 painter->drawPixmap(option->rect.topLeft(), internalPixmapCache);
67 rect.setRect(0
, 0
, option->rect.width(), option->rect.height());
68 imageCache = styleCacheImage(option->rect.size());
70 p = new QPainter(&imageCache);
73#define END_STYLE_PIXMAPCACHE
77 internalPixmapCache = QPixmap::fromImage(imageCache);
78 painter->drawPixmap(option->rect.topLeft(), internalPixmapCache);
79 QPixmapCache::insert(unique, internalPixmapCache);
const QStyle * proxy() const
virtual QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt=nullptr) const =0
virtual QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const
virtual QPalette standardPalette() const
virtual QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &contentsSize) const =0
static Qt::Alignment visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment)
virtual int pixelMetric(PixelMetric metric, const QStyleOption *option=nullptr) const =0
virtual void handleThemeChange()
virtual void drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const
virtual void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p) const =0
virtual void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p) const =0
virtual QFont font(ControlElement element, const QStyle::State state) const =0
static QRect alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle)
virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p) const =0
static int sliderPositionFromValue(int min, int max, int val, int space, bool upsideDown=false)
virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc) const =0
static QRect visualRect(Qt::LayoutDirection direction, const QRect &boundingRect, const QRect &logicalRect)
virtual QRect subElementRect(SubElement subElement, const QStyleOption *option) const =0
static int sliderValueFromPosition(int min, int max, int pos, int space, bool upsideDown=false)
virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const =0
virtual int styleHint(StyleHint stylehint, const QStyleOption *opt=nullptr, QStyleHintReturn *returnData=nullptr) const =0
@ State_KeyboardFocusChange
virtual QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option=nullptr) const =0
virtual void drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole=QPalette::NoRole) const
virtual QMargins ninePatchMargins(ComplexControl cc, const QStyleOptionComplex *opt, const QSize &imageSize) const =0
virtual SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt) const =0
virtual QMargins ninePatchMargins(ControlElement ce, const QStyleOption *opt, const QSize &imageSize) const =0
static QPoint visualPos(Qt::LayoutDirection direction, const QRect &boundingRect, const QPoint &logicalPos)
QPixmap styleCachePixmap(const QSize &size)
QImage styleCacheImage(const QSize &size)
Combined button and popup list for selecting options.