#ifndef SLIDERTHUMB_H #define SLIDERTHUMB_H #define SLIDER_MARGIN 30 #include class Slider; class SliderPrivate; class SliderThumb : public QWidget { Q_OBJECT Q_PROPERTY(qreal diameter WRITE setDiameter READ diameter) Q_PROPERTY(qreal borderWidth WRITE setBorderWidth READ borderWidth) Q_PROPERTY(QColor fillColor WRITE setFillColor READ fillColor) Q_PROPERTY(QColor minFillColor WRITE setMinFillColor READ minFillColor) Q_PROPERTY(qreal haloSize WRITE setHaloSize READ haloSize) friend class SliderPrivate; explicit SliderThumb(Slider *slider); public: ~SliderThumb(); 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; } inline void setMinFillColor(const QColor &color) { _minFillColor = color; update(); } inline QColor minFillColor() const { return _minFillColor; } inline void setHaloSize(qreal size) { _haloSize = size; update(); } inline qreal haloSize() const { return _haloSize; } protected: bool eventFilter(QObject *obj, QEvent *event); void paintEvent(QPaintEvent *event); private: Q_DISABLE_COPY(SliderThumb) const Slider *const slider; qreal _diameter; qreal _borderWidth; QColor _fillColor; QColor _minFillColor; qreal _haloSize; }; #endif // SLIDERTHUMB_H