Default button created with text

This commit is contained in:
Nikita Lisitsa 2021-02-25 11:23:37 +03:00
parent 38123ace0e
commit 4deb6fa64a
3 changed files with 11 additions and 4 deletions

View file

@ -22,7 +22,7 @@ struct ui_example
element_factory.set_style(style);
auto screen = element_factory.make_screen();
screen->add(element_factory.make_button(), ui::screen::x_policy::center, ui::screen::y_policy::center);
screen->add(element_factory.make_button("Test"), ui::screen::x_policy::center, ui::screen::y_policy::center);
ui_controller.set_root(std::move(screen));
}

View file

@ -17,7 +17,7 @@ namespace psemek::ui
void set_style(std::shared_ptr<struct style> st);
std::shared_ptr<struct style> style() const;
std::unique_ptr<button> make_button();
std::unique_ptr<button> make_button(std::string text);
std::unique_ptr<screen> make_screen();
private:

View file

@ -11,6 +11,11 @@ namespace psemek::ui
struct button_impl
: button
{
button_impl()
{
set_label(std::make_unique<struct label>());
}
struct shape const & shape() const override
{
return shape_;
@ -86,9 +91,11 @@ namespace psemek::ui
return impl().style;
}
std::unique_ptr<button> default_element_factory::make_button()
std::unique_ptr<button> default_element_factory::make_button(std::string text)
{
return impl().create<button_impl>();
auto r = impl().create<button_impl>();
r->label()->set_text(std::move(text));
return r;
}
std::unique_ptr<screen> default_element_factory::make_screen()