1.10
ultraviolet.h
1/*
2 * Copyright (C) 2018 Microchip Technology Inc. All rights reserved.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6#ifndef EGT_THEMES_ULTRAVIOLET_H
7#define EGT_THEMES_ULTRAVIOLET_H
8
9#include <egt/detail/meta.h>
10#include <egt/theme.h>
11
12namespace egt
13{
14inline namespace v1
15{
16
20class EGT_API UltraVioletTheme : public Theme
21{
22public:
24 : Theme("UltravioletTheme")
25 {}
26
27 ~UltraVioletTheme() = default;
28protected:
29
30 void init_palette() override
31 {
32 m_palette.clear();
33
34 m_palette.set(Palette::ColorId::cursor, Palette::GroupId::normal, Palette::red);
35
36 const auto pattern = [](const Color & color)
37 {
38 const Pattern patt(Pattern::Type::linear,
39 {
40 {0, color.tint(0.20)},
41 {0.5, color},
42 {1.0, color.tint(.20)},
43 });
44 return patt;
45 };
46
47 // colors light to dark
48 std::vector<Color> colors =
49 {
50 Color::css("#f6f5f9"),
51 Color::css("#e1ddea"),
52 Color::css("#c3bcd6"),
53 Color::css("#a59ac1"),
54 Color::css("#8879ad"),
55 Color::css("#6b5b95"),
56 Color::css("#615286"),
57 Color::css("#564977"),
58 Color::css("#4b4068"),
59 Color::css("#403759"),
60 Color::css("#362e4a"),
61 };
62
63 m_palette.set(Palette::ColorId::bg, Palette::GroupId::normal, colors[0]);
64 m_palette.set(Palette::ColorId::text, Palette::GroupId::normal, colors[5]);
65 m_palette.set(Palette::ColorId::text_highlight, Palette::GroupId::normal, Palette::hotpink);
66 m_palette.set(Palette::ColorId::border, Palette::GroupId::normal, colors[7]);
67 m_palette.set(Palette::ColorId::button_bg, Palette::GroupId::normal, pattern(colors[7]));
68 m_palette.set(Palette::ColorId::button_fg, Palette::GroupId::normal, colors[7]);
69 m_palette.set(Palette::ColorId::button_text, Palette::GroupId::normal, Palette::white);
70 m_palette.set(Palette::ColorId::label_bg, Palette::GroupId::normal, colors[0]);
71 m_palette.set(Palette::ColorId::label_text, Palette::GroupId::normal, colors[5]);
72
73 m_palette.set(Palette::ColorId::bg, Palette::GroupId::disabled, colors[0]);
74 m_palette.set(Palette::ColorId::text, Palette::GroupId::disabled, colors[2]);
75 m_palette.set(Palette::ColorId::text_highlight, Palette::GroupId::disabled, Palette::hotpink);
76 m_palette.set(Palette::ColorId::border, Palette::GroupId::disabled, colors[2]);
77 m_palette.set(Palette::ColorId::button_bg, Palette::GroupId::disabled, pattern(colors[4]));
78 m_palette.set(Palette::ColorId::button_fg, Palette::GroupId::disabled, colors[2]);
79 m_palette.set(Palette::ColorId::button_text, Palette::GroupId::disabled, colors[2]);
80 m_palette.set(Palette::ColorId::label_bg, Palette::GroupId::disabled, colors[0]);
81 m_palette.set(Palette::ColorId::label_text, Palette::GroupId::disabled, colors[2]);
82
83 m_palette.set(Palette::ColorId::bg, Palette::GroupId::active, colors[0]);
84 m_palette.set(Palette::ColorId::text, Palette::GroupId::active, colors[5]);
85 m_palette.set(Palette::ColorId::text_highlight, Palette::GroupId::active, Palette::hotpink);
86 m_palette.set(Palette::ColorId::border, Palette::GroupId::active, colors[5]);
87 m_palette.set(Palette::ColorId::button_bg, Palette::GroupId::active, pattern(colors[10]));
88 m_palette.set(Palette::ColorId::button_fg, Palette::GroupId::active, colors[7]);
89 m_palette.set(Palette::ColorId::button_text, Palette::GroupId::active, colors[0]);
90 m_palette.set(Palette::ColorId::label_bg, Palette::GroupId::active, colors[0]);
91 m_palette.set(Palette::ColorId::label_text, Palette::GroupId::active, colors[10]);
92
93 m_palette.set(Palette::ColorId::bg, Palette::GroupId::checked, colors[0]);
94 m_palette.set(Palette::ColorId::text, Palette::GroupId::checked, colors[5]);
95 m_palette.set(Palette::ColorId::text_highlight, Palette::GroupId::checked, Palette::hotpink);
96 m_palette.set(Palette::ColorId::border, Palette::GroupId::checked, colors[7]);
97 m_palette.set(Palette::ColorId::button_bg, Palette::GroupId::checked, pattern(colors[7]));
98 m_palette.set(Palette::ColorId::button_fg, Palette::GroupId::checked, colors[7]);
99 m_palette.set(Palette::ColorId::button_text, Palette::GroupId::checked, Palette::white);
100 m_palette.set(Palette::ColorId::label_bg, Palette::GroupId::checked, colors[10]);
101 m_palette.set(Palette::ColorId::label_text, Palette::GroupId::checked, colors[8]);
102 }
103};
104
105}
106
107}
108
109#endif
32 bit RGBA color.
Definition color.h:41
A Pattern which can store one or more colors at different offsets (steps) which can be used to create...
Definition pattern.h:55
Customizable characteristics for drawing widgets.
Definition theme.h:146
Ultra Violet Theme.
Definition ultraviolet.h:21
void init_palette() override
Setup for initializing the palette.
Definition ultraviolet.h:30
UltraVioletTheme()
Definition ultraviolet.h:23
EGT framework namespace.
Definition animation.h:24