From 6a47edcd35884095946f761fa3aa2367c7c26442 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 28 Sep 2023 10:43:48 +1000 Subject: Use databinding for the top bar. It's so nice now! --- src/ui/screen.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'src/ui/screen.cpp') diff --git a/src/ui/screen.cpp b/src/ui/screen.cpp index 48bffff7..bdc30fcd 100644 --- a/src/ui/screen.cpp +++ b/src/ui/screen.cpp @@ -12,6 +12,7 @@ #include "core/lv_obj_tree.h" #include "misc/lv_area.h" #include "misc/lv_color.h" +#include "model_top_bar.hpp" #include "widget_top_bar.hpp" namespace ui { @@ -40,24 +41,20 @@ Screen::~Screen() { lv_obj_del(root_); } -auto Screen::UpdateTopBar(const widgets::TopBar::State& state) -> void { - if (top_bar_) { - top_bar_->Update(state); - } -} - auto Screen::CreateTopBar(lv_obj_t* parent, - const widgets::TopBar::Configuration& config) - -> widgets::TopBar* { + const widgets::TopBar::Configuration& config, + models::TopBar& model) -> widgets::TopBar* { assert(top_bar_ == nullptr); - top_bar_ = std::make_unique(parent, config); + top_bar_ = std::make_unique(parent, config, model); if (top_bar_->button()) { lv_group_add_obj(group_, top_bar_->button()); } return top_bar_.get(); } -MenuScreen::MenuScreen(const std::pmr::string& title, bool show_back_button) +MenuScreen::MenuScreen(models::TopBar& top_bar_model, + const std::pmr::string& title, + bool show_back_button) : Screen() { lv_group_set_wrap(group_, false); @@ -70,7 +67,7 @@ MenuScreen::MenuScreen(const std::pmr::string& title, bool show_back_button) .show_back_button = show_back_button, .title = title.c_str(), }; - CreateTopBar(content_, config); + CreateTopBar(content_, config, top_bar_model); content_ = lv_obj_create(content_); lv_obj_set_flex_grow(content_, 1); -- cgit v1.2.3