7#include "theme_mode.hpp"
8#include "theme_color.hpp"
9#include "theme_text_style.hpp"
10#include "../required.hpp"
11#include "../text/text_style.hpp"
13#include "../datum.hpp"
14#include "../color/color.hpp"
15#include "../geometry/extent.hpp"
16#include "../subsystem.hpp"
24 operating_system operating_system = operating_system::windows;
26 float toolbar_height = (operating_system == operating_system::windows) ? 30.0f : 20.0f;
68 theme() noexcept = delete;
71 theme &operator=(
theme const &) noexcept = delete;
78 [[nodiscard]] tt::
color color(theme_color theme_color,
ssize_t nesting_level = 0) const noexcept;
82 std::array<
std::vector<tt::
color>, num_theme_colors> _colors;
83 std::array<tt::
text_style, num_theme_text_styles> _text_styles;
85 [[nodiscard]]
float parse_float(
datum const &data,
char const *object_name);
86 [[nodiscard]]
bool parse_bool(
datum const &data,
char const *object_name);
87 [[nodiscard]]
std::
string parse_string(
datum const &data,
char const *object_name);
88 [[nodiscard]] tt::
color parse_color_value(
datum const &data);
89 [[nodiscard]] tt::
color parse_color(
datum const &data,
char const *object_name);
90 [[nodiscard]]
std::vector<tt::
color> parse_color_list(
datum const &data,
char const *object_name);
92 [[nodiscard]] font_weight parse_font_weight(
datum const &data,
char const *object_name);
96 [[nodiscard]] friend
std::
string to_string(
theme const &rhs) noexcept {
97 return std::format(
"{}:{}", rhs.name, rhs.mode);
101 return lhs << to_string(rhs);
This is a RGBA floating point color.
Definition color.hpp:36
A dynamic data type.
Definition datum.hpp:213
float label_icon_size
Size of icons being inline with a label's text.
Definition theme.hpp:62
float large_icon_size
Size of icons representing the length of am average word of a label's text.
Definition theme.hpp:58
float large_size
The size of large widgets.
Definition theme.hpp:50
float size
The size of small square widgets.
Definition theme.hpp:46
float border_width
The line-width of a border.
Definition theme.hpp:38
float icon_size
Size of icons inside a widget.
Definition theme.hpp:54
float toolbar_decoration_button_width
The width of a close, minimize, maximize, system menu button.
Definition theme.hpp:30
float margin
Distance between widgets and between widgets and the border of the container.
Definition theme.hpp:34
float rounding_radius
The rounding radius of boxes with rounded corners.
Definition theme.hpp:42
font_book keeps track of multiple fonts.
Definition font_book.hpp:30
Definition text_style.hpp:17