From d12c943f89785d9ac8aa4c7a39cb9fb1977d2202 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Tue, 28 Dec 2021 12:33:04 +0100 Subject: [PATCH] More refactorings --- components/esp-gui-lib | 2 +- main/displays/bobbychangevaluedisplay.cpp | 70 +++++++++++++++++++++++ main/displays/bobbychangevaluedisplay.h | 23 ++++++++ main/displays/menus/timersmenu.cpp | 24 ++++---- 4 files changed, 107 insertions(+), 12 deletions(-) diff --git a/components/esp-gui-lib b/components/esp-gui-lib index 4871df0..4cb29d1 160000 --- a/components/esp-gui-lib +++ b/components/esp-gui-lib @@ -1 +1 @@ -Subproject commit 4871df08989755121fd69c55777322e387925141 +Subproject commit 4cb29d1d3b271cb0b567c55719e000c599ef2b02 diff --git a/main/displays/bobbychangevaluedisplay.cpp b/main/displays/bobbychangevaluedisplay.cpp index e69de29..25f9397 100644 --- a/main/displays/bobbychangevaluedisplay.cpp +++ b/main/displays/bobbychangevaluedisplay.cpp @@ -0,0 +1,70 @@ +#include "bobbychangevaluedisplay.h" + +template +void BobbyChangeValueDisplay::rawButtonPressed(uint8_t button) +{ + Base::rawButtonPressed(button); + switch (button) + { + using espgui::Button; + case 0: buttonPressed(Button::Left); break; + case 1: buttonPressed(Button::Right); break; + case 2: buttonPressed(Button::Up); break; + case 3: buttonPressed(Button::Down); break; + case 4: buttonPressed(Button(BobbyButton::Profile0)); break; + case 5: buttonPressed(Button(BobbyButton::Profile1)); break; + case 6: buttonPressed(Button(BobbyButton::Profile2)); break; + case 7: buttonPressed(Button(BobbyButton::Profile3)); break; + case 8: buttonPressed(Button(BobbyButton::Left2)); break; + case 9: buttonPressed(Button(BobbyButton::Right2)); break; + case 10: buttonPressed(Button(BobbyButton::Up2)); break; + case 11: buttonPressed(Button(BobbyButton::Down2)); break; + } +} + +template +void BobbyChangeValueDisplay::rawButtonReleased(uint8_t button) +{ + Base::rawButtonReleased(button); + switch (button) + { + using espgui::Button; + case 0: buttonReleased(Button::Left); break; + case 1: buttonReleased(Button::Right); break; + case 2: buttonReleased(Button::Up); break; + case 3: buttonReleased(Button::Down); break; + case 4: buttonReleased(Button(BobbyButton::Profile0)); break; + case 5: buttonReleased(Button(BobbyButton::Profile1)); break; + case 6: buttonReleased(Button(BobbyButton::Profile2)); break; + case 7: buttonReleased(Button(BobbyButton::Profile3)); break; + case 8: buttonReleased(Button(BobbyButton::Left2)); break; + case 9: buttonReleased(Button(BobbyButton::Right2)); break; + case 10: buttonReleased(Button(BobbyButton::Up2)); break; + case 11: buttonReleased(Button(BobbyButton::Down2)); break; + } +} + +template +void BobbyChangeValueDisplay::buttonPressed(espgui::Button button) +{ + Base::buttonPressed(button); + + switch (BobbyButton(button)) + { + case BobbyButton::Profile0: /* TODO */ break; + case BobbyButton::Profile1: /* TODO */ break; + case BobbyButton::Profile2: /* TODO */ break; + case BobbyButton::Profile3: /* TODO */ break; + case BobbyButton::Left2: /* TODO */ break; + case BobbyButton::Right2: /* TODO */ break; + case BobbyButton::Up2: /* TODO */ break; + case BobbyButton::Down2: /* TODO */ break; + default:; + } +} + +template +void BobbyChangeValueDisplay::buttonReleased(espgui::Button button) +{ + Base::buttonReleased(button); +} diff --git a/main/displays/bobbychangevaluedisplay.h b/main/displays/bobbychangevaluedisplay.h index e69de29..69e2d53 100644 --- a/main/displays/bobbychangevaluedisplay.h +++ b/main/displays/bobbychangevaluedisplay.h @@ -0,0 +1,23 @@ +#pragma once + +// system includes +#include + +// 3rdparty lib includes +#include + +// local includes +#include "bobbydisplay.h" + +template +class BobbyChangeValueDisplay : public espgui::ChangeValueDisplay +{ + using Base = espgui::ChangeValueDisplay; + +public: + void rawButtonPressed(uint8_t button) override; + void rawButtonReleased(uint8_t button) override; + + void buttonPressed(espgui::Button button) override; + void buttonReleased(espgui::Button button) override; +}; diff --git a/main/displays/menus/timersmenu.cpp b/main/displays/menus/timersmenu.cpp index 47da55f..4632fc7 100644 --- a/main/displays/menus/timersmenu.cpp +++ b/main/displays/menus/timersmenu.cpp @@ -1,32 +1,34 @@ #include "timersmenu.h" -// local includes -#include "accessors/settingsaccessors.h" +// 3rdparty lib includes #include "actions/switchscreenaction.h" #include "changevaluedisplay.h" -#include "displays/menus/boardcomputerhardwaresettingsmenu.h" #include "icons/back.h" + +// local includes +#include "displays/bobbychangevaluedisplay.h" +#include "accessors/settingsaccessors.h" +#include "displays/menus/boardcomputerhardwaresettingsmenu.h" #include "texts.h" -using namespace espgui; - namespace { -using StatsUpdateRateChangeDisplay = makeComponent< - ChangeValueDisplay, - StaticText, +using StatsUpdateRateChangeDisplay = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, StatsUpdateRateAccessor, - BackActionInterface>, - SwitchScreenAction + espgui::BackActionInterface>, + espgui::SwitchScreenAction >; } TimersMenu::TimersMenu() { + using namespace espgui; constructMenuItem, SwitchScreenAction>>(); constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } void TimersMenu::back() { - switchScreen(); + espgui::switchScreen(); }