1.10
shamrock.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_SHAMROCK_H
7#define EGT_THEMES_SHAMROCK_H
8
9#include <egt/theme.h>
10
11namespace egt
12{
13inline namespace v1
14{
15
19class EGT_API ShamrockTheme : public Theme
20{
21public:
23 : Theme("ShamrockTheme")
24 {}
25
26 ~ShamrockTheme() = default;
27
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("#eafffd"),
51 Color::css("#bafff7"),
52 Color::css("#74ffef"),
53 Color::css("#2fffe7"),
54 Color::css("#00e9cd"),
55 Color::css("#00a591"),
56 Color::css("#009382"),
57 Color::css("#008373"),
58 Color::css("#007265"),
59 Color::css("#006256"),
60 Color::css("#005248"),
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, colors[2]);
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, colors[2]);
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 void init_draw() override;
105
106 void init_font() override
107 {
108 m_font.face("Verdana");
109 }
110};
111
112}
113
114}
115
116#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
Shamrock Theme.
Definition shamrock.h:20
void init_palette() override
Setup for initializing the palette.
Definition shamrock.h:30
void init_draw() override
Setup for initializing drawing.
ShamrockTheme()
Definition shamrock.h:22
void init_font() override
Setup for initializing the font.
Definition shamrock.h:106
Customizable characteristics for drawing widgets.
Definition theme.h:146
EGT framework namespace.
Definition animation.h:24