Skip to content
Snippets Groups Projects
Theme.h 1.36 KiB
Newer Older
  • Learn to ignore specific revisions
  • Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    #include <QColor>
    #include <QHash>
    #include <QObject>
    
    
    namespace ui {
    enum class AvatarType
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    {
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    // Default font size.
    const int FontSize = 16;
    
    // Default avatar size. Width and height.
    const int AvatarSize = 40;
    
    
    enum class ButtonPreset
    {
            FlatPreset,
            CheckablePreset
    };
    
    enum class RippleStyle
    {
            CenteredRipple,
            PositionedRipple,
            NoRipple
    };
    
    enum class OverlayStyle
    {
            NoOverlay,
            TintedOverlay,
            GrayOverlay
    };
    
    enum class Role
    {
            Default,
            Primary,
            Secondary
    };
    
    enum class ButtonIconPlacement
    {
            LeftIcon,
            RightIcon
    };
    
    enum class ProgressType
    {
            DeterminateProgress,
            IndeterminateProgress
    };
    
    enum class Color
    {
    
            Black,
            BrightWhite,
            FadedWhite,
            MediumWhite,
            DarkGreen,
            LightGreen,
            BrightGreen,
            Gray,
            Red,
            Blue,
            Transparent
    
    } // namespace ui
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    class Theme : public QObject
    {
    
            Q_OBJECT
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    public:
    
    Nicolas Werner's avatar
    Nicolas Werner committed
            explicit Theme(QObject *parent = nullptr);
    
            QColor getColor(const QString &key) const;
    
            void setColor(const QString &key, const QColor &color);
            void setColor(const QString &key, ui::Color color);
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    private:
    
            QColor rgba(int r, int g, int b, qreal a) const;
    
            QHash<QString, QColor> colors_;
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    };