23 operating_system operating_system = operating_system::windows;
39 float border_width = 1.0f;
43 float rounding_radius = 4.0f;
51 float large_size = 18.5f;
55 float icon_size = 7.5f;
59 float large_icon_size = 22.5f;
63 float label_icon_size = 15.0f;
67 float cap_height = 8.6f;
70 theme_mode mode = theme_mode::light;
72 theme() noexcept = default;
75 theme& operator=(
theme const&) noexcept = default;
92 [[nodiscard]]
theme transform(
float dpi) const noexcept;
94 [[nodiscard]] hi::
color color(hi::semantic_color original_color,
ssize_t nesting_level = 0) const noexcept;
100 std::array<
std::vector<hi::
color>, semantic_color_metadata.size()> _colors;
101 std::array<hi::
text_style, semantic_text_style_metadata.size()> _text_styles;
103 [[nodiscard]]
float parse_float(
datum const& data,
char const *object_name);
104 [[nodiscard]]
bool parse_bool(
datum const& data,
char const *object_name);
105 [[nodiscard]]
std::
string parse_string(
datum const& data,
char const *object_name);
106 [[nodiscard]] hi::
color parse_color_value(
datum const& data);
107 [[nodiscard]] hi::
color parse_color(
datum const& data,
char const *object_name);
108 [[nodiscard]]
std::vector<hi::
color> parse_color_list(
datum const& data,
char const *object_name);
110 [[nodiscard]] font_weight parse_font_weight(
datum const& data,
char const *object_name);
114 [[nodiscard]] friend
std::
string to_string(
theme const& rhs) noexcept
116 return std::format(
"{}:{}", rhs.name, rhs.mode);
121 return lhs << to_string(rhs);