Add dummy settings menu
This commit is contained in:
parent
287b5aa4c0
commit
886edd03fb
11 changed files with 581 additions and 6 deletions
110
include/ui/ToggleButton.h
Normal file
110
include/ui/ToggleButton.h
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
#pragma once
|
||||
|
||||
#include <QAbstractButton>
|
||||
#include <QColor>
|
||||
|
||||
class ToggleTrack;
|
||||
class ToggleThumb;
|
||||
|
||||
enum class Position
|
||||
{
|
||||
Left,
|
||||
Right
|
||||
};
|
||||
|
||||
class Toggle : public QAbstractButton
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QColor activeColor WRITE setActiveColor READ activeColor)
|
||||
Q_PROPERTY(QColor disabledColor WRITE setDisabledColor READ disabledColor)
|
||||
Q_PROPERTY(QColor inactiveColor WRITE setInactiveColor READ inactiveColor)
|
||||
Q_PROPERTY(QColor trackColor WRITE setTrackColor READ trackColor)
|
||||
|
||||
public:
|
||||
Toggle(QWidget *parent = nullptr);
|
||||
|
||||
void setState(bool isEnabled);
|
||||
|
||||
void setActiveColor(const QColor &color);
|
||||
void setDisabledColor(const QColor &color);
|
||||
void setInactiveColor(const QColor &color);
|
||||
void setTrackColor(const QColor &color);
|
||||
|
||||
QColor activeColor() const { return activeColor_; };
|
||||
QColor disabledColor() const { return disabledColor_; };
|
||||
QColor inactiveColor() const { return inactiveColor_; };
|
||||
QColor trackColor() const { return trackColor_.isValid() ? trackColor_ : QColor("#eee"); };
|
||||
|
||||
QSize sizeHint() const override { return QSize(64, 48); };
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *event) override;
|
||||
|
||||
private:
|
||||
void init();
|
||||
void setupProperties();
|
||||
|
||||
ToggleTrack *track_;
|
||||
ToggleThumb *thumb_;
|
||||
|
||||
QColor disabledColor_;
|
||||
QColor activeColor_;
|
||||
QColor inactiveColor_;
|
||||
QColor trackColor_;
|
||||
};
|
||||
|
||||
class ToggleThumb : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QColor thumbColor WRITE setThumbColor READ thumbColor)
|
||||
|
||||
public:
|
||||
ToggleThumb(Toggle *parent);
|
||||
|
||||
Position shift() const { return position_; };
|
||||
qreal offset() const { return offset_; };
|
||||
QColor thumbColor() const { return thumbColor_; };
|
||||
|
||||
void setShift(Position position);
|
||||
void setThumbColor(const QColor &color)
|
||||
{
|
||||
thumbColor_ = color;
|
||||
update();
|
||||
};
|
||||
|
||||
protected:
|
||||
bool eventFilter(QObject *obj, QEvent *event) override;
|
||||
void paintEvent(QPaintEvent *event) override;
|
||||
|
||||
private:
|
||||
void updateOffset();
|
||||
|
||||
Toggle *const toggle_;
|
||||
QColor thumbColor_;
|
||||
|
||||
Position position_;
|
||||
qreal offset_;
|
||||
};
|
||||
|
||||
class ToggleTrack : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QColor trackColor WRITE setTrackColor READ trackColor)
|
||||
|
||||
public:
|
||||
ToggleTrack(Toggle *parent);
|
||||
|
||||
void setTrackColor(const QColor &color);
|
||||
QColor trackColor() const { return trackColor_; };
|
||||
|
||||
protected:
|
||||
bool eventFilter(QObject *obj, QEvent *event) override;
|
||||
void paintEvent(QPaintEvent *event) override;
|
||||
|
||||
private:
|
||||
Toggle *const toggle_;
|
||||
QColor trackColor_;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue