More push pop screens

This commit is contained in:
2022-03-05 22:26:57 +01:00
parent c18403a30f
commit c0f911ce05
20 changed files with 79 additions and 100 deletions

View File

@ -3,13 +3,11 @@
// 3rdparty lib includes
#include <tftinstance.h>
#include <screenmanager.h>
#include <actions/switchscreenaction.h>
#include <esprandom.h>
#include <randomutils.h>
// local includes
#include "globals.h"
#include "displays/menus/mainmenu.h"
#include "icons/shortcircuit.h"
using namespace std::chrono_literals;
@ -106,10 +104,8 @@ void ConfiscationDisplay::buttonPressed(espgui::Button button)
switch (button)
{
using espgui::Button;
case Button::Left:
espgui::switchScreen<MainMenu>();
break;
using espgui::Button;
case Button::Left: espgui::popScreen(); break;
default:;
}
}

View File

@ -6,9 +6,6 @@
#include <tftinstance.h>
#include <screenmanager.h>
// local includes
#include "displays/menus/demosmenu.h"
void GameOfLifeDisplay::start()
{
Base::start();
@ -61,8 +58,7 @@ void GameOfLifeDisplay::buttonPressed(espgui::Button button)
{
using espgui::Button;
case Button::Left:
case Button::Right:
espgui::switchScreen<DemosMenu>();
espgui::popScreen();
break;
default:;
}

View File

@ -17,7 +17,7 @@ public:
void redraw() override;
void stop() override;
void buttonPressed(espgui::Button button);
void buttonPressed(espgui::Button button) override;
private:

View File

@ -4,11 +4,10 @@
#include <menuitem.h>
#include <icons/back.h>
#include <actions/dummyaction.h>
#include <actions/switchscreenaction.h>
#include <actions/popscreenaction.h>
#include <fmt/core.h>
// local includes
#include "debugmenu.h"
#include "accessors/settingsaccessors.h"
#include "utils.h"
#include "icons/settings.h"
@ -82,7 +81,7 @@ BatteryDebugMenu::BatteryDebugMenu()
constructMenuItem<makeComponent<MenuItem, BatteryDebug2Text, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, BatteryDebug3Text, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, CurrentAdvancedBatteryPercentageText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<DebugMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string BatteryDebugMenu::text() const
@ -92,5 +91,5 @@ std::string BatteryDebugMenu::text() const
void BatteryDebugMenu::back()
{
espgui::switchScreen<DebugMenu>();
espgui::popScreen();
}

View File

@ -10,14 +10,13 @@
// 3rdparty lib includes
#include <menuitem.h>
#include <actions/switchscreenaction.h>
#include <actions/popscreenaction.h>
#include <actions/dummyaction.h>
#include <icons/back.h>
#include <screenmanager.h>
#include <futurecpp.h>
// local includes
#include "displays/menus/debugmenu.h"
#include "bobbyerrorhandler.h"
namespace {
@ -256,7 +255,7 @@ CanDebugMenu::CanDebugMenu()
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TWAI_START>, CanStartAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TWAI_UNINSTALL>, CanUninstallAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TWAI_INSTALL>, CanInstallAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<DebugMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string CanDebugMenu::text() const
@ -285,7 +284,7 @@ void CanDebugMenu::update()
void CanDebugMenu::back()
{
espgui::switchScreen<DebugMenu>();
espgui::popScreen();
}
#endif

View File

@ -2,11 +2,10 @@
// local includes
#include "displays/bobbymenudisplay.h"
#include "debugmenu.h"
#include "utils.h"
#include "menuitem.h"
#include "actions/dummyaction.h"
#include "actions/switchscreenaction.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
#include "debugtexthelpers.h"
@ -14,7 +13,7 @@ template<const char *Ttext, typename Ttexts>
class CommandDebugMenu :
public BobbyMenuDisplay,
public espgui::StaticText<Ttext>,
public espgui::BackActionInterface<espgui::SwitchScreenAction<DebugMenu>>
public espgui::BackActionInterface<espgui::PopScreenAction>
{
public:
CommandDebugMenu()
@ -24,7 +23,7 @@ public:
constructMenuItem<makeComponent<MenuItem, typename Ttexts::BuzzerPatternText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::PoweroffText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::LedText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<DebugMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
private:

View File

@ -2,7 +2,8 @@
// 3rdparty lib includes
#include <menuitem.h>
#include <actions/switchscreenaction.h>
#include <actions/pushscreenaction.h>
#include <actions/popscreenaction.h>
#include <actions/dummyaction.h>
#include <icons/back.h>
#include <screenmanager.h>
@ -27,7 +28,6 @@
#include "displays/menus/feedbackdebugmenu.h"
#include "displays/menus/motorfeedbackdebugmenu.h"
#include "displays/menus/dynamicdebugmenu.h"
#include "displays/menus/mainmenu.h"
#include "displays/menus/batterydebugmenu.h"
#include "bobbycheckbox.h"
@ -62,42 +62,42 @@ constexpr char TEXT_BACK[] = "Back";
DebugMenu::DebugMenu()
{
using namespace espgui;
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TASKMANAGER>, SwitchScreenAction<TaskmanagerMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TASKMANAGER>, PushScreenAction<TaskmanagerMenu>>>();
#ifdef FEATURE_CAN
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CANDEBUG>, SwitchScreenAction<CanDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CANDEBUG>, PushScreenAction<CanDebugMenu>>>();
#endif
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_QRCODE_DEBUG>, SwitchScreenAction<QrCodeDebugDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERYDEBUG>, SwitchScreenAction<BatteryDebugMenu>, StaticMenuItemIcon<&bobbyicons::battery>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_QRCODE_DEBUG>, PushScreenAction<QrCodeDebugDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERYDEBUG>, PushScreenAction<BatteryDebugMenu>, StaticMenuItemIcon<&bobbyicons::battery>>>();
if (configs.feature.udpcloud.isEnabled.value)
{
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TOGGLECLOUDDEBUG>, BobbyCheckbox, CloudDebugEnableAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TOGGLECLOUDDEBUG>, BobbyCheckbox, CloudDebugEnableAccessor>>();
}
constructMenuItem<makeComponent<MenuItem, LastRebootReasonText, StaticFont<2>, DisabledColor, DummyAction>>();
#ifdef FEATURE_CAN
constructMenuItem<makeComponent<MenuItem, CanIcCrashText, StaticFont<2>, DisabledColor, DummyAction>>();
#endif
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTCOMMAND>, SwitchScreenAction<FrontCommandDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKCOMMAND>, SwitchScreenAction<BackCommandDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTCOMMAND>, PushScreenAction<FrontCommandDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKCOMMAND>, PushScreenAction<BackCommandDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTLEFTCOMMAND>, SwitchScreenAction<FrontLeftMotorStateDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTRIGHTCOMMAND>, SwitchScreenAction<FrontRightMotorStateDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKLEFTCOMMAND>, SwitchScreenAction<BackLeftMotorStateDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKRIGHTCOMMAND>, SwitchScreenAction<BackRightMotorStateDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTLEFTCOMMAND>, PushScreenAction<FrontLeftMotorStateDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTRIGHTCOMMAND>, PushScreenAction<FrontRightMotorStateDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKLEFTCOMMAND>, PushScreenAction<BackLeftMotorStateDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKRIGHTCOMMAND>, PushScreenAction<BackRightMotorStateDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTFEEDBACK>, SwitchScreenAction<FrontFeedbackDebugMenu>, FrontFeedbackColor<TFT_WHITE>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKFEEDBACK>, SwitchScreenAction<BackFeedbackDebugMenu>, BackFeedbackColor<TFT_WHITE>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTFEEDBACK>, PushScreenAction<FrontFeedbackDebugMenu>, FrontFeedbackColor<TFT_WHITE>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKFEEDBACK>, PushScreenAction<BackFeedbackDebugMenu>, BackFeedbackColor<TFT_WHITE>>>();
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTLEFTFEEDBACK>, SwitchScreenAction<FrontLeftMotorFeedbackDebugMenu>, FrontFeedbackColor<TFT_WHITE>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTRIGHTFEEDBACK>, SwitchScreenAction<FrontRightMotorFeedbackDebugMenu>, FrontFeedbackColor<TFT_WHITE>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKLEFTFEEDBACK>, SwitchScreenAction<BackLeftMotorFeedbackDebugMenu>, BackFeedbackColor<TFT_WHITE>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKRIGHTFEEDBACK>, SwitchScreenAction<BackRightMotorFeedbackDebugMenu>, BackFeedbackColor<TFT_WHITE>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTLEFTFEEDBACK>, PushScreenAction<FrontLeftMotorFeedbackDebugMenu>, FrontFeedbackColor<TFT_WHITE>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTRIGHTFEEDBACK>, PushScreenAction<FrontRightMotorFeedbackDebugMenu>, FrontFeedbackColor<TFT_WHITE>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKLEFTFEEDBACK>, PushScreenAction<BackLeftMotorFeedbackDebugMenu>, BackFeedbackColor<TFT_WHITE>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKRIGHTFEEDBACK>, PushScreenAction<BackRightMotorFeedbackDebugMenu>, BackFeedbackColor<TFT_WHITE>>>();
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_LOADSETTINGS>, LoadSettingsAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SAVESETTINGS>, SaveSettingsAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ERASENVS>, EraseNvsAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DYNAMICMENU>, SwitchScreenAction<DynamicDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DYNAMICMENU>, PushScreenAction<DynamicDebugMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string DebugMenu::text() const
@ -107,5 +107,5 @@ std::string DebugMenu::text() const
void DebugMenu::back()
{
espgui::switchScreen<MainMenu>();
espgui::popScreen();
}

View File

@ -2,13 +2,13 @@
// 3rdparty lib includes
#include "menuitem.h"
#include "actions/switchscreenaction.h"
#include "actions/pushscreenaction.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
#include "displays/starfielddisplay.h"
#include "displays/pingpongdisplay.h"
#include "displays/spirodisplay.h"
#include "displays/gameoflifedisplay.h"
#include "displays/menus/mainmenu.h"
// local includes
#include "utils.h"
@ -25,11 +25,11 @@ constexpr char TEXT_BACK[] = "Back";
DemosMenu::DemosMenu()
{
using namespace espgui;
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_STARFIELD>, SwitchScreenAction<StarfieldDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_PINGPONG>, SwitchScreenAction<PingPongDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SPIRO>, SwitchScreenAction<SpiroDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GAMEOFLIFE>, SwitchScreenAction<GameOfLifeDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_STARFIELD>, PushScreenAction<StarfieldDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_PINGPONG>, PushScreenAction<PingPongDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SPIRO>, PushScreenAction<SpiroDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GAMEOFLIFE>, PushScreenAction<GameOfLifeDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string DemosMenu::text() const
@ -39,5 +39,5 @@ std::string DemosMenu::text() const
void DemosMenu::back()
{
espgui::switchScreen<MainMenu>();
espgui::popScreen();
}

View File

@ -14,6 +14,8 @@
#include <icons/back.h>
#include <changevaluedisplay.h>
#include <changevaluedisplay_bool.h>
#include <actions/pushscreenaction.h>
#include <actions/popscreenaction.h>
// local includes
#include "displays/bobbychangevaluedisplay.h"
@ -90,8 +92,8 @@ using ToggleChangeValueDisplay = espgui::makeComponent<
BobbyChangeValueDisplay<bool>,
espgui::StaticText<TEXT_DEBUGTOGGLEMENU>,
ToggleAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<DynamicDebugMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<DynamicDebugMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
class OpenPopupAction : public virtual espgui::ActionInterface
@ -135,7 +137,7 @@ DynamicDebugMenu::DynamicDebugMenu()
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_STATICICON>, StaticMenuItemIcon<&bobbyicons::lock>, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_LOCKTOGGLE>, BobbyCheckbox, ToggleLockedAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DEBUGTOGGLE>, BobbyCheckbox, ToggleAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DEBUGTOGGLEMENU>, SwitchScreenAction<ToggleChangeValueDisplay>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DEBUGTOGGLEMENU>, PushScreenAction<ToggleChangeValueDisplay>>>();
constructMenuItem<makeComponent<MenuItem, RandomText, RandomColor, RandomFont, RandomIcon, DummyAction>>();
// more scrolling
@ -146,7 +148,12 @@ DynamicDebugMenu::DynamicDebugMenu()
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DUMMYITEM>, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DUMMYITEM>, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<DebugMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
void DynamicDebugMenu::back()
{
espgui::popScreen();
}
namespace {

View File

@ -3,11 +3,9 @@
// 3rdparty lib includes
#include <textinterface.h>
#include <espchrono.h>
#include <actions/switchscreenaction.h>
// local includes
#include "displays/bobbymenudisplay.h"
#include "debugmenu.h"
class RandomText : public virtual espgui::TextInterface
{
@ -21,9 +19,10 @@ private:
class DynamicDebugMenu :
public BobbyMenuDisplay,
public RandomText,
public espgui::BackActionInterface<espgui::SwitchScreenAction<DebugMenu>>
public RandomText
{
public:
DynamicDebugMenu();
void back() override;
};

View File

@ -2,11 +2,10 @@
// local includes
#include "displays/bobbymenudisplay.h"
#include "debugmenu.h"
#include "utils.h"
#include "menuitem.h"
#include "actions/dummyaction.h"
#include "actions/switchscreenaction.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
#include "debugtexthelpers.h"
#include "debugcolorhelpers.h"
@ -16,7 +15,7 @@ template<const char *Ttext, typename Ttexts, template<int> class ColorInterface>
class FeedbackDebugMenu :
public BobbyMenuDisplay,
public espgui::StaticText<Ttext>,
public espgui::BackActionInterface<espgui::SwitchScreenAction<DebugMenu>>
public espgui::BackActionInterface<espgui::PopScreenAction>
{
public:
FeedbackDebugMenu()
@ -27,7 +26,7 @@ public:
//constructMenuItem<makeComponent<MenuItem, typename Ttexts::BoardTempText, ColorInterface<TFT_DARKGREY>, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::BoardTempFixedText, ColorInterface<TFT_DARKGREY>, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::TimeoutCntSerialText, StaticFont<2>, ColorInterface<TFT_DARKGREY>, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<DebugMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
private:

View File

@ -2,11 +2,10 @@
// local includes
#include "displays/bobbymenudisplay.h"
#include "debugmenu.h"
#include "utils.h"
#include "menuitem.h"
#include "actions/dummyaction.h"
#include "actions/switchscreenaction.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
#include "debugtexthelpers.h"
#include "debugcolorhelpers.h"
@ -15,7 +14,7 @@ template<const char *Ttext, typename Ttexts, template<int> class ColorInterface>
class MotorFeedbackDebugMenu :
public BobbyMenuDisplay,
public espgui::StaticText<Ttext>,
public espgui::BackActionInterface<espgui::SwitchScreenAction<DebugMenu>>
public espgui::BackActionInterface<espgui::PopScreenAction>
{
public:
MotorFeedbackDebugMenu()
@ -36,7 +35,7 @@ public:
constructMenuItem<makeComponent<MenuItem, typename Ttexts::DcPhaCFixedText, ColorInterface<TFT_DARKGREY>, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::ChopsText, ColorInterface<TFT_DARKGREY>, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::HallText, ColorInterface<TFT_DARKGREY>, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<DebugMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
private:

View File

@ -3,12 +3,11 @@
// 3rdparty lib includes
#include "menuitem.h"
#include "actions/dummyaction.h"
#include "actions/switchscreenaction.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
// local includes
#include "displays/bobbymenudisplay.h"
#include "debugmenu.h"
#include "utils.h"
#include "debugtexthelpers.h"
@ -16,7 +15,7 @@ template<const char *Ttext, typename Ttexts>
class MotorStateDebugMenu :
public BobbyMenuDisplay,
public espgui::StaticText<Ttext>,
public espgui::BackActionInterface<espgui::SwitchScreenAction<DebugMenu>>
public espgui::BackActionInterface<espgui::PopScreenAction>
{
public:
MotorStateDebugMenu()
@ -33,7 +32,7 @@ public:
constructMenuItem<makeComponent<MenuItem, typename Ttexts::PhaseAdvMaxText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::CruiseCtrlEnaText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, typename Ttexts::NCruiseMotTgtText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<DebugMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
private:

View File

@ -2,8 +2,7 @@
// local includes
#include "actions/switchprofileaction.h"
#include "actions/switchscreenaction.h"
#include "displays/menus/mainmenu.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
#include "menudisplay.h"
@ -22,7 +21,7 @@ ProfilesMenu::ProfilesMenu()
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_PROFILE1>, SwitchProfileAction<1>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_PROFILE2>, SwitchProfileAction<2>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_PROFILE3>, SwitchProfileAction<3>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string ProfilesMenu::text() const
@ -32,5 +31,5 @@ std::string ProfilesMenu::text() const
void ProfilesMenu::back()
{
switchScreen<MainMenu>();
popScreen();
}

View File

@ -2,13 +2,12 @@
// 3rdparty lib includes
#include <icons/back.h>
#include <actions/switchscreenaction.h>
#include <actions/popscreenaction.h>
#include <actions/dummyaction.h>
#include <schedulertask.h>
#include <fmt/core.h>
// local includes
#include "displays/menus/debugmenu.h"
#include "taskmanager.h"
using namespace espgui;
@ -38,7 +37,7 @@ TaskmanagerMenu::TaskmanagerMenu()
{
for (const auto &task : schedulerTasks)
constructMenuItem<makeComponentArgs<MenuItem, TaskText, DummyAction>>(task);
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<DebugMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string TaskmanagerMenu::text() const
@ -48,5 +47,5 @@ std::string TaskmanagerMenu::text() const
void TaskmanagerMenu::back()
{
switchScreen<DebugMenu>();
popScreen();
}

View File

@ -6,9 +6,6 @@
#include <tftinstance.h>
#include <screenmanager.h>
// local includes
#include "displays/menus/demosmenu.h"
PingPongDisplay::PingPongDisplay() :
lpaddle_y(cpputils::randomNumber<uint8_t>(0, h - paddle_h, espcpputils::esp_random_device{})),
rpaddle_y(cpputils::randomNumber<uint8_t>(0, h - paddle_h, espcpputils::esp_random_device{})),
@ -55,8 +52,7 @@ void PingPongDisplay::buttonPressed(espgui::Button button)
{
using espgui::Button;
case Button::Left:
case Button::Right:
espgui::switchScreen<DemosMenu>();
espgui::popScreen();
break;
default:;
}

View File

@ -7,7 +7,6 @@
// local includes
#include "utils.h"
#include "globals.h"
#include "displays/menus/mainmenu.h"
using namespace std::chrono_literals;
@ -43,7 +42,7 @@ void PoweroffDisplay::update()
Base::update();
if (espchrono::millis_clock::now() - m_startTime >= 1000ms)
espgui::switchScreen<MainMenu>();
espgui::popScreen();
}
void PoweroffDisplay::stop()

View File

@ -1,9 +1,10 @@
#include "qrcodedebug.h"
// 3rdparty lib includes
#include <fmt/core.h>
#include <tftinstance.h>
#include "displays/menus/debugmenu.h"
// local includes
#include "globals.h"
#include "screenmanager.h"
#include "newsettings.h"
@ -26,9 +27,7 @@ void QrCodeDebugDisplay::buttonPressed(espgui::Button button)
switch (button)
{
using espgui::Button;
case Button::Left:
switchScreen<DebugMenu>();
break;
case Button::Left: popScreen(); break;
case Button::Right:
{
uint8_t qrcodeBytes[qrcode_getBufferSize(7)];

View File

@ -6,9 +6,6 @@
#include <tftinstance.h>
#include <screenmanager.h>
// local includes
#include "displays/menus/demosmenu.h"
void SpiroDisplay::initScreen()
{
Base::initScreen();
@ -88,8 +85,7 @@ void SpiroDisplay::buttonPressed(espgui::Button button)
{
using espgui::Button;
case Button::Left:
case Button::Right:
espgui::switchScreen<DemosMenu>();
espgui::popScreen();
break;
default:;
}

View File

@ -87,8 +87,7 @@ void StarfieldDisplay::buttonPressed(espgui::Button button)
{
using espgui::Button;
case Button::Left:
case Button::Right:
espgui::switchScreen<DemosMenu>();
espgui::popScreen();
break;
default:;
}