Files
bobbycar-boardcomputer-firm…/main/displays/menus/commanddebugmenu.h

40 lines
1.3 KiB
C++

#pragma once
// local includes
#include "menudisplay.h"
#include "utils.h"
#include "menuitem.h"
#include "actions/dummyaction.h"
#include "actions/switchscreenaction.h"
#include "icons/back.h"
#include "texts.h"
#include "debugtexthelpers.h"
// forward declares
namespace {
class DebugMenu;
} // namespace
namespace {
template<const char *Ttext, typename Ttexts>
class CommandDebugMenu :
public MenuDisplay,
public StaticText<Ttext>,
public BackActionInterface<SwitchScreenAction<DebugMenu>>
{
public:
CommandDebugMenu()
{
constructMenuItem<makeComponent<MenuItem, typename Ttexts::BuzzerFreqText, DisabledColor, DummyAction>>();
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<&icons::back>>>();
}
};
class FrontCommandDebugMenu : public CommandDebugMenu<TEXT_FRONTCOMMAND, FrontTexts> {};
class BackCommandDebugMenu : public CommandDebugMenu<TEXT_BACKCOMMAND, BackTexts> {};
} // namespace