Implemented back button for a few menus
This commit is contained in:
@@ -9,7 +9,35 @@ class ChangeValueDisplayInterface;
|
|||||||
}
|
}
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
class Display {
|
class ConfirmInterface {
|
||||||
|
public:
|
||||||
|
virtual void confirm() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class BackInterface {
|
||||||
|
public:
|
||||||
|
virtual void back() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
class ConfirmActionInterface : public virtual ConfirmInterface
|
||||||
|
{
|
||||||
|
T m_action;
|
||||||
|
|
||||||
|
public:
|
||||||
|
void confirm() override { m_action.triggered(); }
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
class BackActionInterface : public virtual BackInterface
|
||||||
|
{
|
||||||
|
T m_action;
|
||||||
|
|
||||||
|
public:
|
||||||
|
void back() override { m_action.triggered(); }
|
||||||
|
};
|
||||||
|
|
||||||
|
class Display : public virtual ConfirmInterface, public virtual BackInterface {
|
||||||
public:
|
public:
|
||||||
virtual ~Display() = default;
|
virtual ~Display() = default;
|
||||||
|
|
||||||
@@ -20,8 +48,6 @@ public:
|
|||||||
virtual void stop() {}
|
virtual void stop() {}
|
||||||
|
|
||||||
virtual void rotate(int offset) {}
|
virtual void rotate(int offset) {}
|
||||||
virtual void confirm() {}
|
|
||||||
virtual void back() {}
|
|
||||||
|
|
||||||
virtual TextInterface *asTextInterface() { return nullptr; }
|
virtual TextInterface *asTextInterface() { return nullptr; }
|
||||||
virtual const TextInterface *asTextInterface() const { return nullptr; }
|
virtual const TextInterface *asTextInterface() const { return nullptr; }
|
||||||
|
@@ -24,6 +24,7 @@ namespace {
|
|||||||
class BmsMenu :
|
class BmsMenu :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public StaticText<TEXT_BMS>,
|
public StaticText<TEXT_BMS>,
|
||||||
|
public BackActionInterface<SwitchScreenAction<MainMenu>>,
|
||||||
public StaticMenuDefinition<
|
public StaticMenuDefinition<
|
||||||
makeComponent<MenuItem, StaticText<TEXT_CONNECTBMS>, BluetoothConnectBmsAction>,
|
makeComponent<MenuItem, StaticText<TEXT_CONNECTBMS>, BluetoothConnectBmsAction>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_DISCONNECTBMS>, BluetoothDisconnectAction>,
|
makeComponent<MenuItem, StaticText<TEXT_DISCONNECTBMS>, BluetoothDisconnectAction>,
|
||||||
|
@@ -36,6 +36,7 @@ namespace {
|
|||||||
class DebugMenu :
|
class DebugMenu :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public StaticText<TEXT_DEBUG>,
|
public StaticText<TEXT_DEBUG>,
|
||||||
|
public BackActionInterface<SwitchScreenAction<MainMenu>>,
|
||||||
public StaticMenuDefinition<
|
public StaticMenuDefinition<
|
||||||
makeComponent<MenuItem, StaticText<TEXT_LOADSETTINGS>, LoadSettingsAction>,
|
makeComponent<MenuItem, StaticText<TEXT_LOADSETTINGS>, LoadSettingsAction>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_SAVESETTINGS>, SaveSettingsAction>,
|
makeComponent<MenuItem, StaticText<TEXT_SAVESETTINGS>, SaveSettingsAction>,
|
||||||
|
@@ -20,6 +20,7 @@ namespace {
|
|||||||
class DemosMenu :
|
class DemosMenu :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public StaticText<TEXT_DEMOS>,
|
public StaticText<TEXT_DEMOS>,
|
||||||
|
public BackActionInterface<SwitchScreenAction<MainMenu>>,
|
||||||
public StaticMenuDefinition<
|
public StaticMenuDefinition<
|
||||||
makeComponent<MenuItem, StaticText<TEXT_STARFIELD>, SwitchScreenAction<StarfieldDisplay>>,
|
makeComponent<MenuItem, StaticText<TEXT_STARFIELD>, SwitchScreenAction<StarfieldDisplay>>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_PINGPONG>, SwitchScreenAction<PingPongDisplay>>,
|
makeComponent<MenuItem, StaticText<TEXT_PINGPONG>, SwitchScreenAction<PingPongDisplay>>,
|
||||||
|
@@ -48,6 +48,7 @@ using MotorCurrentsGraphDisplay = makeComponent<GraphDisplay<4>, StaticText<TEXT
|
|||||||
class GraphsMenu :
|
class GraphsMenu :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public StaticText<TEXT_GRAPHS>,
|
public StaticText<TEXT_GRAPHS>,
|
||||||
|
public BackActionInterface<SwitchScreenAction<MainMenu>>,
|
||||||
public StaticMenuDefinition<
|
public StaticMenuDefinition<
|
||||||
makeComponent<MenuItem, StaticText<TEXT_GAS>, SwitchScreenAction<GasGraphDisplay>>,
|
makeComponent<MenuItem, StaticText<TEXT_GAS>, SwitchScreenAction<GasGraphDisplay>>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_BREMS>, SwitchScreenAction<BremsGraphDisplay>>,
|
makeComponent<MenuItem, StaticText<TEXT_BREMS>, SwitchScreenAction<BremsGraphDisplay>>,
|
||||||
|
@@ -34,6 +34,7 @@ namespace {
|
|||||||
class MainMenu :
|
class MainMenu :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public StaticText<TEXT_MAINMENU>,
|
public StaticText<TEXT_MAINMENU>,
|
||||||
|
public BackActionInterface<SwitchScreenAction<StatusDisplay>>,
|
||||||
public StaticMenuDefinition<
|
public StaticMenuDefinition<
|
||||||
makeComponent<MenuItem, StaticText<TEXT_STATUS>, SwitchScreenAction<StatusDisplay>, StaticMenuItemIcon<&icons::back>>,
|
makeComponent<MenuItem, StaticText<TEXT_STATUS>, SwitchScreenAction<StatusDisplay>, StaticMenuItemIcon<&icons::back>>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_SELECTMODE>, SwitchScreenAction<SelectModeMenu>, StaticMenuItemIcon<&icons::modes>>,
|
makeComponent<MenuItem, StaticText<TEXT_SELECTMODE>, SwitchScreenAction<SelectModeMenu>, StaticMenuItemIcon<&icons::modes>>,
|
||||||
|
@@ -32,6 +32,7 @@ class ApplyBoardcomputerHardwarePresetAction : public virtual ActionInterface {p
|
|||||||
class PresetsMenu :
|
class PresetsMenu :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public StaticText<TEXT_PRESETS>,
|
public StaticText<TEXT_PRESETS>,
|
||||||
|
public BackActionInterface<SwitchScreenAction<MainMenu>>,
|
||||||
public StaticMenuDefinition<
|
public StaticMenuDefinition<
|
||||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULTEVERYTHING>, ApplyPresetAction<&presets::defaultSettings>>,
|
makeComponent<MenuItem, StaticText<TEXT_DEFAULTEVERYTHING>, ApplyPresetAction<&presets::defaultSettings>>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULTLIMITS>, ApplyLimitsPresetAction<&presets::defaultLimits>>,
|
makeComponent<MenuItem, StaticText<TEXT_DEFAULTLIMITS>, ApplyLimitsPresetAction<&presets::defaultLimits>>,
|
||||||
|
@@ -31,6 +31,7 @@ using SetLarsmModeAction = SetterAction<ModeInterface*, currentMode, LarsmMode*,
|
|||||||
class SelectModeMenu :
|
class SelectModeMenu :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public StaticText<TEXT_SELECTMODE>,
|
public StaticText<TEXT_SELECTMODE>,
|
||||||
|
public BackActionInterface<SwitchScreenAction<MainMenu>>,
|
||||||
public StaticMenuDefinition<
|
public StaticMenuDefinition<
|
||||||
makeComponent<MenuItem, StaticText<TEXT_DEFAULT>, MultiAction<SetDefaultModeAction, SwitchScreenAction<MainMenu>>>,
|
makeComponent<MenuItem, StaticText<TEXT_DEFAULT>, MultiAction<SetDefaultModeAction, SwitchScreenAction<MainMenu>>>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_TEMPOMAT>, MultiAction<SetTempomatModeAction, SwitchScreenAction<MainMenu>>>,
|
makeComponent<MenuItem, StaticText<TEXT_TEMPOMAT>, MultiAction<SetTempomatModeAction, SwitchScreenAction<MainMenu>>>,
|
||||||
|
@@ -37,6 +37,7 @@ struct BackLedAccessor : public RefAccessor<bool> { bool &getRef() const overrid
|
|||||||
class SettingsMenu :
|
class SettingsMenu :
|
||||||
public MenuDisplay,
|
public MenuDisplay,
|
||||||
public StaticText<TEXT_SETTINGS>,
|
public StaticText<TEXT_SETTINGS>,
|
||||||
|
public BackActionInterface<SwitchScreenAction<MainMenu>>,
|
||||||
public StaticMenuDefinition<
|
public StaticMenuDefinition<
|
||||||
makeComponent<MenuItem, StaticText<TEXT_LIMITSSETTINGS>, SwitchScreenAction<LimitsSettingsMenu>>,
|
makeComponent<MenuItem, StaticText<TEXT_LIMITSSETTINGS>, SwitchScreenAction<LimitsSettingsMenu>>,
|
||||||
makeComponent<MenuItem, StaticText<TEXT_WIFISETTINGS>, SwitchScreenAction<WifiSettingsMenu>, StaticMenuItemIcon<&icons::wifi>>,
|
makeComponent<MenuItem, StaticText<TEXT_WIFISETTINGS>, SwitchScreenAction<WifiSettingsMenu>, StaticMenuItemIcon<&icons::wifi>>,
|
||||||
|
Reference in New Issue
Block a user