25 operating_system operating_system = operating_system::windows;
45 int rounding_radius = 4;
61 int large_icon_size = 23;
65 int label_icon_size = 15;
69 int baseline_adjustment = 9;
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]]
long long parse_long_long(
datum const& data,
char const *object_name);
107 [[nodiscard]]
int parse_int(
datum const& data,
char const *object_name);
108 [[nodiscard]]
bool parse_bool(
datum const& data,
char const *object_name);
109 [[nodiscard]]
std::
string parse_string(
datum const& data,
char const *object_name);
110 [[nodiscard]]
hi::
color parse_color_value(
datum const& data);
111 [[nodiscard]]
hi::
color parse_color(
datum const& data,
char const *object_name);
112 [[nodiscard]]
std::vector<
hi::
color> parse_color_list(
datum const& data,
char const *object_name);
114 [[nodiscard]]
font_weight parse_font_weight(
datum const& data,
char const *object_name);
118 [[nodiscard]] friend
std::
string to_string(
theme const& rhs) noexcept
120 return std::format(
"{}:{}", rhs.name, rhs.mode);
125 return lhs << to_string(rhs);