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); element_factory.set_style(style);
auto screen = element_factory.make_screen(); 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)); 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); void set_style(std::shared_ptr<struct style> st);
std::shared_ptr<struct style> style() const; 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(); std::unique_ptr<screen> make_screen();
private: private:

View file

@ -11,6 +11,11 @@ namespace psemek::ui
struct button_impl struct button_impl
: button : button
{ {
button_impl()
{
set_label(std::make_unique<struct label>());
}
struct shape const & shape() const override struct shape const & shape() const override
{ {
return shape_; return shape_;
@ -86,9 +91,11 @@ namespace psemek::ui
return impl().style; 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() std::unique_ptr<screen> default_element_factory::make_screen()