Again more refactorings
This commit is contained in:
@ -0,0 +1,30 @@
|
||||
#include "cloudtexthelpers.h"
|
||||
|
||||
// 3rdparty lib includes
|
||||
#include <fmt/core.h>
|
||||
|
||||
// local includes
|
||||
#include "cloud.h"
|
||||
|
||||
#ifdef FEATURE_CLOUD
|
||||
std::string CloudCreatedText::text() const
|
||||
{
|
||||
return fmt::format("created: {}", cloudClient ? "true" : "false");
|
||||
}
|
||||
|
||||
std::string CloudStartedText::text() const
|
||||
{
|
||||
std::string text = "started: ";
|
||||
if (cloudClient)
|
||||
text += cloudStarted ? "true" : "false";
|
||||
return text;
|
||||
}
|
||||
|
||||
std::string CloudConnectedText::text() const
|
||||
{
|
||||
std::string text = "connected: ";
|
||||
if (cloudClient)
|
||||
text += cloudClient.is_connected() ? "true" : "false";
|
||||
return text;
|
||||
}
|
||||
#endif
|
||||
|
@ -1,37 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
// 3rdparty lib includes
|
||||
#include <fmt/core.h>
|
||||
|
||||
// local includes
|
||||
#include "textinterface.h"
|
||||
#include "cloud.h"
|
||||
|
||||
namespace {
|
||||
#ifdef FEATURE_CLOUD
|
||||
struct CloudCreatedText : public virtual TextInterface { public: std::string text() const override {
|
||||
return fmt::format("created: {}", cloudClient ? "true" : "false"); }};
|
||||
|
||||
struct CloudStartedText : public virtual TextInterface {
|
||||
struct CloudCreatedText : public virtual espgui::TextInterface
|
||||
{
|
||||
public:
|
||||
std::string text() const override
|
||||
{
|
||||
std::string text = "started: ";
|
||||
if (cloudClient)
|
||||
text += cloudStarted ? "true" : "false";
|
||||
return text;
|
||||
}
|
||||
std::string text() const override;
|
||||
};
|
||||
|
||||
struct CloudConnectedText : public virtual TextInterface {
|
||||
struct CloudStartedText : public virtual espgui::TextInterface
|
||||
{
|
||||
public:
|
||||
std::string text() const override
|
||||
{
|
||||
std::string text = "connected: ";
|
||||
if (cloudClient)
|
||||
text += cloudClient.is_connected() ? "true" : "false";
|
||||
return text;
|
||||
}
|
||||
std::string text() const override;
|
||||
};
|
||||
|
||||
struct CloudConnectedText : public virtual espgui::TextInterface
|
||||
{
|
||||
public:
|
||||
std::string text() const override;
|
||||
};
|
||||
#endif
|
||||
}
|
||||
|
@ -15,10 +15,6 @@
|
||||
#include "texts.h"
|
||||
#include "widgets/label.h"
|
||||
|
||||
namespace {
|
||||
class MainMenu;
|
||||
}
|
||||
|
||||
namespace {
|
||||
#ifdef FEATURE_GARAGE
|
||||
class GarageDisplay : public Display, public BackActionInterface<SwitchScreenAction<MainMenu>>
|
||||
|
@ -16,10 +16,6 @@
|
||||
#include "ledstrip.h"
|
||||
#endif
|
||||
|
||||
namespace {
|
||||
class MainMenu;
|
||||
}
|
||||
|
||||
namespace {
|
||||
class Lockscreen : public Display, public DummyBack
|
||||
{
|
||||
|
@ -18,11 +18,6 @@
|
||||
#include "icons/back.h"
|
||||
#include "texts.h"
|
||||
|
||||
//forward declares
|
||||
namespace {
|
||||
class MainMenu;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
|
@ -0,0 +1,72 @@
|
||||
#include "cloudsettingsmenu.h"
|
||||
|
||||
// 3rdparty lib includes
|
||||
#include <fmt/core.h>
|
||||
#include "menuitem.h"
|
||||
#include "changevaluedisplay.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "actions/toggleboolaction.h"
|
||||
#include "actions/dummyaction.h"
|
||||
#include "checkboxicon.h"
|
||||
#include "icons/back.h"
|
||||
|
||||
// local includes
|
||||
#include "cloudtexthelpers.h"
|
||||
#include "accessors/settingsaccessors.h"
|
||||
#include "cloud.h"
|
||||
#include "displays/menus/settingsmenu.h"
|
||||
|
||||
namespace {
|
||||
using CloudTransmitTimeoutChangeScreen = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_CLOUDTRANSMITTIMEOUT>,
|
||||
CloudTransmitTimeoutAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<CloudSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<CloudSettingsMenu>
|
||||
>;
|
||||
|
||||
struct CloudBufferLengthText : public virtual espgui::TextInterface
|
||||
{
|
||||
public:
|
||||
std::string text() const override
|
||||
{
|
||||
return fmt::format("buffer: {}", cloudBuffer.size());
|
||||
}
|
||||
};
|
||||
|
||||
using CloudCollectRateChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_CLOUDCOLLECTRATE>,
|
||||
CloudCollectRateAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<CloudSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<CloudSettingsMenu>
|
||||
>;
|
||||
|
||||
using CloudSendRateChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_CLOUDSENDRATE>,
|
||||
CloudSendRateAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<CloudSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<CloudSettingsMenu>
|
||||
>;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
CloudSettingsMenu::CloudSettingsMenu()
|
||||
{
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CLOUDENABLED>, ToggleBoolAction, CheckboxIcon, CloudEnabledAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CLOUDTRANSMITTIMEOUT>, SwitchScreenAction<CloudTransmitTimeoutChangeScreen>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, CloudCreatedText, DisabledColor, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, CloudStartedText, DisabledColor, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, CloudConnectedText, DisabledColor, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, CloudBufferLengthText, DisabledColor, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CLOUDCOLLECTRATE>, SwitchScreenAction<CloudCollectRateChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CLOUDSENDRATE>, SwitchScreenAction<CloudSendRateChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||
}
|
||||
|
||||
void CloudSettingsMenu::back()
|
||||
{
|
||||
switchScreen<SettingsMenu>();
|
||||
}
|
||||
|
@ -1,76 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
// 3rdparty lib includes
|
||||
#include <fmt/core.h>
|
||||
#include "menudisplay.h"
|
||||
|
||||
// local includes
|
||||
#include "menudisplay.h"
|
||||
#include "menuitem.h"
|
||||
#include "changevaluedisplay.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "actions/toggleboolaction.h"
|
||||
#include "checkboxicon.h"
|
||||
#include "cloudtexthelpers.h"
|
||||
#include "accessors/settingsaccessors.h"
|
||||
#include "icons/back.h"
|
||||
#include "texts.h"
|
||||
#include "accessors/settingsaccessors.h"
|
||||
#include "cloud.h"
|
||||
|
||||
namespace {
|
||||
using CloudTransmitTimeoutChangeScreen = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_CLOUDTRANSMITTIMEOUT>,
|
||||
CloudTransmitTimeoutAccessor,
|
||||
BackActionInterface<SwitchScreenAction<CloudSettingsMenu>>,
|
||||
SwitchScreenAction<CloudSettingsMenu>
|
||||
>;
|
||||
|
||||
struct CloudBufferLengthText : public virtual TextInterface {
|
||||
public:
|
||||
std::string text() const override
|
||||
{
|
||||
return fmt::format("buffer: {}", cloudBuffer.size());
|
||||
}
|
||||
};
|
||||
|
||||
using CloudCollectRateChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_CLOUDCOLLECTRATE>,
|
||||
CloudCollectRateAccessor,
|
||||
BackActionInterface<SwitchScreenAction<CloudSettingsMenu>>,
|
||||
SwitchScreenAction<CloudSettingsMenu>
|
||||
>;
|
||||
|
||||
using CloudSendRateChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_CLOUDSENDRATE>,
|
||||
CloudSendRateAccessor,
|
||||
BackActionInterface<SwitchScreenAction<CloudSettingsMenu>>,
|
||||
SwitchScreenAction<CloudSettingsMenu>
|
||||
>;
|
||||
} // namespace
|
||||
|
||||
namespace {
|
||||
#ifdef FEATURE_CLOUD
|
||||
class CloudSettingsMenu :
|
||||
public MenuDisplay,
|
||||
public StaticText<TEXT_CLOUDSETTINGS>,
|
||||
public BackActionInterface<SwitchScreenAction<SettingsMenu>>
|
||||
public espgui::MenuDisplay,
|
||||
public espgui::StaticText<TEXT_CLOUDSETTINGS>
|
||||
{
|
||||
public:
|
||||
CloudSettingsMenu()
|
||||
{
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CLOUDENABLED>, ToggleBoolAction, CheckboxIcon, CloudEnabledAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CLOUDTRANSMITTIMEOUT>, SwitchScreenAction<CloudTransmitTimeoutChangeScreen>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, CloudCreatedText, DisabledColor, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, CloudStartedText, DisabledColor, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, CloudConnectedText, DisabledColor, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, CloudBufferLengthText, DisabledColor, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CLOUDCOLLECTRATE>, SwitchScreenAction<CloudCollectRateChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CLOUDSENDRATE>, SwitchScreenAction<CloudSendRateChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||
}
|
||||
CloudSettingsMenu();
|
||||
|
||||
void back() override;
|
||||
};
|
||||
#endif
|
||||
} // namespace
|
||||
|
@ -18,26 +18,6 @@
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
// forward declares
|
||||
namespace {
|
||||
class MainMenu;
|
||||
class FrontCommandDebugMenu;
|
||||
class BackCommandDebugMenu;
|
||||
class FrontLeftMotorStateDebugMenu;
|
||||
class FrontRightMotorStateDebugMenu;
|
||||
class BackLeftMotorStateDebugMenu;
|
||||
class BackRightMotorStateDebugMenu;
|
||||
class FrontFeedbackDebugMenu;
|
||||
class BackFeedbackDebugMenu;
|
||||
class FrontLeftMotorFeedbackDebugMenu;
|
||||
class FrontRightMotorFeedbackDebugMenu;
|
||||
class BackLeftMotorFeedbackDebugMenu;
|
||||
class BackRightMotorFeedbackDebugMenu;
|
||||
class DynamicDebugMenu;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
class DebugMenu :
|
||||
public MenuDisplay,
|
||||
|
@ -0,0 +1,144 @@
|
||||
#include "defaultmodesettingsmenu.h"
|
||||
|
||||
// 3rdparty lib includes
|
||||
#include "changevaluedisplay.h"
|
||||
#include "menuitem.h"
|
||||
#include "actions/toggleboolaction.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "actions/dummyaction.h"
|
||||
#include "checkboxicon.h"
|
||||
#include "icons/back.h"
|
||||
|
||||
// local includes
|
||||
#include "utils.h"
|
||||
#include "changevaluedisplay_unifiedmodelmode.h"
|
||||
#include "accessors/settingsaccessors.h"
|
||||
#include "displays/menus/modessettingsmenu.h"
|
||||
|
||||
namespace {
|
||||
using DefaultModeModelModeChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<UnifiedModelMode>,
|
||||
espgui::StaticText<TEXT_MODELMODE>,
|
||||
DefaultModeModelModeAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeHybridModelModeChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<UnifiedModelMode>,
|
||||
espgui::StaticText<TEXT_HYBRIDMODE>,
|
||||
DefaultModeHybridModelModeAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeSmoothingChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_SMOOTHINGVAL>,
|
||||
DefaultModeSmoothingAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeFwSmoothingLowerLimitChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_FWSMOOTHING_LIMIT>,
|
||||
DefaultModeEnableFieldWeakSmoothingLowerLimitAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeFrontPercentageChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_FRONTPERCENTAGE>,
|
||||
DefaultModeFrontPercentageAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeBackPercentageChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_BACKPERCENTAGE>,
|
||||
DefaultModeBackPercentageAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeAddSchwelleChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_ADDSCHWELLE>,
|
||||
DefaultModeAddSchwelleAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeGas1WertChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_ADDGASVAL>,
|
||||
DefaultModeGas1WertAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeGas2WertChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_SUBGASVAL>,
|
||||
DefaultModeGas2WertAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeBrems1WertChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_ADDBRAKEVAL>,
|
||||
DefaultModeBrems1WertAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeBrems2WertChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_SUBBRAKEVAL>,
|
||||
DefaultModeBrems2WertAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeHybridActivationLimitChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_HYBRIDACTIVATIONLIMIT>,
|
||||
DefaultModeHybridActivationLimitAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeHybridDeactivationLimitChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_HYBRIDDEACTIVATIONLIMIT>,
|
||||
DefaultModeHybridDeactivationLimitAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
DefaultModeSettingsMenu::DefaultModeSettingsMenu()
|
||||
{
|
||||
auto diff = std::abs(settings.hybrid.activationLimit - settings.hybrid.deactivationLimit);
|
||||
if (diff < 20) { constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_LIMITS_TO_NEAR>, StaticFont<2>, StaticColor<TFT_RED>, DummyAction>>(); }
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MODELMODE>, SwitchScreenAction<DefaultModeModelModeChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_HYBRIDMODE>, SwitchScreenAction<DefaultModeHybridModelModeChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SQUAREGAS>, ToggleBoolAction, CheckboxIcon, DefaultModeSquareGasAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SQUAREBREMS>, ToggleBoolAction, CheckboxIcon, DefaultModeSquareBremsAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLESMOOTHINGUP>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingUpAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLESMOOTHINGDOWN>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingDownAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLEFWSMOOTHINGUP>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingUpAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLEFWSMOOTHINGDOWN>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingDownAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_HYBRIDENABLE>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableHybridAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FWSMOOTHING_LIMIT, DefaultModeEnableFieldWeakSmoothingLowerLimitAccessor>, SwitchScreenAction<DefaultModeFwSmoothingLowerLimitChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SMOOTHINGVAL, DefaultModeSmoothingAccessor>, SwitchScreenAction<DefaultModeSmoothingChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FRONTPERCENTAGE, DefaultModeFrontPercentageAccessor>, SwitchScreenAction<DefaultModeFrontPercentageChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_BACKPERCENTAGE, DefaultModeBackPercentageAccessor>, SwitchScreenAction<DefaultModeBackPercentageChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_ADDSCHWELLE, DefaultModeAddSchwelleAccessor>, SwitchScreenAction<DefaultModeAddSchwelleChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SUBGASVAL, DefaultModeGas2WertAccessor>, SwitchScreenAction<DefaultModeGas2WertChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SUBBRAKEVAL, DefaultModeBrems2WertAccessor>, SwitchScreenAction<DefaultModeBrems2WertChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_ADDGASVAL, DefaultModeGas1WertAccessor>, SwitchScreenAction<DefaultModeGas1WertChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_ADDBRAKEVAL, DefaultModeBrems1WertAccessor>, SwitchScreenAction<DefaultModeBrems1WertChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_HYBRIDACTIVATIONLIMIT, DefaultModeHybridActivationLimitAccessor>, SwitchScreenAction<DefaultModeHybridActivationLimitChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_HYBRIDDEACTIVATIONLIMIT, DefaultModeHybridDeactivationLimitAccessor>, SwitchScreenAction<DefaultModeHybridDeactivationLimitChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<ModesSettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||
}
|
||||
|
||||
void DefaultModeSettingsMenu::back()
|
||||
{
|
||||
switchScreen<ModesSettingsMenu>();
|
||||
}
|
||||
|
@ -1,153 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
#include <TFT_eSPI.h>
|
||||
// 3rdparty lib includes
|
||||
#include "menudisplay.h"
|
||||
|
||||
// local includes
|
||||
#include "menudisplay.h"
|
||||
#include "utils.h"
|
||||
#include "changevaluedisplay.h"
|
||||
#include "changevaluedisplay_unifiedmodelmode.h"
|
||||
#include "menuitem.h"
|
||||
#include "actions/toggleboolaction.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "actions/dummyaction.h"
|
||||
#include "checkboxicon.h"
|
||||
#include "icons/back.h"
|
||||
#include "texts.h"
|
||||
#include "accessors/settingsaccessors.h"
|
||||
|
||||
// forward declares
|
||||
namespace {
|
||||
class DefaultModeSettingsMenu;
|
||||
class ModesSettingsMenu;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
using DefaultModeModelModeChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<UnifiedModelMode>,
|
||||
StaticText<TEXT_MODELMODE>,
|
||||
DefaultModeModelModeAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeHybridModelModeChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<UnifiedModelMode>,
|
||||
StaticText<TEXT_HYBRIDMODE>,
|
||||
DefaultModeHybridModelModeAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeSmoothingChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_SMOOTHINGVAL>,
|
||||
DefaultModeSmoothingAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeFwSmoothingLowerLimitChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_FWSMOOTHING_LIMIT>,
|
||||
DefaultModeEnableFieldWeakSmoothingLowerLimitAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeFrontPercentageChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_FRONTPERCENTAGE>,
|
||||
DefaultModeFrontPercentageAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeBackPercentageChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_BACKPERCENTAGE>,
|
||||
DefaultModeBackPercentageAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeAddSchwelleChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_ADDSCHWELLE>,
|
||||
DefaultModeAddSchwelleAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeGas1WertChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_ADDGASVAL>,
|
||||
DefaultModeGas1WertAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeGas2WertChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_SUBGASVAL>,
|
||||
DefaultModeGas2WertAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeBrems1WertChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_ADDBRAKEVAL>,
|
||||
DefaultModeBrems1WertAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeBrems2WertChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_SUBBRAKEVAL>,
|
||||
DefaultModeBrems2WertAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeHybridActivationLimitChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_HYBRIDACTIVATIONLIMIT>,
|
||||
DefaultModeHybridActivationLimitAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
using DefaultModeHybridDeactivationLimitChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_HYBRIDDEACTIVATIONLIMIT>,
|
||||
DefaultModeHybridDeactivationLimitAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
|
||||
class DefaultModeSettingsMenu :
|
||||
public MenuDisplay,
|
||||
public StaticText<TEXT_DEFAULTMODESETTIGNS>,
|
||||
public BackActionInterface<SwitchScreenAction<ModesSettingsMenu>>
|
||||
public espgui::MenuDisplay,
|
||||
public espgui::StaticText<TEXT_DEFAULTMODESETTIGNS>
|
||||
{
|
||||
public:
|
||||
DefaultModeSettingsMenu()
|
||||
{
|
||||
auto diff = std::abs(settings.hybrid.activationLimit - settings.hybrid.deactivationLimit);
|
||||
if (diff < 20) { constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_LIMITS_TO_NEAR>, StaticFont<2>, StaticColor<TFT_RED>, DummyAction>>(); }
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MODELMODE>, SwitchScreenAction<DefaultModeModelModeChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_HYBRIDMODE>, SwitchScreenAction<DefaultModeHybridModelModeChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SQUAREGAS>, ToggleBoolAction, CheckboxIcon, DefaultModeSquareGasAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_SQUAREBREMS>, ToggleBoolAction, CheckboxIcon, DefaultModeSquareBremsAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLESMOOTHINGUP>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingUpAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLESMOOTHINGDOWN>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableSmoothingDownAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLEFWSMOOTHINGUP>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingUpAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_ENABLEFWSMOOTHINGDOWN>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableFieldWeakSmoothingDownAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_HYBRIDENABLE>, ToggleBoolAction, CheckboxIcon, DefaultModeEnableHybridAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FWSMOOTHING_LIMIT, DefaultModeEnableFieldWeakSmoothingLowerLimitAccessor>, SwitchScreenAction<DefaultModeFwSmoothingLowerLimitChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SMOOTHINGVAL, DefaultModeSmoothingAccessor>, SwitchScreenAction<DefaultModeSmoothingChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_FRONTPERCENTAGE, DefaultModeFrontPercentageAccessor>, SwitchScreenAction<DefaultModeFrontPercentageChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_BACKPERCENTAGE, DefaultModeBackPercentageAccessor>, SwitchScreenAction<DefaultModeBackPercentageChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_ADDSCHWELLE, DefaultModeAddSchwelleAccessor>, SwitchScreenAction<DefaultModeAddSchwelleChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SUBGASVAL, DefaultModeGas2WertAccessor>, SwitchScreenAction<DefaultModeGas2WertChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_SUBBRAKEVAL, DefaultModeBrems2WertAccessor>, SwitchScreenAction<DefaultModeBrems2WertChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_ADDGASVAL, DefaultModeGas1WertAccessor>, SwitchScreenAction<DefaultModeGas1WertChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_ADDBRAKEVAL, DefaultModeBrems1WertAccessor>, SwitchScreenAction<DefaultModeBrems1WertChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_HYBRIDACTIVATIONLIMIT, DefaultModeHybridActivationLimitAccessor>, SwitchScreenAction<DefaultModeHybridActivationLimitChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_HYBRIDDEACTIVATIONLIMIT, DefaultModeHybridDeactivationLimitAccessor>, SwitchScreenAction<DefaultModeHybridDeactivationLimitChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<ModesSettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||
}
|
||||
DefaultModeSettingsMenu();
|
||||
|
||||
void back() override;
|
||||
};
|
||||
} // namespace
|
||||
|
@ -8,15 +8,6 @@
|
||||
#include "icons/back.h"
|
||||
#include "texts.h"
|
||||
|
||||
// forward declares
|
||||
namespace {
|
||||
class StarfieldDisplay;
|
||||
class PingPongDisplay;
|
||||
class SpiroDisplay;
|
||||
class GameOfLifeDisplay;
|
||||
class MainMenu;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
|
@ -8,11 +8,6 @@
|
||||
#include "icons/back.h"
|
||||
#include "texts.h"
|
||||
|
||||
// forward declares
|
||||
namespace {
|
||||
class ModesSettingsMenu;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
|
@ -10,12 +10,6 @@
|
||||
#include "displays/splitgraphdisplay.h"
|
||||
#include "statistics.h"
|
||||
|
||||
// forward declares
|
||||
namespace {
|
||||
class MainMenu;
|
||||
class GraphsMenu;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
|
@ -12,12 +12,6 @@
|
||||
#include "texts.h"
|
||||
#include "accessors/settingsaccessors.h"
|
||||
|
||||
// forward declares
|
||||
namespace {
|
||||
class LarsmModeSettingsMenu;
|
||||
class ModesSettingsMenu;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
|
@ -0,0 +1,31 @@
|
||||
#include "modessettingsmenu.h"
|
||||
|
||||
// 3rdparty lib includes
|
||||
#include "menuitem.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "icons/back.h"
|
||||
|
||||
// local includes
|
||||
#include "displays/menus/defaultmodesettingsmenu.h"
|
||||
#include "displays/menus/tempomatmodesettingsmenu.h"
|
||||
#include "displays/menus/larsmmodesettingsmenu.h"
|
||||
#include "displays/menus/gametrakmodesettingsmenu.h"
|
||||
#include "displays/menus/settingsmenu.h"
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
ModesSettingsMenu::ModesSettingsMenu()
|
||||
{
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DEFAULTMODESETTIGNS>, SwitchScreenAction<DefaultModeSettingsMenu>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TEMPOMATMODESETTINGS>, SwitchScreenAction<TempomatModeSettingsMenu>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_LARSMMODESETTINGS>, SwitchScreenAction<LarsmModeSettingsMenu>>>();
|
||||
#ifdef FEATURE_GAMETRAK
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GAMETRAKMODESETTINGS>, SwitchScreenAction<GametrakModeSettingsMenu>>>();
|
||||
#endif
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||
}
|
||||
|
||||
void ModesSettingsMenu::back()
|
||||
{
|
||||
switchScreen<SettingsMenu>();
|
||||
}
|
||||
|
@ -2,29 +2,16 @@
|
||||
|
||||
// local includes
|
||||
#include "menudisplay.h"
|
||||
#include "menuitem.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "icons/back.h"
|
||||
|
||||
// local includes
|
||||
#include "texts.h"
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
class ModesSettingsMenu :
|
||||
public MenuDisplay,
|
||||
public StaticText<TEXT_MODESSETTINGS>,
|
||||
public BackActionInterface<SwitchScreenAction<SettingsMenu>>
|
||||
public espgui::MenuDisplay,
|
||||
public espgui::StaticText<TEXT_MODESSETTINGS>
|
||||
{
|
||||
public:
|
||||
ModesSettingsMenu()
|
||||
{
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DEFAULTMODESETTIGNS>, SwitchScreenAction<DefaultModeSettingsMenu>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_TEMPOMATMODESETTINGS>, SwitchScreenAction<TempomatModeSettingsMenu>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_LARSMMODESETTINGS>, SwitchScreenAction<LarsmModeSettingsMenu>>>();
|
||||
#ifdef FEATURE_GAMETRAK
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_GAMETRAKMODESETTINGS>, SwitchScreenAction<GametrakModeSettingsMenu>>>();
|
||||
#endif
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||
}
|
||||
ModesSettingsMenu();
|
||||
|
||||
void back() override;
|
||||
};
|
||||
} // namespace
|
||||
|
@ -11,11 +11,6 @@
|
||||
#include "texts.h"
|
||||
#include "types.h"
|
||||
|
||||
// forward declares
|
||||
namespace {
|
||||
class MainMenu;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
|
@ -12,11 +12,6 @@
|
||||
#include "presets.h"
|
||||
#include "globals.h"
|
||||
|
||||
// forward declares
|
||||
namespace {
|
||||
class MainMenu;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
|
@ -7,11 +7,6 @@
|
||||
#include "icons/back.h"
|
||||
#include "texts.h"
|
||||
|
||||
// forward declares
|
||||
namespace {
|
||||
class MainMenu;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
|
@ -15,11 +15,6 @@
|
||||
#include "modes/remotecontrolmode.h"
|
||||
#include "modes/gametrakmode.h"
|
||||
|
||||
// forward declares
|
||||
namespace {
|
||||
class MainMenu;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
|
@ -0,0 +1,48 @@
|
||||
#include "tempomatmodesettingsmenu.h"
|
||||
|
||||
// 3rdparty lib includes
|
||||
#include "changevaluedisplay.h"
|
||||
#include "menuitem.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "icons/back.h"
|
||||
|
||||
// local includes
|
||||
#include "utils.h"
|
||||
#include "changevaluedisplay_unifiedmodelmode.h"
|
||||
#include "accessors/settingsaccessors.h"
|
||||
#include "accessors/globalaccessors.h"
|
||||
#include "actions/tempomatmodeapplycurrentpeedaction.h"
|
||||
#include "displays/menus/modessettingsmenu.h"
|
||||
|
||||
namespace {
|
||||
using TempomatModeCruiseMotTgtChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int16_t>,
|
||||
espgui::StaticText<TEXT_NCRUISEMOTTGT>,
|
||||
TempomatModeCruiseMotTgtAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<TempomatModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<TempomatModeSettingsMenu>
|
||||
>;
|
||||
|
||||
using TempomatModeModelModeChangeScreen = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<UnifiedModelMode>,
|
||||
espgui::StaticText<TEXT_MODELMODE>,
|
||||
TempomatModeModelModeAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<TempomatModeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<TempomatModeSettingsMenu>
|
||||
>;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
TempomatModeSettingsMenu::TempomatModeSettingsMenu()
|
||||
{
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_APPLY, AvgSpeedAccessor>, TempomatModeApplyCurrentSpeedAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_NCRUISEMOTTGT, TempomatModeCruiseMotTgtAccessor>, SwitchScreenAction<TempomatModeModelModeChangeScreen>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MODELMODE>, SwitchScreenAction<TempomatModeModelModeChangeScreen>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<ModesSettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||
}
|
||||
|
||||
void TempomatModeSettingsMenu::back()
|
||||
{
|
||||
switchScreen<ModesSettingsMenu>();
|
||||
}
|
||||
|
@ -1,55 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
// local includes
|
||||
// 3rdparty lib includes
|
||||
#include "menudisplay.h"
|
||||
#include "utils.h"
|
||||
#include "changevaluedisplay.h"
|
||||
#include "changevaluedisplay_unifiedmodelmode.h"
|
||||
#include "menuitem.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "icons/back.h"
|
||||
|
||||
// local includes
|
||||
#include "texts.h"
|
||||
#include "accessors/settingsaccessors.h"
|
||||
#include "accessors/globalaccessors.h"
|
||||
#include "actions/tempomatmodeapplycurrentpeedaction.h"
|
||||
|
||||
// forward declares
|
||||
namespace {
|
||||
class TempomatModeSettingsMenu;
|
||||
class ModesSettingsMenu;
|
||||
} // namespace
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
using DefaultModeCruiseMotTgtChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int16_t>,
|
||||
StaticText<TEXT_NCRUISEMOTTGT>,
|
||||
TempomatModeCruiseMotTgtAccessor,
|
||||
BackActionInterface<SwitchScreenAction<DefaultModeSettingsMenu>>,
|
||||
SwitchScreenAction<DefaultModeSettingsMenu>
|
||||
>;
|
||||
|
||||
using TempomatModeModelModeChangeScreen = makeComponent<
|
||||
ChangeValueDisplay<UnifiedModelMode>,
|
||||
StaticText<TEXT_MODELMODE>,
|
||||
TempomatModeModelModeAccessor,
|
||||
BackActionInterface<SwitchScreenAction<TempomatModeSettingsMenu>>,
|
||||
SwitchScreenAction<TempomatModeSettingsMenu>
|
||||
>;
|
||||
|
||||
class TempomatModeSettingsMenu :
|
||||
public MenuDisplay,
|
||||
public StaticText<TEXT_TEMPOMATMODESETTINGS>,
|
||||
public BackActionInterface<SwitchScreenAction<ModesSettingsMenu>>
|
||||
public espgui::MenuDisplay,
|
||||
public espgui::StaticText<TEXT_TEMPOMATMODESETTINGS>
|
||||
{
|
||||
public:
|
||||
TempomatModeSettingsMenu()
|
||||
{
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_APPLY, AvgSpeedAccessor>, TempomatModeApplyCurrentSpeedAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, TextWithValueHelper<TEXT_NCRUISEMOTTGT, TempomatModeCruiseMotTgtAccessor>, SwitchScreenAction<TempomatModeModelModeChangeScreen>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MODELMODE>, SwitchScreenAction<TempomatModeModelModeChangeScreen>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<ModesSettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||
}
|
||||
TempomatModeSettingsMenu();
|
||||
|
||||
void back() override;
|
||||
};
|
||||
} // namespace
|
||||
|
@ -0,0 +1,103 @@
|
||||
#include "timesettingsmenu.h"
|
||||
|
||||
// 3rdparty lib includes
|
||||
#include <espchrono.h>
|
||||
#include <fmt/core.h>
|
||||
#include "changevaluedisplay.h"
|
||||
#include "changevaluedisplay_daylightsavingmode.h"
|
||||
#include "changevaluedisplay_sntp_sync_mode_t.h"
|
||||
#include "actions/toggleboolaction.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "actions/dummyaction.h"
|
||||
#include "checkboxicon.h"
|
||||
#include "icons/back.h"
|
||||
#include "espstrutils.h"
|
||||
|
||||
// local includes
|
||||
#include "utils.h"
|
||||
#include "accessors/settingsaccessors.h"
|
||||
#include "displays/menus/settingsmenu.h"
|
||||
|
||||
class CurrentUtcDateTimeText : public virtual espgui::TextInterface
|
||||
{
|
||||
public:
|
||||
std::string text() const override
|
||||
{
|
||||
return fmt::format("utc: {}", espchrono::toString(espchrono::toDateTime(espchrono::utc_clock::now())));
|
||||
}
|
||||
};
|
||||
|
||||
class CurrentLocalDateTimeText : public virtual espgui::TextInterface
|
||||
{
|
||||
public:
|
||||
std::string text() const override
|
||||
{
|
||||
return fmt::format("local: {}", espchrono::toString(espchrono::toDateTime(espchrono::local_clock::now())));
|
||||
}
|
||||
};
|
||||
|
||||
using TimezoneOffsetChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int32_t>,
|
||||
espgui::StaticText<TEXT_OFFSET>,
|
||||
TimezoneOffsetAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<TimeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<TimeSettingsMenu>
|
||||
>;
|
||||
|
||||
using DaylightSavingModeChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<espchrono::DayLightSavingMode>,
|
||||
espgui::StaticText<TEXT_DAYLIGHTSAVINGMODE>,
|
||||
DaylightSavingModeAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<TimeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<TimeSettingsMenu>
|
||||
>;
|
||||
|
||||
#ifdef FEATURE_NTP
|
||||
using TimeSyncModeChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<sntp_sync_mode_t>,
|
||||
espgui::StaticText<TEXT_NTPMODE>,
|
||||
TimeSyncModeAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<TimeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<TimeSettingsMenu>
|
||||
>;
|
||||
|
||||
using TimeSyncIntervalChangeDisplay = espgui::makeComponent<
|
||||
espgui::ChangeValueDisplay<int32_t>,
|
||||
espgui::StaticText<TEXT_NTPINTERVAL>,
|
||||
TimeSyncIntervalAccessor,
|
||||
espgui::BackActionInterface<espgui::SwitchScreenAction<TimeSettingsMenu>>,
|
||||
espgui::SwitchScreenAction<TimeSettingsMenu>
|
||||
>;
|
||||
|
||||
class NtpSyncStatusText : public virtual espgui::TextInterface
|
||||
{
|
||||
public:
|
||||
std::string text() const override
|
||||
{
|
||||
return fmt::format("Status: {}", espcpputils::toString(sntp_get_sync_status()));
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
TimeSettingsMenu::TimeSettingsMenu()
|
||||
{
|
||||
constructMenuItem<makeComponent<MenuItem, CurrentUtcDateTimeText, StaticFont<2>, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, CurrentLocalDateTimeText, StaticFont<2>, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_OFFSET>, SwitchScreenAction<TimezoneOffsetChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DAYLIGHTSAVINGMODE>, SwitchScreenAction<DaylightSavingModeChangeDisplay>>>();
|
||||
#ifdef FEATURE_NTP
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_NTPENABLED>, ToggleBoolAction, CheckboxIcon, TimeServerEnabledAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_NTPSERVER>, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_NTPMODE>, SwitchScreenAction<TimeSyncModeChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_NTPINTERVAL>, SwitchScreenAction<TimeSyncIntervalChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, NtpSyncStatusText, DummyAction>>();
|
||||
#endif
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||
}
|
||||
|
||||
void TimeSettingsMenu::back()
|
||||
{
|
||||
switchScreen<SettingsMenu>();
|
||||
}
|
||||
|
@ -1,89 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
// 3rdparty lib includes
|
||||
#include <espchrono.h>
|
||||
#include <fmt/core.h>
|
||||
#include "menudisplay.h"
|
||||
|
||||
// local includes
|
||||
#include "changevaluedisplay.h"
|
||||
#include "changevaluedisplay_daylightsavingmode.h"
|
||||
#include "changevaluedisplay_sntp_sync_mode_t.h"
|
||||
#include "menudisplay.h"
|
||||
#include "utils.h"
|
||||
#include "actions/toggleboolaction.h"
|
||||
#include "actions/switchscreenaction.h"
|
||||
#include "checkboxicon.h"
|
||||
#include "icons/back.h"
|
||||
#include "texts.h"
|
||||
#include "accessors/settingsaccessors.h"
|
||||
#include "espstrutils.h"
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
class CurrentUtcDateTimeText : public virtual TextInterface { public:
|
||||
std::string text() const override { return fmt::format("utc: {}", espchrono::toString(espchrono::toDateTime(espchrono::utc_clock::now()))); }};
|
||||
|
||||
class CurrentLocalDateTimeText : public virtual TextInterface { public:
|
||||
std::string text() const override { return fmt::format("local: {}", espchrono::toString(espchrono::toDateTime(espchrono::local_clock::now()))); }};
|
||||
|
||||
using TimezoneOffsetChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int32_t>,
|
||||
StaticText<TEXT_OFFSET>,
|
||||
TimezoneOffsetAccessor,
|
||||
BackActionInterface<SwitchScreenAction<TimeSettingsMenu>>,
|
||||
SwitchScreenAction<TimeSettingsMenu>
|
||||
>;
|
||||
|
||||
using DaylightSavingModeChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<espchrono::DayLightSavingMode>,
|
||||
StaticText<TEXT_DAYLIGHTSAVINGMODE>,
|
||||
DaylightSavingModeAccessor,
|
||||
BackActionInterface<SwitchScreenAction<TimeSettingsMenu>>,
|
||||
SwitchScreenAction<TimeSettingsMenu>
|
||||
>;
|
||||
|
||||
#ifdef FEATURE_NTP
|
||||
using TimeSyncModeChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<sntp_sync_mode_t>,
|
||||
StaticText<TEXT_NTPMODE>,
|
||||
TimeSyncModeAccessor,
|
||||
BackActionInterface<SwitchScreenAction<TimeSettingsMenu>>,
|
||||
SwitchScreenAction<TimeSettingsMenu>
|
||||
>;
|
||||
|
||||
using TimeSyncIntervalChangeDisplay = makeComponent<
|
||||
ChangeValueDisplay<int32_t>,
|
||||
StaticText<TEXT_NTPINTERVAL>,
|
||||
TimeSyncIntervalAccessor,
|
||||
BackActionInterface<SwitchScreenAction<TimeSettingsMenu>>,
|
||||
SwitchScreenAction<TimeSettingsMenu>
|
||||
>;
|
||||
|
||||
class NtpSyncStatusText : public virtual TextInterface { public:
|
||||
std::string text() const override { return fmt::format("Status: {}", espcpputils::toString(sntp_get_sync_status())); }};
|
||||
#endif
|
||||
|
||||
class TimeSettingsMenu :
|
||||
public MenuDisplay,
|
||||
public StaticText<TEXT_TIME>,
|
||||
public BackActionInterface<SwitchScreenAction<SettingsMenu>>
|
||||
public espgui::MenuDisplay,
|
||||
public espgui::StaticText<TEXT_TIME>
|
||||
{
|
||||
public:
|
||||
TimeSettingsMenu()
|
||||
{
|
||||
constructMenuItem<makeComponent<MenuItem, CurrentUtcDateTimeText, StaticFont<2>, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, CurrentLocalDateTimeText, StaticFont<2>, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_OFFSET>, SwitchScreenAction<TimezoneOffsetChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_DAYLIGHTSAVINGMODE>, SwitchScreenAction<DaylightSavingModeChangeDisplay>>>();
|
||||
#ifdef FEATURE_NTP
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_NTPENABLED>, ToggleBoolAction, CheckboxIcon, TimeServerEnabledAccessor>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_NTPSERVER>, DummyAction>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_NTPMODE>, SwitchScreenAction<TimeSyncModeChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_NTPINTERVAL>, SwitchScreenAction<TimeSyncIntervalChangeDisplay>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, NtpSyncStatusText, DummyAction>>();
|
||||
#endif
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
|
||||
}
|
||||
TimeSettingsMenu();
|
||||
|
||||
void back() override;
|
||||
};
|
||||
} // namespace
|
||||
|
@ -9,10 +9,6 @@
|
||||
#include "globals.h"
|
||||
#include "texts.h"
|
||||
|
||||
namespace {
|
||||
class MainMenu;
|
||||
}
|
||||
|
||||
namespace {
|
||||
class PoweroffDisplay : public Display, public DummyConfirm, public DummyBack
|
||||
{
|
||||
|
Reference in New Issue
Block a user