summary refs log tree commit diff
path: root/src/ui/Theme.cpp
blob: 7209864a86fdd93b5330092bfdcc0b0caa55f04d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <QDebug>

#include "Theme.h"

Theme::Theme(QObject *parent)
  : QObject(parent)
{
        setColor("Black", ui::Color::Black);

        setColor("BrightWhite", ui::Color::BrightWhite);
        setColor("FadedWhite", ui::Color::FadedWhite);
        setColor("MediumWhite", ui::Color::MediumWhite);

        setColor("BrightGreen", ui::Color::BrightGreen);
        setColor("DarkGreen", ui::Color::DarkGreen);
        setColor("LightGreen", ui::Color::LightGreen);

        setColor("Gray", ui::Color::Gray);
        setColor("Red", ui::Color::Red);
        setColor("Blue", ui::Color::Blue);

        setColor("Transparent", ui::Color::Transparent);
}

QColor
Theme::rgba(int r, int g, int b, qreal a) const
{
        QColor color(r, g, b);
        color.setAlphaF(a);

        return color;
}

QColor
Theme::getColor(const QString &key) const
{
        if (!colors_.contains(key)) {
                qWarning() << "Color with key" << key << "could not be found";
                return QColor();
        }

        return colors_.value(key);
}

void
Theme::setColor(const QString &key, const QColor &color)
{
        colors_.insert(key, color);
}

void
Theme::setColor(const QString &key, ui::Color color)
{
        static const QColor palette[] = {
          QColor("#171919"),

          QColor("#EBEBEB"),
          QColor("#C9C9C9"),
          QColor("#929292"),

          QColor("#1C3133"),
          QColor("#577275"),
          QColor("#46A451"),

          QColor("#5D6565"),
          QColor("#E22826"),
          QColor("#81B3A9"),

          rgba(0, 0, 0, 0),
        };

        colors_.insert(key, palette[static_cast<int>(color)]);
}