From a340cbb74bf25a6dc69e7a39615dde32bb534a0a Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Mon, 14 Dec 2015 11:18:59 -0800 Subject: [PATCH] Make NavigationView an implicit first argument to any instance pushed onto nav stack. --- firmware/application/ui_debug.cpp | 14 +++++++------- firmware/application/ui_navigation.cpp | 16 ++++++++-------- firmware/application/ui_navigation.hpp | 2 +- firmware/application/ui_receiver.cpp | 2 +- firmware/application/ui_setup.cpp | 6 +++--- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/firmware/application/ui_debug.cpp b/firmware/application/ui_debug.cpp index 154208541..5d9efd9ce 100644 --- a/firmware/application/ui_debug.cpp +++ b/firmware/application/ui_debug.cpp @@ -108,22 +108,22 @@ void RegistersWidget::draw_values( DebugMenuView::DebugMenuView(NavigationView& nav) { add_items<7>({ { - { "Memory", [&nav](){ nav.push(nav); } }, - { "Radio State", [&nav](){ nav.push(nav); } }, - { "SD Card", [&nav](){ nav.push(nav); } }, + { "Memory", [&nav](){ nav.push(); } }, + { "Radio State", [&nav](){ nav.push(); } }, + { "SD Card", [&nav](){ nav.push(); } }, { "RFFC5072", [&nav](){ nav.push( - nav, "RFFC5072", RegistersWidgetConfig { 31, 2, 4, 4 }, + "RFFC5072", RegistersWidgetConfig { 31, 2, 4, 4 }, [](const size_t register_number) { return radio::first_if.read(register_number); } ); } }, { "MAX2837", [&nav](){ nav.push( - nav, "MAX2837", RegistersWidgetConfig { 32, 2, 3, 4 }, + "MAX2837", RegistersWidgetConfig { 32, 2, 3, 4 }, [](const size_t register_number) { return radio::second_if.read(register_number); } ); } }, { "Si5351C", [&nav](){ nav.push( - nav, "Si5351C", RegistersWidgetConfig { 96, 2, 2, 8 }, + "Si5351C", RegistersWidgetConfig { 96, 2, 2, 8 }, [](const size_t register_number) { return portapack::clock_generator.read_register(register_number); } ); } }, - { "WM8731", [&nav](){ nav.push(nav); } }, + { "WM8731", [&nav](){ nav.push(); } }, } }); on_left = [&nav](){ nav.pop(); }; } diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 335b835b0..617bed0ec 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -92,13 +92,13 @@ void NavigationView::focus() { SystemMenuView::SystemMenuView(NavigationView& nav) { add_items<7>({ { - { "Receiver", [&nav](){ nav.push(nav, portapack::receiver_model); } }, - { "Capture", [&nav](){ nav.push(nav); } }, - { "Analyze", [&nav](){ nav.push(nav); } }, - { "Setup", [&nav](){ nav.push(nav); } }, - { "About", [&nav](){ nav.push(nav); } }, - { "Debug", [&nav](){ nav.push(nav); } }, - { "HackRF", [&nav](){ nav.push(nav); } }, + { "Receiver", [&nav](){ nav.push(portapack::receiver_model); } }, + { "Capture", [&nav](){ nav.push(); } }, + { "Analyze", [&nav](){ nav.push(); } }, + { "Setup", [&nav](){ nav.push(); } }, + { "About", [&nav](){ nav.push(); } }, + { "Debug", [&nav](){ nav.push(); } }, + { "HackRF", [&nav](){ nav.push(); } }, } }); } @@ -134,7 +134,7 @@ SystemView::SystemView( // Initial view. // TODO: Restore from non-volatile memory? - navigation_view.push(navigation_view); + navigation_view.push(); } Context& SystemView::context() const { diff --git a/firmware/application/ui_navigation.hpp b/firmware/application/ui_navigation.hpp index 94bc9f319..273af6568 100644 --- a/firmware/application/ui_navigation.hpp +++ b/firmware/application/ui_navigation.hpp @@ -59,7 +59,7 @@ public: template T* push(Args&&... args) { - return reinterpret_cast(push_view(std::unique_ptr(new T(std::forward(args)...)))); + return reinterpret_cast(push_view(std::unique_ptr(new T(*this, std::forward(args)...)))); } void pop(); diff --git a/firmware/application/ui_receiver.cpp b/firmware/application/ui_receiver.cpp index 176dee47b..a9264ea94 100644 --- a/firmware/application/ui_receiver.cpp +++ b/firmware/application/ui_receiver.cpp @@ -423,7 +423,7 @@ ReceiverView::ReceiverView( }; field_frequency.on_edit = [this, &nav]() { // TODO: Provide separate modal method/scheme? - auto new_view = nav.push(nav, this->receiver_model.tuning_frequency()); + auto new_view = nav.push(this->receiver_model.tuning_frequency()); new_view->on_changed = [this](rf::Frequency f) { this->on_tuning_frequency_changed(f); this->field_frequency.set_value(f); diff --git a/firmware/application/ui_setup.cpp b/firmware/application/ui_setup.cpp index e7a93f982..b61c87cbc 100644 --- a/firmware/application/ui_setup.cpp +++ b/firmware/application/ui_setup.cpp @@ -159,9 +159,9 @@ void AboutView::focus() { SetupMenuView::SetupMenuView(NavigationView& nav) { add_items<3>({ { - { "Date/Time", [&nav](){ nav.push(nav); } }, - { "Frequency Correction", [&nav](){ nav.push(nav); } }, - { "Touch", [&nav](){ nav.push(nav); } }, + { "Date/Time", [&nav](){ nav.push(); } }, + { "Frequency Correction", [&nav](){ nav.push(); } }, + { "Touch", [&nav](){ nav.push(); } }, } }); on_left = [&nav](){ nav.pop(); }; }