Skip to content

Commit 60829dd

Browse files
committed
#45 #46 providing support for visible flag on menu items, prepare for 1.4.0
1 parent f8446bf commit 60829dd

16 files changed

+91
-40
lines changed

examples/colorTftEthernet32/colorTftEthernet.emf

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"lastEdited": {
3-
"seconds": 1584888681,
3+
"seconds": 1585206207,
44
"nanos": 0
55
},
66
"codeOptions": {
@@ -50,7 +50,7 @@
5050
},
5151
{
5252
"name": "DISPLAY_TYPE",
53-
"latestValue": "Adafruit_ILI9341",
53+
"latestValue": "Adafruit_ST7735",
5454
"subsystem": "DISPLAY"
5555
},
5656
{
@@ -195,6 +195,18 @@
195195
"naming": "ON_OFF"
196196
}
197197
},
198+
{
199+
"parentId": 11,
200+
"type": "actionMenu",
201+
"item": {
202+
"name": "Hidden item",
203+
"eepromAddress": -1,
204+
"id": 16,
205+
"readOnly": false,
206+
"localOnly": false,
207+
"visible": true
208+
}
209+
},
198210
{
199211
"parentId": 11,
200212
"type": "boolItem",

examples/colorTftEthernet32/colorTftEthernet32.ino

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,12 @@ void setup() {
122122
// before calling setupMenu..
123123
prepareCustomConfiguration();
124124

125+
// here we make the menuitem "hidden item" invisible. It will not be displayed.
126+
// here it is done before setupMenu is called, so there's no need to refresh the
127+
// display. If it's done after initialisation, the menu must be reset by calling
128+
// menuMgr.setCurrentMenu(getRoot());
129+
menuHiddenItem.setVisible(false);
130+
125131
// set up the menu
126132
setupMenu();
127133

examples/colorTftEthernet32/colorTftEthernet32_menu.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,10 @@ BackMenuItem menuBackStatus(fnStatusRtCall, &menuVoltA0);
3535
SubMenuItem menuStatus(&minfoStatus, &menuBackStatus, &menuConnectivity);
3636
const BooleanMenuInfo minfoTempCheck = { "Temp Check", 13, 9, 1, NO_CALLBACK, NAMING_ON_OFF };
3737
BooleanMenuItem menuTempCheck(&minfoTempCheck, false, NULL);
38+
const AnyMenuInfo minfoHiddenItem = { "Hidden item", 16, 0xFFFF, 0, NO_CALLBACK };
39+
ActionMenuItem menuHiddenItem(&minfoHiddenItem, &menuTempCheck);
3840
const BooleanMenuInfo minfoSCircuitProtect = { "S-Circuit Protect", 12, 8, 1, NO_CALLBACK, NAMING_ON_OFF };
39-
BooleanMenuItem menuSCircuitProtect(&minfoSCircuitProtect, false, &menuTempCheck);
41+
BooleanMenuItem menuSCircuitProtect(&minfoSCircuitProtect, false, &menuHiddenItem);
4042
const SubMenuInfo minfoAdvanced = { "Advanced", 11, 0xFFFF, 0, NO_CALLBACK };
4143
RENDERING_CALLBACK_NAME_INVOKE(fnAdvancedRtCall, backSubItemRenderFn, "Advanced", -1, NO_CALLBACK)
4244
BackMenuItem menuBackAdvanced(fnAdvancedRtCall, &menuSCircuitProtect);
@@ -63,10 +65,10 @@ AnalogMenuItem menuVoltage(&minfoVoltage, 0, &menuCurrent);
6365
// Set up code
6466

6567
void setupMenu() {
68+
69+
6670
renderer.setGraphicsDevice(&gfx, &colorConfig);
6771
switches.initialise(io8574, true);
6872
menuMgr.initForEncoder(&renderer, &menuVoltage, 7, 6, 5);
6973
remoteServer.begin(&server, &applicationInfo);
70-
71-
7274
}

examples/colorTftEthernet32/colorTftEthernet32_menu.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ extern FloatMenuItem menuVoltA1;
4141
extern FloatMenuItem menuVoltA0;
4242
extern SubMenuItem menuStatus;
4343
extern BooleanMenuItem menuTempCheck;
44+
extern ActionMenuItem menuHiddenItem;
4445
extern BooleanMenuItem menuSCircuitProtect;
4546
extern SubMenuItem menuAdvanced;
4647
void CALLBACK_FUNCTION onSaveRom(int id);

examples/keyboardEthernetShield/keyboardEthernetShield.emf

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"lastEdited": {
3-
"seconds": 1584198922,
3+
"seconds": 1585206203,
44
"nanos": 0
55
},
66
"codeOptions": {
@@ -145,6 +145,19 @@
145145
"unitName": "dB"
146146
}
147147
},
148+
{
149+
"parentId": 0,
150+
"type": "boolItem",
151+
"item": {
152+
"name": "Hidden item",
153+
"eepromAddress": -1,
154+
"id": 13,
155+
"readOnly": false,
156+
"localOnly": false,
157+
"visible": false,
158+
"naming": "TRUE_FALSE"
159+
}
160+
},
148161
{
149162
"parentId": 0,
150163
"type": "analogItem",

examples/keyboardEthernetShield/keyboardEthernetShield_menu.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,21 +48,24 @@ const AnalogMenuInfo PROGMEM minfoDecimalTens = { "DecimalTens", 4, 28, 1000, NO
4848
AnalogMenuItem menuDecimalTens(&minfoDecimalTens, 0, &menuLargeNum);
4949
const AnalogMenuInfo PROGMEM minfoInteger = { "Integer", 3, 4, 1000, onInteger, 100, 1, "" };
5050
AnalogMenuItem menuInteger(&minfoInteger, 0, &menuDecimalTens);
51+
const BooleanMenuInfo PROGMEM minfoHiddenItem = { "Hidden item", 13, 0xFFFF, 1, NO_CALLBACK, NAMING_TRUE_FALSE };
52+
BooleanMenuItem menuHiddenItem(&minfoHiddenItem, false, &menuInteger);
5153
const AnalogMenuInfo PROGMEM minfoAnalog1 = { "Analog1", 2, 2, 255, onAnalog1, -180, 2, "dB" };
52-
AnalogMenuItem menuAnalog1(&minfoAnalog1, 0, &menuInteger);
54+
AnalogMenuItem menuAnalog1(&minfoAnalog1, 0, &menuHiddenItem);
5355
RENDERING_CALLBACK_NAME_INVOKE(fnTimeRtCall, timeItemRenderFn, "Time", 8, NO_CALLBACK)
5456
TimeFormattedMenuItem menuTime(fnTimeRtCall, 1, (MultiEditWireType)EDITMODE_TIME_12H, &menuAnalog1);
5557

5658

5759
// Set up code
5860

5961
void setupMenu() {
62+
menuHiddenItem.setVisible(false);
63+
menuConnectivity.setSecured(true);
64+
menuConnectivity.setLocalOnly(true);
65+
6066
lcd.setIoAbstraction(io23017);
6167
lcd.begin(20, 4);
6268
switches.initialise(io23017, true);
6369
menuMgr.initForEncoder(&renderer, &menuTime, 6, 7, 5);
6470
remoteServer.begin(&server, &applicationInfo);
65-
66-
menuConnectivity.setSecured(true);
67-
menuConnectivity.setLocalOnly(true);
6871
}

examples/keyboardEthernetShield/keyboardEthernetShield_menu.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ extern EditableLargeNumberMenuItem menuLargeNum;
4949
extern AnalogMenuItem menuDecimalTens;
5050
void CALLBACK_FUNCTION onInteger(int id);
5151
extern AnalogMenuItem menuInteger;
52+
extern BooleanMenuItem menuHiddenItem;
5253
void CALLBACK_FUNCTION onAnalog1(int id);
5354
extern AnalogMenuItem menuAnalog1;
5455
extern TimeFormattedMenuItem menuTime;

examples/keyboardEthernetShield/tcMenuLiquidCrystal.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,8 @@ void LiquidCrystalRenderer::render() {
148148
if (lastOffset != toOffsetBy) locRedrawMode = MENUDRAW_COMPLETE_REDRAW;
149149
lastOffset = toOffsetBy;
150150

151-
while (item != NULL && toOffsetBy--) {
151+
while (item != NULL && toOffsetBy) {
152+
if(item->isVisible()) toOffsetBy = toOffsetBy - 1;
152153
item = item->getNext();
153154
}
154155
}
@@ -159,10 +160,13 @@ void LiquidCrystalRenderer::render() {
159160

160161
// and then we start drawing items until we run out of screen or items
161162
while (item && cnt < dimY) {
162-
if (locRedrawMode != MENUDRAW_NO_CHANGE || item->isChanged()) {
163-
renderMenuItem(cnt, item);
164-
}
165-
++cnt;
163+
if(item->isVisible())
164+
{
165+
if (locRedrawMode != MENUDRAW_NO_CHANGE || item->isChanged()) {
166+
renderMenuItem(cnt, item);
167+
}
168+
++cnt;
169+
}
166170
item = item->getNext();
167171
}
168172
}

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55

66
name=tcMenu
7-
version=1.3.6
7+
version=1.4.0
88
maintainer=www.thecoderscorner.com
99
author=davetcc
1010
category=Other

src/BaseRenderers.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,5 @@ class BaseMenuRenderer : public MenuRenderer, Executable {
359359
void menuValueFloat(FloatMenuItem* item, MenuDrawJustification justification);
360360
};
361361

362-
/** Counts the number of items from this menu item to the end of the list */
363-
uint8_t itemCount(MenuItem* item);
364362

365363
#endif

0 commit comments

Comments
 (0)