From 937a011577e14d7a46f5ad71f6d0502bdd888680 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Thu, 25 Feb 2021 09:50:30 +0300 Subject: [PATCH] Don't store font in painter or controller, use it in factory instead --- examples/ui.cpp | 2 +- libs/ui/include/psemek/ui/controller.hpp | 1 - .../psemek/ui/default_element_factory.hpp | 11 ++++++++++ libs/ui/include/psemek/ui/painter.hpp | 2 -- libs/ui/include/psemek/ui/painter_impl.hpp | 4 ---- libs/ui/source/controller.cpp | 5 ----- libs/ui/source/default_element_factory.cpp | 21 +++++++++++++++++++ libs/ui/source/painter_impl.cpp | 11 ---------- 8 files changed, 33 insertions(+), 24 deletions(-) diff --git a/examples/ui.cpp b/examples/ui.cpp index 2a885944..f4191468 100644 --- a/examples/ui.cpp +++ b/examples/ui.cpp @@ -17,7 +17,7 @@ struct ui_example ui_example() : app("UI example", 1) { - ui_controller.set_font(ui::make_default_9x12_font()); + element_factory.set_font(ui::make_default_9x12_font()); auto screen = element_factory.make_screen(); screen->add(element_factory.make_button(), ui::screen::x_policy::center, ui::screen::y_policy::center); diff --git a/libs/ui/include/psemek/ui/controller.hpp b/libs/ui/include/psemek/ui/controller.hpp index 9c360b9b..22222a36 100644 --- a/libs/ui/include/psemek/ui/controller.hpp +++ b/libs/ui/include/psemek/ui/controller.hpp @@ -16,7 +16,6 @@ namespace psemek::ui std::unique_ptr set_root(std::unique_ptr r); element * root(); - void set_font(std::shared_ptr f); void reshape(geom::box const & shape); bool event(mouse_move const & e); diff --git a/libs/ui/include/psemek/ui/default_element_factory.hpp b/libs/ui/include/psemek/ui/default_element_factory.hpp index 8f3d53a1..e3d7a8c3 100644 --- a/libs/ui/include/psemek/ui/default_element_factory.hpp +++ b/libs/ui/include/psemek/ui/default_element_factory.hpp @@ -3,13 +3,24 @@ #include #include +#include + namespace psemek::ui { struct default_element_factory { + default_element_factory(); + ~default_element_factory(); + + void set_font(std::shared_ptr f); + std::shared_ptr font() const; + std::unique_ptr