Refactored menu working
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user