Loading...
Searching...
No Matches
SelectTheme.h
Go to the documentation of this file.
1//
2// SelectTheme.h
3//
4
5#ifndef MALENA_SELECTTHEME_H
6#define MALENA_SELECTTHEME_H
7
8#pragma once
9
12
13namespace ml
14{
25 {
26 // ── Trigger ───────────────────────────────────────────────────────────
28 sf::Color bgOpen = sf::Color(50, 50, 50);
32 sf::Color arrowColor = sf::Color(180, 180, 180);
33
34 // ── Panel ─────────────────────────────────────────────────────────────
38 sf::Color itemSelectedBg = sf::Color(70, 130, 230, 80);
42 float panelBorderThick = 1.f;
43
44 // ── applyFrom ─────────────────────────────────────────────────────────
45
46 SelectTheme& applyFrom(const Theme& t) override
47 {
50 std::min(255, t.surface.r + 15),
51 std::min(255, t.surface.g + 15),
52 std::min(255, t.surface.b + 15));
54 std::min(255, t.surface.r + 10),
55 std::min(255, t.surface.g + 10),
56 std::min(255, t.surface.b + 10));
60 arrowColor = t.muted;
62 std::min(255, t.surface.r + 5),
63 std::min(255, t.surface.g + 5),
64 std::min(255, t.surface.b + 5));
71 return *this;
72 }
73
74 // ── Assignment from parent levels ─────────────────────────────────────
75
77 { static_cast<InputTheme&>(*this) = i; return *this; }
78
80 { static_cast<InputTheme&>(*this) = c; return *this; }
81
83 { static_cast<InputTheme&>(*this) = g; return *this; }
84
85 // ── Getters / setters — trigger ───────────────────────────────────────
86
87 [[nodiscard]] sf::Color getBgHovered() const { return bgHovered; }
88 [[nodiscard]] sf::Color getBgOpen() const { return bgOpen; }
89 [[nodiscard]] sf::Color getBorderOpen() const { return borderOpen; }
90 [[nodiscard]] sf::Color getLabelColor() const { return labelColor; }
91 [[nodiscard]] sf::Color getLabelDisabled() const { return labelDisabled; }
92 [[nodiscard]] sf::Color getArrowColor() const { return arrowColor; }
93
94 void setBgHovered(const sf::Color& c) { bgHovered = c; }
95 void setBgOpen(const sf::Color& c) { bgOpen = c; }
96 void setBorderOpen(const sf::Color& c) { borderOpen = c; }
97 void setLabelColor(const sf::Color& c) { labelColor = c; }
99 void setArrowColor(const sf::Color& c) { arrowColor = c; }
100
101 // ── Getters / setters — panel ─────────────────────────────────────────
102
103 [[nodiscard]] sf::Color getPanelBg() const { return panelBg; }
104 [[nodiscard]] sf::Color getPanelBorder() const { return panelBorder; }
105 [[nodiscard]] sf::Color getItemHoverBg() const { return itemHoverBg; }
106 [[nodiscard]] sf::Color getItemSelectedBg() const { return itemSelectedBg; }
107 [[nodiscard]] sf::Color getItemLabelColor() const { return itemLabelColor; }
108 [[nodiscard]] sf::Color getItemDescColor() const { return itemDescColor; }
109 [[nodiscard]] sf::Color getItemDisabledColor() const { return itemDisabledColor; }
110 [[nodiscard]] float getPanelBorderThick() const { return panelBorderThick; }
111
112 void setPanelBg(const sf::Color& c) { panelBg = c; }
113 void setPanelBorder(const sf::Color& c) { panelBorder = c; }
114 void setItemHoverBg(const sf::Color& c) { itemHoverBg = c; }
120 };
121
122} // namespace ml
123
124#endif // MALENA_SELECTTHEME_H
static const Color White
std::uint8_t b
std::uint8_t g
std::uint8_t r
Definition Component.h:22
Theme tokens for interactive UI controls.
Theme tokens for all visual components.
Color and font tokens shared by all input controls.
Definition InputTheme.h:25
InputTheme & applyFrom(const Theme &t) override
Populate all fields from the global Theme token set.
Definition InputTheme.h:38
Color tokens for Select.
Definition SelectTheme.h:25
void setItemDisabledColor(const sf::Color &c)
sf::Color itemSelectedBg
Definition SelectTheme.h:38
sf::Color getItemHoverBg() const
sf::Color bgOpen
Definition SelectTheme.h:28
void setItemHoverBg(const sf::Color &c)
void setItemDescColor(const sf::Color &c)
sf::Color arrowColor
Definition SelectTheme.h:32
sf::Color getItemDisabledColor() const
void setBorderOpen(const sf::Color &c)
Definition SelectTheme.h:96
void setBgOpen(const sf::Color &c)
Definition SelectTheme.h:95
sf::Color itemLabelColor
Definition SelectTheme.h:39
sf::Color getArrowColor() const
Definition SelectTheme.h:92
void setArrowColor(const sf::Color &c)
Definition SelectTheme.h:99
sf::Color getLabelColor() const
Definition SelectTheme.h:90
sf::Color getLabelDisabled() const
Definition SelectTheme.h:91
float panelBorderThick
Definition SelectTheme.h:42
sf::Color getPanelBorder() const
sf::Color getItemDescColor() const
sf::Color getItemSelectedBg() const
void setLabelColor(const sf::Color &c)
Definition SelectTheme.h:97
void setItemSelectedBg(const sf::Color &c)
void setLabelDisabled(const sf::Color &c)
Definition SelectTheme.h:98
void setPanelBg(const sf::Color &c)
sf::Color getBgOpen() const
Definition SelectTheme.h:88
void setPanelBorder(const sf::Color &c)
void setBgHovered(const sf::Color &c)
Definition SelectTheme.h:94
SelectTheme & operator=(const GraphicTheme &g)
Definition SelectTheme.h:82
sf::Color panelBg
Definition SelectTheme.h:35
SelectTheme & applyFrom(const Theme &t) override
Populate all fields from the global Theme token set.
Definition SelectTheme.h:46
void setPanelBorderThick(float t)
SelectTheme & operator=(const InputTheme &i)
Definition SelectTheme.h:76
sf::Color getBorderOpen() const
Definition SelectTheme.h:89
sf::Color borderOpen
Definition SelectTheme.h:29
SelectTheme & operator=(const ControlTheme &c)
Definition SelectTheme.h:79
sf::Color getItemLabelColor() const
sf::Color panelBorder
Definition SelectTheme.h:36
sf::Color itemDisabledColor
Definition SelectTheme.h:41
sf::Color itemHoverBg
Definition SelectTheme.h:37
float getPanelBorderThick() const
sf::Color getPanelBg() const
void setItemLabelColor(const sf::Color &c)
sf::Color itemDescColor
Definition SelectTheme.h:40
sf::Color getBgHovered() const
Definition SelectTheme.h:87
sf::Color labelDisabled
Definition SelectTheme.h:31
sf::Color labelColor
Definition SelectTheme.h:30
sf::Color bgHovered
Definition SelectTheme.h:27
Universal design token set applied across all Themeable components.
Definition Theme.h:70
sf::Color border
Definition Theme.h:98
sf::Color primary
Definition Theme.h:74
sf::Color onSurface
Definition Theme.h:86
sf::Color muted
Definition Theme.h:95
sf::Color onDisabled
Definition Theme.h:113
sf::Color borderFocus
Definition Theme.h:101
sf::Color surface
Definition Theme.h:80
sf::Color secondary
Definition Theme.h:77