qt-material-widgets/components/sliderthumb.h

106 lines
2.0 KiB
C
Raw Normal View History

2016-05-10 06:25:44 +00:00
#ifndef SLIDERTHUMB_H
#define SLIDERTHUMB_H
#include <QWidget>
2016-05-10 14:17:51 +00:00
class Slider;
2016-05-10 06:25:44 +00:00
class SliderThumb : public QWidget
{
Q_OBJECT
2016-05-10 14:17:51 +00:00
Q_PROPERTY(qreal diameter WRITE setDiameter READ diameter)
Q_PROPERTY(qreal borderWidth WRITE setBorderWidth READ borderWidth)
Q_PROPERTY(QColor fillColor WRITE setFillColor READ fillColor)
2016-05-11 06:09:19 +00:00
Q_PROPERTY(QColor minFillColor WRITE setMinFillColor READ minFillColor)
2016-05-10 06:25:44 +00:00
Q_PROPERTY(qreal haloSize WRITE setHaloSize READ haloSize)
2016-05-11 22:18:09 +00:00
Q_PROPERTY(QColor haloColor WRITE setHaloColor READ haloColor)
2016-05-10 06:25:44 +00:00
public:
2016-05-12 09:53:05 +00:00
explicit SliderThumb(Slider *slider);
2016-07-04 07:46:10 +00:00
~SliderThumb();
2016-05-10 06:25:44 +00:00
2016-05-10 14:17:51 +00:00
inline void setDiameter(qreal diameter)
{
_diameter = diameter;
update();
}
inline qreal diameter() const
{
return _diameter;
}
inline void setBorderWidth(qreal width)
{
_borderWidth = width;
update();
}
inline qreal borderWidth() const
{
return _borderWidth;
}
inline void setFillColor(const QColor &color)
{
_fillColor = color;
update();
}
inline QColor fillColor() const
{
return _fillColor;
}
2016-05-11 06:09:19 +00:00
inline void setMinFillColor(const QColor &color)
{
_minFillColor = color;
update();
}
inline QColor minFillColor() const
{
return _minFillColor;
}
2016-05-10 06:25:44 +00:00
inline void setHaloSize(qreal size)
{
_haloSize = size;
update();
}
2016-05-11 22:18:09 +00:00
inline qreal haloSize() const
{
return _haloSize;
}
inline void setHaloColor(const QColor &color)
{
_haloColor = color;
update();
}
inline QColor haloColor() const
{
return _haloColor;
}
2016-05-10 06:25:44 +00:00
protected:
bool eventFilter(QObject *obj, QEvent *event);
void paintEvent(QPaintEvent *event);
private:
Q_DISABLE_COPY(SliderThumb)
2016-05-10 14:17:51 +00:00
const Slider *const slider;
qreal _diameter;
qreal _borderWidth;
2016-05-11 22:18:09 +00:00
qreal _haloSize;
2016-05-10 14:17:51 +00:00
QColor _fillColor;
2016-05-11 06:09:19 +00:00
QColor _minFillColor;
2016-05-11 22:18:09 +00:00
QColor _haloColor;
2016-05-10 06:25:44 +00:00
};
#endif // SLIDERTHUMB_H