diff --git a/libs/ui/include/psemek/ui/button.hpp b/libs/ui/include/psemek/ui/button.hpp index 4bcee76a..70d37073 100644 --- a/libs/ui/include/psemek/ui/button.hpp +++ b/libs/ui/include/psemek/ui/button.hpp @@ -38,14 +38,14 @@ namespace psemek::ui virtual void on_state_changed() {} - void set_label(std::unique_ptr label); + void set_label(std::shared_ptr label); private: state_t state_ = state_t::normal; on_click_callback callback_; - std::unique_ptr label_; + std::shared_ptr label_; element * children_[1]{nullptr}; }; diff --git a/libs/ui/include/psemek/ui/container.hpp b/libs/ui/include/psemek/ui/container.hpp index a25f01de..3acc4c00 100644 --- a/libs/ui/include/psemek/ui/container.hpp +++ b/libs/ui/include/psemek/ui/container.hpp @@ -15,17 +15,17 @@ namespace psemek::ui protected: std::size_t children_count() const { return children_.size(); } - std::size_t add(std::unique_ptr c); - void add(std::unique_ptr c, std::size_t index); + std::size_t add(std::shared_ptr c); + void add(std::shared_ptr c, std::size_t index); element * get(std::size_t index); std::optional find(element * c); - std::unique_ptr remove(element * c); - std::unique_ptr remove(std::size_t index); + std::shared_ptr remove(element * c); + std::shared_ptr remove(std::size_t index); private: - std::vector> children_; + std::vector> children_; std::vector children_range_; }; diff --git a/libs/ui/include/psemek/ui/controller.hpp b/libs/ui/include/psemek/ui/controller.hpp index 22222a36..d164944c 100644 --- a/libs/ui/include/psemek/ui/controller.hpp +++ b/libs/ui/include/psemek/ui/controller.hpp @@ -13,7 +13,7 @@ namespace psemek::ui controller(); ~controller(); - std::unique_ptr set_root(std::unique_ptr r); + std::shared_ptr set_root(std::shared_ptr r); element * root(); void reshape(geom::box const & shape); diff --git a/libs/ui/include/psemek/ui/default_element_factory.hpp b/libs/ui/include/psemek/ui/default_element_factory.hpp index d702f203..ea9bd6f2 100644 --- a/libs/ui/include/psemek/ui/default_element_factory.hpp +++ b/libs/ui/include/psemek/ui/default_element_factory.hpp @@ -17,8 +17,8 @@ namespace psemek::ui void set_style(std::shared_ptr st); std::shared_ptr style() const; - std::unique_ptr