tcMenu
Toggle main menu visibility
Loading...
Searching...
No Matches
src
MenuItems.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 https://www.thecoderscorner.com (Dave Cherry).
3
* This product is licensed under an Apache license, see the LICENSE file in the top-level directory.
4
*/
5
13
14
#ifndef _MENUITEMS_h
15
#define _MENUITEMS_h
16
17
#define INFO_LOCATION_PGM true
18
#define INFO_LOCATION_RAM false
19
20
#include <PlatformDetermination.h>
21
#include <IoAbstraction.h>
22
24
#define MAXIMUM_ID_ALLOWED 32000
25
26
typedef
uint16_t menuid_t;
27
29
#define INVALID_MENU_ID 0xffff
30
32
#ifndef NAME_SIZE_T
33
#define NAME_SIZE_T 20
34
#endif
// NAME_SIZE_T
35
37
#ifndef UNIT_SIZE_T
38
#define UNIT_SIZE_T 5
39
#endif
// NAME_SIZE_T
40
42
#define NO_CALLBACK NULL
43
45
typedef
void (*
MenuCallbackFn
)(
int
id);
46
51
struct
AnyMenuInfo
{
53
char
name
[NAME_SIZE_T];
55
menuid_t
id
;
57
uint16_t
eepromAddr
;
59
uint16_t
maxValue
;
61
MenuCallbackFn
callback
;
62
};
63
71
struct
AnalogMenuInfo
{
73
char
name
[NAME_SIZE_T];
75
menuid_t
id
;
77
uint16_t
eepromAddr
;
79
uint16_t
maxValue
;
81
MenuCallbackFn
callback
;
82
87
int16_t
offset
;
94
uint16_t
divisor
;
98
char
unitName
[UNIT_SIZE_T];
99
};
100
108
struct
EnumMenuInfo
{
110
char
name
[NAME_SIZE_T];
112
menuid_t
id
;
114
uint16_t
eepromAddr
;
116
uint16_t
maxValue
;
118
MenuCallbackFn
callback
;
119
128
const
char
*
const
*
menuItems
;
129
};
130
134
enum
BooleanNaming
: uint8_t {
136
NAMING_TRUE_FALSE
= 0,
138
NAMING_ON_OFF
,
140
NAMING_YES_NO
,
142
NAMING_CHECKBOX
143
};
144
151
struct
BooleanMenuInfo
{
153
char
name
[NAME_SIZE_T];
155
menuid_t
id
;
157
uint16_t
eepromAddr
;
159
uint16_t
maxValue
;
161
MenuCallbackFn
callback
;
162
167
BooleanNaming
naming
;
168
};
169
176
typedef
AnyMenuInfo
SubMenuInfo
;
177
182
struct
FloatMenuInfo
{
184
char
name
[NAME_SIZE_T];
186
menuid_t
id
;
188
uint16_t
eepromAddr
;
190
uint16_t
numDecimalPlaces
;
192
MenuCallbackFn
callback
;
193
};
194
195
union
AllMenuInfoTypes
{
196
AnyMenuInfo
anyInfo;
197
AnalogMenuInfo
analogInfo;
198
EnumMenuInfo
enumInfo;
199
BooleanMenuInfo
booleanInfo;
200
SubMenuInfo
subInfo;
201
FloatMenuInfo
floatInfo;
202
};
203
207
enum
Flags
: uint8_t {
209
MENUITEM_CHANGED
= 0,
211
MENUITEM_CHANGED_1
= 1,
213
MENUITEM_READONLY
= 3,
215
MENUITEM_LOCAL_ONLY
= 4,
217
MENUITEM_PIN_SECURED
= 5,
219
MENUITEM_PIN_VISIBLE
= 6,
221
MENUITEM_INFO_STRUCT_PGM
= 7,
222
224
MENUITEM_REMOTE_SEND0
= 10,
226
MENUITEM_REMOTE_SEND1
= 11,
228
MENUITEM_REMOTE_SEND2
= 12,
230
MENUITEM_REMOTE_SEND3
= 13,
232
MENUITEM_REMOTE_SEND4
= 14,
234
MENUITEM_REMOTE_SEND5
= 15
235
};
236
237
#define MENUITEM_ALL_REMOTES 0xFC00
238
#define MENUITEM_ALL_CHANGE 0x0003
239
247
enum
MenuType
: uint8_t {
249
MENUTYPE_INT_VALUE
= 1,
251
MENUTYPE_ENUM_VALUE
= 2,
253
MENUTYPE_BOOLEAN_VALUE
= 3,
255
MENUTYPE_FLOAT_VALUE
= 101,
257
MENUTYPE_ACTION_VALUE
= 102,
259
MENUTYPE_RUNTIME_VALUE
= 150,
261
MENUTYPE_RUNTIME_LIST
= 151,
263
MENUTYPE_BACK_VALUE
= 152,
265
MENUTYPE_ACTIVATE_SUBMENU
= 153,
267
MENUTYPE_SCROLLER_VALUE
= 154,
269
MENUTYPE_SUB_VALUE
= 155,
271
MENUTYPE_TITLE_ITEM
= 156,
273
MENUTYPE_DIALOG_BUTTON
= 157,
274
276
MENUTYPE_TEXT_VALUE
= 200,
278
MENUTYPE_IPADDRESS
= 201,
280
MENUTYPE_TIME
= 202,
282
MENUTYPE_DATE
= 203,
284
MENUTYPE_LARGENUM_VALUE
= 210,
286
MENUTYPE_COLOR_VALUE
= 211
287
};
288
292
enum
RenderFnMode
: uint8_t {
294
RENDERFN_VALUE
,
296
RENDERFN_NAME
,
298
RENDERFN_EEPROM_POS
,
300
RENDERFN_INVOKE
,
302
RENDERFN_ACTIVATE
,
304
RENDERFN_SET_VALUE
,
306
RENDERFN_GETRANGE
,
308
RENDERFN_GETPART
,
310
RENDERFN_SET_TEXT_VALUE
311
};
312
313
// forward reference
314
class
RuntimeMenuItem
;
315
327
typedef
int(*
RuntimeRenderingFn
)(
RuntimeMenuItem
* item, uint8_t row,
RenderFnMode
mode,
char
* buffer,
int
bufferSize);
328
338
class
MenuItem
{
339
protected
:
340
uint16_t flags;
341
MenuItem
* next;
343
const
AnyMenuInfo
*
info
=
nullptr
;
344
RuntimeRenderingFn
renderFn =
nullptr
;
345
MenuType
menuType;
346
public
:
350
MenuItem
(
const
MenuItem
&) =
delete
;
354
MenuItem
&
operator=
(
const
MenuItem
&) =
delete
;
355
361
uint8_t
copyNameToBuffer
(
char
* sz,
int
size)
const
{
return
copyNameToBuffer
(sz, 0, size);}
362
370
uint8_t
copyNameToBuffer
(
char
* sz,
int
offset,
int
size)
const
;
372
menuid_t
getId
()
const
;
374
uint16_t
getMaximumValue
()
const
;
376
uint16_t
getEepromPosition
()
const
;
378
MenuType
getMenuType
()
const
{
return
menuType; }
380
void
triggerCallback
()
const
;
381
382
bool
isInfoProgMem()
const
{
return
bitRead(flags,
MENUITEM_INFO_STRUCT_PGM
); }
383
386
void
setChanged
(
bool
changed);
388
void
setChanged
(
int
num,
bool
changed) { bitWrite(flags, (num & 3), changed); }
390
bool
isChanged
(
int
num = 0)
const
{
return
bitRead(flags, (num & 3)); }
392
bool
isSendRemoteNeeded
(uint8_t remoteNo)
const
;
394
void
setSendRemoteNeededAll
();
396
void
clearSendRemoteNeededAll
();
398
void
setSendRemoteNeeded
(uint8_t remoteNo,
bool
needed);
399
401
void
setReadOnly
(
bool
active) { bitWrite(flags,
MENUITEM_READONLY
, active); }
403
bool
isReadOnly
()
const
{
return
bitRead(flags,
MENUITEM_READONLY
); }
404
406
void
setLocalOnly
(
bool
localOnly) { bitWrite(flags,
MENUITEM_LOCAL_ONLY
, localOnly); }
408
bool
isLocalOnly
()
const
{
return
bitRead(flags,
MENUITEM_LOCAL_ONLY
); }
409
411
void
setSecured
(
bool
secured) { bitWrite(flags,
MENUITEM_PIN_SECURED
, secured); }
413
bool
isSecured
()
const
{
return
bitRead(flags,
MENUITEM_PIN_SECURED
); }
414
416
void
setVisible
(
bool
visible) { bitWrite(flags,
MENUITEM_PIN_VISIBLE
, visible); }
418
bool
isVisible
()
const
{
return
bitRead(flags,
MENUITEM_PIN_VISIBLE
); }
419
421
MenuItem
*
getNext
()
const
{
return
next; }
423
void
setNext
(
MenuItem
* pNext) { this->next = pNext; }
424
428
void
changeOccurred
(
bool
silent);
429
protected
:
433
MenuItem
(
MenuType
menuType,
const
AnyMenuInfo
* menuInfo,
MenuItem
* next,
bool
infoProgMem);
434
435
};
436
441
class
ValueMenuItem
:
public
MenuItem
{
442
protected
:
443
uint16_t currentValue;
444
446
ValueMenuItem
(
MenuType
menuType,
const
AnyMenuInfo
*
info
, uint16_t defaultVal,
MenuItem
* next,
bool
infoPgm)
447
:
MenuItem
(menuType,
info
, next, infoPgm) {
448
this->currentValue = defaultVal;
449
}
450
public
:
452
void
setCurrentValue
(uint16_t val,
bool
silent =
false
);
453
455
uint16_t
getCurrentValue
()
const
{
return
currentValue; }
456
};
457
462
struct
WholeAndFraction {
463
public
:
464
WholeAndFraction() {
465
this->whole = this->fraction = this->negative = 0;
466
}
467
468
WholeAndFraction(
const
WholeAndFraction& that) {
469
this->whole = that.whole;
470
this->fraction = that.fraction;
471
this->negative = that.negative;
472
}
473
474
WholeAndFraction(uint16_t whole, uint16_t fract,
bool
negative) {
475
this->whole = whole;
476
this->fraction = fract;
477
this->negative = negative;
478
}
479
uint32_t whole: 15;
480
uint32_t fraction: 16;
481
uint32_t negative: 1;
482
};
483
493
class
AnalogMenuItem
:
public
ValueMenuItem
{
494
private
:
495
int8_t step = 1;
496
public
:
504
AnalogMenuItem
(
const
AnalogMenuInfo
*
info
, uint16_t defaultVal,
MenuItem
* next =
nullptr
,
bool
infoInPgm = INFO_LOCATION_PGM)
505
:
ValueMenuItem
(
MENUTYPE_INT_VALUE
, (const
AnyMenuInfo
*)
info
, defaultVal, next, infoInPgm) {;}
506
508
int
getOffset
()
const
;
509
511
int
getStep
()
const
{
return
step; }
512
514
void
setStep
(
int
newStep) { step = newStep; }
515
517
uint16_t
getDivisor
()
const
;
518
520
int
unitNameLength
()
const
;
521
523
void
copyUnitToBuffer
(
char
* unitBuff, uint8_t size = 5)
const
;
524
530
void
copyValue
(
char
* buffer, uint8_t bufferSize)
const
;
531
532
538
float
getAsFloatingPointValue
()
const
;
539
544
void
setFromFloatingPointValue
(
float
value);
545
546
int
getIntValueIncludingOffset() {
return
(
int
)currentValue + (int)
getOffset
(); }
547
553
WholeAndFraction
getWholeAndFraction
()
const
;
554
560
void
setFromWholeAndFraction
(WholeAndFraction wf);
561
565
uint8_t
getDecimalPlacesForDivisor
()
const
;
566
570
uint16_t
getActualDecimalDivisor
()
const
;
571
};
572
583
class
EnumMenuItem
:
public
ValueMenuItem
{
584
public
:
592
EnumMenuItem
(
const
EnumMenuInfo
*
info
, uint8_t defaultVal,
MenuItem
* next =
nullptr
,
bool
infoInPgm = INFO_LOCATION_PGM)
593
:
ValueMenuItem
(
MENUTYPE_ENUM_VALUE
, (const
AnyMenuInfo
*)
info
, defaultVal, next, infoInPgm) {;}
594
600
void
copyEnumStrToBuffer
(
char
* buffer,
int
size,
int
idx)
const
;
601
606
int
getLengthOfEnumStr
(
int
idx)
const
;
607
};
608
614
class
BooleanMenuItem
:
public
ValueMenuItem
{
615
public
:
623
BooleanMenuItem
(
const
BooleanMenuInfo
*
info
,
bool
defaultVal,
MenuItem
* next =
nullptr
,
bool
infoInPgm = INFO_LOCATION_PGM)
624
:
ValueMenuItem
(
MENUTYPE_BOOLEAN_VALUE
, (const
AnyMenuInfo
*)
info
, defaultVal, next, infoInPgm) {;}
625
629
BooleanNaming
getBooleanNaming
()
const
;
630
632
bool
getBoolean
()
const
{
return
currentValue != 0;}
634
void
setBoolean
(
bool
b,
bool
silent =
false
) {
setCurrentValue
(b, silent);}
635
};
636
642
class
FloatMenuItem
:
public
MenuItem
{
643
private
:
644
float
currValue;
645
public
:
653
FloatMenuItem
(
const
FloatMenuInfo
*
info
,
MenuItem
* next,
bool
infoInPgm = INFO_LOCATION_PGM)
654
:
MenuItem
(
MENUTYPE_FLOAT_VALUE
, (const
AnyMenuInfo
*)
info
, next, infoInPgm) { currValue = 0; }
655
664
FloatMenuItem
(
const
FloatMenuInfo
*
info
,
float
current,
MenuItem
* next,
bool
infoInPgm = INFO_LOCATION_PGM)
665
:
MenuItem
(
MENUTYPE_FLOAT_VALUE
, (const
AnyMenuInfo
*)
info
, next, infoInPgm) { currValue = current; }
666
670
int
getDecimalPlaces
()
const
;
671
675
void
setFloatValue
(
float
newVal,
bool
silent =
false
);
676
680
float
getFloatValue
()
const
{
return
currValue; }
681
};
682
683
689
class
ActionMenuItem
:
public
MenuItem
{
690
public
:
697
ActionMenuItem
(
const
AnyMenuInfo
*
info
,
MenuItem
* next,
bool
infoInProgmem = INFO_LOCATION_PGM)
698
:
MenuItem
(
MENUTYPE_ACTION_VALUE
,
info
, next, infoInProgmem) {;}
699
};
700
701
// forward reference
702
class
RuntimeMenuItem
;
703
710
void
copyMenuItemValue
(
const
MenuItem
* item,
char
* buffer,
size_t
bufferSize,
bool
active =
false
);
711
719
void
copyMenuItemNameAndValue
(
const
MenuItem
* item,
char
* buffer,
size_t
bufferSize,
char
additionalSep =
':'
,
bool
active =
false
);
720
725
void
copyMenuItemValueDefault
(
const
MenuItem
* item,
char
* buffer,
size_t
bufferSize,
const
char
* defValue,
bool
active =
false
);
726
730
inline
bool
isMenuBasedOnValueItem
(
const
MenuItem
* item) {
731
if
(item ==
nullptr
)
return
false
;
732
auto
ty = uint8_t(item->
getMenuType
());
733
return
ty ==
MENUTYPE_INT_VALUE
|| ty ==
MENUTYPE_ENUM_VALUE
|| ty ==
MENUTYPE_BOOLEAN_VALUE
;
734
}
735
739
inline
bool
isMenuRuntime
(
const
MenuItem
* t) {
740
return
t && (uint8_t(t->
getMenuType
()) >= uint8_t(
MENUTYPE_RUNTIME_VALUE
));
741
}
742
746
inline
bool
isMenuRuntimeMultiEdit
(
const
MenuItem
* t) {
747
return
t && (uint8_t(t->
getMenuType
()) >= uint8_t(
MENUTYPE_TEXT_VALUE
));
748
}
749
755
inline
const
RuntimeMenuItem
*
asRuntimeItem
(
const
MenuItem
* i) {
756
return
reinterpret_cast<
const
RuntimeMenuItem
*
>
(i);
757
}
758
759
#endif
EnumMenuInfo::menuItems
const char *const * menuItems
Definition
MenuItems.h:128
EnumMenuInfo::callback
MenuCallbackFn callback
Definition
MenuItems.h:118
AnalogMenuInfo::eepromAddr
uint16_t eepromAddr
Definition
MenuItems.h:77
isMenuRuntime
bool isMenuRuntime(const MenuItem *t)
Definition
MenuItems.h:739
AnalogMenuInfo::maxValue
uint16_t maxValue
Definition
MenuItems.h:79
copyMenuItemNameAndValue
void copyMenuItemNameAndValue(const MenuItem *item, char *buffer, size_t bufferSize, char additionalSep=':', bool active=false)
Definition
MenuItems.cpp:320
AnyMenuInfo::eepromAddr
uint16_t eepromAddr
Definition
MenuItems.h:57
EnumMenuInfo::name
char name[NAME_SIZE_T]
Definition
MenuItems.h:110
EnumMenuInfo::eepromAddr
uint16_t eepromAddr
Definition
MenuItems.h:114
BooleanMenuInfo::eepromAddr
uint16_t eepromAddr
Definition
MenuItems.h:157
FloatMenuInfo::numDecimalPlaces
uint16_t numDecimalPlaces
Definition
MenuItems.h:190
FloatMenuInfo::id
menuid_t id
Definition
MenuItems.h:186
AnalogMenuInfo::unitName
char unitName[UNIT_SIZE_T]
Definition
MenuItems.h:98
FloatMenuInfo::eepromAddr
uint16_t eepromAddr
Definition
MenuItems.h:188
AnyMenuInfo::maxValue
uint16_t maxValue
Definition
MenuItems.h:59
EnumMenuInfo::id
menuid_t id
Definition
MenuItems.h:112
SubMenuInfo
AnyMenuInfo SubMenuInfo
Definition
MenuItems.h:176
BooleanMenuInfo::callback
MenuCallbackFn callback
Definition
MenuItems.h:161
AnalogMenuInfo::callback
MenuCallbackFn callback
Definition
MenuItems.h:81
RenderFnMode
RenderFnMode
Definition
MenuItems.h:292
RENDERFN_EEPROM_POS
@ RENDERFN_EEPROM_POS
Definition
MenuItems.h:298
RENDERFN_INVOKE
@ RENDERFN_INVOKE
Definition
MenuItems.h:300
RENDERFN_NAME
@ RENDERFN_NAME
Definition
MenuItems.h:296
RENDERFN_ACTIVATE
@ RENDERFN_ACTIVATE
Definition
MenuItems.h:302
RENDERFN_GETRANGE
@ RENDERFN_GETRANGE
Definition
MenuItems.h:306
RENDERFN_GETPART
@ RENDERFN_GETPART
Definition
MenuItems.h:308
RENDERFN_VALUE
@ RENDERFN_VALUE
Definition
MenuItems.h:294
RENDERFN_SET_VALUE
@ RENDERFN_SET_VALUE
Definition
MenuItems.h:304
RENDERFN_SET_TEXT_VALUE
@ RENDERFN_SET_TEXT_VALUE
Definition
MenuItems.h:310
FloatMenuInfo::callback
MenuCallbackFn callback
Definition
MenuItems.h:192
BooleanMenuInfo::maxValue
uint16_t maxValue
Definition
MenuItems.h:159
asRuntimeItem
const RuntimeMenuItem * asRuntimeItem(const MenuItem *i)
Definition
MenuItems.h:755
AnyMenuInfo::id
menuid_t id
Definition
MenuItems.h:55
AnyMenuInfo::name
char name[NAME_SIZE_T]
Definition
MenuItems.h:53
copyMenuItemValue
void copyMenuItemValue(const MenuItem *item, char *buffer, size_t bufferSize, bool active=false)
Definition
MenuItems.cpp:332
AnalogMenuInfo::id
menuid_t id
Definition
MenuItems.h:75
AnyMenuInfo::callback
MenuCallbackFn callback
Definition
MenuItems.h:61
copyMenuItemValueDefault
void copyMenuItemValueDefault(const MenuItem *item, char *buffer, size_t bufferSize, const char *defValue, bool active=false)
Definition
MenuItems.cpp:387
BooleanMenuInfo::name
char name[NAME_SIZE_T]
Definition
MenuItems.h:153
BooleanMenuInfo::id
menuid_t id
Definition
MenuItems.h:155
AnalogMenuInfo::name
char name[NAME_SIZE_T]
Definition
MenuItems.h:73
isMenuRuntimeMultiEdit
bool isMenuRuntimeMultiEdit(const MenuItem *t)
Definition
MenuItems.h:746
RuntimeRenderingFn
int(* RuntimeRenderingFn)(RuntimeMenuItem *item, uint8_t row, RenderFnMode mode, char *buffer, int bufferSize)
Definition
MenuItems.h:327
FloatMenuInfo::name
char name[NAME_SIZE_T]
Definition
MenuItems.h:184
Flags
Flags
Definition
MenuItems.h:207
MENUITEM_REMOTE_SEND5
@ MENUITEM_REMOTE_SEND5
Definition
MenuItems.h:234
MENUITEM_REMOTE_SEND4
@ MENUITEM_REMOTE_SEND4
Definition
MenuItems.h:232
MENUITEM_INFO_STRUCT_PGM
@ MENUITEM_INFO_STRUCT_PGM
Definition
MenuItems.h:221
MENUITEM_REMOTE_SEND2
@ MENUITEM_REMOTE_SEND2
Definition
MenuItems.h:228
MENUITEM_READONLY
@ MENUITEM_READONLY
Definition
MenuItems.h:213
MENUITEM_PIN_VISIBLE
@ MENUITEM_PIN_VISIBLE
Definition
MenuItems.h:219
MENUITEM_CHANGED_1
@ MENUITEM_CHANGED_1
Definition
MenuItems.h:211
MENUITEM_LOCAL_ONLY
@ MENUITEM_LOCAL_ONLY
Definition
MenuItems.h:215
MENUITEM_REMOTE_SEND1
@ MENUITEM_REMOTE_SEND1
Definition
MenuItems.h:226
MENUITEM_PIN_SECURED
@ MENUITEM_PIN_SECURED
Definition
MenuItems.h:217
MENUITEM_CHANGED
@ MENUITEM_CHANGED
Definition
MenuItems.h:209
MENUITEM_REMOTE_SEND3
@ MENUITEM_REMOTE_SEND3
Definition
MenuItems.h:230
MENUITEM_REMOTE_SEND0
@ MENUITEM_REMOTE_SEND0
Definition
MenuItems.h:224
AnalogMenuInfo::divisor
uint16_t divisor
Definition
MenuItems.h:94
MenuCallbackFn
void(* MenuCallbackFn)(int id)
Definition
MenuItems.h:45
AnalogMenuInfo::offset
int16_t offset
Definition
MenuItems.h:87
isMenuBasedOnValueItem
bool isMenuBasedOnValueItem(const MenuItem *item)
Definition
MenuItems.h:730
BooleanMenuInfo::naming
BooleanNaming naming
Definition
MenuItems.h:167
BooleanNaming
BooleanNaming
Definition
MenuItems.h:134
NAMING_ON_OFF
@ NAMING_ON_OFF
Definition
MenuItems.h:138
NAMING_TRUE_FALSE
@ NAMING_TRUE_FALSE
Definition
MenuItems.h:136
NAMING_CHECKBOX
@ NAMING_CHECKBOX
Definition
MenuItems.h:142
NAMING_YES_NO
@ NAMING_YES_NO
Definition
MenuItems.h:140
MenuType
MenuType
Definition
MenuItems.h:247
MENUTYPE_DIALOG_BUTTON
@ MENUTYPE_DIALOG_BUTTON
Definition
MenuItems.h:273
MENUTYPE_COLOR_VALUE
@ MENUTYPE_COLOR_VALUE
Definition
MenuItems.h:286
MENUTYPE_IPADDRESS
@ MENUTYPE_IPADDRESS
Definition
MenuItems.h:278
MENUTYPE_DATE
@ MENUTYPE_DATE
Definition
MenuItems.h:282
MENUTYPE_INT_VALUE
@ MENUTYPE_INT_VALUE
Definition
MenuItems.h:249
MENUTYPE_ENUM_VALUE
@ MENUTYPE_ENUM_VALUE
Definition
MenuItems.h:251
MENUTYPE_SUB_VALUE
@ MENUTYPE_SUB_VALUE
Definition
MenuItems.h:269
MENUTYPE_TIME
@ MENUTYPE_TIME
Definition
MenuItems.h:280
MENUTYPE_SCROLLER_VALUE
@ MENUTYPE_SCROLLER_VALUE
Definition
MenuItems.h:267
MENUTYPE_FLOAT_VALUE
@ MENUTYPE_FLOAT_VALUE
Definition
MenuItems.h:255
MENUTYPE_BOOLEAN_VALUE
@ MENUTYPE_BOOLEAN_VALUE
Definition
MenuItems.h:253
MENUTYPE_TEXT_VALUE
@ MENUTYPE_TEXT_VALUE
Definition
MenuItems.h:276
MENUTYPE_TITLE_ITEM
@ MENUTYPE_TITLE_ITEM
Definition
MenuItems.h:271
MENUTYPE_ACTION_VALUE
@ MENUTYPE_ACTION_VALUE
Definition
MenuItems.h:257
MENUTYPE_RUNTIME_LIST
@ MENUTYPE_RUNTIME_LIST
Definition
MenuItems.h:261
MENUTYPE_BACK_VALUE
@ MENUTYPE_BACK_VALUE
Definition
MenuItems.h:263
MENUTYPE_RUNTIME_VALUE
@ MENUTYPE_RUNTIME_VALUE
Definition
MenuItems.h:259
MENUTYPE_ACTIVATE_SUBMENU
@ MENUTYPE_ACTIVATE_SUBMENU
Definition
MenuItems.h:265
MENUTYPE_LARGENUM_VALUE
@ MENUTYPE_LARGENUM_VALUE
Definition
MenuItems.h:284
EnumMenuInfo::maxValue
uint16_t maxValue
Definition
MenuItems.h:116
AnalogMenuInfo
Definition
MenuItems.h:71
AnyMenuInfo
Definition
MenuItems.h:51
BooleanMenuInfo
Definition
MenuItems.h:151
EnumMenuInfo
Definition
MenuItems.h:108
FloatMenuInfo
Definition
MenuItems.h:182
AllMenuInfoTypes
Definition
MenuItems.h:195
ActionMenuItem::ActionMenuItem
ActionMenuItem(const AnyMenuInfo *info, MenuItem *next, bool infoInProgmem=INFO_LOCATION_PGM)
Definition
MenuItems.h:697
AnalogMenuItem::getWholeAndFraction
WholeAndFraction getWholeAndFraction() const
Definition
MenuItems.cpp:207
AnalogMenuItem::setFromFloatingPointValue
void setFromFloatingPointValue(float value)
Definition
MenuItems.cpp:243
AnalogMenuItem::AnalogMenuItem
AnalogMenuItem(const AnalogMenuInfo *info, uint16_t defaultVal, MenuItem *next=nullptr, bool infoInPgm=INFO_LOCATION_PGM)
Definition
MenuItems.h:504
AnalogMenuItem::copyValue
void copyValue(char *buffer, uint8_t bufferSize) const
Definition
MenuItems.cpp:175
AnalogMenuItem::setFromWholeAndFraction
void setFromWholeAndFraction(WholeAndFraction wf)
Definition
MenuItems.cpp:226
AnalogMenuItem::getAsFloatingPointValue
float getAsFloatingPointValue() const
Definition
MenuItems.cpp:191
AnalogMenuItem::getOffset
int getOffset() const
Definition
MenuItems.cpp:262
AnalogMenuItem::unitNameLength
int unitNameLength() const
Definition
MenuItems.cpp:272
AnalogMenuItem::setStep
void setStep(int newStep)
Definition
MenuItems.h:514
AnalogMenuItem::getActualDecimalDivisor
uint16_t getActualDecimalDivisor() const
Definition
MenuItems.cpp:201
AnalogMenuItem::getDecimalPlacesForDivisor
uint8_t getDecimalPlacesForDivisor() const
Definition
MenuItems.cpp:255
AnalogMenuItem::copyUnitToBuffer
void copyUnitToBuffer(char *unitBuff, uint8_t size=5) const
Definition
MenuItems.cpp:277
AnalogMenuItem::getStep
int getStep() const
Definition
MenuItems.h:511
AnalogMenuItem::getDivisor
uint16_t getDivisor() const
Definition
MenuItems.cpp:267
BooleanMenuItem::getBoolean
bool getBoolean() const
Definition
MenuItems.h:632
BooleanMenuItem::BooleanMenuItem
BooleanMenuItem(const BooleanMenuInfo *info, bool defaultVal, MenuItem *next=nullptr, bool infoInPgm=INFO_LOCATION_PGM)
Definition
MenuItems.h:623
BooleanMenuItem::getBooleanNaming
BooleanNaming getBooleanNaming() const
Definition
MenuItems.cpp:288
BooleanMenuItem::setBoolean
void setBoolean(bool b, bool silent=false)
Definition
MenuItems.h:634
EnumMenuItem::getLengthOfEnumStr
int getLengthOfEnumStr(int idx) const
Definition
MenuItems.cpp:141
EnumMenuItem::copyEnumStrToBuffer
void copyEnumStrToBuffer(char *buffer, int size, int idx) const
Definition
MenuItems.cpp:129
EnumMenuItem::EnumMenuItem
EnumMenuItem(const EnumMenuInfo *info, uint8_t defaultVal, MenuItem *next=nullptr, bool infoInPgm=INFO_LOCATION_PGM)
Definition
MenuItems.h:592
FloatMenuItem::setFloatValue
void setFloatValue(float newVal, bool silent=false)
Definition
MenuItems.cpp:293
FloatMenuItem::getDecimalPlaces
int getDecimalPlaces() const
Definition
MenuItems.cpp:300
FloatMenuItem::FloatMenuItem
FloatMenuItem(const FloatMenuInfo *info, MenuItem *next, bool infoInPgm=INFO_LOCATION_PGM)
Definition
MenuItems.h:653
FloatMenuItem::getFloatValue
float getFloatValue() const
Definition
MenuItems.h:680
FloatMenuItem::FloatMenuItem
FloatMenuItem(const FloatMenuInfo *info, float current, MenuItem *next, bool infoInPgm=INFO_LOCATION_PGM)
Definition
MenuItems.h:664
MenuItem
Definition
MenuItems.h:338
MenuItem::isReadOnly
bool isReadOnly() const
Definition
MenuItems.h:403
MenuItem::setChanged
void setChanged(bool changed)
Definition
MenuItems.cpp:112
MenuItem::isLocalOnly
bool isLocalOnly() const
Definition
MenuItems.h:408
MenuItem::setLocalOnly
void setLocalOnly(bool localOnly)
Definition
MenuItems.h:406
MenuItem::changeOccurred
void changeOccurred(bool silent)
Definition
MenuItems.cpp:99
MenuItem::getId
menuid_t getId() const
Definition
MenuItems.cpp:81
MenuItem::setReadOnly
void setReadOnly(bool active)
Definition
MenuItems.h:401
MenuItem::MenuItem
MenuItem(const MenuItem &)=delete
MenuItem::setChanged
void setChanged(int num, bool changed)
Definition
MenuItems.h:388
MenuItem::info
const AnyMenuInfo * info
Definition
MenuItems.h:343
MenuItem::getNext
MenuItem * getNext() const
Definition
MenuItems.h:421
MenuItem::isSendRemoteNeeded
bool isSendRemoteNeeded(uint8_t remoteNo) const
Definition
MenuItems.cpp:22
MenuItem::copyNameToBuffer
uint8_t copyNameToBuffer(char *sz, int size) const
Definition
MenuItems.h:361
MenuItem::getMenuType
MenuType getMenuType() const
Definition
MenuItems.h:378
MenuItem::setNext
void setNext(MenuItem *pNext)
Definition
MenuItems.h:423
MenuItem::isVisible
bool isVisible() const
Definition
MenuItems.h:418
MenuItem::setSendRemoteNeeded
void setSendRemoteNeeded(uint8_t remoteNo, bool needed)
Definition
MenuItems.cpp:26
MenuItem::isChanged
bool isChanged(int num=0) const
Definition
MenuItems.h:390
MenuItem::getEepromPosition
uint16_t getEepromPosition() const
Definition
MenuItems.cpp:105
MenuItem::setVisible
void setVisible(bool visible)
Definition
MenuItems.h:416
MenuItem::getMaximumValue
uint16_t getMaximumValue() const
Definition
MenuItems.cpp:90
MenuItem::triggerCallback
void triggerCallback() const
Definition
MenuItems.cpp:41
MenuItem::setSendRemoteNeededAll
void setSendRemoteNeededAll()
Definition
MenuItems.cpp:30
MenuItem::setSecured
void setSecured(bool secured)
Definition
MenuItems.h:411
MenuItem::isSecured
bool isSecured() const
Definition
MenuItems.h:413
MenuItem::operator=
MenuItem & operator=(const MenuItem &)=delete
MenuItem::clearSendRemoteNeededAll
void clearSendRemoteNeededAll()
Definition
MenuItems.cpp:37
RuntimeMenuItem
Definition
RuntimeMenuItem.h:72
ValueMenuItem::ValueMenuItem
ValueMenuItem(MenuType menuType, const AnyMenuInfo *info, uint16_t defaultVal, MenuItem *next, bool infoPgm)
Definition
MenuItems.h:446
ValueMenuItem::setCurrentValue
void setCurrentValue(uint16_t val, bool silent=false)
Definition
MenuItems.cpp:305
ValueMenuItem::getCurrentValue
uint16_t getCurrentValue() const
Definition
MenuItems.h:455