/
lightingsliderstyle.h
40 lines (31 loc) · 1.13 KB
/
lightingsliderstyle.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef LIGHTINGSLIDERSTYLE_H
#define LIGHTINGSLIDERSTYLE_H
#include <QObject>
#include <QWidget>
#include <QProxyStyle>
#include <QPainter>
#include <QStyleOption>
#include <QtWidgets/QCommonStyle>
class LightingSliderStyle : public QProxyStyle
{
private:
QPixmap grooveMaskPixmap;
QPixmap groovePixmap;
QPixmap handlePixmap;
bool _blendWhite;
public:
LightingSliderStyle(QStyle *style, QString handleImage, QString backgroundImage, bool blendWhite = false)
: QProxyStyle(style)
{
setColor(QColor::fromRgba(0));
this->handlePixmap = QPixmap(QString(handleImage));
this->grooveMaskPixmap = QPixmap(QString(backgroundImage));
this->_blendWhite = blendWhite;
}
void drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const;
QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc, const QWidget *widget) const;
int styleHint(QStyle::StyleHint hint, const QStyleOption *option,
const QWidget *widget, QStyleHintReturn *returnData) const;
void setColor(QColor color);
};
#endif // LIGHTINGSLIDERSTYLE_H