From b7014f2eda4b23b5efba218fb6c89a9a03b7cc96 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Thu, 25 Feb 2021 10:36:34 +0300 Subject: [PATCH] Add style description & use it in default element factory --- examples/ui.cpp | 4 ++- .../psemek/ui/default_element_factory.hpp | 5 +-- libs/ui/include/psemek/ui/element.hpp | 5 +++ libs/ui/include/psemek/ui/style.hpp | 25 +++++++++++++ libs/ui/source/default_element_factory.cpp | 35 ++++++++++++++----- libs/ui/source/element.cpp | 6 ++++ todo.md | 3 -- 7 files changed, 68 insertions(+), 15 deletions(-) create mode 100644 libs/ui/include/psemek/ui/style.hpp diff --git a/examples/ui.cpp b/examples/ui.cpp index f4191468..9df544b3 100644 --- a/examples/ui.cpp +++ b/examples/ui.cpp @@ -17,7 +17,9 @@ struct ui_example ui_example() : app("UI example", 1) { - element_factory.set_font(ui::make_default_9x12_font()); + auto style = std::make_shared(); + style->font = ui::make_default_9x12_font(); + 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); diff --git a/libs/ui/include/psemek/ui/default_element_factory.hpp b/libs/ui/include/psemek/ui/default_element_factory.hpp index e3d7a8c3..4f5585b0 100644 --- a/libs/ui/include/psemek/ui/default_element_factory.hpp +++ b/libs/ui/include/psemek/ui/default_element_factory.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include @@ -13,8 +14,8 @@ namespace psemek::ui default_element_factory(); ~default_element_factory(); - void set_font(std::shared_ptr f); - std::shared_ptr font() const; + void set_style(std::shared_ptr st); + std::shared_ptr style() const; std::unique_ptr