123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- #ifndef QTMATERIALSLIDER_INTERNAL_H
- #define QTMATERIALSLIDER_INTERNAL_H
- #include <QStateMachine>
- #include "lib/qtmaterialoverlaywidget.h"
- class QtMaterialSlider;
- class QtMaterialSliderThumb;
- class QtMaterialSliderTrack;
- class QtMaterialSliderStateMachine : public QStateMachine
- {
- Q_OBJECT
- public:
- QtMaterialSliderStateMachine(QtMaterialSlider *slider,
- QtMaterialSliderThumb *thumb,
- QtMaterialSliderTrack *track);
- ~QtMaterialSliderStateMachine();
- void setupProperties();
- private:
- Q_DISABLE_COPY(QtMaterialSliderStateMachine)
- QtMaterialSlider *const m_slider;
- QtMaterialSliderThumb *const m_thumb;
- QtMaterialSliderTrack *const m_track;
- QState *const m_topState;
- QState *const m_fstState;
- QState *const m_sndState;
- QState *const m_inactiveState;
- QState *const m_focusState;
- QState *const m_slidingState;
- QState *const m_pulseOutState;
- QState *const m_pulseInState;
- QState *const m_minState;
- QState *const m_normalState;
- };
- class QtMaterialSliderThumb : public QtMaterialOverlayWidget
- {
- Q_OBJECT
- Q_PROPERTY(qreal diameter WRITE setDiameter READ diameter)
- Q_PROPERTY(qreal borderWidth WRITE setBorderWidth READ borderWidth)
- Q_PROPERTY(QColor borderColor WRITE setBorderColor READ borderColor)
- Q_PROPERTY(QColor fillColor WRITE setFillColor READ fillColor)
- Q_PROPERTY(qreal haloSize WRITE setHaloSize READ haloSize)
- Q_PROPERTY(QColor haloColor WRITE setHaloColor READ haloColor)
- public:
- explicit QtMaterialSliderThumb(QtMaterialSlider *slider);
- ~QtMaterialSliderThumb();
- inline void setDiameter(qreal diameter);
- inline qreal diameter() const;
- inline void setBorderWidth(qreal width);
- inline qreal borderWidth() const;
- inline void setBorderColor(const QColor &color);
- inline QColor borderColor() const;
- inline void setFillColor(const QColor &color);
- inline QColor fillColor() const;
- inline void setHaloSize(qreal size);
- inline qreal haloSize() const;
- inline void setHaloColor(const QColor &color);
- inline QColor haloColor() const;
- inline void setOffset(int offset);
- inline int offset() const;
- protected:
- bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE;
- void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
- private:
- Q_DISABLE_COPY(QtMaterialSliderThumb)
- const QtMaterialSlider *const m_slider;
- QColor m_borderColor;
- QColor m_fillColor;
- QColor m_haloColor;
- qreal m_diameter;
- qreal m_borderWidth;
- qreal m_haloSize;
- int m_offset;
- };
- inline void QtMaterialSliderThumb::setDiameter(qreal diameter)
- {
- m_diameter = diameter;
- update();
- }
- inline qreal QtMaterialSliderThumb::diameter() const
- {
- return m_diameter;
- }
- inline void QtMaterialSliderThumb::setBorderWidth(qreal width)
- {
- m_borderWidth = width;
- update();
- }
- inline qreal QtMaterialSliderThumb::borderWidth() const
- {
- return m_borderWidth;
- }
- inline void QtMaterialSliderThumb::setBorderColor(const QColor &color)
- {
- m_borderColor = color;
- update();
- }
- inline QColor QtMaterialSliderThumb::borderColor() const
- {
- return m_borderColor;
- }
- inline void QtMaterialSliderThumb::setFillColor(const QColor &color)
- {
- m_fillColor = color;
- update();
- }
- inline QColor QtMaterialSliderThumb::fillColor() const
- {
- return m_fillColor;
- }
- inline void QtMaterialSliderThumb::setHaloSize(qreal size)
- {
- m_haloSize = size;
- update();
- }
- inline qreal QtMaterialSliderThumb::haloSize() const
- {
- return m_haloSize;
- }
- inline void QtMaterialSliderThumb::setHaloColor(const QColor &color)
- {
- m_haloColor = color;
- update();
- }
- inline QColor QtMaterialSliderThumb::haloColor() const
- {
- return m_haloColor;
- }
- inline void QtMaterialSliderThumb::setOffset(int offset)
- {
- m_offset = offset;
- update();
- }
- inline int QtMaterialSliderThumb::offset() const
- {
- return m_offset;
- }
- class QtMaterialSliderTrack : public QtMaterialOverlayWidget
- {
- Q_OBJECT
- Q_PROPERTY(QColor fillColor WRITE setFillColor READ fillColor)
- public:
- explicit QtMaterialSliderTrack(QtMaterialSliderThumb *thumb, QtMaterialSlider *slider);
- ~QtMaterialSliderTrack();
- inline void setFillColor(const QColor &color);
- inline QColor fillColor() const;
- inline void setTrackWidth(int width);
- inline int trackWidth() const;
- protected:
- bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE;
- void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
- private:
- Q_DISABLE_COPY(QtMaterialSliderTrack)
- const QtMaterialSlider *const m_slider;
- QtMaterialSliderThumb *const m_thumb;
- QColor m_fillColor;
- int m_trackWidth;
- };
- inline void QtMaterialSliderTrack::setFillColor(const QColor &color)
- {
- m_fillColor = color;
- update();
- }
- inline QColor QtMaterialSliderTrack::fillColor() const
- {
- return m_fillColor;
- }
- void QtMaterialSliderTrack::setTrackWidth(int width)
- {
- m_trackWidth = width;
- update();
- }
- int QtMaterialSliderTrack::trackWidth() const
- {
- return m_trackWidth;
- }
- #endif // QTMATERIALSLIDER_INTERNAL_H
|