Skip to content

Commit ebdfaf7

Browse files
author
dave
committed
small fixes for release.
1 parent 09d6461 commit ebdfaf7

File tree

5 files changed

+42
-8
lines changed

5 files changed

+42
-8
lines changed

examples/mbed/stm32f429FrameBuffer/stm32f429FrameBuffer.emf

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,22 @@
159159
"staticDataInRAM": true
160160
}
161161
},
162+
{
163+
"parentId": 5,
164+
"type": "runtimeList",
165+
"item": {
166+
"initialRows": 5,
167+
"listCreationMode": "FLASH_ARRAY",
168+
"name": "Board List",
169+
"variableName": "SettingsBoardList",
170+
"id": 26,
171+
"eepromAddress": -1,
172+
"readOnly": false,
173+
"localOnly": false,
174+
"visible": true,
175+
"staticDataInRAM": false
176+
}
177+
},
162178
{
163179
"parentId": 0,
164180
"type": "subMenu",
@@ -522,5 +538,16 @@
522538
"packageNamespace": "",
523539
"appIsModular": false
524540
},
525-
"stringLists": []
541+
"stringLists": [
542+
{
543+
"id": 26,
544+
"listItems": [
545+
"STM32",
546+
"ESP32",
547+
"AVR",
548+
"SAMD",
549+
"RP2040"
550+
]
551+
}
552+
]
526553
}

examples/mbed/stm32f429FrameBuffer/stm32f429FrameBuffer_menu.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,16 @@ BooleanMenuItem menuConnectivityEnableUSB(&minfoConnectivityEnableUSB, false, nu
6464
const SubMenuInfo minfoConnectivity = { "Connectivity", 9, 0xffff, 0, NO_CALLBACK };
6565
BackMenuItem menuBackConnectivity(&minfoConnectivity, &menuConnectivityEnableUSB, INFO_LOCATION_PGM);
6666
SubMenuItem menuConnectivity(&minfoConnectivity, &menuBackConnectivity, &menuSamples, INFO_LOCATION_PGM);
67+
const char enumStrSettingsBoardList_0[] = "STM32";
68+
const char enumStrSettingsBoardList_1[] = "ESP32";
69+
const char enumStrSettingsBoardList_2[] = "AVR";
70+
const char enumStrSettingsBoardList_3[] = "SAMD";
71+
const char enumStrSettingsBoardList_4[] = "RP2040";
72+
const char* const enumStrSettingsBoardList[] = { enumStrSettingsBoardList_0, enumStrSettingsBoardList_1, enumStrSettingsBoardList_2, enumStrSettingsBoardList_3, enumStrSettingsBoardList_4 };
73+
const AnyMenuInfo minfoSettingsBoardList = { "Board List", 26, 0xffff, 0, NO_CALLBACK };
74+
ListRuntimeMenuItem menuSettingsBoardList(&minfoSettingsBoardList, 5, enumStrSettingsBoardList, ListRuntimeMenuItem::FLASH_ARRAY, nullptr, INFO_LOCATION_PGM);
6775
AnyMenuInfo minfoSettingsDashboard = { "Dashboard", 25, 0xffff, 0, onShowDash };
68-
ActionMenuItem menuSettingsDashboard(&minfoSettingsDashboard, nullptr, INFO_LOCATION_RAM);
76+
ActionMenuItem menuSettingsDashboard(&minfoSettingsDashboard, &menuSettingsBoardList, INFO_LOCATION_RAM);
6977
const AnyMenuInfo minfoSettingsCalibrateNow = { "Calibrate Now", 24, 0xffff, 0, onCalibrateScreen };
7078
ActionMenuItem menuSettingsCalibrateNow(&minfoSettingsCalibrateNow, &menuSettingsDashboard, INFO_LOCATION_PGM);
7179
const BooleanMenuInfo minfoSettingsTSCalibration = { "TS Calibration", 23, 0xffff, 1, onTouchCalibration, NAMING_CHECKBOX };

examples/mbed/stm32f429FrameBuffer/stm32f429FrameBuffer_menu.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ extern SubMenuItem menuSamples;
5757
extern BooleanMenuItem menuConnectivityEnableUSB;
5858
extern BackMenuItem menuBackConnectivity;
5959
extern SubMenuItem menuConnectivity;
60+
extern const char* const enumStrSettingsBoardList[];
61+
extern ListRuntimeMenuItem menuSettingsBoardList;
6062
extern AnyMenuInfo minfoSettingsDashboard;
6163
extern ActionMenuItem menuSettingsDashboard;
6264
extern ActionMenuItem menuSettingsCalibrateNow;

src/RuntimeMenuItem.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ RuntimeMenuItem::RuntimeMenuItem(const AnyMenuInfo* rtInfo, bool isPgm, MenuType
3535
int defaultRtListCallback(RuntimeMenuItem* item, uint8_t row, RenderFnMode mode, char* buffer, int bufferSize) {
3636
switch(mode) {
3737
case RENDERFN_INVOKE:
38-
item->runCallback();
38+
// we must never call the invoke function on MenuItem from here
3939
return true;
4040
case RENDERFN_NAME:
4141
if(row != LIST_PARENT_ITEM_POS) {
@@ -102,8 +102,7 @@ RuntimeMenuItem *ListRuntimeMenuItem::asParent() {
102102

103103
RuntimeMenuItem *ListRuntimeMenuItem::asBackMenu() {
104104
if(activeItem == 0) {
105-
// the title is active.
106-
renderFn(this, 0, RENDERFN_ACTIVATE, nullptr, 0);
105+
runCallback();
107106
}
108107
menuType = MENUTYPE_BACK_VALUE;
109108
itemPosition = LIST_PARENT_ITEM_POS;

src/graphics/MenuTouchScreenEncoder.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,11 @@ void MenuTouchScreenEncoder::touched(const TouchNotification &evt) {
7878
auto menuType = theItem->getMenuType();
7979
auto held = evt.getTouchState() == HELD;
8080
bool showingTheList = menuMgr.getCurrentMenu() == theItem;
81-
if(theItem->getMenuType() == MENUTYPE_RUNTIME_LIST && showingTheList) {
81+
if(menuType == MENUTYPE_RUNTIME_LIST && showingTheList) {
8282
auto* listItem = reinterpret_cast<ListRuntimeMenuItem*>(theItem);
8383
int row = evt.getEntry()->getPosition().getRow();
8484
if(row == 0) {
85-
listItem->asBackMenu();
8685
menuMgr.onMenuSelect(false);
87-
listItem->asParent();
8886
}
8987
else {
9088
listItem->setActiveIndex(row - 1);

0 commit comments

Comments
 (0)