More and more push pop implementations

This commit is contained in:
2022-03-05 23:41:28 +01:00
parent e4b8622fed
commit d40f5e71a4
12 changed files with 123 additions and 115 deletions

View File

@ -3,7 +3,7 @@
// local includes
#include "utils.h"
#include "actions/dummyaction.h"
#include "actions/switchscreenaction.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
#include "esptexthelpers.h"
#include "displays/menus/settingsmenu.h"
@ -56,7 +56,7 @@ AboutMenu::AboutMenu()
constructMenuItem<makeComponent<MenuItem, EspSketchSizeText, StaticFont<2>, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, EspSketchMd5Text, StaticFont<2>, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, EspFreeSketchSpaceText, StaticFont<2>, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string AboutMenu::text() const
@ -66,5 +66,5 @@ std::string AboutMenu::text() const
void AboutMenu::back()
{
espgui::switchScreen<SettingsMenu>();
espgui::popScreen();
}

View File

@ -3,7 +3,8 @@
// 3rdparty lib includes
#include "changevaluedisplay.h"
#include "menuitem.h"
#include "actions/switchscreenaction.h"
#include "actions/pushscreenaction.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
// local includes
@ -32,8 +33,8 @@ using FrontFreqChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<uint8_t>,
espgui::StaticText<TEXT_FRONTFREQ>,
FrontFreqAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
struct FrontPatternAccessor : public espgui::RefAccessor<uint8_t> { uint8_t &getRef() const override { return controllers.front.command.buzzer.pattern; } };
@ -41,8 +42,8 @@ using FrontPatternChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<uint8_t>,
espgui::StaticText<TEXT_FRONTPATTERN>,
FrontPatternAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
struct BackFreqAccessor : public espgui::RefAccessor<uint8_t> { uint8_t &getRef() const override { return controllers.back.command.buzzer.freq; } };
@ -50,8 +51,8 @@ using BackFreqChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<uint8_t>,
espgui::StaticText<TEXT_BACKFREQ>,
BackFreqAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
struct BackPatternAccessor : public espgui::RefAccessor<uint8_t> { uint8_t &getRef() const override { return controllers.back.command.buzzer.pattern; } };
@ -59,37 +60,37 @@ using BackPatternChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<uint8_t>,
espgui::StaticText<TEXT_BACKPATTERN>,
BackPatternAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using ReverseBeepFreq0ChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<uint8_t>,
espgui::StaticText<TEXT_REVERSEBEEPFREQ0>,
ReverseBeepFreq0Accessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using ReverseBeepFreq1ChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<uint8_t>,
espgui::StaticText<TEXT_REVERSEBEEPFREQ1>,
ReverseBeepFreq1Accessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using ReverseBeepDuration0ChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<int16_t>,
espgui::StaticText<TEXT_REVERSEBEEPDURATION0>,
ReverseBeepDuration0Accessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using ReverseBeepDuration1ChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<int16_t>,
espgui::StaticText<TEXT_REVERSEBEEPDURATION1>,
ReverseBeepDuration1Accessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<BuzzerMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
} // namespace
@ -97,16 +98,16 @@ using namespace espgui;
BuzzerMenu::BuzzerMenu()
{
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTFREQ>, SwitchScreenAction<FrontFreqChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTPATTERN>, SwitchScreenAction<FrontPatternChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKFREQ>, SwitchScreenAction<BackFreqChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKPATTERN>, SwitchScreenAction<BackPatternChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTFREQ>, PushScreenAction<FrontFreqChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FRONTPATTERN>, PushScreenAction<FrontPatternChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKFREQ>, PushScreenAction<BackFreqChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACKPATTERN>, PushScreenAction<BackPatternChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_REVERSEBEEP>, BobbyCheckbox, ReverseBeepAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_REVERSEBEEPFREQ0>, SwitchScreenAction<ReverseBeepFreq0ChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_REVERSEBEEPFREQ1>, SwitchScreenAction<ReverseBeepFreq1ChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_REVERSEBEEPDURATION0>, SwitchScreenAction<ReverseBeepDuration0ChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_REVERSEBEEPDURATION1>, SwitchScreenAction<ReverseBeepDuration1ChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_REVERSEBEEPFREQ0>, PushScreenAction<ReverseBeepFreq0ChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_REVERSEBEEPFREQ1>, PushScreenAction<ReverseBeepFreq1ChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_REVERSEBEEPDURATION0>, PushScreenAction<ReverseBeepDuration0ChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_REVERSEBEEPDURATION1>, PushScreenAction<ReverseBeepDuration1ChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string BuzzerMenu::text() const
@ -116,5 +117,5 @@ std::string BuzzerMenu::text() const
void BuzzerMenu::back()
{
switchScreen<SettingsMenu>();
popScreen();
}

View File

@ -1,13 +1,12 @@
#include "crashmenu.h"
// 3rdparty lib includes
#include "actions/switchscreenaction.h"
#include "actions/popscreenaction.h"
#include "icons/back.h"
// local includes
#include "actions/assertaction.h"
#include "actions/dividebyzeroaction.h"
#include "displays/menus/settingsmenu.h"
namespace {
constexpr char TEXT_CRASHMENU[] = "Crash Menu";
@ -21,7 +20,7 @@ CrashMenu::CrashMenu()
using namespace espgui;
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CRASH_ASSERT>, AssertAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CRASH_DIVZERO>, DivideByZeroAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string CrashMenu::text() const
@ -31,5 +30,5 @@ std::string CrashMenu::text() const
void CrashMenu::back()
{
espgui::switchScreen<SettingsMenu>();
espgui::popScreen();
}

View File

@ -3,7 +3,8 @@
// 3rdparty lib includes
#include <changevaluedisplay.h>
#include <menuitem.h>
#include <actions/switchscreenaction.h>
#include <actions/pushscreenaction.h>
#include <actions/popscreenaction.h>
#include <icons/back.h>
#include <textwithvaluehelper.h>
@ -11,7 +12,6 @@
#include "displays/bobbychangevaluedisplay.h"
#include "utils.h"
#include "accessors/settingsaccessors.h"
#include "displays/menus/settingsmenu.h"
namespace {
constexpr char TEXT_LIMITSSETTINGS[] = "Limit settings";
@ -27,43 +27,43 @@ using IMotMaxChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<int16_t>,
espgui::StaticText<TEXT_IMOTMAX>,
IMotMaxAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<LimitsSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<LimitsSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using IDcMaxChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<int16_t>,
espgui::StaticText<TEXT_IDCMAX>,
IDcMaxAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<LimitsSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<LimitsSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using NMotMaxKmhChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<int16_t>,
espgui::StaticText<TEXT_NMOTMAXKMH>,
NMotMaxKmhAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<LimitsSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<LimitsSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using NMotMaxRpmChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<int16_t>,
espgui::StaticText<TEXT_NMOTMAX>,
NMotMaxRpmAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<LimitsSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<LimitsSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using FieldWeakMaxChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<int16_t>,
espgui::StaticText<TEXT_FIELDWEAKMAX>,
FieldWeakMaxAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<LimitsSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<LimitsSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using PhaseAdvMaxChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<int16_t>,
espgui::StaticText<TEXT_PHASEADVMAX>,
PhaseAdvMaxAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<LimitsSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<LimitsSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
} // namespace
@ -71,13 +71,13 @@ using namespace espgui;
LimitsSettingsMenu::LimitsSettingsMenu()
{
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_IMOTMAX, IMotMaxAccessor>, SwitchScreenAction<IMotMaxChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_IDCMAX, IDcMaxAccessor>, SwitchScreenAction<IDcMaxChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_NMOTMAXKMH, NMotMaxKmhAccessor>, SwitchScreenAction<NMotMaxKmhChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_NMOTMAX, NMotMaxRpmAccessor>, SwitchScreenAction<NMotMaxRpmChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FIELDWEAKMAX, FieldWeakMaxAccessor>, SwitchScreenAction<FieldWeakMaxChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_PHASEADVMAX, PhaseAdvMaxAccessor>, SwitchScreenAction<PhaseAdvMaxChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_IMOTMAX, IMotMaxAccessor>, PushScreenAction<IMotMaxChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_IDCMAX, IDcMaxAccessor>, PushScreenAction<IDcMaxChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_NMOTMAXKMH, NMotMaxKmhAccessor>, PushScreenAction<NMotMaxKmhChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_NMOTMAX, NMotMaxRpmAccessor>, PushScreenAction<NMotMaxRpmChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FIELDWEAKMAX, FieldWeakMaxAccessor>, PushScreenAction<FieldWeakMaxChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_PHASEADVMAX, PhaseAdvMaxAccessor>, PushScreenAction<PhaseAdvMaxChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>();
}
std::string LimitsSettingsMenu::text() const
@ -87,5 +87,5 @@ std::string LimitsSettingsMenu::text() const
void LimitsSettingsMenu::back()
{
switchScreen<SettingsMenu>();
popScreen();
}

View File

@ -2,7 +2,10 @@
// 3rdparty lib includes
#include <actions/dummyaction.h>
#include <actions/switchscreenaction.h>
#include <actions/pushscreenaction.h>
#include <actions/popscreenaction.h>
#include <icons/back.h>
#include <screenmanager.h>
#include <fmt/format.h>
#include <icons/back.h>
#include <menuitem.h>
@ -13,6 +16,8 @@
#include "globals.h"
#include "utils.h"
#include "settingsmenu.h"
#include "wifistasettingsmenu.h"
#include "wifiapsettingsmenu.h"
#include "texthelpers/networktexthelpers.h"
#include "wifiapsettingsmenu.h"
#include "wifistasettingsmenu.h"
@ -28,17 +33,16 @@ constexpr char TEXT_BACK[] = "Back";
NetworkSettingsMenu::NetworkSettingsMenu()
{
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_STASETTINGS>, SwitchScreenAction<WifiStaSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_APSETTINGS>, SwitchScreenAction<WifiApSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_STASETTINGS>, PushScreenAction<WifiStaSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_APSETTINGS>, PushScreenAction<WifiApSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_APQRCODE>, NetworkAccessPointQRAction>>();
constructMenuItem<makeComponent<MenuItem, WifiDefaultMacText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, WifiBaseMacText, DummyAction>>();
constructMenuItem<makeComponentArgs<MenuItem, DnsText, DummyAction>>(uint8_t{0});
constructMenuItem<makeComponentArgs<MenuItem, DnsText, DummyAction>>(uint8_t{1});
constructMenuItem<makeComponentArgs<MenuItem, DnsText, DummyAction>>(uint8_t{2});
constructMenuItem<makeComponent<MenuItem, WifiTxPowerText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&icons::back>>>();
}
std::string NetworkSettingsMenu::text() const
@ -48,7 +52,7 @@ std::string NetworkSettingsMenu::text() const
void NetworkSettingsMenu::back()
{
switchScreen<SettingsMenu>();
popScreen();
}
void NetworkAccessPointQRAction::triggered()

View File

@ -9,7 +9,7 @@
// 3rdparty lib includes
#include <menuitem.h>
#include <actions/dummyaction.h>
#include <actions/switchscreenaction.h>
#include <actions/popscreenaction.h>
#include <icons/back.h>
#include <screenmanager.h>
#include <fmt/format.h>
@ -51,12 +51,12 @@ private:
WifiApClientsMenu::WifiApClientsMenu() :
espgui::ChangeableText{"AP Clients"s}
{
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<WifiApSettingsMenu>, StaticMenuItemIcon<&icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&icons::back>>>();
}
void WifiApClientsMenu::back()
{
switchScreen<WifiApSettingsMenu>();
popScreen();
}
void WifiApClientsMenu::start()

View File

@ -6,7 +6,8 @@
// 3rdparty lib includes
#include <menuitem.h>
#include <actions/dummyaction.h>
#include <actions/switchscreenaction.h>
#include <actions/pushscreenaction.h>
#include <actions/popscreenaction.h>
#include <icons/back.h>
#include <screenmanager.h>
#include <espwifistack.h>
@ -56,48 +57,48 @@ using ApSsidChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<std::string>,
espgui::StaticText<TEXT_SSID>,
WifiApSsidAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using ApKeyChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<std::string>,
espgui::StaticText<TEXT_KEY>,
WifiApKeyAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using ApIpChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<wifi_stack::ip_address_t>,
espgui::StaticText<TEXT_IP>,
WifiApIpAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using ApMaskChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<wifi_stack::ip_address_t>,
espgui::StaticText<TEXT_MASK>,
WifiApMaskAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using ApChannelChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<uint8_t>,
espgui::StaticText<TEXT_CHANNEL>,
WifiApChannelAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
using ApAuthmodeChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<wifi_auth_mode_t>,
espgui::StaticText<TEXT_AUTHMODE>,
WifiApAuthmodeAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<WifiApSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
} // namespace
@ -105,16 +106,16 @@ WifiApSettingsMenu::WifiApSettingsMenu()
{
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLED>, BobbyCheckbox, WifiApEnabledAccessor>>();
//constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DISABLEWHENONLINE>, BobbyCheckbox, WifiApDisableWhenOnlineAccessor>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SSID_FORMATTED, WifiApSsidAccessor>, SwitchScreenAction<ApSsidChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_KEY_FORMATTED, WifiApKeyAccessor>, SwitchScreenAction<ApKeyChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SSID_FORMATTED, WifiApSsidAccessor>, PushScreenAction<ApSsidChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_KEY_FORMATTED, WifiApKeyAccessor>, PushScreenAction<ApKeyChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, WifiApMacText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_IP_FORMATTED, WifiApIpAccessor>, SwitchScreenAction<ApIpChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_MASK_FORMATTED, WifiApMaskAccessor>, SwitchScreenAction<ApMaskChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_CHANNEL_FORMATTED, WifiApChannelAccessor>, SwitchScreenAction<ApChannelChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_AUTHMODE_FORMATTED, WifiApAuthmodeAccessor>, SwitchScreenAction<ApAuthmodeChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_IP_FORMATTED, WifiApIpAccessor>, PushScreenAction<ApIpChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_MASK_FORMATTED, WifiApMaskAccessor>, PushScreenAction<ApMaskChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_CHANNEL_FORMATTED, WifiApChannelAccessor>, PushScreenAction<ApChannelChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_AUTHMODE_FORMATTED, WifiApAuthmodeAccessor>, PushScreenAction<ApAuthmodeChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, WifiApHostnameText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, WifiApClientsText, WifiApClientsAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<NetworkSettingsMenu>, StaticMenuItemIcon<&icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&icons::back>>>();
}
std::string WifiApSettingsMenu::text() const
@ -124,7 +125,7 @@ std::string WifiApSettingsMenu::text() const
void WifiApSettingsMenu::back()
{
switchScreen<NetworkSettingsMenu>();
popScreen();
}
namespace {
@ -132,7 +133,7 @@ void WifiApClientsAction::triggered()
{
wifi_sta_list_t clients;
if (const auto result = esp_wifi_ap_get_sta_list(&clients); result == ESP_OK)
switchScreen<WifiApClientsMenu>();
pushScreen<WifiApClientsMenu>();
else
ESP_LOGW(TAG, "esp_wifi_ap_get_sta_list() failed with %s", esp_err_to_name(result));
}

View File

@ -3,7 +3,8 @@
// 3rdparty lib includes
#include <menuitem.h>
#include <actions/dummyaction.h>
#include <actions/switchscreenaction.h>
#include <actions/pushscreenaction.h>
#include <actions/popscreenaction.h>
#include <icons/back.h>
#include <screenmanager.h>
#include <changevaluedisplay.h>
@ -48,8 +49,8 @@ class StaChangeScreen :
public:
explicit StaChangeScreen(int index) : Taccessor{index}, m_index{index} {}
std::string text() const override { return fmt::format(Ttitle, m_index + 1); }
void confirm() override { espgui::switchScreen<WifiStaConfigEntryMenu>(m_index); }
void back() override { espgui::switchScreen<WifiStaConfigEntryMenu>(m_index); }
void confirm() override { espgui::popScreen(); }
void back() override { espgui::popScreen(); }
private:
const int m_index;
@ -66,7 +67,7 @@ public:
m_index{index}
{}
void triggered() override { espgui::switchScreen<TchangeScreen>(m_index); }
void triggered() override { espgui::pushScreen<TchangeScreen>(m_index); }
private:
const int m_index;
@ -123,7 +124,7 @@ WifiStaConfigEntryMenu::WifiStaConfigEntryMenu(int index) :
constructMenuItem<StaStaticDns1MenuItem>(index);
constructMenuItem<StaStaticDns2MenuItem>(index);
constructMenuItem<makeComponentArgs<MenuItem, ClearConfigAction, StaticText<TEXT_DELETECONFIG>>>(index);
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<WifiStaConfigsMenu>, StaticMenuItemIcon<&icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&icons::back>>>();
}
std::string WifiStaConfigEntryMenu::text() const
@ -133,7 +134,7 @@ std::string WifiStaConfigEntryMenu::text() const
void WifiStaConfigEntryMenu::back()
{
espgui::switchScreen<WifiStaConfigsMenu>();
espgui::popScreen();
}
namespace {

View File

@ -3,7 +3,8 @@
// 3rdparty lib includes
#include <menuitem.h>
#include <actions/dummyaction.h>
#include <actions/switchscreenaction.h>
#include <actions/pushscreenaction.h>
#include <actions/popscreenaction.h>
#include <icons/back.h>
#include <screenmanager.h>
#include <fmt/core.h>
@ -37,7 +38,7 @@ WifiStaConfigsMenu::WifiStaConfigsMenu()
{
for (int i = 0; i < configs.wifi_configs.size(); i++)
constructMenuItem<WifiStaConfigurationMenuItem>(i);
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<WifiStaSettingsMenu>, StaticMenuItemIcon<&icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&icons::back>>>();
}
std::string WifiStaConfigsMenu::text() const
@ -47,14 +48,14 @@ std::string WifiStaConfigsMenu::text() const
void WifiStaConfigsMenu::back()
{
switchScreen<WifiStaSettingsMenu>();
popScreen();
}
namespace {
void WifiStaConfigurationMenuItem::triggered()
{
switchScreen<WifiStaConfigEntryMenu>(m_index);
pushScreen<WifiStaConfigEntryMenu>(m_index);
}
std::string WifiStaConfigurationMenuItem::text() const

View File

@ -9,7 +9,8 @@
// 3rdparty lib includes
#include <menuitem.h>
#include <actions/dummyaction.h>
#include <actions/switchscreenaction.h>
#include <actions/pushscreenaction.h>
#include <actions/popscreenaction.h>
#include <icons/back.h>
#include <screenmanager.h>
#include <fmt/format.h>
@ -97,7 +98,7 @@ WifiStaScanEntryMenu::WifiStaScanEntryMenu(const wifi_ap_record_t &info) :
default: return std::to_string(m_info.country.policy);
}
}()));
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<WifiStaScanMenu>, StaticMenuItemIcon<&icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&icons::back>>>();
}
std::string WifiStaScanEntryMenu::text() const
@ -107,7 +108,7 @@ std::string WifiStaScanEntryMenu::text() const
void WifiStaScanEntryMenu::back()
{
switchScreen<WifiStaScanMenu>();
popScreen();
}
namespace {
@ -128,7 +129,7 @@ void SaveNewWifiConfigAction::triggered()
return;
}
switchScreen<WifiStaConfigEntryMenu>(std::distance(std::begin(configs.wifi_configs), iter));
pushScreen<WifiStaConfigEntryMenu>(std::distance(std::begin(configs.wifi_configs), iter));
}
} // namespace

View File

@ -5,7 +5,8 @@
// 3rdparty lib includes
#include <menuitem.h>
#include <actions/switchscreenaction.h>
#include <actions/pushscreenaction.h>
#include <actions/popscreenaction.h>
#include <icons/back.h>
#include <screenmanager.h>
#include <fmt/format.h>
@ -17,7 +18,6 @@
// local includes
#include "actions/wifistascanaction.h"
#include "actions/wifistascanclearaction.h"
#include "wifistasettingsmenu.h"
#include "wifiguiutils.h"
#include "wifistascanentrymenu.h"
#include "newsettings.h"
@ -50,7 +50,7 @@ WifiStaScanMenu::WifiStaScanMenu()
{
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_STARTSCAN>, WifiStaScanAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CLEARRESULTS>, WifiStaScanClearAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<WifiStaSettingsMenu>, StaticMenuItemIcon<&icons::back>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&icons::back>>>();
}
std::string WifiStaScanMenu::text() const
@ -77,7 +77,7 @@ std::string WifiStaScanMenu::text() const
void WifiStaScanMenu::back()
{
switchScreen<WifiStaSettingsMenu>();
popScreen();
}
void WifiStaScanMenu::start()
@ -124,7 +124,7 @@ namespace {
void WifiStaScanMenuItem::triggered()
{
switchScreen<WifiStaScanEntryMenu>(m_info);
pushScreen<WifiStaScanEntryMenu>(m_info);
}
std::string WifiStaScanMenuItem::text() const

View File

@ -3,7 +3,8 @@
// 3rdparty lib includes
#include <menuitem.h>
#include <actions/dummyaction.h>
#include <actions/switchscreenaction.h>
#include <actions/pushscreenaction.h>
#include <actions/popscreenaction.h>
#include <icons/back.h>
#include <screenmanager.h>
#include <changevaluedisplay.h>
@ -14,7 +15,6 @@
#include "wifistascanmenu.h"
#include "wifistaconfigsmenu.h"
#include "accessors/wifistaconfigaccessors.h"
#include "networksettingsmenu.h"
#include "texthelpers/wifistatexthelpers.h"
#include "bobbycheckbox.h"
@ -31,8 +31,8 @@ using StaMinRssiChangeScreen = espgui::makeComponent<
BobbyChangeValueDisplay<int8_t>,
espgui::StaticText<TEXT_MIN_RSSI>,
WifiStaMinRssiAccessor,
espgui::ConfirmActionInterface<espgui::SwitchScreenAction<WifiStaSettingsMenu>>,
espgui::BackActionInterface<espgui::SwitchScreenAction<WifiStaSettingsMenu>>
espgui::ConfirmActionInterface<espgui::PopScreenAction>,
espgui::BackActionInterface<espgui::PopScreenAction>
>;
} // namespace
@ -41,8 +41,8 @@ WifiStaSettingsMenu::WifiStaSettingsMenu()
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLED>, BobbyCheckbox, WifiStaEnabledAccessor>>();
constructMenuItem<makeComponent<MenuItem, WifiStaStatusText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, WifiStaMacText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, WifiStaScanStatusText, SwitchScreenAction<WifiStaScanMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CONFIGURATIONS>, SwitchScreenAction<WifiStaConfigsMenu>>>();
constructMenuItem<makeComponent<MenuItem, WifiStaScanStatusText, PushScreenAction<WifiStaScanMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CONFIGURATIONS>, PushScreenAction<WifiStaConfigsMenu>>>();
constructMenuItem<makeComponent<MenuItem, WifiSsidText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, WifiBssidText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, WifiRssiText, DummyAction>>();
@ -55,8 +55,8 @@ WifiStaSettingsMenu::WifiStaSettingsMenu()
constructMenuItem<makeComponent<MenuItem, WifiStaHostnameText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, WifiStaIpv6LinklocalText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, WifiStaIpv6GlobalText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_MIN_RSSI_FORMATTED, WifiStaMinRssiAccessor>, SwitchScreenAction<StaMinRssiChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<NetworkSettingsMenu>, StaticMenuItemIcon<&icons::back>>>();
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_MIN_RSSI_FORMATTED, WifiStaMinRssiAccessor>, PushScreenAction<StaMinRssiChangeScreen>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, PopScreenAction, StaticMenuItemIcon<&icons::back>>>();
}
std::string WifiStaSettingsMenu::text() const
@ -66,5 +66,5 @@ std::string WifiStaSettingsMenu::text() const
void WifiStaSettingsMenu::back()
{
switchScreen<NetworkSettingsMenu>();
popScreen();
}