91class EncoderWrapOverride {
96 EncoderWrapOverride() =
default;
97 EncoderWrapOverride(
const EncoderWrapOverride &other) =
default;
98 EncoderWrapOverride &operator=(
const EncoderWrapOverride &other) =
default;
99 EncoderWrapOverride(menuid_t itemId,
bool overrideValue) : itemId(itemId), overrideValue(overrideValue) {}
101 menuid_t getKey()
const {
return itemId; }
103 menuid_t getMenuId()
const {
return itemId; }
104 bool getOverrideValue()
const {
return overrideValue; }
147 EepromAbstraction* eepromRef;
149 bool useWrapAroundByDefault =
false;
150 BtreeList<menuid_t, EncoderWrapOverride> encoderWrapOverrides;
162 useWrapAroundByDefault = wrapAround;
221 pinid_t rightPin, pinid_t okPin,
int speed=20);
263 navigator.setRootItem(menuItem);
279 return authenticationManager;
318 EepromAbstraction* getEepromAbstraction() {
return eepromRef; }
325 eepromRef = globalRom;
332 void load(EepromAbstraction& eeprom, uint16_t magicKey = 0xfade, TimerFn onEepromEmpty =
nullptr);
339 void load(uint16_t magicKey = 0xfade, TimerFn onEepromEmpty =
nullptr);
349 void save(uint16_t magicKey = 0xfade) {
if(eepromRef) saveMenuStructure(eepromRef, magicKey); }
356 void save(EepromAbstraction& eeprom, uint16_t magicKey = 0xfade) { saveMenuStructure(&eeprom, magicKey); }
442 return switches.getEncoder() !=
nullptr ? switches.getEncoder()->getCurrentReading() : 0;
516 void actionOnCurrentItem(MenuItem * toEdit);
517 void actionOnSubMenu(MenuItem* nextSub);
519 void notifyEditEnd(MenuItem *pItem);
520 bool notifyEditStarting(MenuItem *pItem);
522 void setRootItem(MenuItem *pItem);