Even more menus converted to new input system

This commit is contained in:
2021-12-28 03:34:32 +01:00
parent 3403c65987
commit f7bae3fe91
44 changed files with 196 additions and 196 deletions

View File

@ -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
)

View File

@ -1,20 +1,26 @@
#pragma once
// system includes
#include <array>
#include <string>
#include "display.h"
#include "actions/switchscreenaction.h"
// 3rdparty lib includes
#include <actions/switchscreenaction.h>
#include <widgets/label.h>
#include <widgets/progressbar.h>
// 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<SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>, public BackActionInterface<SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>
class GametrakCalibrateDisplay : public BobbyDisplay, public ConfirmActionInterface<SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>, public BackActionInterface<SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>
{
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));

View File

@ -10,6 +10,7 @@
InvertMenu::InvertMenu()
{
using namespace espgui;
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_INVERTFRONTLEFT>, ToggleBoolAction, CheckboxIcon, FrontLeftInvertedAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_INVERTFRONTRIGHT>, ToggleBoolAction, CheckboxIcon, FrontRightInvertedAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_INVERTBACKLEFT>, ToggleBoolAction, CheckboxIcon, BackLeftInvertedAccessor>>();
@ -20,5 +21,5 @@ InvertMenu::InvertMenu()
void InvertMenu::back()
{
switchScreen<ControllerHardwareSettingsMenu>();
espgui::switchScreen<ControllerHardwareSettingsMenu>();
}

View File

@ -4,11 +4,9 @@
#include "displays/bobbymenudisplay.h"
#include "texts.h"
using namespace espgui;
class InvertMenu :
public MenuDisplay,
public StaticText<TEXT_SETINVERTED>
public BobbyMenuDisplay,
public espgui::StaticText<TEXT_SETINVERTED>
{
public:
InvertMenu();

View File

@ -7,7 +7,7 @@
#include "texts.h"
class LarsmModeSettingsMenu :
public espgui::MenuDisplay,
public BobbyMenuDisplay,
public espgui::StaticText<TEXT_LARSMMODESETTINGS>
{
public:

View File

@ -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

View File

@ -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<makeComponent<MenuItem, CurrentSelectedAnimationText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ANIMATION_DEFAULTRAINBOW>, LedStripSetAnimationAction<LedstripAnimation::DefaultRainbow>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ANIMATION_BETTERRAINBOW>, LedStripSetAnimationAction<LedstripAnimation::BetterRainbow>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ANIMATION_SPEEDSYNCANIMATION>, LedStripSetAnimationAction<LedstripAnimation::SpeedSync>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ANIMATION_CUSTOMCOLOR>, LedStripSetAnimationAction<LedstripAnimation::CustomColor>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<LedstripMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
}
void LedstripSelectAnimationMenu::back()
{
switchScreen<LedstripMenu>();
}
namespace {
std::string CurrentSelectedAnimationText::text() const
{
switch (animation_type) {
case LedstripAnimation::DefaultRainbow:
@ -28,19 +55,5 @@ std::string currentSelectedAnimationText::text() const
}
}
LedstripSelectAnimationMenu::LedstripSelectAnimationMenu()
{
constructMenuItem<makeComponent<MenuItem, currentSelectedAnimationText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ANIMATION_DEFAULTRAINBOW>, LedStripSetAnimationAction<LedstripAnimation::DefaultRainbow>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ANIMATION_BETTERRAINBOW>, LedStripSetAnimationAction<LedstripAnimation::BetterRainbow>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ANIMATION_SPEEDSYNCANIMATION>, LedStripSetAnimationAction<LedstripAnimation::SpeedSync>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ANIMATION_CUSTOMCOLOR>, LedStripSetAnimationAction<LedstripAnimation::CustomColor>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<LedstripMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
}
void LedstripSelectAnimationMenu::back()
{
switchScreen<LedstripMenu>();
}
} // namespace
#endif

View File

@ -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<TEXT_SELECTANIMATION>
public BobbyMenuDisplay,
public espgui::StaticText<TEXT_SELECTANIMATION>
{
public:
LedstripSelectAnimationMenu();

View File

@ -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<TEXT_BLINKANIMATION>
public BobbyMenuDisplay,
public espgui::StaticText<TEXT_BLINKANIMATION>
{
public:
LedstripSelectBlinkMenu();

View File

@ -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<TEXT_BLINKANIMATION>
public BobbyMenuDisplay,
public espgui::StaticText<TEXT_BLINKANIMATION>
{
public:
ledstripOtaAnimationChangeMenu();

View File

@ -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<TEXT_LIMITSSETTINGS>
{
public:

View File

@ -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<TEXT_LOCKSCREENSETTINGS>
{
public:

View File

@ -5,7 +5,7 @@
// local includes
#include "texts.h"
#include "widgets/menudisplaywithtime.h"
#include "displays/menudisplaywithtime.h"
#ifdef MAINMENU_PLUGIN
#include MAINMENU_PLUGIN
#endif

View File

@ -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<TEXT_MODESSETTINGS>
{
public:

View File

@ -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<PINS_MOSFET1>;
using Mosfet2Accessor = GPIOAccessor<PINS_MOSFET2>;
class MosfetsMenu :
public espgui::MenuDisplay,
public BobbyMenuDisplay,
public espgui::StaticText<TEXT_MOSFETS>
{
public:

View File

@ -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<const char *Ttext, typename Ttexts, template<int> class ColorInterface>
class MotorFeedbackDebugMenu :
public MenuDisplay,
public StaticText<Ttext>,
public BackActionInterface<SwitchScreenAction<DebugMenu>>
public BobbyMenuDisplay,
public espgui::StaticText<Ttext>,
public espgui::BackActionInterface<espgui::SwitchScreenAction<DebugMenu>>
{
public:
MotorFeedbackDebugMenu()
{
using namespace espgui;
constructMenuItem<makeComponent<MenuItem, typename Ttexts::AngleText, ColorInterface<TFT_DARKGREY>, DummyAction>>();
//constructMenuItem<makeComponent<MenuItem, typename Ttexts::SpeedText, ColorInterface<TFT_DARKGREY>, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::SpeedKmhText, ColorInterface<TFT_DARKGREY>, DummyAction>>();
@ -45,5 +44,3 @@ class FrontLeftMotorFeedbackDebugMenu : public MotorFeedbackDebugMenu<TEXT_FRONT
class FrontRightMotorFeedbackDebugMenu : public MotorFeedbackDebugMenu<TEXT_FRONTRIGHTFEEDBACK, FrontTexts::RightFeedback, FrontFeedbackColor> {};
class BackLeftMotorFeedbackDebugMenu : public MotorFeedbackDebugMenu<TEXT_BACKLEFTFEEDBACK, BackTexts::LeftFeedback, BackFeedbackColor> {};
class BackRightMotorFeedbackDebugMenu : public MotorFeedbackDebugMenu<TEXT_BACKRIGHTFEEDBACK, BackTexts::RightFeedback, BackFeedbackColor> {};
} // namespace

View File

@ -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<const char *Ttext, typename Ttexts>
class MotorStateDebugMenu :
public MenuDisplay,
public StaticText<Ttext>,
public BackActionInterface<SwitchScreenAction<DebugMenu>>
public BobbyMenuDisplay,
public espgui::StaticText<Ttext>,
public espgui::BackActionInterface<espgui::SwitchScreenAction<DebugMenu>>
{
public:
MotorStateDebugMenu()
{
using namespace espgui;
constructMenuItem<makeComponent<MenuItem, typename Ttexts::EnableText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::PwmText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::CtrlTypText, DisabledColor, DummyAction>>();
@ -41,5 +41,3 @@ class FrontLeftMotorStateDebugMenu : public MotorStateDebugMenu<TEXT_FRONTLEFTCO
class FrontRightMotorStateDebugMenu : public MotorStateDebugMenu<TEXT_FRONTRIGHTCOMMAND, FrontTexts::RightCommand> {};
class BackLeftMotorStateDebugMenu : public MotorStateDebugMenu<TEXT_BACKLEFTCOMMAND, BackTexts::LeftCommand> {};
class BackRightMotorStateDebugMenu : public MotorStateDebugMenu<TEXT_BACKRIGHTCOMMAND, BackTexts::RightCommand> {};
} // namespace

View File

@ -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<TEXT_MOTORTESTMODESETTINGS>
{
public:

View File

@ -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<TEXT_UPDATE>
{
public:

View File

@ -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<TEXT_PRESETS>
public BobbyMenuDisplay,
public espgui::StaticText<TEXT_PRESETS>
{
public:
PresetsMenu();

View File

@ -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<TEXT_PROFILES>
{
public:

View File

@ -1,19 +1,19 @@
#pragma once
// 3rdparty lib includes
#include <menudisplay.h>
#include <menuitem.h>
#include <icons/back.h>
#include <actions/switchscreenaction.h>
#include <actioninterface.h>
// 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<TEXT_SELECT_CELL_TYPE>
{
public:

View File

@ -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.

View File

@ -1,43 +1,19 @@
#pragma once
// 3rd party includes
#include <menudisplay.h>
#include <texts.h>
// 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<TEXT_SELECT_BRANCH>
public BobbyMenuDisplay,
public espgui::StaticText<TEXT_SELECT_BRANCH>
{
using Base = espgui::MenuDisplay;
public:
SelectBuildserverBranchMenu();
void buildMenuRequestError(std::string error);
void update() override;
void back() override;

View File

@ -6,9 +6,10 @@
// 3rdparty lib includes
#include <actions/switchscreenaction.h>
#include <fmt/core.h>
#include <icons/back.h>
#include <actions/dummyaction.h>
// local includes
#include "actions/dummyaction.h"
#include "buildserver.h"
#include "displays/menus/otamenu.h"
#include "utils.h"

View File

@ -1,16 +1,15 @@
#pragma once
// 3rdparty lib includes
#include <menudisplay.h>
#include <icons/back.h>
// local includes
#include "displays/bobbymenudisplay.h"
#include "texts.h"
#ifdef FEATURE_OTA
class SelectBuildServerMenu :
public espgui::MenuDisplay,
public BobbyMenuDisplay,
public espgui::StaticText<TEXT_SELECTBUILDSERVERMENU>
{
public:

View File

@ -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<TEXT_SELECTMODE>
{
using Base = espgui::MenuDisplay;
using Base = BobbyMenuDisplay;
public:
SelectModeMenu();

View File

@ -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<TEXT_SELECTBUILD>
{
using Base = MenuDisplay;
using Base = BobbyMenuDisplay;
public:
SelectBuildMenu();
void update() override;
void back() override;
private:
void buildMenuFromJson();
void buildMenuRequestError(std::string error);
};

View File

@ -1,9 +1,7 @@
#pragma once
// 3rdparty lib includes
#include "widgets/menudisplaywithtime.h"
// local includes
#include "displays/menudisplaywithtime.h"
#include "texts.h"
class SettingsMenu :

View File

@ -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<TEXT_STATIONWIFISETTINGS>
{
public:

View File

@ -1,10 +1,10 @@
#pragma once
// 3rdparty lib includes
#include "widgets/menudisplaywithtime.h"
#include <menuitem.h>
// Local includes
#include "displays/menudisplaywithtime.h"
#include "texts.h"
class StatisticsMenu :

View File

@ -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<TEXT_TASKMANAGER>
{
public:

View File

@ -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<TEXT_TEMPOMATMODESETTINGS>
{
public:

View File

@ -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<TEXT_TIMERS>
public BobbyMenuDisplay,
public espgui::StaticText<TEXT_TIMERS>
{
public:
TimersMenu();

View File

@ -1,9 +1,7 @@
#pragma once
// 3rdparty lib includes
#include "widgets/menudisplaywithtime.h"
// local includes
#include "displays/menudisplaywithtime.h"
#include "texts.h"
class TimeSettingsMenu :

View File

@ -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<TEXT_UDPCLOUDSETTINGS>
{
public:

View File

@ -114,6 +114,8 @@ void WifiScanMenu::update()
void WifiScanMenu::stop()
{
Base::stop();
wifi_stack::delete_scan_result();
}

View File

@ -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<SwitchScreenAction<StationWifiSettingsMenu>>
class WifiScanMenu :
public BobbyMenuDisplay,
public espgui::BackActionInterface<espgui::SwitchScreenAction<StationWifiSettingsMenu>>
{
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<espchrono::millis_clock::time_point> m_lastScanComplete;
std::vector<std::unique_ptr<makeComponent<MenuItem, ChangeableText, DummyAction>>> m_reusableItems;

View File

@ -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<TEXT_WIFISETTINGS>
{
public:

View File

@ -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()

View File

@ -3,11 +3,13 @@
// system includes
#include <memory>
// 3rdparty lib includes
#include <display.h>
// 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<Display> &&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();

View File

@ -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};