diff --git a/firmware/application/ui_debug.cpp b/firmware/application/ui_debug.cpp index c18f59090..0fd4b55f5 100644 --- a/firmware/application/ui_debug.cpp +++ b/firmware/application/ui_debug.cpp @@ -59,6 +59,15 @@ void DebugMemoryView::focus() { /* RegistersWidget *******************************************************/ +RegistersWidget::RegistersWidget( + RegistersWidgetConfig&& config, + std::function&& reader +) : Widget { }, + config(std::move(config)), + reader(std::move(reader)) +{ +} + void RegistersWidget::update() { set_dirty(); } @@ -104,6 +113,40 @@ void RegistersWidget::draw_values( } } +/* RegistersView *********************************************************/ + +RegistersView::RegistersView( + NavigationView& nav, + const std::string& title, + RegistersWidgetConfig&& config, + std::function&& reader +) : registers_widget { std::move(config), std::move(reader) } +{ + add_children({ { + &text_title, + ®isters_widget, + &button_update, + &button_done, + } }); + + button_update.on_select = [this](Button&){ + this->registers_widget.update(); + }; + button_done.on_select = [&nav](Button&){ nav.pop(); }; + + registers_widget.set_parent_rect({ 0, 48, 240, 192 }); + + text_title.set_parent_rect({ + static_cast((240 - title.size() * 8) / 2), 16, + static_cast(title.size() * 8), 16 + }); + text_title.set(title); +} + +void RegistersView::focus() { + button_done.focus(); +} + /* DebugMenuView *********************************************************/ DebugMenuView::DebugMenuView(NavigationView& nav) { diff --git a/firmware/application/ui_debug.hpp b/firmware/application/ui_debug.hpp index 420f3162a..46920c9ef 100644 --- a/firmware/application/ui_debug.hpp +++ b/firmware/application/ui_debug.hpp @@ -114,11 +114,7 @@ public: RegistersWidget( RegistersWidgetConfig&& config, std::function&& reader - ) : Widget { }, - config(std::move(config)), - reader(std::move(reader)) - { - } + ); void update(); @@ -141,32 +137,9 @@ public: const std::string& title, RegistersWidgetConfig&& config, std::function&& reader - ) : registers_widget { std::move(config), std::move(reader) } - { - add_children({ { - &text_title, - ®isters_widget, - &button_update, - &button_done, - } }); + ); - button_update.on_select = [this](Button&){ - this->registers_widget.update(); - }; - button_done.on_select = [&nav](Button&){ nav.pop(); }; - - registers_widget.set_parent_rect({ 0, 48, 240, 192 }); - - text_title.set_parent_rect({ - static_cast((240 - title.size() * 8) / 2), 16, - static_cast(title.size() * 8), 16 - }); - text_title.set(title); - } - - void focus() { - button_done.focus(); - } + void focus(); private: Text text_title;