Support creating labels with tagged text in ui::element_factory

This commit is contained in:
Nikita Lisitsa 2022-05-25 13:18:07 +03:00
parent 91fcdfcb29
commit b1d9c2c08d
2 changed files with 8 additions and 3 deletions

View file

@ -30,7 +30,7 @@ namespace psemek::ui
virtual std::shared_ptr<button> make_button();
virtual std::shared_ptr<button> make_button(std::string text);
virtual std::shared_ptr<button> make_button(gfx::texture_view_2d icon);
virtual std::shared_ptr<label> make_label(std::string text);
virtual std::shared_ptr<label> make_label(std::string text, bool tagged = false);
virtual std::shared_ptr<frame> make_frame();
virtual std::shared_ptr<window> make_window(std::string caption);
virtual std::shared_ptr<screen> make_screen();

View file

@ -47,9 +47,14 @@ namespace psemek::ui
return b;
}
std::shared_ptr<label> element_factory::make_label(std::string text)
std::shared_ptr<label> element_factory::make_label(std::string text, bool tagged)
{
return std::make_shared<label>(std::move(text));
auto result = std::make_shared<label>();
if (tagged)
result->set_tagged_text(std::move(text));
else
result->set_text(std::move(text));
return result;
}
std::shared_ptr<frame> element_factory::make_frame() { return nullptr; }