1.10
coconut.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_COCONUT_H
7#define EGT_THEMES_COCONUT_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 CoconutTheme : public Theme
21{
22public:
24 : Theme("CoconutTheme")
25 {}
26
27 ~CoconutTheme() = default;
28
29protected:
30
31 void init_palette() override
32 {
33 m_palette.clear();
34
35 m_palette.set(Palette::ColorId::cursor, Palette::GroupId::normal, Palette::red);
36
37 const auto pattern = [](const Color & color)
38 {
39 const Pattern patt(Pattern::Type::linear,
40 {
41 {0, color.tint(0.20)},
42 {0.5, color},
43 {1.0, color.tint(.20)},
44 });
45 return patt;
46 };
47
48 // colors light to dark
49 std::vector<Color> colors =
50 {
51 Color::css("#fefefd"),
52 Color::css("#fcfbfa"),
53 Color::css("#f9f8f5"),
54 Color::css("#f6f4ef"),
55 Color::css("#f3f1ea"),
56 Color::css("#f0ede5"),
57 Color::css("#dfd9c7"),
58 Color::css("#cec4aa"),
59 Color::css("#bdb08c"),
60 Color::css("#ac9b6e"),
61 Color::css("#958456"),
62 };
63
64 m_palette.set(Palette::ColorId::bg, Palette::GroupId::normal, colors[0]);
65 m_palette.set(Palette::ColorId::text, Palette::GroupId::normal, colors[8]);
66 m_palette.set(Palette::ColorId::text_highlight, Palette::GroupId::normal, Palette::hotpink);
67 m_palette.set(Palette::ColorId::border, Palette::GroupId::normal, colors[9]);
68 m_palette.set(Palette::ColorId::button_bg, Palette::GroupId::normal, pattern(colors[9]));
69 m_palette.set(Palette::ColorId::button_fg, Palette::GroupId::normal, colors[9]);
70 m_palette.set(Palette::ColorId::button_text, Palette::GroupId::normal, colors[2]);
71 m_palette.set(Palette::ColorId::label_bg, Palette::GroupId::normal, colors[0]);
72 m_palette.set(Palette::ColorId::label_text, Palette::GroupId::normal, colors[8]);
73
74 m_palette.set(Palette::ColorId::bg, Palette::GroupId::disabled, colors[0]);
75 m_palette.set(Palette::ColorId::text, Palette::GroupId::disabled, colors[6]);
76 m_palette.set(Palette::ColorId::text_highlight, Palette::GroupId::disabled, Palette::hotpink);
77 m_palette.set(Palette::ColorId::border, Palette::GroupId::disabled, colors[4]);
78 m_palette.set(Palette::ColorId::button_bg, Palette::GroupId::disabled, pattern(colors[4]));
79 m_palette.set(Palette::ColorId::button_fg, Palette::GroupId::disabled, colors[4]);
80 m_palette.set(Palette::ColorId::button_text, Palette::GroupId::disabled, colors[6]);
81 m_palette.set(Palette::ColorId::label_bg, Palette::GroupId::disabled, colors[0]);
82 m_palette.set(Palette::ColorId::label_text, Palette::GroupId::disabled, colors[6]);
83
84 m_palette.set(Palette::ColorId::bg, Palette::GroupId::active, colors[0]);
85 m_palette.set(Palette::ColorId::text, Palette::GroupId::active, colors[7]);
86 m_palette.set(Palette::ColorId::text_highlight, Palette::GroupId::active, Palette::hotpink);
87 m_palette.set(Palette::ColorId::border, Palette::GroupId::active, colors[7]);
88 m_palette.set(Palette::ColorId::button_bg, Palette::GroupId::active, pattern(colors[10]));
89 m_palette.set(Palette::ColorId::button_fg, Palette::GroupId::active, colors[9]);
90 m_palette.set(Palette::ColorId::button_text, Palette::GroupId::active, colors[0]);
91 m_palette.set(Palette::ColorId::label_bg, Palette::GroupId::active, colors[0]);
92 m_palette.set(Palette::ColorId::label_text, Palette::GroupId::active, colors[10]);
93
94 m_palette.set(Palette::ColorId::bg, Palette::GroupId::checked, colors[0]);
95 m_palette.set(Palette::ColorId::text, Palette::GroupId::checked, colors[8]);
96 m_palette.set(Palette::ColorId::text_highlight, Palette::GroupId::checked, Palette::hotpink);
97 m_palette.set(Palette::ColorId::border, Palette::GroupId::checked, colors[9]);
98 m_palette.set(Palette::ColorId::button_bg, Palette::GroupId::checked, pattern(colors[9]));
99 m_palette.set(Palette::ColorId::button_fg, Palette::GroupId::checked, colors[9]);
100 m_palette.set(Palette::ColorId::button_text, Palette::GroupId::checked, colors[2]);
101 m_palette.set(Palette::ColorId::label_bg, Palette::GroupId::checked, colors[10]);
102 m_palette.set(Palette::ColorId::label_text, Palette::GroupId::checked, colors[8]);
103 }
104
105 void init_font() override
106 {
107 m_font.face("Courier New");
108 }
109};
110
111}
112
113}
114
115#endif
Coconut Theme.
Definition coconut.h:21
void init_palette() override
Setup for initializing the palette.
Definition coconut.h:31
CoconutTheme()
Definition coconut.h:23
void init_font() override
Setup for initializing the font.
Definition coconut.h:105
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
EGT framework namespace.
Definition animation.h:24