25 operating_system operating_system = operating_system::windows;
41 float border_width = 1.0f;
45 float rounding_radius = 4.0f;
53 float large_size = 18.5f;
57 float icon_size = 7.5f;
61 float large_icon_size = 22.5f;
65 float label_icon_size = 15.0f;
69 float cap_height = 8.6f;
72 theme_mode mode = theme_mode::light;
74 theme() noexcept = default;
77 theme& operator=(
theme const&) noexcept = default;
94 [[nodiscard]]
theme transform(
float dpi) const noexcept;
96 [[nodiscard]]
hi::
color color(
hi::semantic_color original_color, ssize_t nesting_level = 0) const noexcept;
97 [[nodiscard]]
hi::
color color(
hi::
color original_color, ssize_t nesting_level = 0) const noexcept;
102 std::array<
std::vector<
hi::
color>, semantic_color_metadata.size()> _colors;
103 std::array<
hi::
text_style, semantic_text_style_metadata.size()> _text_styles;
105 [[nodiscard]]
float parse_float(
datum const& data,
char const *object_name);
106 [[nodiscard]]
bool parse_bool(
datum const& data,
char const *object_name);
107 [[nodiscard]]
std::
string parse_string(
datum const& data,
char const *object_name);
108 [[nodiscard]]
hi::
color parse_color_value(
datum const& data);
109 [[nodiscard]]
hi::
color parse_color(
datum const& data,
char const *object_name);
110 [[nodiscard]]
std::vector<
hi::
color> parse_color_list(
datum const& data,
char const *object_name);
112 [[nodiscard]]
font_weight parse_font_weight(
datum const& data,
char const *object_name);
116 [[nodiscard]] friend
std::
string to_string(
theme const& rhs) noexcept
118 return std::format(
"{}:{}", rhs.name, rhs.mode);
123 return lhs << to_string(rhs);