qt-material-widgets/components/toggle_internal.h

79 lines
1.5 KiB
C
Raw Normal View History

2016-05-29 10:08:55 +00:00
#ifndef TOGGLE_INTERNAL_H
#define TOGGLE_INTERNAL_H
#include <QWidget>
class Toggle;
2016-05-29 19:12:02 +00:00
class ToggleThumb : public QWidget
2016-05-29 10:08:55 +00:00
{
Q_OBJECT
2016-05-29 11:58:20 +00:00
Q_PROPERTY(qreal shift WRITE setShift READ shift)
2016-05-29 19:12:02 +00:00
Q_PROPERTY(QColor thumbColor WRITE setThumbColor READ thumbColor)
2016-05-29 11:58:20 +00:00
2016-05-29 10:08:55 +00:00
public:
2016-05-29 19:12:02 +00:00
ToggleThumb(Toggle *parent);
~ToggleThumb();
2016-05-29 10:08:55 +00:00
2016-05-29 11:58:20 +00:00
void setShift(qreal shift);
inline qreal shift() const { return _shift; }
2016-05-29 13:42:13 +00:00
inline qreal offset() const { return _offset; }
2016-05-29 19:12:02 +00:00
inline void setThumbColor(const QColor &color)
{
_thumbColor = color;
update();
}
inline QColor thumbColor() const
{
return _thumbColor;
}
2016-05-29 11:58:20 +00:00
protected:
bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE;
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
2016-05-29 10:08:55 +00:00
private:
2016-05-29 19:12:02 +00:00
Q_DISABLE_COPY(ToggleThumb)
2016-05-29 11:58:20 +00:00
2016-06-05 19:23:16 +00:00
void updateOffset();
2016-05-29 11:58:20 +00:00
Toggle *const _toggle;
2016-06-05 19:23:16 +00:00
qreal _shift;
qreal _offset;
2016-05-29 19:12:02 +00:00
QColor _thumbColor;
};
class ToggleTrack : public QWidget
{
Q_OBJECT
Q_PROPERTY(QColor trackColor WRITE setTrackColor READ trackColor)
public:
ToggleTrack(Toggle *parent);
~ToggleTrack();
2016-06-12 00:56:37 +00:00
void setTrackColor(const QColor &color);
2016-05-29 19:12:02 +00:00
inline QColor trackColor() const
{
return _trackColor;
}
protected:
bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE;
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(ToggleTrack)
Toggle *const _toggle;
QColor _trackColor;
2016-05-29 10:08:55 +00:00
};
#endif // TOGGLE_INTERNAL_H