Refactored menu working

This commit is contained in:
2025-05-29 13:12:29 -05:00
parent d4a402428b
commit a437bcf8b5
6 changed files with 45 additions and 16 deletions

View File

@@ -81,14 +81,18 @@ extern uint8_t Port_State[];
extern HARDWARE_FIX_t hwf;
extern uint32_t systemTime;
MenuItem_t _menuItems[50];
/*******************************************************************************
* Static Function Declarations
******************************************************************************/
static Menu_t* getNewMenu(MenuHandler_t handler);
static Menu_t* getNewMenu(MenuHandler_t handler);
static Menu_t* getCurrentMenu(void);
static int handleSystemInfoMenu(Menu_t *menu);
static int handleAutoShutdown(Menu_t *menu);
static void ClearMenuItems(MenuItem_t items[], uint32_t num);
@@ -137,6 +141,7 @@ static void createMenuItem(MenuItemId_t id, MenuItem_t *item)
{
item->pMonoIcon = 0;
strcpy(item->text, "Auto Shutdown");
item->handler = handleAutoShutdown;
break;
}
@@ -191,6 +196,11 @@ static void handleUpDown(uint32_t pressed, Menu_t *menu)
switch(pressed)
{
case KEY_HOME:
{
menu->exitCode = MENU_HOME;
break;
}
case KEY_UP:
{
menu->selected--;
@@ -244,6 +254,10 @@ static void drawScrollBar(Menu_t *menu)
}
static Menu_t* getCurrentMenu(void)
{
return &_menuData.menuStack[_menuData.stackCount-1];
}
static Menu_t* getNewMenu(MenuHandler_t handler)
{
@@ -268,6 +282,17 @@ static Menu_t* getNewMenu(MenuHandler_t handler)
return menu;
}
static int handleAutoShutdown(Menu_t *menu)
{
// cycle through selections
tmr_ChangeAutoSDTimer();
menu = getCurrentMenu();
menu->draw = true;
}
static int handleSystemInfoMenu(Menu_t *menu)
{
if (menu == NULL)
@@ -397,7 +422,7 @@ static int handleMainMenu(Menu_t *menu)
if (menu->items[menu->selected].handler != NULL)
{
menu->items[menu->selected].handler(NULL);
return MENU_OK;
//return MENU_OK;
}
}
@@ -1501,7 +1526,7 @@ void Menu_service(void)
if (_menuData.stackCount > 0)
{
_menuData.currentMenu = &_menuData.menuStack[_menuData.stackCount-1];
_menuData.currentMenu = getCurrentMenu();
_menuData.currentMenu->draw = true;
}
break;