Remove label font_type setting & move it to style
This commit is contained in:
parent
5eab34a1dd
commit
bedb8c9faf
4 changed files with 16 additions and 17 deletions
|
|
@ -12,12 +12,6 @@ namespace psemek::ui
|
|||
struct label
|
||||
: element
|
||||
{
|
||||
enum class font_type
|
||||
{
|
||||
normal,
|
||||
bold,
|
||||
};
|
||||
|
||||
enum class halignment
|
||||
{
|
||||
left,
|
||||
|
|
@ -46,9 +40,6 @@ namespace psemek::ui
|
|||
virtual void set_text(std::string text);
|
||||
virtual std::string_view text() const { return text_; }
|
||||
|
||||
virtual void set_font(font_type f);
|
||||
virtual font_type font() const { return font_; }
|
||||
|
||||
virtual void set_halign(halignment value);
|
||||
virtual halignment halign() const { return halign_; }
|
||||
|
||||
|
|
@ -84,7 +75,6 @@ namespace psemek::ui
|
|||
|
||||
private:
|
||||
std::string text_;
|
||||
font_type font_ = font_type::normal;
|
||||
halignment halign_ = halignment::left;
|
||||
valignment valign_ = valignment::top;
|
||||
bool wrap_ = true;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include <psemek/util/flag_set.hpp>
|
||||
#include <psemek/ui/font.hpp>
|
||||
#include <psemek/gfx/color.hpp>
|
||||
|
||||
|
|
@ -17,6 +18,14 @@ namespace psemek::ui
|
|||
|
||||
struct element;
|
||||
|
||||
enum class text_style_flag
|
||||
{
|
||||
bold,
|
||||
underline,
|
||||
};
|
||||
|
||||
using text_style = util::flag_set<text_style_flag, std::uint8_t>;
|
||||
|
||||
struct style
|
||||
{
|
||||
std::optional<int> scale;
|
||||
|
|
@ -50,6 +59,8 @@ namespace psemek::ui
|
|||
std::optional<int> text_scale;
|
||||
std::optional<geom::vector<int, 2>> text_shadow_offset;
|
||||
|
||||
std::optional<ui::text_style> text_style;
|
||||
|
||||
std::shared_ptr<struct font> font;
|
||||
std::shared_ptr<struct font> bold_font;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,12 +16,6 @@ namespace psemek::ui
|
|||
on_state_changed();
|
||||
}
|
||||
|
||||
void label::set_font(font_type f)
|
||||
{
|
||||
font_ = f;
|
||||
on_state_changed();
|
||||
}
|
||||
|
||||
void label::set_halign(halignment value)
|
||||
{
|
||||
halign_ = value;
|
||||
|
|
@ -145,7 +139,7 @@ namespace psemek::ui
|
|||
auto st = merged_own_style();
|
||||
if (!st) return state;
|
||||
|
||||
auto font = (font_ == font_type::normal) ? st->font.get() : st->bold_font.get();
|
||||
auto font = st->text_style->is_set(text_style_flag::bold) ? st->bold_font.get() : st->font.get();
|
||||
|
||||
if (!font) return state;
|
||||
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@ namespace psemek::ui
|
|||
merge(dst.text_color, src.text_color);
|
||||
merge(dst.text_scale, src.text_scale);
|
||||
merge(dst.text_shadow_offset, src.text_shadow_offset);
|
||||
merge(dst.text_style, src.text_style);
|
||||
merge(dst.font, src.font);
|
||||
merge(dst.bold_font, src.bold_font);
|
||||
}
|
||||
|
|
@ -125,6 +126,9 @@ namespace psemek::ui
|
|||
s.text_color = {255, 255, 255, 255};
|
||||
s.text_scale = 1;
|
||||
s.text_shadow_offset = {1, 1};
|
||||
|
||||
s.text_style = text_style{};
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue