From e4b8622fedd7415e82a7df033376a03ff99fc518 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sat, 5 Mar 2022 22:58:57 +0100 Subject: [PATCH] More push pops again --- main/CMakeLists.txt | 4 +- main/displays/lockscreen.cpp | 3 +- main/displays/menus/batterymenu.cpp | 34 +++--- main/displays/menus/bmsmenu.cpp | 7 +- .../menus/{garagenmenu.cpp => garagemenu.cpp} | 9 +- .../menus/{garagenmenu.h => garagemenu.h} | 0 main/displays/menus/graphsmenu.cpp | 110 +++++++++--------- main/displays/menus/greenpassmenu.cpp | 13 ++- main/displays/menus/mainmenu.cpp | 2 +- main/displays/menus/mosfetsmenu.cpp | 7 +- main/displays/menus/otamenu.cpp | 16 +-- main/displays/menus/selectbatterytypemenu.cpp | 71 +++++++++++ .../menus/selectbuildserverbranch.cpp | 11 +- main/displays/menus/selectbuildservermenu.cpp | 7 +- main/displays/menus/selectotabuildmenu.cpp | 18 ++- main/displays/menus/settingsmenu.cpp | 39 ++++--- main/displays/powersupplydisplay.cpp | 4 +- main/displays/updatedisplay.cpp | 3 +- 18 files changed, 220 insertions(+), 138 deletions(-) rename main/displays/menus/{garagenmenu.cpp => garagemenu.cpp} (88%) rename main/displays/menus/{garagenmenu.h => garagemenu.h} (100%) create mode 100644 main/displays/menus/selectbatterytypemenu.cpp diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 7845ddb..e420d1d 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -103,7 +103,7 @@ set(headers displays/menus/featureflagsmenu.h displays/menus/feedbackdebugmenu.h displays/menus/gametrakmodesettingsmenu.h - displays/menus/garagenmenu.h + displays/menus/garagemenu.h displays/menus/graphsmenu.h displays/menus/greenpassmenu.h displays/menus/handbremssettingsmenu.h @@ -340,7 +340,7 @@ set(sources displays/menus/featureflagsmenu.cpp displays/menus/feedbackdebugmenu.cpp displays/menus/gametrakmodesettingsmenu.cpp - displays/menus/garagenmenu.cpp + displays/menus/garagemenu.cpp displays/menus/graphsmenu.cpp displays/menus/greenpassmenu.cpp displays/menus/handbremssettingsmenu.cpp diff --git a/main/displays/lockscreen.cpp b/main/displays/lockscreen.cpp index 618286f..f3af2a6 100644 --- a/main/displays/lockscreen.cpp +++ b/main/displays/lockscreen.cpp @@ -10,7 +10,6 @@ // local includes #include "globals.h" #include "utils.h" -#include "displays/menus/mainmenu.h" #include "displays/potiscalibratedisplay.h" #include "bobbybuttons.h" @@ -109,7 +108,7 @@ void Lockscreen::redraw() if (!gas || !brems || *gas > 200.f || *brems > 200.f) espgui::switchScreen(true); else - espgui::switchScreen(); + espgui::popScreen(); #ifdef LOCKSCREEN_PLUGIN #include LOCKSCREEN_PLUGIN LOCKSCREEN_PLUGIN_FIXES_1 diff --git a/main/displays/menus/batterymenu.cpp b/main/displays/menus/batterymenu.cpp index f82d848..b567396 100644 --- a/main/displays/menus/batterymenu.cpp +++ b/main/displays/menus/batterymenu.cpp @@ -4,7 +4,8 @@ #include #include #include -#include +#include +#include #include #include #include @@ -12,6 +13,11 @@ #include // Local includes +#include "utils.h" +#include "icons/settings.h" +#include "battery.h" +#include "displays/bobbychangevaluedisplay.h" +#include "displays/calibratevoltagedisplay.h" #include "accessors/settingsaccessors.h" #include "battery.h" #include "displays/batterygraphdisplay.h" @@ -50,24 +56,24 @@ using BatteryCellSeriesChangeScreen = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, BatterySeriesCellsAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using BatteryCellParallelChangeScreen = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, BatteryParallelCellsAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using BatteryWHperKMChangeScreen = espgui::makeComponent< BobbyChangeValueDisplay, espgui::StaticText, BatteryWHperKMAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; } // namespace @@ -77,15 +83,15 @@ BatteryMenu::BatteryMenu() { constructMenuItem>(); constructMenuItem>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); constructMenuItem>(&configs.battery.cellType); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::graph>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::graph>>>(); constructMenuItem>(); constructMenuItem>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::settings>>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::settings>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } std::string BatteryMenu::text() const @@ -129,5 +135,5 @@ void BatteryMenu::redraw() void BatteryMenu::back() { - espgui::switchScreen(); + espgui::popScreen(); } diff --git a/main/displays/menus/bmsmenu.cpp b/main/displays/menus/bmsmenu.cpp index 24ad1ba..d0c16a1 100644 --- a/main/displays/menus/bmsmenu.cpp +++ b/main/displays/menus/bmsmenu.cpp @@ -10,10 +10,9 @@ #include "actions/bmsturnoffchargeaction.h" #include "actions/bmsturnondischargeaction.h" #include "actions/bmsturnoffdischargeaction.h" -#include "actions/switchscreenaction.h" +#include "actions/popscreenaction.h" #include "bluetoothtexthelpers.h" #include "icons/back.h" -#include "displays/menus/mainmenu.h" using namespace espgui; using namespace bluetoothtexthelpers; @@ -27,11 +26,11 @@ BmsMenu::BmsMenu() constructMenuItem, BmsTurnOffChargeAction>>(); constructMenuItem, BmsTurnOnDischargeAction>>(); constructMenuItem, BmsTurnOffDischargeAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } void BmsMenu::back() { - switchSreen(); + popSreen(); } #endif diff --git a/main/displays/menus/garagenmenu.cpp b/main/displays/menus/garagemenu.cpp similarity index 88% rename from main/displays/menus/garagenmenu.cpp rename to main/displays/menus/garagemenu.cpp index c9dde7a..03a285b 100644 --- a/main/displays/menus/garagenmenu.cpp +++ b/main/displays/menus/garagemenu.cpp @@ -1,4 +1,4 @@ -#include "garagenmenu.h" +#include "garagemenu.h" // 3rd party libs #include @@ -8,8 +8,7 @@ #include // local includes -#include "actions/switchscreenaction.h" -#include "displays/menus/mainmenu.h" +#include "actions/popscreenaction.h" #include "espnowfunctions.h" #include "globals.h" #include "newsettings.h" @@ -42,7 +41,7 @@ GarageMenu::GarageMenu() menuitem.setTitle(wirelessDoor.doorId.value); } - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } std::string GarageMenu::text() const @@ -52,7 +51,7 @@ std::string GarageMenu::text() const void GarageMenu::back() { - espgui::switchScreen(); + espgui::popScreen(); } namespace { diff --git a/main/displays/menus/garagenmenu.h b/main/displays/menus/garagemenu.h similarity index 100% rename from main/displays/menus/garagenmenu.h rename to main/displays/menus/garagemenu.h diff --git a/main/displays/menus/graphsmenu.cpp b/main/displays/menus/graphsmenu.cpp index 871d28c..e6c805f 100644 --- a/main/displays/menus/graphsmenu.cpp +++ b/main/displays/menus/graphsmenu.cpp @@ -1,7 +1,8 @@ #include "graphsmenu.h" // 3rdparty lib includes -#include "actions/switchscreenaction.h" +#include "actions/pushscreenaction.h" +#include "actions/popscreenaction.h" #include "icons/back.h" #include "graphdisplay.h" #include "splitgraphdisplay.h" @@ -11,7 +12,6 @@ #include "displays/bobbysplitgraphdisplay.h" #include "utils.h" #include "statistics.h" -#include "displays/menus/mainmenu.h" namespace { constexpr char TEXT_GRAPHS[] = "Graphs"; @@ -36,83 +36,83 @@ using GasGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using BremsGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using PotisGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<2>, espgui::StaticText, espgui::DualGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using PotisSplitGraphDisplay = espgui::makeComponent< BobbySplitGraphDisplay<1, 1>, espgui::StaticText, espgui::SingleTopGraphAccessor, espgui::SingleBottomGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using AvgSpeedGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using AvgSpeedKmhGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using SumCurrentGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using FrontVoltageGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using BackVoltageGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using VoltagesGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<2>, espgui::StaticText, espgui::DualGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using VoltagesSplitGraphDisplay = espgui::makeComponent< BobbySplitGraphDisplay<1, 1>, espgui::StaticText, espgui::SingleTopGraphAccessor, espgui::SingleBottomGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; #ifdef FEATURE_BMS @@ -120,29 +120,29 @@ using BmsVoltageGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using BmsCurrentGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using BmsPowerGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using SumCurrentsComparisonGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<2>, espgui::StaticText, DualGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; #endif @@ -157,42 +157,42 @@ using MotorCurrentsGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<4>, espgui::StaticText, MotorCurrentsStatistics, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; using RssiGraphDisplay = espgui::makeComponent< BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, - espgui::ConfirmActionInterface>, - espgui::BackActionInterface> + espgui::ConfirmActionInterface, + espgui::BackActionInterface >; } // namespace GraphsMenu::GraphsMenu() { using namespace espgui; - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); #ifdef FEATURE_BMS - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); #endif - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } std::string GraphsMenu::text() const @@ -202,5 +202,5 @@ std::string GraphsMenu::text() const void GraphsMenu::back() { - espgui::switchScreen(); + espgui::popScreen(); } diff --git a/main/displays/menus/greenpassmenu.cpp b/main/displays/menus/greenpassmenu.cpp index fe56317..db99cc3 100644 --- a/main/displays/menus/greenpassmenu.cpp +++ b/main/displays/menus/greenpassmenu.cpp @@ -6,13 +6,13 @@ // 3rdparty lib includes #include -#include "actions/switchscreenaction.h" +#include "actions/pushscreenaction.h" +#include "actions/popscreenaction.h" #include "actions/dummyaction.h" #include "icons/back.h" // local includes #include "actions/qraction.h" -#include "displays/menus/mainmenu.h" #include "displays/qrdisplay.h" #include "displays/qrimportdisplay.h" #include "qrimport.h" @@ -49,11 +49,11 @@ public: if (deleteMode) { qrimport::delete_qr_code(m_qrmenu.text); - espgui::switchScreen(); + espgui::popScreen(); } else { - espgui::switchScreen>(m_qrmenu.message); + espgui::pushScreen>(m_qrmenu.message); } } private: @@ -87,8 +87,9 @@ GreenPassMenu::GreenPassMenu() constructMenuItem, StaticText>>(std::move(nvs_key)); } } + constructMenuItem, BobbyCheckbox, DeleteModeAccessor>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } std::string GreenPassMenu::text() const @@ -98,5 +99,5 @@ std::string GreenPassMenu::text() const void GreenPassMenu::back() { - espgui::switchScreen(); + espgui::popScreen(); } diff --git a/main/displays/menus/mainmenu.cpp b/main/displays/menus/mainmenu.cpp index e029a78..067d334 100644 --- a/main/displays/menus/mainmenu.cpp +++ b/main/displays/menus/mainmenu.cpp @@ -22,7 +22,7 @@ #include "displays/menus/demosmenu.h" #include "displays/menus/greenpassmenu.h" #include "displays/lockscreen.h" -#include "displays/menus/garagenmenu.h" +#include "displays/menus/garagemenu.h" #include "displays/menus/otamenu.h" #include "displays/poweroffdisplay.h" #include "displays/menus/statisticsmenu.h" diff --git a/main/displays/menus/mosfetsmenu.cpp b/main/displays/menus/mosfetsmenu.cpp index 11b1c21..72ea7dd 100644 --- a/main/displays/menus/mosfetsmenu.cpp +++ b/main/displays/menus/mosfetsmenu.cpp @@ -3,11 +3,10 @@ #ifdef FEATURE_MOSFETS // 3rdparty lib includes #include "accessorinterface.h" -#include "actions/switchscreenaction.h" +#include "actions/popscreenaction.h" #include "icons/back.h" // local includes -#include "displays/menus/mainmenu.h" #include "bobbycheckbox.h" #include "types.h" @@ -37,7 +36,7 @@ MosfetsMenu::MosfetsMenu() constructMenuItem, BobbyCheckbox, Mosfet0Accessor>>(); constructMenuItem, BobbyCheckbox, Mosfet1Accessor>>(); constructMenuItem, BobbyCheckbox, Mosfet2Accessor>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } std::string MosfetsMenu::text() const @@ -47,7 +46,7 @@ std::string MosfetsMenu::text() const void MosfetsMenu::back() { - espgui::switchScreen(); + espgui::popScreen(); } #endif diff --git a/main/displays/menus/otamenu.cpp b/main/displays/menus/otamenu.cpp index 64dceb3..cdd5088 100644 --- a/main/displays/menus/otamenu.cpp +++ b/main/displays/menus/otamenu.cpp @@ -3,7 +3,8 @@ // 3rdparty lib includes #include "actioninterface.h" #include "actions/dummyaction.h" -#include "actions/switchscreenaction.h" +#include "actions/pushscreenaction.h" +#include "actions/popscreenaction.h" // local includes #include "icons/back.h" @@ -12,7 +13,6 @@ #include "displays/menus/selectotabuildmenu.h" #include "displays/menus/selectbuildserverbranch.h" #include "displays/menus/selectbuildservermenu.h" -#include "displays/menus/mainmenu.h" #include "displays/updatedisplay.h" namespace { @@ -27,11 +27,11 @@ constexpr char TEXT_BACK[] = "Back"; OtaMenu::OtaMenu() { using namespace espgui; - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::presets>>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::update>>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::presets>>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::update>>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } std::string OtaMenu::text() const @@ -41,5 +41,5 @@ std::string OtaMenu::text() const void OtaMenu::back() { - espgui::switchScreen(); + espgui::popScreen(); } diff --git a/main/displays/menus/selectbatterytypemenu.cpp b/main/displays/menus/selectbatterytypemenu.cpp new file mode 100644 index 0000000..7bba839 --- /dev/null +++ b/main/displays/menus/selectbatterytypemenu.cpp @@ -0,0 +1,71 @@ +#include "selectbatterytypemenu.h" + +// 3rdparty lib includes +#include +#include +#include +#include +#include + +// local includes +#include "battery.h" +#include "newsettings.h" +#include "utils.h" +#include "displays/menus/batterymenu.h" +#include "batterymenu.h" +#include "displays/menus/mainmenu.h" + +namespace { +constexpr char TEXT_CELL_SERIES[] = "Cells (Series)"; +constexpr char TEXT_CELL_PARALLEL[] = "Cells (Parallel)"; +constexpr char TEXT_SELECT_CELL_TYPE[] = "Select Cell Type"; +constexpr char TEXT_CELL_TYPE[] = "Cell Type"; +constexpr char TEXT_BATTERY_CALIBRATE[] = "Calibrate Voltages"; +constexpr char TEXT_BATTERY_TYPE_22P[] = "22P cells"; +constexpr char TEXT_BATTERY_TYPE_HG2[] = "HG2 cells"; +constexpr char TEXT_BATTERY_TYPE_MH1[] = "MH1 cells"; +constexpr char TEXT_BATTERY_TYPE_VTC5[] = "VTC5 cells"; +constexpr char TEXT_BATTERY_TYPE_BAK_25R[] = "BAK / 25R cells"; +constexpr char TEXT_BATTERY_WHKM[] = "Wh per km"; +constexpr char TEXT_BATTERY_APPLYCALIB[] = "Apply calibration"; +constexpr char TEXT_VOLTAGECALIBRATION_RESET[] = "Reset calibration"; +constexpr char TEXT_BACK[] = "Back"; + +class CurrentBatteryTypeText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return getBatteryCellTypeString(); + } +}; + +template +class BatterySelectTypeAction : public virtual espgui::ActionInterface +{ +public: + void triggered() override { configs.write_config(configs.battery.cellType, uint8_t(T)); } +}; +} // namespace + +BatteryTypeMenu::BatteryTypeMenu() +{ + using namespace espgui; + constructMenuItem>(); + constructMenuItem, BatterySelectTypeAction>>(); + constructMenuItem, BatterySelectTypeAction>>(); + constructMenuItem, BatterySelectTypeAction>>(); + constructMenuItem, BatterySelectTypeAction>>(); + constructMenuItem, BatterySelectTypeAction>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +std::string BatteryTypeMenu::text() const +{ + return TEXT_SELECT_CELL_TYPE; +} + +void BatteryTypeMenu::back() +{ + espgui::popScreen(); +} diff --git a/main/displays/menus/selectbuildserverbranch.cpp b/main/displays/menus/selectbuildserverbranch.cpp index f7f5b4c..7409e5c 100644 --- a/main/displays/menus/selectbuildserverbranch.cpp +++ b/main/displays/menus/selectbuildserverbranch.cpp @@ -2,6 +2,9 @@ // 3rd party includes #include +#include "actions/dummyaction.h" +#include "actions/popscreenaction.h" +#include "icons/back.h" // local includes #include "actions/dummyaction.h" @@ -10,6 +13,8 @@ #include "buildserver.h" #include "displays/menus/otamenu.h" #include "icons/back.h" +#include "buildserver.h" +#include "globals.h" #include "icons/reboot.h" #include "newsettings.h" @@ -85,7 +90,7 @@ SelectBuildserverBranchMenu::SelectBuildserverBranchMenu() #define ERR_MESSAGE(text) \ constructMenuItem, DefaultFont, StaticColor, DummyAction>>(); \ - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); \ + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); \ return; if (count_available_buildserver() < 1) @@ -144,12 +149,12 @@ void SelectBuildserverBranchMenu::update() constructMenuItem>(); constructMenuItem, ClearBranchAction, StaticMenuItemIcon<&bobbyicons::reboot>>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } Base::update(); } void SelectBuildserverBranchMenu::back() { - espgui::switchScreen(); + espgui::popScreen(); } diff --git a/main/displays/menus/selectbuildservermenu.cpp b/main/displays/menus/selectbuildservermenu.cpp index c56be87..9a9cf9b 100644 --- a/main/displays/menus/selectbuildservermenu.cpp +++ b/main/displays/menus/selectbuildservermenu.cpp @@ -4,14 +4,13 @@ #include // 3rdparty lib includes -#include +#include #include #include #include // local includes #include "buildserver.h" -#include "displays/menus/otamenu.h" #include "utils.h" #include "newsettings.h" @@ -69,7 +68,7 @@ SelectBuildServerMenu::SelectBuildServerMenu() constructMenuItem, DefaultFont, StaticColor, DummyAction>>(); } - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } std::string SelectBuildServerMenu::text() const @@ -79,5 +78,5 @@ std::string SelectBuildServerMenu::text() const void SelectBuildServerMenu::back() { - espgui::switchScreen(); + espgui::popScreen(); } diff --git a/main/displays/menus/selectotabuildmenu.cpp b/main/displays/menus/selectotabuildmenu.cpp index dd3b0be..3142a65 100644 --- a/main/displays/menus/selectotabuildmenu.cpp +++ b/main/displays/menus/selectotabuildmenu.cpp @@ -4,6 +4,9 @@ #include #include "esp_log.h" #include "fmt/core.h" +#include "actions/popscreenaction.h" +#include "actions/dummyaction.h" +#include "icons/back.h" // local includes #include "actions/dummyaction.h" @@ -12,6 +15,9 @@ #include "buildserver.h" #include "displays/menus/otamenu.h" #include "icons/back.h" +#include "buildserver.h" +#include "utils.h" +#include "globals.h" #include "newsettings.h" #define MESSAGE(text) constructMenuItem, DefaultFont, StaticColor, DummyAction>>() @@ -58,12 +64,12 @@ SelectBuildMenu::SelectBuildMenu() if (buildserver::count_available_buildserver() < 1) { MESSAGE(TEXT_OTA_NOBUILDSERVERAVAILABLE); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } else if (configs.otaServerUrl.value.empty()) { MESSAGE(TEXT_OTA_NOBUILDSERVERSELECTED); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } else { @@ -71,7 +77,7 @@ SelectBuildMenu::SelectBuildMenu() if (staStatus != wifi_stack::WiFiStaStatus::CONNECTED) { MESSAGE(TEXT_OTA_NOCONNECTION); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } else { @@ -84,7 +90,7 @@ SelectBuildMenu::SelectBuildMenu() auto hash = filename.substr(0, filename.length() - 4); menuitem.setHash(hash); menuitem.setUrl(serverUrl); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } else { @@ -135,10 +141,10 @@ void SelectBuildMenu::buildMenuFromJson() menuitem.setHash(hash); menuitem.setUrl(fmt::format(url_for_hashes, hash)); } - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } void SelectBuildMenu::back() { - switchScreen(); + popScreen(); } diff --git a/main/displays/menus/settingsmenu.cpp b/main/displays/menus/settingsmenu.cpp index b742e87..a527c16 100644 --- a/main/displays/menus/settingsmenu.cpp +++ b/main/displays/menus/settingsmenu.cpp @@ -4,7 +4,8 @@ #include // 3rdparty lib includes -#include "actions/switchscreenaction.h" +#include "actions/pushscreenaction.h" +#include "actions/popscreenaction.h" #include "icons/back.h" // local includes @@ -81,39 +82,39 @@ SettingsMenu::SettingsMenu() constructMenuItem, BobbyCheckbox, BacklightAccessor>>(); #endif if (!simplified) - constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, PushScreenAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::wifi>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::wifi>>>(); if (configs.feature.esp_now.isEnabled.value) - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::wifi>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::wifi>>>(); #ifdef FEATURE_BLUETOOTH - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::bluetooth>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::bluetooth>>>(); #endif if (configs.feature.ble.isEnabled.value) - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::bluetooth>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::bluetooth>>>(); if (configs.feature.cloud.isEnabled.value) - constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, PushScreenAction>>(); if (configs.feature.udpcloud.isEnabled.value) - constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, PushScreenAction>>(); if (configs.feature.ota.isEnabled.value) - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::update>>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::time>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::update>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::time>>>(); if (!simplified) { - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::hardware>>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::hardware>>>(); + constructMenuItem, PushScreenAction>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::hardware>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::hardware>>>(); } - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::demos>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::demos>>>(); //#if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS) // constructMenuItem, BobbyCheckbox, AutoConnectBmsAccessor>>(); //#endif - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::buzzer>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::buzzer>>>(); constructMenuItem, BobbyCheckbox, FrontLedAccessor>>(); constructMenuItem, BobbyCheckbox, BackLedAccessor>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::demos>>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&bobbyicons::info>>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::demos>>>(); + constructMenuItem, PushScreenAction, StaticMenuItemIcon<&bobbyicons::info>>>(); + constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } std::string SettingsMenu::text() const @@ -123,5 +124,5 @@ std::string SettingsMenu::text() const void SettingsMenu::back() { - switchScreen(); + popScreen(); } diff --git a/main/displays/powersupplydisplay.cpp b/main/displays/powersupplydisplay.cpp index 587f812..12f26a1 100644 --- a/main/displays/powersupplydisplay.cpp +++ b/main/displays/powersupplydisplay.cpp @@ -3,11 +3,9 @@ // 3rdparty lib includes #include #include -#include "actions/switchscreenaction.h" // local includes #include "globals.h" -#include "displays/menus/mainmenu.h" #if defined(FEATURE_CAN) && defined(FEATURE_POWERSUPPLY) void PowerSupplyDisplay::initScreen() @@ -42,7 +40,7 @@ void PowerSupplyDisplay::buttonPressed(espgui::Button button) using espgui::Button; case Button::Left: case Button::Right: - espgui::switchScreen(); + espgui::popScreen(); break; default:; } diff --git a/main/displays/updatedisplay.cpp b/main/displays/updatedisplay.cpp index 31a1b5c..db12db2 100644 --- a/main/displays/updatedisplay.cpp +++ b/main/displays/updatedisplay.cpp @@ -16,7 +16,6 @@ // local includes #include "globals.h" #include "ota.h" -#include "displays/menus/otamenu.h" #include "newsettings.h" void UpdateDisplay::initScreen() @@ -106,7 +105,7 @@ void UpdateDisplay::buttonPressed(espgui::Button button) { using espgui::Button; case Button::Left: - espgui::switchScreen(); + espgui::popScreen(); break; case Button::Right: if (const auto result = triggerOta(configs.otaUrl.value); !result)