diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-09-28 10:43:48 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-09-28 10:43:48 +1000 |
| commit | 6a47edcd35884095946f761fa3aa2367c7c26442 (patch) | |
| tree | 5b34e1bf14759dcc78b6611b1b6538dc03119860 /src/ui/screen.cpp | |
| parent | f09ba5ffd53bf7d28e0dc516c00a8f69ca7efae9 (diff) | |
| download | tangara-fw-6a47edcd35884095946f761fa3aa2367c7c26442.tar.gz | |
Use databinding for the top bar. It's so nice now!
Diffstat (limited to 'src/ui/screen.cpp')
| -rw-r--r-- | src/ui/screen.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
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<widgets::TopBar>(parent, config); + top_bar_ = std::make_unique<widgets::TopBar>(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); |
