From 5dff47f4376663ada6cd3732e575d1960ed204ff Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Tue, 7 Dec 2021 02:54:14 +0100 Subject: [PATCH] Refactored blesettingsmenu, ledstripselectanimationmenu, profilesmenu --- main/bletexthelpers.h | 6 +- main/displays/menus/blesettingsmenu.cpp | 30 ++++++++++ main/displays/menus/blesettingsmenu.h | 26 ++------- .../menus/ledstripselectanimationmenu.cpp | 46 +++++++++++++++ .../menus/ledstripselectanimationmenu.h | 57 ++++--------------- main/displays/menus/profilesmenu.cpp | 23 ++++++++ main/displays/menus/profilesmenu.h | 22 ++----- 7 files changed, 122 insertions(+), 88 deletions(-) diff --git a/main/bletexthelpers.h b/main/bletexthelpers.h index ac8271f..359eb0a 100644 --- a/main/bletexthelpers.h +++ b/main/bletexthelpers.h @@ -4,9 +4,8 @@ #include "textinterface.h" #include "ble_bobby.h" -namespace { #ifdef FEATURE_BLE -struct BleServerPeerDevicesText : public virtual TextInterface { +struct BleServerPeerDevicesText : public virtual espgui::TextInterface { public: std::string text() const override { @@ -17,7 +16,7 @@ public: } }; -struct BleCharacSubscribedText : public virtual TextInterface { +struct BleCharacSubscribedText : public virtual espgui::TextInterface { public: std::string text() const override { @@ -28,4 +27,3 @@ public: } }; #endif -} diff --git a/main/displays/menus/blesettingsmenu.cpp b/main/displays/menus/blesettingsmenu.cpp index e69de29..8fdc785 100644 --- a/main/displays/menus/blesettingsmenu.cpp +++ b/main/displays/menus/blesettingsmenu.cpp @@ -0,0 +1,30 @@ +#include "blesettingsmenu.h" + +// local includes +#include "accessors/settingsaccessors.h" +#include "actions/dummyaction.h" +#include "actions/switchscreenaction.h" +#include "actions/toggleboolaction.h" +#include "bletexthelpers.h" +#include "checkboxicon.h" +#include "displays/menus/settingsmenu.h" +#include "icons/back.h" +#include "texts.h" + +#ifdef FEATURE_BLE + +using namespace espgui; + +BleSettingsMenu::BleSettingsMenu() +{ + constructMenuItem, ToggleBoolAction, CheckboxIcon, BleEnabledAccessor>>(); + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +void BleSettingsMenu::back() +{ + switchScreen(); +} +#endif diff --git a/main/displays/menus/blesettingsmenu.h b/main/displays/menus/blesettingsmenu.h index 62e550f..1363c43 100644 --- a/main/displays/menus/blesettingsmenu.h +++ b/main/displays/menus/blesettingsmenu.h @@ -2,32 +2,16 @@ // local includes #include "menudisplay.h" -#include "menuitem.h" -#include "actions/switchscreenaction.h" -#include "actions/toggleboolaction.h" -#include "checkboxicon.h" -#include "bletexthelpers.h" -#include "accessors/settingsaccessors.h" -#include "icons/back.h" #include "texts.h" -using namespace espgui; - -namespace { #ifdef FEATURE_BLE + class BleSettingsMenu : - public MenuDisplay, - public StaticText, - public BackActionInterface> + public espgui::MenuDisplay, + public espgui::StaticText { public: - BleSettingsMenu() - { - constructMenuItem, ToggleBoolAction, CheckboxIcon, BleEnabledAccessor>>(); - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); - } + BleSettingsMenu(); + void back() override; }; #endif -} // namespace diff --git a/main/displays/menus/ledstripselectanimationmenu.cpp b/main/displays/menus/ledstripselectanimationmenu.cpp index e69de29..d3437b7 100644 --- a/main/displays/menus/ledstripselectanimationmenu.cpp +++ b/main/displays/menus/ledstripselectanimationmenu.cpp @@ -0,0 +1,46 @@ +#include "ledstripselectanimationmenu.h" + +// Local includes +#include "actions/dummyaction.h" +#include "actions/ledstripanimationactions.h" +#include "actions/switchscreenaction.h" +#include "icons/back.h" +#include "ledstripdefines.h" +#include "ledstripmenu.h" + +using namespace espgui; + + +#ifdef FEATURE_LEDSTRIP +std::string currentSelectedAnimationText::text() const +{ + switch (animation_type) { + case LedstripAnimation::DefaultRainbow: + return TEXT_ANIMATION_DEFAULTRAINBOW; + case LedstripAnimation::BetterRainbow: + return TEXT_ANIMATION_BETTERRAINBOW; + case LedstripAnimation::SpeedSync: + return TEXT_ANIMATION_SPEEDSYNCANIMATION; + case LedstripAnimation::CustomColor: + return TEXT_ANIMATION_CUSTOMCOLOR; + default: + return "Animation Unkown"; + } +} + +LedstripSelectAnimationMenu::LedstripSelectAnimationMenu() +{ + constructMenuItem>(); + constructMenuItem>(); + constructMenuItem, LedStripSetAnimationAction>>(); + constructMenuItem, LedStripSetAnimationAction>>(); + constructMenuItem, LedStripSetAnimationAction>>(); + constructMenuItem, LedStripSetAnimationAction>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +void LedstripSelectAnimationMenu::back() +{ + switchScreen(); +} +#endif diff --git a/main/displays/menus/ledstripselectanimationmenu.h b/main/displays/menus/ledstripselectanimationmenu.h index 8deae40..5a08871 100644 --- a/main/displays/menus/ledstripselectanimationmenu.h +++ b/main/displays/menus/ledstripselectanimationmenu.h @@ -2,54 +2,21 @@ // Local includes #include "menudisplay.h" -#include "utils.h" -#include "menuitem.h" -#include "ledstrip.h" -#include "ledstripselectanimationmenu.h" -#include "icons/back.h" #include "texts.h" -#include "actions/dummyaction.h" -#include "actions/ledstripanimationactions.h" -#include "actions/switchscreenaction.h" -#include "ledstrip.h" -#include "ledstripdefines.h" #ifdef FEATURE_LEDSTRIP -class currentSelectedAnimationText : public virtual TextInterface { public: std::string text() const override { - switch (animation_type) { - case LEDSTRIP_ANIMATION_TYPE_DEFAULTRAINBOW: - return TEXT_ANIMATION_DEFAULTRAINBOW; - case LEDSTRIP_ANIMATION_TYPE_BETTERRAINBOW: - return TEXT_ANIMATION_BETTERRAINBOW; - case LEDSTRIP_ANIMATION_TYPE_SPEEDSYNCANIMATION: - return TEXT_ANIMATION_SPEEDSYNCANIMATION; - case LEDSTRIP_ANIMATION_TYPE_CUSTOMCOLOR: - return TEXT_ANIMATION_CUSTOMCOLOR; - default: - return "Animation Unkown"; - } - }; + +class currentSelectedAnimationText : public virtual espgui::TextInterface { +public: + std::string text() const override; }; -using namespace espgui; - -namespace { - class LedstripSelectAnimationMenu : - public MenuDisplay, - public StaticText, - public BackActionInterface> - { - public: - LedstripSelectAnimationMenu() - { - constructMenuItem>(); - constructMenuItem>(); - constructMenuItem, LedStripSetAnimationAction>>(); - constructMenuItem, LedStripSetAnimationAction>>(); - constructMenuItem, LedStripSetAnimationAction>>(); - constructMenuItem, LedStripSetAnimationAction>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); - } - }; -} // Namespace +class LedstripSelectAnimationMenu : + public espgui::MenuDisplay, + public espgui::StaticText +{ +public: + LedstripSelectAnimationMenu(); + void back() override; +}; #endif diff --git a/main/displays/menus/profilesmenu.cpp b/main/displays/menus/profilesmenu.cpp index e69de29..ad99a4c 100644 --- a/main/displays/menus/profilesmenu.cpp +++ b/main/displays/menus/profilesmenu.cpp @@ -0,0 +1,23 @@ +#include "profilesmenu.h" + +// local includes +#include "actions/switchprofileaction.h" +#include "actions/switchscreenaction.h" +#include "displays/menus/mainmenu.h" +#include "icons/back.h" +#include "menudisplay.h" +#include "texts.h" + +ProfilesMenu::ProfilesMenu() +{ + constructMenuItem, SwitchProfileAction<0>>>(); + constructMenuItem, SwitchProfileAction<1>>>(); + constructMenuItem, SwitchProfileAction<2>>>(); + constructMenuItem, SwitchProfileAction<3>>>(); + constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); +} + +void ProfilesMenu::back() +{ + switchScreen(); +} diff --git a/main/displays/menus/profilesmenu.h b/main/displays/menus/profilesmenu.h index 4e184d9..9956571 100644 --- a/main/displays/menus/profilesmenu.h +++ b/main/displays/menus/profilesmenu.h @@ -2,27 +2,13 @@ // local includes #include "menudisplay.h" -#include "actions/switchprofileaction.h" -#include "actions/switchscreenaction.h" -#include "icons/back.h" #include "texts.h" -using namespace espgui; - -namespace { class ProfilesMenu : - public MenuDisplay, - public StaticText, - public BackActionInterface> + public espgui::MenuDisplay, + public espgui::StaticText { public: - ProfilesMenu() - { - constructMenuItem, SwitchProfileAction<0>>>(); - constructMenuItem, SwitchProfileAction<1>>>(); - constructMenuItem, SwitchProfileAction<2>>>(); - constructMenuItem, SwitchProfileAction<3>>>(); - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); - } + ProfilesMenu(); + void back() override; }; -} // namespace