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_settings.h
webserver_stringsettings.h webserver_stringsettings.h
widgets/doubleprogressbar.h widgets/doubleprogressbar.h
widgets/menudisplaywithtime.h displays/menudisplaywithtime.h
wifi_bobbycar.h wifi_bobbycar.h
wifitexthelpers.h wifitexthelpers.h
) )
@ -438,7 +438,7 @@ set(sources
webserver_settings.cpp webserver_settings.cpp
webserver_stringsettings.cpp webserver_stringsettings.cpp
widgets/doubleprogressbar.cpp widgets/doubleprogressbar.cpp
widgets/menudisplaywithtime.cpp displays/menudisplaywithtime.cpp
wifi_bobbycar.cpp wifi_bobbycar.cpp
wifitexthelpers.cpp wifitexthelpers.cpp
) )

View File

@ -1,20 +1,26 @@
#pragma once #pragma once
// system includes
#include <array> #include <array>
#include <string> #include <string>
#include "display.h" // 3rdparty lib includes
#include "actions/switchscreenaction.h" #include <actions/switchscreenaction.h>
#include <widgets/label.h>
#include <widgets/progressbar.h>
// local includes
#include "bobbydisplay.h"
#include "globals.h" #include "globals.h"
#include "texts.h" #include "texts.h"
#include "widgets/label.h"
#include "widgets/progressbar.h"
#include "modes/ignoreinputmode.h" #include "modes/ignoreinputmode.h"
namespace { namespace {
#ifdef FEATURE_GAMETRAK #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: public:
void initScreen() override; void initScreen() override;
void redraw() override; void redraw() override;
@ -38,6 +44,8 @@ private:
void GametrakCalibrateDisplay::initScreen() void GametrakCalibrateDisplay::initScreen()
{ {
Base::initScreen();
tft.fillScreen(TFT_BLACK); tft.fillScreen(TFT_BLACK);
tft.setTextFont(4); tft.setTextFont(4);
tft.setTextColor(TFT_YELLOW); tft.setTextColor(TFT_YELLOW);
@ -57,6 +65,8 @@ void GametrakCalibrateDisplay::initScreen()
void GametrakCalibrateDisplay::redraw() void GametrakCalibrateDisplay::redraw()
{ {
Base::redraw();
m_labels[0].redraw(fmt::format("{:.02f}", gametrakX)); m_labels[0].redraw(fmt::format("{:.02f}", gametrakX));
m_labels[1].redraw(std::to_string(raw_gametrakX)); m_labels[1].redraw(std::to_string(raw_gametrakX));

View File

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

View File

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

View File

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

View File

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

View File

@ -10,9 +10,36 @@
using namespace espgui; using namespace espgui;
#ifdef FEATURE_LEDSTRIP #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) { switch (animation_type) {
case LedstripAnimation::DefaultRainbow: case LedstripAnimation::DefaultRainbow:
@ -28,19 +55,5 @@ std::string currentSelectedAnimationText::text() const
} }
} }
LedstripSelectAnimationMenu::LedstripSelectAnimationMenu() } // namespace
{
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>();
}
#endif #endif

View File

@ -1,19 +1,13 @@
#pragma once #pragma once
// Local includes // Local includes
#include "menudisplay.h" #include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
#ifdef FEATURE_LEDSTRIP #ifdef FEATURE_LEDSTRIP
class currentSelectedAnimationText : public virtual espgui::TextInterface {
public:
std::string text() const override;
};
class LedstripSelectAnimationMenu : class LedstripSelectAnimationMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_SELECTANIMATION> public espgui::StaticText<TEXT_SELECTANIMATION>
{ {
public: public:
LedstripSelectAnimationMenu(); LedstripSelectAnimationMenu();

View File

@ -1,7 +1,7 @@
#pragma once #pragma once
// Local includes // Local includes
#include "menudisplay.h" #include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
#include "ledstrip.h" #include "ledstrip.h"
#include "ledstripdefines.h" #include "ledstripdefines.h"
@ -13,8 +13,8 @@ public: std::string text() const override;
}; };
class LedstripSelectBlinkMenu : class LedstripSelectBlinkMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_BLINKANIMATION> public espgui::StaticText<TEXT_BLINKANIMATION>
{ {
public: public:
LedstripSelectBlinkMenu(); LedstripSelectBlinkMenu();

View File

@ -1,7 +1,7 @@
#pragma once #pragma once
// Local includes // Local includes
#include "menudisplay.h" #include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
#include "ledstrip.h" #include "ledstrip.h"
#include "globals.h" #include "globals.h"
@ -21,8 +21,8 @@ public:
}; };
class ledstripOtaAnimationChangeMenu : class ledstripOtaAnimationChangeMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_BLINKANIMATION> public espgui::StaticText<TEXT_BLINKANIMATION>
{ {
public: public:
ledstripOtaAnimationChangeMenu(); ledstripOtaAnimationChangeMenu();

View File

@ -1,13 +1,11 @@
#pragma once #pragma once
// 3rdparty lib includes
#include "menudisplay.h"
// local includes // local includes
#include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
class LimitsSettingsMenu : class LimitsSettingsMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_LIMITSSETTINGS> public espgui::StaticText<TEXT_LIMITSSETTINGS>
{ {
public: public:

View File

@ -1,13 +1,11 @@
#pragma once #pragma once
// 3rdparty lib includes
#include "menudisplay.h"
// local includes // local includes
#include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
class LockscreenSettingsMenu : class LockscreenSettingsMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_LOCKSCREENSETTINGS> public espgui::StaticText<TEXT_LOCKSCREENSETTINGS>
{ {
public: public:

View File

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

View File

@ -1,13 +1,11 @@
#pragma once #pragma once
// local includes // local includes
#include "menudisplay.h" #include "displays/bobbymenudisplay.h"
// local includes
#include "texts.h" #include "texts.h"
class ModesSettingsMenu : class ModesSettingsMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_MODESSETTINGS> public espgui::StaticText<TEXT_MODESSETTINGS>
{ {
public: public:

View File

@ -1,8 +1,11 @@
#pragma once #pragma once
#ifdef FEATURE_MOSFETS #ifdef FEATURE_MOSFETS
#include "menudisplay.h" // 3rdparty lib includes
#include "accessorinterface.h" #include "accessorinterface.h"
// local includes
#include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
#include "types.h" #include "types.h"
@ -19,7 +22,7 @@ using Mosfet1Accessor = GPIOAccessor<PINS_MOSFET1>;
using Mosfet2Accessor = GPIOAccessor<PINS_MOSFET2>; using Mosfet2Accessor = GPIOAccessor<PINS_MOSFET2>;
class MosfetsMenu : class MosfetsMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_MOSFETS> public espgui::StaticText<TEXT_MOSFETS>
{ {
public: public:

View File

@ -1,7 +1,7 @@
#pragma once #pragma once
// local includes // local includes
#include "menudisplay.h" #include "displays/bobbymenudisplay.h"
#include "utils.h" #include "utils.h"
#include "menuitem.h" #include "menuitem.h"
#include "actions/dummyaction.h" #include "actions/dummyaction.h"
@ -11,18 +11,17 @@
#include "debugtexthelpers.h" #include "debugtexthelpers.h"
#include "debugcolorhelpers.h" #include "debugcolorhelpers.h"
using namespace espgui;
namespace {
template<const char *Ttext, typename Ttexts, template<int> class ColorInterface> template<const char *Ttext, typename Ttexts, template<int> class ColorInterface>
class MotorFeedbackDebugMenu : class MotorFeedbackDebugMenu :
public MenuDisplay, public BobbyMenuDisplay,
public StaticText<Ttext>, public espgui::StaticText<Ttext>,
public BackActionInterface<SwitchScreenAction<DebugMenu>> public espgui::BackActionInterface<espgui::SwitchScreenAction<DebugMenu>>
{ {
public: public:
MotorFeedbackDebugMenu() MotorFeedbackDebugMenu()
{ {
using namespace espgui;
constructMenuItem<makeComponent<MenuItem, typename Ttexts::AngleText, ColorInterface<TFT_DARKGREY>, DummyAction>>(); 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::SpeedText, ColorInterface<TFT_DARKGREY>, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::SpeedKmhText, 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 FrontRightMotorFeedbackDebugMenu : public MotorFeedbackDebugMenu<TEXT_FRONTRIGHTFEEDBACK, FrontTexts::RightFeedback, FrontFeedbackColor> {};
class BackLeftMotorFeedbackDebugMenu : public MotorFeedbackDebugMenu<TEXT_BACKLEFTFEEDBACK, BackTexts::LeftFeedback, BackFeedbackColor> {}; class BackLeftMotorFeedbackDebugMenu : public MotorFeedbackDebugMenu<TEXT_BACKLEFTFEEDBACK, BackTexts::LeftFeedback, BackFeedbackColor> {};
class BackRightMotorFeedbackDebugMenu : public MotorFeedbackDebugMenu<TEXT_BACKRIGHTFEEDBACK, BackTexts::RightFeedback, BackFeedbackColor> {}; class BackRightMotorFeedbackDebugMenu : public MotorFeedbackDebugMenu<TEXT_BACKRIGHTFEEDBACK, BackTexts::RightFeedback, BackFeedbackColor> {};
} // namespace

View File

@ -1,27 +1,27 @@
#pragma once #pragma once
// local includes // 3rdparty lib includes
#include "menudisplay.h"
#include "utils.h"
#include "menuitem.h" #include "menuitem.h"
#include "actions/dummyaction.h" #include "actions/dummyaction.h"
#include "actions/switchscreenaction.h" #include "actions/switchscreenaction.h"
#include "icons/back.h" #include "icons/back.h"
// local includes
#include "displays/bobbymenudisplay.h"
#include "utils.h"
#include "texts.h" #include "texts.h"
#include "debugtexthelpers.h" #include "debugtexthelpers.h"
using namespace espgui;
namespace {
template<const char *Ttext, typename Ttexts> template<const char *Ttext, typename Ttexts>
class MotorStateDebugMenu : class MotorStateDebugMenu :
public MenuDisplay, public BobbyMenuDisplay,
public StaticText<Ttext>, public espgui::StaticText<Ttext>,
public BackActionInterface<SwitchScreenAction<DebugMenu>> public espgui::BackActionInterface<espgui::SwitchScreenAction<DebugMenu>>
{ {
public: public:
MotorStateDebugMenu() MotorStateDebugMenu()
{ {
using namespace espgui;
constructMenuItem<makeComponent<MenuItem, typename Ttexts::EnableText, DisabledColor, DummyAction>>(); constructMenuItem<makeComponent<MenuItem, typename Ttexts::EnableText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::PwmText, DisabledColor, DummyAction>>(); constructMenuItem<makeComponent<MenuItem, typename Ttexts::PwmText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::CtrlTypText, 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 FrontRightMotorStateDebugMenu : public MotorStateDebugMenu<TEXT_FRONTRIGHTCOMMAND, FrontTexts::RightCommand> {};
class BackLeftMotorStateDebugMenu : public MotorStateDebugMenu<TEXT_BACKLEFTCOMMAND, BackTexts::LeftCommand> {}; class BackLeftMotorStateDebugMenu : public MotorStateDebugMenu<TEXT_BACKLEFTCOMMAND, BackTexts::LeftCommand> {};
class BackRightMotorStateDebugMenu : public MotorStateDebugMenu<TEXT_BACKRIGHTCOMMAND, BackTexts::RightCommand> {}; class BackRightMotorStateDebugMenu : public MotorStateDebugMenu<TEXT_BACKRIGHTCOMMAND, BackTexts::RightCommand> {};
} // namespace

View File

@ -1,13 +1,11 @@
#pragma once #pragma once
// 3rdparty lib includes
// local includes // local includes
#include "menudisplay.h" #include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
class MotortestModeSettingsMenu : class MotortestModeSettingsMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_MOTORTESTMODESETTINGS> public espgui::StaticText<TEXT_MOTORTESTMODESETTINGS>
{ {
public: public:

View File

@ -1,13 +1,11 @@
#pragma once #pragma once
// 3rdparty lib includes
#include "menudisplay.h"
// local includes // local includes
#include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
class OtaMenu : class OtaMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_UPDATE> public espgui::StaticText<TEXT_UPDATE>
{ {
public: public:

View File

@ -1,14 +1,12 @@
#pragma once #pragma once
// local includes // local includes
#include "menudisplay.h" #include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
using namespace espgui;
class PresetsMenu : class PresetsMenu :
public MenuDisplay, public BobbyMenuDisplay,
public StaticText<TEXT_PRESETS> public espgui::StaticText<TEXT_PRESETS>
{ {
public: public:
PresetsMenu(); PresetsMenu();

View File

@ -1,11 +1,11 @@
#pragma once #pragma once
// local includes // local includes
#include "menudisplay.h" #include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
class ProfilesMenu : class ProfilesMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_PROFILES> public espgui::StaticText<TEXT_PROFILES>
{ {
public: public:

View File

@ -1,19 +1,19 @@
#pragma once #pragma once
// 3rdparty lib includes // 3rdparty lib includes
#include <menudisplay.h>
#include <menuitem.h> #include <menuitem.h>
#include <icons/back.h> #include <icons/back.h>
#include <actions/switchscreenaction.h> #include <actions/switchscreenaction.h>
#include <actioninterface.h> #include <actioninterface.h>
// Local includes // Local includes
#include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
#include "batterymenu.h" #include "batterymenu.h"
#include "displays/menus/mainmenu.h" #include "displays/menus/mainmenu.h"
class BatteryTypeMenu : class BatteryTypeMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_SELECT_CELL_TYPE> public espgui::StaticText<TEXT_SELECT_CELL_TYPE>
{ {
public: public:

View File

@ -21,9 +21,34 @@
using namespace espgui; using namespace espgui;
using namespace buildserver; 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 std::string CurrentBranch::text() const
{ {
return stringSettings.otaServerBranch.empty() ? "All builds" : stringSettings.otaServerBranch; return stringSettings.otaServerBranch.empty() ? "All builds" : stringSettings.otaServerBranch;
@ -59,8 +84,6 @@ void ClearBranchAction::triggered()
SelectBuildserverBranchMenu::SelectBuildserverBranchMenu() SelectBuildserverBranchMenu::SelectBuildserverBranchMenu()
{ {
using namespace SelectBuildServerBranch;
if (count_available_buildserver() < 1) if (count_available_buildserver() < 1)
{ {
ERR_MESSAGE(TEXT_OTA_NOBUILDSERVERAVAILABLE); // E:No server saved. ERR_MESSAGE(TEXT_OTA_NOBUILDSERVERAVAILABLE); // E:No server saved.

View File

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

View File

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

View File

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

View File

@ -1,16 +1,14 @@
#pragma once #pragma once
// 3rdparty lib includes
#include "menudisplay.h"
// local includes // local includes
#include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
class SelectModeMenu : class SelectModeMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_SELECTMODE> public espgui::StaticText<TEXT_SELECTMODE>
{ {
using Base = espgui::MenuDisplay; using Base = BobbyMenuDisplay;
public: public:
SelectModeMenu(); SelectModeMenu();

View File

@ -1,20 +1,23 @@
#pragma once #pragma once
// local includes // local includes
#include "menudisplay.h" #include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
#ifdef FEATURE_OTA #ifdef FEATURE_OTA
class SelectBuildMenu : class SelectBuildMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_SELECTBUILD> public espgui::StaticText<TEXT_SELECTBUILD>
{ {
using Base = MenuDisplay; using Base = BobbyMenuDisplay;
public: public:
SelectBuildMenu(); SelectBuildMenu();
void update() override; void update() override;
void back() override; void back() override;
private:
void buildMenuFromJson(); void buildMenuFromJson();
void buildMenuRequestError(std::string error); void buildMenuRequestError(std::string error);
}; };

View File

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

View File

@ -1,13 +1,11 @@
#pragma once #pragma once
// 3rdparty lib includes
#include "menudisplay.h"
// local includes // local includes
#include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
class StationWifiSettingsMenu : class StationWifiSettingsMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_STATIONWIFISETTINGS> public espgui::StaticText<TEXT_STATIONWIFISETTINGS>
{ {
public: public:

View File

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

View File

@ -1,11 +1,11 @@
#pragma once #pragma once
// local includes // local includes
#include "menudisplay.h" #include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
class TaskmanagerMenu : class TaskmanagerMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_TASKMANAGER> public espgui::StaticText<TEXT_TASKMANAGER>
{ {
public: public:

View File

@ -1,13 +1,11 @@
#pragma once #pragma once
// 3rdparty lib includes
#include "menudisplay.h"
// local includes // local includes
#include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
class TempomatModeSettingsMenu : class TempomatModeSettingsMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_TEMPOMATMODESETTINGS> public espgui::StaticText<TEXT_TEMPOMATMODESETTINGS>
{ {
public: public:

View File

@ -1,14 +1,12 @@
#pragma once #pragma once
// local includes // local includes
#include "menudisplay.h" #include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
using namespace espgui;
class TimersMenu : class TimersMenu :
public MenuDisplay, public BobbyMenuDisplay,
public StaticText<TEXT_TIMERS> public espgui::StaticText<TEXT_TIMERS>
{ {
public: public:
TimersMenu(); TimersMenu();

View File

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

View File

@ -1,14 +1,12 @@
#pragma once #pragma once
// 3rdparty lib includes
#include "menudisplay.h"
// local includes // local includes
#include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
#ifdef FEATURE_UDPCLOUD #ifdef FEATURE_UDPCLOUD
class UdpCloudSettingsMenu : class UdpCloudSettingsMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_UDPCLOUDSETTINGS> public espgui::StaticText<TEXT_UDPCLOUDSETTINGS>
{ {
public: public:

View File

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

View File

@ -1,26 +1,31 @@
#pragma once #pragma once
// local includes // 3rdparty lib includes
#include "actions/dummyaction.h" #include "actions/dummyaction.h"
#include "actions/switchscreenaction.h" #include "actions/switchscreenaction.h"
// local includes
#include "displays/bobbymenudisplay.h"
#include "displays/menus/stationwifisettingsmenu.h" #include "displays/menus/stationwifisettingsmenu.h"
#include "menudisplay.h"
#include "texts.h" #include "texts.h"
#include "utils.h" #include "utils.h"
using namespace std::chrono_literals; class WifiScanMenu :
using namespace espgui; public BobbyMenuDisplay,
public espgui::BackActionInterface<espgui::SwitchScreenAction<StationWifiSettingsMenu>>
class WifiScanMenu : public MenuDisplay, public BackActionInterface<SwitchScreenAction<StationWifiSettingsMenu>>
{ {
using Base = MenuDisplay; using Base = BobbyMenuDisplay;
public: public:
WifiScanMenu(); WifiScanMenu();
std::string text() const override; std::string text() const override;
void start() override; void start() override;
void update() override; void update() override;
void stop() override; void stop() override;
void back() override; void back() override;
private: private:
std::optional<espchrono::millis_clock::time_point> m_lastScanComplete; std::optional<espchrono::millis_clock::time_point> m_lastScanComplete;
std::vector<std::unique_ptr<makeComponent<MenuItem, ChangeableText, DummyAction>>> m_reusableItems; std::vector<std::unique_ptr<makeComponent<MenuItem, ChangeableText, DummyAction>>> m_reusableItems;

View File

@ -1,13 +1,11 @@
#pragma once #pragma once
// 3rdparty lib includes
#include "menudisplay.h"
// local includes // local includes
#include "displays/bobbymenudisplay.h"
#include "texts.h" #include "texts.h"
class WifiSettingsMenu : class WifiSettingsMenu :
public espgui::MenuDisplay, public BobbyMenuDisplay,
public espgui::StaticText<TEXT_WIFISETTINGS> public espgui::StaticText<TEXT_WIFISETTINGS>
{ {
public: public:

View File

@ -17,14 +17,19 @@ void AlertDisplay::initScreen()
initOverlay(); initOverlay();
} }
void AlertDisplay::confirm() void AlertDisplay::buttonPressed(espgui::Button button)
{ {
closeOverlay(); Base::buttonPressed(button);
}
void AlertDisplay::back() switch (button)
{ {
closeOverlay(); using espgui::Button;
case Button::Left:
case Button::Right:
closeOverlay();
break;
default:;
}
} }
void AlertDisplay::initOverlay() void AlertDisplay::initOverlay()

View File

@ -3,11 +3,13 @@
// system includes // system includes
#include <memory> #include <memory>
// 3rdparty lib includes // local includes
#include <display.h> #include "displays/bobbydisplay.h"
class AlertDisplay : public espgui::Display class AlertDisplay : public BobbyDisplay
{ {
using Base = BobbyDisplay;
public: public:
AlertDisplay(std::string &&message, std::unique_ptr<Display> &&lastDisplay); AlertDisplay(std::string &&message, std::unique_ptr<Display> &&lastDisplay);
@ -16,8 +18,8 @@ public:
//void update() override; //void update() override;
//void redraw() override; //void redraw() override;
//void stop() override; //void stop() override;
void confirm() override;
void back() override; void buttonPressed(espgui::Button button) override;
void initOverlay(); void initOverlay();
void closeOverlay(); void closeOverlay();

View File

@ -15,7 +15,7 @@ public:
void initScreen() override; void initScreen() override;
void redraw() 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_voltageLabel{120, 50};
espgui::Label m_currentLabel{120, 75}; espgui::Label m_currentLabel{120, 75};