Refactor submenu creation logic

This commit is contained in:
jpirnay
2026-04-24 12:44:08 +02:00
parent 7533ed1a9c
commit 0c080f5600
8 changed files with 102 additions and 30 deletions
+6
View File
@@ -70,12 +70,18 @@ struct Rect;
class MenuListActivity : public Activity {
protected:
std::vector<SettingInfo> menuItems;
std::vector<SettingInfo::SubmenuData> submenuData;
int selectedIndex = 0;
ButtonNavigator buttonNavigator;
bool submenusPrepared = false;
// Call after building/rebuilding menuItems to wire up the selectable predicate.
void initMenuList();
// Process SettingInfo items marked with withSubmenu() into submenu placeholders.
void prepareSubmenus();
void openSubmenu(const SettingInfo& submenuEntry);
// Handle up/down navigation via buttonNavigator. Call from loop() if overriding.
void handleNavigation();