From 55fe233ee7b6916fa2d8fc2e33351856987d5ce7 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Tue, 2 Nov 2021 14:18:28 +0100 Subject: [PATCH] Again more refactorings --- main/cloudtexthelpers.cpp | 30 ++++ main/cloudtexthelpers.h | 37 ++--- main/displays/garagedisplay.h | 4 - main/displays/lockscreen.h | 4 - main/displays/menus/bmsmenu.h | 5 - main/displays/menus/cloudsettingsmenu.cpp | 72 +++++++++ main/displays/menus/cloudsettingsmenu.h | 69 +------- main/displays/menus/debugmenu.h | 20 --- .../menus/defaultmodesettingsmenu.cpp | 144 +++++++++++++++++ main/displays/menus/defaultmodesettingsmenu.h | 150 +----------------- main/displays/menus/demosmenu.h | 9 -- .../displays/menus/gametrakmodesettingsmenu.h | 5 - main/displays/menus/graphsmenu.h | 6 - main/displays/menus/larsmmodesettingsmenu.h | 6 - main/displays/menus/modessettingsmenu.cpp | 31 ++++ main/displays/menus/modessettingsmenu.h | 27 +--- main/displays/menus/mosfetsmenu.h | 5 - main/displays/menus/presetsmenu.h | 5 - main/displays/menus/profilesmenu.h | 5 - main/displays/menus/selectmodemenu.h | 5 - .../menus/tempomatmodesettingsmenu.cpp | 48 ++++++ .../displays/menus/tempomatmodesettingsmenu.h | 54 +------ main/displays/menus/timesettingsmenu.cpp | 103 ++++++++++++ main/displays/menus/timesettingsmenu.h | 84 +--------- main/displays/poweroffdisplay.h | 4 - 25 files changed, 474 insertions(+), 458 deletions(-) diff --git a/main/cloudtexthelpers.cpp b/main/cloudtexthelpers.cpp index e69de29..a103caa 100644 --- a/main/cloudtexthelpers.cpp +++ b/main/cloudtexthelpers.cpp @@ -0,0 +1,30 @@ +#include "cloudtexthelpers.h" + +// 3rdparty lib includes +#include + +// local includes +#include "cloud.h" + +#ifdef FEATURE_CLOUD +std::string CloudCreatedText::text() const +{ + return fmt::format("created: {}", cloudClient ? "true" : "false"); +} + +std::string CloudStartedText::text() const +{ + std::string text = "started: "; + if (cloudClient) + text += cloudStarted ? "true" : "false"; + return text; +} + +std::string CloudConnectedText::text() const +{ + std::string text = "connected: "; + if (cloudClient) + text += cloudClient.is_connected() ? "true" : "false"; + return text; +} +#endif diff --git a/main/cloudtexthelpers.h b/main/cloudtexthelpers.h index 3fc6522..ceeb687 100644 --- a/main/cloudtexthelpers.h +++ b/main/cloudtexthelpers.h @@ -1,37 +1,24 @@ #pragma once -// 3rdparty lib includes -#include - // local includes #include "textinterface.h" -#include "cloud.h" -namespace { #ifdef FEATURE_CLOUD -struct CloudCreatedText : public virtual TextInterface { public: std::string text() const override { - return fmt::format("created: {}", cloudClient ? "true" : "false"); }}; - -struct CloudStartedText : public virtual TextInterface { +struct CloudCreatedText : public virtual espgui::TextInterface +{ public: - std::string text() const override - { - std::string text = "started: "; - if (cloudClient) - text += cloudStarted ? "true" : "false"; - return text; - } + std::string text() const override; }; -struct CloudConnectedText : public virtual TextInterface { +struct CloudStartedText : public virtual espgui::TextInterface +{ public: - std::string text() const override - { - std::string text = "connected: "; - if (cloudClient) - text += cloudClient.is_connected() ? "true" : "false"; - return text; - } + std::string text() const override; +}; + +struct CloudConnectedText : public virtual espgui::TextInterface +{ +public: + std::string text() const override; }; #endif -} diff --git a/main/displays/garagedisplay.h b/main/displays/garagedisplay.h index c447627..2b53af2 100644 --- a/main/displays/garagedisplay.h +++ b/main/displays/garagedisplay.h @@ -15,10 +15,6 @@ #include "texts.h" #include "widgets/label.h" -namespace { -class MainMenu; -} - namespace { #ifdef FEATURE_GARAGE class GarageDisplay : public Display, public BackActionInterface> diff --git a/main/displays/lockscreen.h b/main/displays/lockscreen.h index 05a3cb8..934f36f 100644 --- a/main/displays/lockscreen.h +++ b/main/displays/lockscreen.h @@ -16,10 +16,6 @@ #include "ledstrip.h" #endif -namespace { -class MainMenu; -} - namespace { class Lockscreen : public Display, public DummyBack { diff --git a/main/displays/menus/bmsmenu.h b/main/displays/menus/bmsmenu.h index e4905cb..7fe4ab5 100644 --- a/main/displays/menus/bmsmenu.h +++ b/main/displays/menus/bmsmenu.h @@ -18,11 +18,6 @@ #include "icons/back.h" #include "texts.h" -//forward declares -namespace { -class MainMenu; -} // namespace - using namespace espgui; namespace { diff --git a/main/displays/menus/cloudsettingsmenu.cpp b/main/displays/menus/cloudsettingsmenu.cpp index e69de29..ec4dd36 100644 --- a/main/displays/menus/cloudsettingsmenu.cpp +++ b/main/displays/menus/cloudsettingsmenu.cpp @@ -0,0 +1,72 @@ +#include "cloudsettingsmenu.h" + +// 3rdparty lib includes +#include +#include "menuitem.h" +#include "changevaluedisplay.h" +#include "actions/switchscreenaction.h" +#include "actions/toggleboolaction.h" +#include "actions/dummyaction.h" +#include "checkboxicon.h" +#include "icons/back.h" + +// local includes +#include "cloudtexthelpers.h" +#include "accessors/settingsaccessors.h" +#include "cloud.h" +#include "displays/menus/settingsmenu.h" + +namespace { +using CloudTransmitTimeoutChangeScreen = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + CloudTransmitTimeoutAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; + +struct CloudBufferLengthText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return fmt::format("buffer: {}", cloudBuffer.size()); + } +}; + +using CloudCollectRateChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + CloudCollectRateAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; + +using CloudSendRateChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + CloudSendRateAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +} // namespace + +using namespace espgui; + +CloudSettingsMenu::CloudSettingsMenu() +{ + constructMenuItem, ToggleBoolAction, CheckboxIcon, CloudEnabledAccessor>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +void CloudSettingsMenu::back() +{ + switchScreen(); +} diff --git a/main/displays/menus/cloudsettingsmenu.h b/main/displays/menus/cloudsettingsmenu.h index 42b8ad8..037beaf 100644 --- a/main/displays/menus/cloudsettingsmenu.h +++ b/main/displays/menus/cloudsettingsmenu.h @@ -1,76 +1,19 @@ #pragma once // 3rdparty lib includes -#include +#include "menudisplay.h" // local includes -#include "menudisplay.h" -#include "menuitem.h" -#include "changevaluedisplay.h" -#include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" -#include "checkboxicon.h" -#include "cloudtexthelpers.h" -#include "accessors/settingsaccessors.h" -#include "icons/back.h" #include "texts.h" -#include "accessors/settingsaccessors.h" -#include "cloud.h" -namespace { -using CloudTransmitTimeoutChangeScreen = makeComponent< - ChangeValueDisplay, - StaticText, - CloudTransmitTimeoutAccessor, - BackActionInterface>, - SwitchScreenAction ->; - -struct CloudBufferLengthText : public virtual TextInterface { -public: - std::string text() const override - { - return fmt::format("buffer: {}", cloudBuffer.size()); - } -}; - -using CloudCollectRateChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - CloudCollectRateAccessor, - BackActionInterface>, - SwitchScreenAction ->; - -using CloudSendRateChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - CloudSendRateAccessor, - BackActionInterface>, - SwitchScreenAction ->; -} // namespace - -namespace { #ifdef FEATURE_CLOUD class CloudSettingsMenu : - public MenuDisplay, - public StaticText, - public BackActionInterface> + public espgui::MenuDisplay, + public espgui::StaticText { public: - CloudSettingsMenu() - { - constructMenuItem, ToggleBoolAction, CheckboxIcon, CloudEnabledAccessor>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); - } + CloudSettingsMenu(); + + void back() override; }; #endif -} // namespace diff --git a/main/displays/menus/debugmenu.h b/main/displays/menus/debugmenu.h index 6a079fe..2ae7392 100644 --- a/main/displays/menus/debugmenu.h +++ b/main/displays/menus/debugmenu.h @@ -18,26 +18,6 @@ using namespace espgui; -// forward declares -namespace { -class MainMenu; -class FrontCommandDebugMenu; -class BackCommandDebugMenu; -class FrontLeftMotorStateDebugMenu; -class FrontRightMotorStateDebugMenu; -class BackLeftMotorStateDebugMenu; -class BackRightMotorStateDebugMenu; -class FrontFeedbackDebugMenu; -class BackFeedbackDebugMenu; -class FrontLeftMotorFeedbackDebugMenu; -class FrontRightMotorFeedbackDebugMenu; -class BackLeftMotorFeedbackDebugMenu; -class BackRightMotorFeedbackDebugMenu; -class DynamicDebugMenu; -} // namespace - -using namespace espgui; - namespace { class DebugMenu : public MenuDisplay, diff --git a/main/displays/menus/defaultmodesettingsmenu.cpp b/main/displays/menus/defaultmodesettingsmenu.cpp index e69de29..532b3ea 100644 --- a/main/displays/menus/defaultmodesettingsmenu.cpp +++ b/main/displays/menus/defaultmodesettingsmenu.cpp @@ -0,0 +1,144 @@ +#include "defaultmodesettingsmenu.h" + +// 3rdparty lib includes +#include "changevaluedisplay.h" +#include "menuitem.h" +#include "actions/toggleboolaction.h" +#include "actions/switchscreenaction.h" +#include "actions/dummyaction.h" +#include "checkboxicon.h" +#include "icons/back.h" + +// local includes +#include "utils.h" +#include "changevaluedisplay_unifiedmodelmode.h" +#include "accessors/settingsaccessors.h" +#include "displays/menus/modessettingsmenu.h" + +namespace { +using DefaultModeModelModeChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeModelModeAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +using DefaultModeHybridModelModeChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeHybridModelModeAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +using DefaultModeSmoothingChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeSmoothingAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +using DefaultModeFwSmoothingLowerLimitChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeEnableFieldWeakSmoothingLowerLimitAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +using DefaultModeFrontPercentageChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeFrontPercentageAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +using DefaultModeBackPercentageChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeBackPercentageAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +using DefaultModeAddSchwelleChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeAddSchwelleAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +using DefaultModeGas1WertChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeGas1WertAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +using DefaultModeGas2WertChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeGas2WertAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +using DefaultModeBrems1WertChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeBrems1WertAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +using DefaultModeBrems2WertChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeBrems2WertAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +using DefaultModeHybridActivationLimitChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeHybridActivationLimitAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +using DefaultModeHybridDeactivationLimitChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DefaultModeHybridDeactivationLimitAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +} // namespace + +using namespace espgui; + +DefaultModeSettingsMenu::DefaultModeSettingsMenu() +{ + auto diff = std::abs(settings.hybrid.activationLimit - settings.hybrid.deactivationLimit); + if (diff < 20) { constructMenuItem, StaticFont<2>, StaticColor, DummyAction>>(); } + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeSquareGasAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeSquareBremsAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingUpAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingDownAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingUpAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingDownAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableHybridAccessor>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +void DefaultModeSettingsMenu::back() +{ + switchScreen(); +} diff --git a/main/displays/menus/defaultmodesettingsmenu.h b/main/displays/menus/defaultmodesettingsmenu.h index 13a6c4a..895f7a6 100644 --- a/main/displays/menus/defaultmodesettingsmenu.h +++ b/main/displays/menus/defaultmodesettingsmenu.h @@ -1,153 +1,17 @@ #pragma once -#include +// 3rdparty lib includes +#include "menudisplay.h" // local includes -#include "menudisplay.h" -#include "utils.h" -#include "changevaluedisplay.h" -#include "changevaluedisplay_unifiedmodelmode.h" -#include "menuitem.h" -#include "actions/toggleboolaction.h" -#include "actions/switchscreenaction.h" -#include "actions/dummyaction.h" -#include "checkboxicon.h" -#include "icons/back.h" #include "texts.h" -#include "accessors/settingsaccessors.h" - -// forward declares -namespace { -class DefaultModeSettingsMenu; -class ModesSettingsMenu; -} // namespace - -using namespace espgui; - -namespace { -using DefaultModeModelModeChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeModelModeAccessor, - BackActionInterface>, - SwitchScreenAction ->; -using DefaultModeHybridModelModeChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeHybridModelModeAccessor, - BackActionInterface>, - SwitchScreenAction ->; -using DefaultModeSmoothingChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeSmoothingAccessor, - BackActionInterface>, - SwitchScreenAction ->; -using DefaultModeFwSmoothingLowerLimitChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeEnableFieldWeakSmoothingLowerLimitAccessor, - BackActionInterface>, - SwitchScreenAction ->; -using DefaultModeFrontPercentageChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeFrontPercentageAccessor, - BackActionInterface>, - SwitchScreenAction ->; -using DefaultModeBackPercentageChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeBackPercentageAccessor, - BackActionInterface>, - SwitchScreenAction ->; -using DefaultModeAddSchwelleChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeAddSchwelleAccessor, - BackActionInterface>, - SwitchScreenAction ->; -using DefaultModeGas1WertChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeGas1WertAccessor, - BackActionInterface>, - SwitchScreenAction ->; -using DefaultModeGas2WertChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeGas2WertAccessor, - BackActionInterface>, - SwitchScreenAction ->; -using DefaultModeBrems1WertChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeBrems1WertAccessor, - BackActionInterface>, - SwitchScreenAction ->; -using DefaultModeBrems2WertChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeBrems2WertAccessor, - BackActionInterface>, - SwitchScreenAction ->; -using DefaultModeHybridActivationLimitChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeHybridActivationLimitAccessor, - BackActionInterface>, - SwitchScreenAction ->; -using DefaultModeHybridDeactivationLimitChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DefaultModeHybridDeactivationLimitAccessor, - BackActionInterface>, - SwitchScreenAction ->; class DefaultModeSettingsMenu : - public MenuDisplay, - public StaticText, - public BackActionInterface> + public espgui::MenuDisplay, + public espgui::StaticText { public: - DefaultModeSettingsMenu() - { - auto diff = std::abs(settings.hybrid.activationLimit - settings.hybrid.deactivationLimit); - if (diff < 20) { constructMenuItem, StaticFont<2>, StaticColor, DummyAction>>(); } - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeSquareGasAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeSquareBremsAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingUpAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingDownAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingUpAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingDownAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, DefaultModeEnableHybridAccessor>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); - } + DefaultModeSettingsMenu(); + + void back() override; }; -} // namespace diff --git a/main/displays/menus/demosmenu.h b/main/displays/menus/demosmenu.h index ad5dc88..ec8588d 100644 --- a/main/displays/menus/demosmenu.h +++ b/main/displays/menus/demosmenu.h @@ -8,15 +8,6 @@ #include "icons/back.h" #include "texts.h" -// forward declares -namespace { -class StarfieldDisplay; -class PingPongDisplay; -class SpiroDisplay; -class GameOfLifeDisplay; -class MainMenu; -} // namespace - using namespace espgui; namespace { diff --git a/main/displays/menus/gametrakmodesettingsmenu.h b/main/displays/menus/gametrakmodesettingsmenu.h index 6a5a869..74e6719 100644 --- a/main/displays/menus/gametrakmodesettingsmenu.h +++ b/main/displays/menus/gametrakmodesettingsmenu.h @@ -8,11 +8,6 @@ #include "icons/back.h" #include "texts.h" -// forward declares -namespace { -class ModesSettingsMenu; -} // namespace - using namespace espgui; namespace { diff --git a/main/displays/menus/graphsmenu.h b/main/displays/menus/graphsmenu.h index a32dc3d..d594b36 100644 --- a/main/displays/menus/graphsmenu.h +++ b/main/displays/menus/graphsmenu.h @@ -10,12 +10,6 @@ #include "displays/splitgraphdisplay.h" #include "statistics.h" -// forward declares -namespace { -class MainMenu; -class GraphsMenu; -} // namespace - using namespace espgui; namespace { diff --git a/main/displays/menus/larsmmodesettingsmenu.h b/main/displays/menus/larsmmodesettingsmenu.h index a1d4203..73ac84e 100644 --- a/main/displays/menus/larsmmodesettingsmenu.h +++ b/main/displays/menus/larsmmodesettingsmenu.h @@ -12,12 +12,6 @@ #include "texts.h" #include "accessors/settingsaccessors.h" -// forward declares -namespace { -class LarsmModeSettingsMenu; -class ModesSettingsMenu; -} // namespace - using namespace espgui; namespace { diff --git a/main/displays/menus/modessettingsmenu.cpp b/main/displays/menus/modessettingsmenu.cpp index e69de29..4460ffb 100644 --- a/main/displays/menus/modessettingsmenu.cpp +++ b/main/displays/menus/modessettingsmenu.cpp @@ -0,0 +1,31 @@ +#include "modessettingsmenu.h" + +// 3rdparty lib includes +#include "menuitem.h" +#include "actions/switchscreenaction.h" +#include "icons/back.h" + +// local includes +#include "displays/menus/defaultmodesettingsmenu.h" +#include "displays/menus/tempomatmodesettingsmenu.h" +#include "displays/menus/larsmmodesettingsmenu.h" +#include "displays/menus/gametrakmodesettingsmenu.h" +#include "displays/menus/settingsmenu.h" + +using namespace espgui; + +ModesSettingsMenu::ModesSettingsMenu() +{ + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); +#ifdef FEATURE_GAMETRAK + constructMenuItem, SwitchScreenAction>>(); +#endif + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +void ModesSettingsMenu::back() +{ + switchScreen(); +} diff --git a/main/displays/menus/modessettingsmenu.h b/main/displays/menus/modessettingsmenu.h index 5394071..ae07c74 100644 --- a/main/displays/menus/modessettingsmenu.h +++ b/main/displays/menus/modessettingsmenu.h @@ -2,29 +2,16 @@ // local includes #include "menudisplay.h" -#include "menuitem.h" -#include "actions/switchscreenaction.h" -#include "icons/back.h" + +// local includes #include "texts.h" -using namespace espgui; - -namespace { class ModesSettingsMenu : - public MenuDisplay, - public StaticText, - public BackActionInterface> + public espgui::MenuDisplay, + public espgui::StaticText { public: - ModesSettingsMenu() - { - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); -#ifdef FEATURE_GAMETRAK - constructMenuItem, SwitchScreenAction>>(); -#endif - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); - } + ModesSettingsMenu(); + + void back() override; }; -} // namespace diff --git a/main/displays/menus/mosfetsmenu.h b/main/displays/menus/mosfetsmenu.h index 2036100..92e7587 100644 --- a/main/displays/menus/mosfetsmenu.h +++ b/main/displays/menus/mosfetsmenu.h @@ -11,11 +11,6 @@ #include "texts.h" #include "types.h" -// forward declares -namespace { -class MainMenu; -} // namespace - using namespace espgui; namespace { diff --git a/main/displays/menus/presetsmenu.h b/main/displays/menus/presetsmenu.h index 85d2b88..3313135 100644 --- a/main/displays/menus/presetsmenu.h +++ b/main/displays/menus/presetsmenu.h @@ -12,11 +12,6 @@ #include "presets.h" #include "globals.h" -// forward declares -namespace { -class MainMenu; -} // namespace - using namespace espgui; namespace { diff --git a/main/displays/menus/profilesmenu.h b/main/displays/menus/profilesmenu.h index 9061ba5..4e184d9 100644 --- a/main/displays/menus/profilesmenu.h +++ b/main/displays/menus/profilesmenu.h @@ -7,11 +7,6 @@ #include "icons/back.h" #include "texts.h" -// forward declares -namespace { -class MainMenu; -} // namespace - using namespace espgui; namespace { diff --git a/main/displays/menus/selectmodemenu.h b/main/displays/menus/selectmodemenu.h index 800eb53..1709c53 100644 --- a/main/displays/menus/selectmodemenu.h +++ b/main/displays/menus/selectmodemenu.h @@ -15,11 +15,6 @@ #include "modes/remotecontrolmode.h" #include "modes/gametrakmode.h" -// forward declares -namespace { -class MainMenu; -} // namespace - using namespace espgui; namespace { diff --git a/main/displays/menus/tempomatmodesettingsmenu.cpp b/main/displays/menus/tempomatmodesettingsmenu.cpp index e69de29..d94e4a6 100644 --- a/main/displays/menus/tempomatmodesettingsmenu.cpp +++ b/main/displays/menus/tempomatmodesettingsmenu.cpp @@ -0,0 +1,48 @@ +#include "tempomatmodesettingsmenu.h" + +// 3rdparty lib includes +#include "changevaluedisplay.h" +#include "menuitem.h" +#include "actions/switchscreenaction.h" +#include "icons/back.h" + +// local includes +#include "utils.h" +#include "changevaluedisplay_unifiedmodelmode.h" +#include "accessors/settingsaccessors.h" +#include "accessors/globalaccessors.h" +#include "actions/tempomatmodeapplycurrentpeedaction.h" +#include "displays/menus/modessettingsmenu.h" + +namespace { +using TempomatModeCruiseMotTgtChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + TempomatModeCruiseMotTgtAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; + +using TempomatModeModelModeChangeScreen = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + TempomatModeModelModeAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; +} // namespace + +using namespace espgui; + +TempomatModeSettingsMenu::TempomatModeSettingsMenu() +{ + constructMenuItem, TempomatModeApplyCurrentSpeedAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +void TempomatModeSettingsMenu::back() +{ + switchScreen(); +} diff --git a/main/displays/menus/tempomatmodesettingsmenu.h b/main/displays/menus/tempomatmodesettingsmenu.h index 2e5ce97..e10cdaa 100644 --- a/main/displays/menus/tempomatmodesettingsmenu.h +++ b/main/displays/menus/tempomatmodesettingsmenu.h @@ -1,55 +1,17 @@ #pragma once -// local includes +// 3rdparty lib includes #include "menudisplay.h" -#include "utils.h" -#include "changevaluedisplay.h" -#include "changevaluedisplay_unifiedmodelmode.h" -#include "menuitem.h" -#include "actions/switchscreenaction.h" -#include "icons/back.h" + +// local includes #include "texts.h" -#include "accessors/settingsaccessors.h" -#include "accessors/globalaccessors.h" -#include "actions/tempomatmodeapplycurrentpeedaction.h" - -// forward declares -namespace { -class TempomatModeSettingsMenu; -class ModesSettingsMenu; -} // namespace - -using namespace espgui; - -namespace { -using DefaultModeCruiseMotTgtChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - TempomatModeCruiseMotTgtAccessor, - BackActionInterface>, - SwitchScreenAction ->; - -using TempomatModeModelModeChangeScreen = makeComponent< - ChangeValueDisplay, - StaticText, - TempomatModeModelModeAccessor, - BackActionInterface>, - SwitchScreenAction ->; class TempomatModeSettingsMenu : - public MenuDisplay, - public StaticText, - public BackActionInterface> + public espgui::MenuDisplay, + public espgui::StaticText { public: - TempomatModeSettingsMenu() - { - constructMenuItem, TempomatModeApplyCurrentSpeedAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); - } + TempomatModeSettingsMenu(); + + void back() override; }; -} // namespace diff --git a/main/displays/menus/timesettingsmenu.cpp b/main/displays/menus/timesettingsmenu.cpp index e69de29..cdeddc2 100644 --- a/main/displays/menus/timesettingsmenu.cpp +++ b/main/displays/menus/timesettingsmenu.cpp @@ -0,0 +1,103 @@ +#include "timesettingsmenu.h" + +// 3rdparty lib includes +#include +#include +#include "changevaluedisplay.h" +#include "changevaluedisplay_daylightsavingmode.h" +#include "changevaluedisplay_sntp_sync_mode_t.h" +#include "actions/toggleboolaction.h" +#include "actions/switchscreenaction.h" +#include "actions/dummyaction.h" +#include "checkboxicon.h" +#include "icons/back.h" +#include "espstrutils.h" + +// local includes +#include "utils.h" +#include "accessors/settingsaccessors.h" +#include "displays/menus/settingsmenu.h" + +class CurrentUtcDateTimeText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return fmt::format("utc: {}", espchrono::toString(espchrono::toDateTime(espchrono::utc_clock::now()))); + } +}; + +class CurrentLocalDateTimeText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return fmt::format("local: {}", espchrono::toString(espchrono::toDateTime(espchrono::local_clock::now()))); + } +}; + +using TimezoneOffsetChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + TimezoneOffsetAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; + +using DaylightSavingModeChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + DaylightSavingModeAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; + +#ifdef FEATURE_NTP +using TimeSyncModeChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + TimeSyncModeAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; + +using TimeSyncIntervalChangeDisplay = espgui::makeComponent< + espgui::ChangeValueDisplay, + espgui::StaticText, + TimeSyncIntervalAccessor, + espgui::BackActionInterface>, + espgui::SwitchScreenAction +>; + +class NtpSyncStatusText : public virtual espgui::TextInterface +{ +public: + std::string text() const override + { + return fmt::format("Status: {}", espcpputils::toString(sntp_get_sync_status())); + } +}; +#endif + +using namespace espgui; + +TimeSettingsMenu::TimeSettingsMenu() +{ + constructMenuItem, DummyAction>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); +#ifdef FEATURE_NTP + constructMenuItem, ToggleBoolAction, CheckboxIcon, TimeServerEnabledAccessor>>(); + constructMenuItem, DummyAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, SwitchScreenAction>>(); + constructMenuItem>(); +#endif + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +void TimeSettingsMenu::back() +{ + switchScreen(); +} diff --git a/main/displays/menus/timesettingsmenu.h b/main/displays/menus/timesettingsmenu.h index 53c6e7e..b8b238c 100644 --- a/main/displays/menus/timesettingsmenu.h +++ b/main/displays/menus/timesettingsmenu.h @@ -1,89 +1,17 @@ #pragma once // 3rdparty lib includes -#include -#include +#include "menudisplay.h" // local includes -#include "changevaluedisplay.h" -#include "changevaluedisplay_daylightsavingmode.h" -#include "changevaluedisplay_sntp_sync_mode_t.h" -#include "menudisplay.h" -#include "utils.h" -#include "actions/toggleboolaction.h" -#include "actions/switchscreenaction.h" -#include "checkboxicon.h" -#include "icons/back.h" #include "texts.h" -#include "accessors/settingsaccessors.h" -#include "espstrutils.h" - -using namespace espgui; - -namespace { -class CurrentUtcDateTimeText : public virtual TextInterface { public: - std::string text() const override { return fmt::format("utc: {}", espchrono::toString(espchrono::toDateTime(espchrono::utc_clock::now()))); }}; - -class CurrentLocalDateTimeText : public virtual TextInterface { public: - std::string text() const override { return fmt::format("local: {}", espchrono::toString(espchrono::toDateTime(espchrono::local_clock::now()))); }}; - -using TimezoneOffsetChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - TimezoneOffsetAccessor, - BackActionInterface>, - SwitchScreenAction ->; - -using DaylightSavingModeChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - DaylightSavingModeAccessor, - BackActionInterface>, - SwitchScreenAction ->; - -#ifdef FEATURE_NTP -using TimeSyncModeChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - TimeSyncModeAccessor, - BackActionInterface>, - SwitchScreenAction ->; - -using TimeSyncIntervalChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, - TimeSyncIntervalAccessor, - BackActionInterface>, - SwitchScreenAction ->; - -class NtpSyncStatusText : public virtual TextInterface { public: - std::string text() const override { return fmt::format("Status: {}", espcpputils::toString(sntp_get_sync_status())); }}; -#endif class TimeSettingsMenu : - public MenuDisplay, - public StaticText, - public BackActionInterface> + public espgui::MenuDisplay, + public espgui::StaticText { public: - TimeSettingsMenu() - { - constructMenuItem, DummyAction>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); -#ifdef FEATURE_NTP - constructMenuItem, ToggleBoolAction, CheckboxIcon, TimeServerEnabledAccessor>>(); - constructMenuItem, DummyAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem>(); -#endif - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); - } + TimeSettingsMenu(); + + void back() override; }; -} // namespace diff --git a/main/displays/poweroffdisplay.h b/main/displays/poweroffdisplay.h index 97acc22..6735450 100644 --- a/main/displays/poweroffdisplay.h +++ b/main/displays/poweroffdisplay.h @@ -9,10 +9,6 @@ #include "globals.h" #include "texts.h" -namespace { -class MainMenu; -} - namespace { class PoweroffDisplay : public Display, public DummyConfirm, public DummyBack {