diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index efe5a56..b6d02f0 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -215,7 +215,7 @@ set(headers webserver_settings.h webserver_stringsettings.h widgets/doubleprogressbar.h - widgets/menudisplaywithtime.h + displays/menudisplaywithtime.h wifi_bobbycar.h wifitexthelpers.h ) @@ -438,7 +438,7 @@ set(sources webserver_settings.cpp webserver_stringsettings.cpp widgets/doubleprogressbar.cpp - widgets/menudisplaywithtime.cpp + displays/menudisplaywithtime.cpp wifi_bobbycar.cpp wifitexthelpers.cpp ) diff --git a/main/displays/gametrakcalibratedisplay.h b/main/displays/gametrakcalibratedisplay.h index da5a2b1..690034a 100644 --- a/main/displays/gametrakcalibratedisplay.h +++ b/main/displays/gametrakcalibratedisplay.h @@ -1,20 +1,26 @@ #pragma once +// system includes #include #include -#include "display.h" -#include "actions/switchscreenaction.h" +// 3rdparty lib includes +#include +#include +#include + +// local includes +#include "bobbydisplay.h" #include "globals.h" #include "texts.h" -#include "widgets/label.h" -#include "widgets/progressbar.h" #include "modes/ignoreinputmode.h" namespace { #ifdef FEATURE_GAMETRAK -class GametrakCalibrateDisplay : public Display, public ConfirmActionInterface>, public BackActionInterface> +class GametrakCalibrateDisplay : public BobbyDisplay, public ConfirmActionInterface>, public BackActionInterface> { + using Base = BobbyDisplay; + public: void initScreen() override; void redraw() override; @@ -38,6 +44,8 @@ private: void GametrakCalibrateDisplay::initScreen() { + Base::initScreen(); + tft.fillScreen(TFT_BLACK); tft.setTextFont(4); tft.setTextColor(TFT_YELLOW); @@ -57,6 +65,8 @@ void GametrakCalibrateDisplay::initScreen() void GametrakCalibrateDisplay::redraw() { + Base::redraw(); + m_labels[0].redraw(fmt::format("{:.02f}", gametrakX)); m_labels[1].redraw(std::to_string(raw_gametrakX)); diff --git a/main/widgets/menudisplaywithtime.cpp b/main/displays/menudisplaywithtime.cpp similarity index 100% rename from main/widgets/menudisplaywithtime.cpp rename to main/displays/menudisplaywithtime.cpp diff --git a/main/widgets/menudisplaywithtime.h b/main/displays/menudisplaywithtime.h similarity index 100% rename from main/widgets/menudisplaywithtime.h rename to main/displays/menudisplaywithtime.h diff --git a/main/displays/menus/invertmenu.cpp b/main/displays/menus/invertmenu.cpp index 2e0351b..b49aea8 100644 --- a/main/displays/menus/invertmenu.cpp +++ b/main/displays/menus/invertmenu.cpp @@ -10,6 +10,7 @@ InvertMenu::InvertMenu() { + using namespace espgui; constructMenuItem, ToggleBoolAction, CheckboxIcon, FrontLeftInvertedAccessor>>(); constructMenuItem, ToggleBoolAction, CheckboxIcon, FrontRightInvertedAccessor>>(); constructMenuItem, ToggleBoolAction, CheckboxIcon, BackLeftInvertedAccessor>>(); @@ -20,5 +21,5 @@ InvertMenu::InvertMenu() void InvertMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/invertmenu.h b/main/displays/menus/invertmenu.h index 3fa160d..430b364 100644 --- a/main/displays/menus/invertmenu.h +++ b/main/displays/menus/invertmenu.h @@ -4,11 +4,9 @@ #include "displays/bobbymenudisplay.h" #include "texts.h" -using namespace espgui; - class InvertMenu : - public MenuDisplay, - public StaticText + public BobbyMenuDisplay, + public espgui::StaticText { public: InvertMenu(); diff --git a/main/displays/menus/larsmmodesettingsmenu.h b/main/displays/menus/larsmmodesettingsmenu.h index ce32de3..4bed219 100644 --- a/main/displays/menus/larsmmodesettingsmenu.h +++ b/main/displays/menus/larsmmodesettingsmenu.h @@ -7,7 +7,7 @@ #include "texts.h" class LarsmModeSettingsMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/ledstripmenu.h b/main/displays/menus/ledstripmenu.h index d6e6a62..5644ec7 100644 --- a/main/displays/menus/ledstripmenu.h +++ b/main/displays/menus/ledstripmenu.h @@ -1,9 +1,7 @@ #pragma once -// 3rdparty lib includes -#include "widgets/menudisplaywithtime.h" - // local includes +#include "displays/menudisplaywithtime.h" #include "texts.h" #ifdef FEATURE_LEDSTRIP diff --git a/main/displays/menus/ledstripselectanimationmenu.cpp b/main/displays/menus/ledstripselectanimationmenu.cpp index d3437b7..d553bff 100644 --- a/main/displays/menus/ledstripselectanimationmenu.cpp +++ b/main/displays/menus/ledstripselectanimationmenu.cpp @@ -10,9 +10,36 @@ using namespace espgui; - #ifdef FEATURE_LEDSTRIP -std::string currentSelectedAnimationText::text() const +namespace { + +class CurrentSelectedAnimationText : public virtual espgui::TextInterface +{ +public: + std::string text() const override; +}; + +} // namespace + +LedstripSelectAnimationMenu::LedstripSelectAnimationMenu() +{ + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem, LedStripSetAnimationAction>>(); + constructMenuItem, LedStripSetAnimationAction>>(); + constructMenuItem, LedStripSetAnimationAction>>(); + constructMenuItem, LedStripSetAnimationAction>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +void LedstripSelectAnimationMenu::back() +{ + switchScreen(); +} + +namespace { + +std::string CurrentSelectedAnimationText::text() const { switch (animation_type) { case LedstripAnimation::DefaultRainbow: @@ -28,19 +55,5 @@ std::string currentSelectedAnimationText::text() const } } -LedstripSelectAnimationMenu::LedstripSelectAnimationMenu() -{ - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem, LedStripSetAnimationAction>>(); - constructMenuItem, LedStripSetAnimationAction>>(); - constructMenuItem, LedStripSetAnimationAction>>(); - constructMenuItem, LedStripSetAnimationAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); -} - -void LedstripSelectAnimationMenu::back() -{ - switchScreen(); -} +} // namespace #endif diff --git a/main/displays/menus/ledstripselectanimationmenu.h b/main/displays/menus/ledstripselectanimationmenu.h index 5a08871..659532d 100644 --- a/main/displays/menus/ledstripselectanimationmenu.h +++ b/main/displays/menus/ledstripselectanimationmenu.h @@ -1,19 +1,13 @@ #pragma once // Local includes -#include "menudisplay.h" +#include "displays/bobbymenudisplay.h" #include "texts.h" #ifdef FEATURE_LEDSTRIP - -class currentSelectedAnimationText : public virtual espgui::TextInterface { -public: - std::string text() const override; -}; - class LedstripSelectAnimationMenu : - public espgui::MenuDisplay, - public espgui::StaticText + public BobbyMenuDisplay, + public espgui::StaticText { public: LedstripSelectAnimationMenu(); diff --git a/main/displays/menus/ledstripselectblinkmenu.h b/main/displays/menus/ledstripselectblinkmenu.h index 1819c14..ccfe0cf 100644 --- a/main/displays/menus/ledstripselectblinkmenu.h +++ b/main/displays/menus/ledstripselectblinkmenu.h @@ -1,7 +1,7 @@ #pragma once // Local includes -#include "menudisplay.h" +#include "displays/bobbymenudisplay.h" #include "texts.h" #include "ledstrip.h" #include "ledstripdefines.h" @@ -13,8 +13,8 @@ public: std::string text() const override; }; class LedstripSelectBlinkMenu : - public espgui::MenuDisplay, - public espgui::StaticText + public BobbyMenuDisplay, + public espgui::StaticText { public: LedstripSelectBlinkMenu(); diff --git a/main/displays/menus/ledstripselectotamode.h b/main/displays/menus/ledstripselectotamode.h index 02ffc51..f30238b 100644 --- a/main/displays/menus/ledstripselectotamode.h +++ b/main/displays/menus/ledstripselectotamode.h @@ -1,7 +1,7 @@ #pragma once // Local includes -#include "menudisplay.h" +#include "displays/bobbymenudisplay.h" #include "texts.h" #include "ledstrip.h" #include "globals.h" @@ -21,8 +21,8 @@ public: }; class ledstripOtaAnimationChangeMenu : - public espgui::MenuDisplay, - public espgui::StaticText + public BobbyMenuDisplay, + public espgui::StaticText { public: ledstripOtaAnimationChangeMenu(); diff --git a/main/displays/menus/limitssettingsmenu.h b/main/displays/menus/limitssettingsmenu.h index 25c0d63..129a216 100644 --- a/main/displays/menus/limitssettingsmenu.h +++ b/main/displays/menus/limitssettingsmenu.h @@ -1,13 +1,11 @@ #pragma once -// 3rdparty lib includes -#include "menudisplay.h" - // local includes +#include "displays/bobbymenudisplay.h" #include "texts.h" class LimitsSettingsMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/lockscreensettingsmenu.h b/main/displays/menus/lockscreensettingsmenu.h index 82cf322..70e2338 100644 --- a/main/displays/menus/lockscreensettingsmenu.h +++ b/main/displays/menus/lockscreensettingsmenu.h @@ -1,13 +1,11 @@ #pragma once -// 3rdparty lib includes -#include "menudisplay.h" - // local includes +#include "displays/bobbymenudisplay.h" #include "texts.h" class LockscreenSettingsMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/mainmenu.h b/main/displays/menus/mainmenu.h index 5499ca0..24feb16 100644 --- a/main/displays/menus/mainmenu.h +++ b/main/displays/menus/mainmenu.h @@ -5,7 +5,7 @@ // local includes #include "texts.h" -#include "widgets/menudisplaywithtime.h" +#include "displays/menudisplaywithtime.h" #ifdef MAINMENU_PLUGIN #include MAINMENU_PLUGIN #endif diff --git a/main/displays/menus/modessettingsmenu.h b/main/displays/menus/modessettingsmenu.h index ae07c74..94d3f56 100644 --- a/main/displays/menus/modessettingsmenu.h +++ b/main/displays/menus/modessettingsmenu.h @@ -1,13 +1,11 @@ #pragma once // local includes -#include "menudisplay.h" - -// local includes +#include "displays/bobbymenudisplay.h" #include "texts.h" class ModesSettingsMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/mosfetsmenu.h b/main/displays/menus/mosfetsmenu.h index ee1b88b..d142faa 100644 --- a/main/displays/menus/mosfetsmenu.h +++ b/main/displays/menus/mosfetsmenu.h @@ -1,8 +1,11 @@ #pragma once #ifdef FEATURE_MOSFETS -#include "menudisplay.h" +// 3rdparty lib includes #include "accessorinterface.h" + +// local includes +#include "displays/bobbymenudisplay.h" #include "texts.h" #include "types.h" @@ -19,7 +22,7 @@ using Mosfet1Accessor = GPIOAccessor; using Mosfet2Accessor = GPIOAccessor; class MosfetsMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/motorfeedbackdebugmenu.h b/main/displays/menus/motorfeedbackdebugmenu.h index d3d6a4a..80375c3 100644 --- a/main/displays/menus/motorfeedbackdebugmenu.h +++ b/main/displays/menus/motorfeedbackdebugmenu.h @@ -1,7 +1,7 @@ #pragma once // local includes -#include "menudisplay.h" +#include "displays/bobbymenudisplay.h" #include "utils.h" #include "menuitem.h" #include "actions/dummyaction.h" @@ -11,18 +11,17 @@ #include "debugtexthelpers.h" #include "debugcolorhelpers.h" -using namespace espgui; - -namespace { template class ColorInterface> class MotorFeedbackDebugMenu : - public MenuDisplay, - public StaticText, - public BackActionInterface> + public BobbyMenuDisplay, + public espgui::StaticText, + public espgui::BackActionInterface> { public: MotorFeedbackDebugMenu() { + using namespace espgui; + constructMenuItem, DummyAction>>(); //constructMenuItem, DummyAction>>(); constructMenuItem, DummyAction>>(); @@ -45,5 +44,3 @@ class FrontLeftMotorFeedbackDebugMenu : public MotorFeedbackDebugMenu {}; class BackLeftMotorFeedbackDebugMenu : public MotorFeedbackDebugMenu {}; class BackRightMotorFeedbackDebugMenu : public MotorFeedbackDebugMenu {}; - -} // namespace diff --git a/main/displays/menus/motorstatedebugmenu.h b/main/displays/menus/motorstatedebugmenu.h index ff591d5..bfa01da 100644 --- a/main/displays/menus/motorstatedebugmenu.h +++ b/main/displays/menus/motorstatedebugmenu.h @@ -1,27 +1,27 @@ #pragma once -// local includes -#include "menudisplay.h" -#include "utils.h" +// 3rdparty lib includes #include "menuitem.h" #include "actions/dummyaction.h" #include "actions/switchscreenaction.h" #include "icons/back.h" + +// local includes +#include "displays/bobbymenudisplay.h" +#include "utils.h" #include "texts.h" #include "debugtexthelpers.h" -using namespace espgui; - -namespace { template class MotorStateDebugMenu : - public MenuDisplay, - public StaticText, - public BackActionInterface> + public BobbyMenuDisplay, + public espgui::StaticText, + public espgui::BackActionInterface> { public: MotorStateDebugMenu() { + using namespace espgui; constructMenuItem>(); constructMenuItem>(); constructMenuItem>(); @@ -41,5 +41,3 @@ class FrontLeftMotorStateDebugMenu : public MotorStateDebugMenu {}; class BackLeftMotorStateDebugMenu : public MotorStateDebugMenu {}; class BackRightMotorStateDebugMenu : public MotorStateDebugMenu {}; - -} // namespace diff --git a/main/displays/menus/motortestmodesettingsmenu.h b/main/displays/menus/motortestmodesettingsmenu.h index 91fa62f..c4f664b 100644 --- a/main/displays/menus/motortestmodesettingsmenu.h +++ b/main/displays/menus/motortestmodesettingsmenu.h @@ -1,13 +1,11 @@ #pragma once -// 3rdparty lib includes - // local includes -#include "menudisplay.h" +#include "displays/bobbymenudisplay.h" #include "texts.h" class MotortestModeSettingsMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/otamenu.h b/main/displays/menus/otamenu.h index 1e07b27..fdf7e4e 100644 --- a/main/displays/menus/otamenu.h +++ b/main/displays/menus/otamenu.h @@ -1,13 +1,11 @@ #pragma once -// 3rdparty lib includes -#include "menudisplay.h" - // local includes +#include "displays/bobbymenudisplay.h" #include "texts.h" class OtaMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/presetsmenu.h b/main/displays/menus/presetsmenu.h index e78892e..c9f071d 100644 --- a/main/displays/menus/presetsmenu.h +++ b/main/displays/menus/presetsmenu.h @@ -1,14 +1,12 @@ #pragma once // local includes -#include "menudisplay.h" +#include "displays/bobbymenudisplay.h" #include "texts.h" -using namespace espgui; - class PresetsMenu : - public MenuDisplay, - public StaticText + public BobbyMenuDisplay, + public espgui::StaticText { public: PresetsMenu(); diff --git a/main/displays/menus/profilesmenu.h b/main/displays/menus/profilesmenu.h index 9956571..ce57d23 100644 --- a/main/displays/menus/profilesmenu.h +++ b/main/displays/menus/profilesmenu.h @@ -1,11 +1,11 @@ #pragma once // local includes -#include "menudisplay.h" +#include "displays/bobbymenudisplay.h" #include "texts.h" class ProfilesMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/selectbatterytypemenu.h b/main/displays/menus/selectbatterytypemenu.h index 00b9a56..6291f0b 100644 --- a/main/displays/menus/selectbatterytypemenu.h +++ b/main/displays/menus/selectbatterytypemenu.h @@ -1,19 +1,19 @@ #pragma once // 3rdparty lib includes -#include #include #include #include #include // Local includes +#include "displays/bobbymenudisplay.h" #include "texts.h" #include "batterymenu.h" #include "displays/menus/mainmenu.h" class BatteryTypeMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/selectbuildserverbranch.cpp b/main/displays/menus/selectbuildserverbranch.cpp index eaf846c..e1c5679 100644 --- a/main/displays/menus/selectbuildserverbranch.cpp +++ b/main/displays/menus/selectbuildserverbranch.cpp @@ -21,9 +21,34 @@ using namespace espgui; using namespace buildserver; -using namespace SelectBuildServerBranch; -namespace SelectBuildServerBranch { +namespace { +class CurrentBranch : public virtual espgui::TextInterface +{ +public: + std::string text() const override; +}; + +class BranchMenuItem : public espgui::MenuItem +{ +public: + std::string text() const override; + void setName(std::string &&name); + void setName(const std::string &name); + + void triggered() override; +private: + std::string m_name; +}; + +class ClearBranchAction : public virtual espgui::ActionInterface +{ +public: + void triggered() override; +}; +} + +namespace { std::string CurrentBranch::text() const { return stringSettings.otaServerBranch.empty() ? "All builds" : stringSettings.otaServerBranch; @@ -59,8 +84,6 @@ void ClearBranchAction::triggered() SelectBuildserverBranchMenu::SelectBuildserverBranchMenu() { - using namespace SelectBuildServerBranch; - if (count_available_buildserver() < 1) { ERR_MESSAGE(TEXT_OTA_NOBUILDSERVERAVAILABLE); // E:No server saved. diff --git a/main/displays/menus/selectbuildserverbranch.h b/main/displays/menus/selectbuildserverbranch.h index d671846..52b7f9a 100644 --- a/main/displays/menus/selectbuildserverbranch.h +++ b/main/displays/menus/selectbuildserverbranch.h @@ -1,43 +1,19 @@ #pragma once -// 3rd party includes -#include -#include +// local includes +#include "displays/bobbymenudisplay.h" +#include "texts.h" + #ifdef FEATURE_OTA -namespace SelectBuildServerBranch { - class CurrentBranch : public virtual espgui::TextInterface - { - public: - std::string text() const override; - }; - - class BranchMenuItem : public espgui::MenuItem - { - public: - std::string text() const override; - void setName(std::string &&name); - void setName(const std::string &name); - - void triggered() override; - private: - std::string m_name; - }; - - class ClearBranchAction : public virtual espgui::ActionInterface - { - public: - void triggered() override; - }; -} - class SelectBuildserverBranchMenu : - public espgui::MenuDisplay, - public espgui::StaticText + public BobbyMenuDisplay, + public espgui::StaticText { using Base = espgui::MenuDisplay; public: SelectBuildserverBranchMenu(); + void buildMenuRequestError(std::string error); void update() override; void back() override; diff --git a/main/displays/menus/selectbuildservermenu.cpp b/main/displays/menus/selectbuildservermenu.cpp index deff708..0f663bc 100644 --- a/main/displays/menus/selectbuildservermenu.cpp +++ b/main/displays/menus/selectbuildservermenu.cpp @@ -6,9 +6,10 @@ // 3rdparty lib includes #include #include +#include +#include // local includes -#include "actions/dummyaction.h" #include "buildserver.h" #include "displays/menus/otamenu.h" #include "utils.h" diff --git a/main/displays/menus/selectbuildservermenu.h b/main/displays/menus/selectbuildservermenu.h index 353b73a..0ce6ac3 100644 --- a/main/displays/menus/selectbuildservermenu.h +++ b/main/displays/menus/selectbuildservermenu.h @@ -1,16 +1,15 @@ #pragma once // 3rdparty lib includes -#include -#include // local includes +#include "displays/bobbymenudisplay.h" #include "texts.h" #ifdef FEATURE_OTA class SelectBuildServerMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/selectmodemenu.h b/main/displays/menus/selectmodemenu.h index 1536a86..bd2071b 100644 --- a/main/displays/menus/selectmodemenu.h +++ b/main/displays/menus/selectmodemenu.h @@ -1,16 +1,14 @@ #pragma once -// 3rdparty lib includes -#include "menudisplay.h" - // local includes +#include "displays/bobbymenudisplay.h" #include "texts.h" class SelectModeMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { - using Base = espgui::MenuDisplay; + using Base = BobbyMenuDisplay; public: SelectModeMenu(); diff --git a/main/displays/menus/selectotabuildmenu.h b/main/displays/menus/selectotabuildmenu.h index 66b9fdd..23d23f2 100644 --- a/main/displays/menus/selectotabuildmenu.h +++ b/main/displays/menus/selectotabuildmenu.h @@ -1,20 +1,23 @@ #pragma once // local includes -#include "menudisplay.h" +#include "displays/bobbymenudisplay.h" #include "texts.h" #ifdef FEATURE_OTA class SelectBuildMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { - using Base = MenuDisplay; + using Base = BobbyMenuDisplay; + public: SelectBuildMenu(); void update() override; void back() override; + +private: void buildMenuFromJson(); void buildMenuRequestError(std::string error); }; diff --git a/main/displays/menus/settingsmenu.h b/main/displays/menus/settingsmenu.h index 43b3c31..7549144 100644 --- a/main/displays/menus/settingsmenu.h +++ b/main/displays/menus/settingsmenu.h @@ -1,9 +1,7 @@ #pragma once -// 3rdparty lib includes -#include "widgets/menudisplaywithtime.h" - // local includes +#include "displays/menudisplaywithtime.h" #include "texts.h" class SettingsMenu : diff --git a/main/displays/menus/stationwifisettingsmenu.h b/main/displays/menus/stationwifisettingsmenu.h index 84cc9ea..d67a337 100644 --- a/main/displays/menus/stationwifisettingsmenu.h +++ b/main/displays/menus/stationwifisettingsmenu.h @@ -1,13 +1,11 @@ #pragma once -// 3rdparty lib includes -#include "menudisplay.h" - // local includes +#include "displays/bobbymenudisplay.h" #include "texts.h" class StationWifiSettingsMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/statisticsmenu.h b/main/displays/menus/statisticsmenu.h index b03b5ca..be81dab 100644 --- a/main/displays/menus/statisticsmenu.h +++ b/main/displays/menus/statisticsmenu.h @@ -1,10 +1,10 @@ #pragma once // 3rdparty lib includes -#include "widgets/menudisplaywithtime.h" #include // Local includes +#include "displays/menudisplaywithtime.h" #include "texts.h" class StatisticsMenu : diff --git a/main/displays/menus/taskmanagermenu.h b/main/displays/menus/taskmanagermenu.h index 37c24d8..e1d8b84 100644 --- a/main/displays/menus/taskmanagermenu.h +++ b/main/displays/menus/taskmanagermenu.h @@ -1,11 +1,11 @@ #pragma once // local includes -#include "menudisplay.h" +#include "displays/bobbymenudisplay.h" #include "texts.h" class TaskmanagerMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/tempomatmodesettingsmenu.h b/main/displays/menus/tempomatmodesettingsmenu.h index e10cdaa..6d02a92 100644 --- a/main/displays/menus/tempomatmodesettingsmenu.h +++ b/main/displays/menus/tempomatmodesettingsmenu.h @@ -1,13 +1,11 @@ #pragma once -// 3rdparty lib includes -#include "menudisplay.h" - // local includes +#include "displays/bobbymenudisplay.h" #include "texts.h" class TempomatModeSettingsMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/timersmenu.h b/main/displays/menus/timersmenu.h index a7773fa..8b3d156 100644 --- a/main/displays/menus/timersmenu.h +++ b/main/displays/menus/timersmenu.h @@ -1,14 +1,12 @@ #pragma once // local includes -#include "menudisplay.h" +#include "displays/bobbymenudisplay.h" #include "texts.h" -using namespace espgui; - class TimersMenu : - public MenuDisplay, - public StaticText + public BobbyMenuDisplay, + public espgui::StaticText { public: TimersMenu(); diff --git a/main/displays/menus/timesettingsmenu.h b/main/displays/menus/timesettingsmenu.h index 1ea7eb7..91aa018 100644 --- a/main/displays/menus/timesettingsmenu.h +++ b/main/displays/menus/timesettingsmenu.h @@ -1,9 +1,7 @@ #pragma once -// 3rdparty lib includes -#include "widgets/menudisplaywithtime.h" - // local includes +#include "displays/menudisplaywithtime.h" #include "texts.h" class TimeSettingsMenu : diff --git a/main/displays/menus/udpcloudsettingsmenu.h b/main/displays/menus/udpcloudsettingsmenu.h index 288a3a6..6f9adb8 100644 --- a/main/displays/menus/udpcloudsettingsmenu.h +++ b/main/displays/menus/udpcloudsettingsmenu.h @@ -1,14 +1,12 @@ #pragma once -// 3rdparty lib includes -#include "menudisplay.h" - // local includes +#include "displays/bobbymenudisplay.h" #include "texts.h" #ifdef FEATURE_UDPCLOUD class UdpCloudSettingsMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/menus/wifiscanmenu.cpp b/main/displays/menus/wifiscanmenu.cpp index 8108629..b0ff5f5 100644 --- a/main/displays/menus/wifiscanmenu.cpp +++ b/main/displays/menus/wifiscanmenu.cpp @@ -114,6 +114,8 @@ void WifiScanMenu::update() void WifiScanMenu::stop() { + Base::stop(); + wifi_stack::delete_scan_result(); } diff --git a/main/displays/menus/wifiscanmenu.h b/main/displays/menus/wifiscanmenu.h index 4e3e0a6..33cbcd9 100644 --- a/main/displays/menus/wifiscanmenu.h +++ b/main/displays/menus/wifiscanmenu.h @@ -1,26 +1,31 @@ #pragma once -// local includes +// 3rdparty lib includes #include "actions/dummyaction.h" #include "actions/switchscreenaction.h" + +// local includes +#include "displays/bobbymenudisplay.h" #include "displays/menus/stationwifisettingsmenu.h" -#include "menudisplay.h" #include "texts.h" #include "utils.h" -using namespace std::chrono_literals; -using namespace espgui; - -class WifiScanMenu : public MenuDisplay, public BackActionInterface> +class WifiScanMenu : + public BobbyMenuDisplay, + public espgui::BackActionInterface> { - using Base = MenuDisplay; + using Base = BobbyMenuDisplay; + public: WifiScanMenu(); + std::string text() const override; + void start() override; void update() override; void stop() override; void back() override; + private: std::optional m_lastScanComplete; std::vector>> m_reusableItems; diff --git a/main/displays/menus/wifisettingsmenu.h b/main/displays/menus/wifisettingsmenu.h index c9350d3..6cec6b1 100644 --- a/main/displays/menus/wifisettingsmenu.h +++ b/main/displays/menus/wifisettingsmenu.h @@ -1,13 +1,11 @@ #pragma once -// 3rdparty lib includes -#include "menudisplay.h" - // local includes +#include "displays/bobbymenudisplay.h" #include "texts.h" class WifiSettingsMenu : - public espgui::MenuDisplay, + public BobbyMenuDisplay, public espgui::StaticText { public: diff --git a/main/displays/popups/alertdisplay.cpp b/main/displays/popups/alertdisplay.cpp index f89a971..aa68238 100644 --- a/main/displays/popups/alertdisplay.cpp +++ b/main/displays/popups/alertdisplay.cpp @@ -17,14 +17,19 @@ void AlertDisplay::initScreen() initOverlay(); } -void AlertDisplay::confirm() +void AlertDisplay::buttonPressed(espgui::Button button) { - closeOverlay(); -} + Base::buttonPressed(button); -void AlertDisplay::back() -{ - closeOverlay(); + switch (button) + { + using espgui::Button; + case Button::Left: + case Button::Right: + closeOverlay(); + break; + default:; + } } void AlertDisplay::initOverlay() diff --git a/main/displays/popups/alertdisplay.h b/main/displays/popups/alertdisplay.h index cd4a77b..dbb30a2 100644 --- a/main/displays/popups/alertdisplay.h +++ b/main/displays/popups/alertdisplay.h @@ -3,11 +3,13 @@ // system includes #include -// 3rdparty lib includes -#include +// local includes +#include "displays/bobbydisplay.h" -class AlertDisplay : public espgui::Display +class AlertDisplay : public BobbyDisplay { + using Base = BobbyDisplay; + public: AlertDisplay(std::string &&message, std::unique_ptr &&lastDisplay); @@ -16,8 +18,8 @@ public: //void update() override; //void redraw() override; //void stop() override; - void confirm() override; - void back() override; + + void buttonPressed(espgui::Button button) override; void initOverlay(); void closeOverlay(); diff --git a/main/displays/powersupplydisplay.h b/main/displays/powersupplydisplay.h index 33efc87..006c1f5 100644 --- a/main/displays/powersupplydisplay.h +++ b/main/displays/powersupplydisplay.h @@ -15,7 +15,7 @@ public: void initScreen() override; void redraw() override; - void buttonPressed(espgui::Button button) override + void buttonPressed(espgui::Button button) override; espgui::Label m_voltageLabel{120, 50}; espgui::Label m_currentLabel{120, 75};