mirror of
https://github.com/meshtastic/firmware.git
synced 2026-01-15 22:37:35 +00:00
54 lines
1.3 KiB
C++
54 lines
1.3 KiB
C++
#ifdef MESHTASTIC_INCLUDE_INKHUD
|
|
|
|
/*
|
|
|
|
One item of a MenuPage, in InkHUD::MenuApplet
|
|
|
|
Added to MenuPages in InkHUD::showPage
|
|
|
|
- May open a submenu or exit
|
|
- May perform an action
|
|
- May toggle a bool value, shown by a checkbox
|
|
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "configuration.h"
|
|
|
|
#include "./MenuAction.h"
|
|
#include "./MenuPage.h"
|
|
|
|
namespace NicheGraphics::InkHUD
|
|
{
|
|
|
|
// One item of a MenuPage
|
|
class MenuItem
|
|
{
|
|
public:
|
|
std::string label;
|
|
MenuAction action = NO_ACTION;
|
|
MenuPage nextPage = EXIT;
|
|
bool *checkState = nullptr;
|
|
bool isHeader = false; // Non-selectable section label
|
|
|
|
// Various constructors, depending on the intended function of the item
|
|
|
|
MenuItem(const char *label, MenuPage nextPage) : label(label), nextPage(nextPage) {}
|
|
MenuItem(const char *label, MenuAction action) : label(label), action(action) {}
|
|
MenuItem(const char *label, MenuAction action, MenuPage nextPage) : label(label), action(action), nextPage(nextPage) {}
|
|
MenuItem(const char *label, MenuAction action, MenuPage nextPage, bool *checkState)
|
|
: label(label), action(action), nextPage(nextPage), checkState(checkState)
|
|
{
|
|
}
|
|
static MenuItem Header(const char *label)
|
|
{
|
|
MenuItem item(label, NO_ACTION, EXIT);
|
|
item.isHeader = true;
|
|
return item;
|
|
}
|
|
};
|
|
|
|
} // namespace NicheGraphics::InkHUD
|
|
|
|
#endif |