From 3ecf27392e5e10ae32c4edea1893553737e1d9c0 Mon Sep 17 00:00:00 2001 From: Federico Amedeo Izzo Date: Mon, 28 Dec 2020 09:31:33 +0100 Subject: [PATCH] UI: Calculate menu entries num instead of using a define --- openrtx/src/ui.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/openrtx/src/ui.c b/openrtx/src/ui.c index 9fa4a20c..b176620b 100644 --- a/openrtx/src/ui.c +++ b/openrtx/src/ui.c @@ -78,12 +78,7 @@ // Maximum menu entry length #define MAX_ENTRY_LEN 12 -// Number of top menu entries -#define MENU_NUM 6 -// Number of settings menu entries -#define SETTINGS_NUM 1 - -const char *menu_items[MENU_NUM] = +const char *menu_items[6] = { "Zone", "Channels", @@ -92,11 +87,15 @@ const char *menu_items[MENU_NUM] = "GPS", "Settings" }; +// Calculate number of main menu entries +const uint8_t menu_num = sizeof(menu_items)/sizeof(menu_items[0]); -const char *settings_items[SETTINGS_NUM] = +const char *settings_items[1] = { "Time & Date" }; +// Calculate number of settings menu entries +const uint8_t settings_num = sizeof(settings_items)/sizeof(settings_items[0]); typedef struct layout_t { @@ -375,7 +374,7 @@ void _ui_drawMenuTop() gfx_print(layout.top_pos, "Menu", layout.top_font, TEXT_ALIGN_CENTER, color_white); // Print menu entries - _ui_drawMenuList(layout.line1_pos, menu_items, MENU_NUM, menu_selected); + _ui_drawMenuList(layout.line1_pos, menu_items, menu_num, menu_selected); } void _ui_drawMenuSettings() @@ -385,7 +384,7 @@ void _ui_drawMenuSettings() gfx_print(layout.top_pos, "Settings", layout.top_font, TEXT_ALIGN_CENTER, color_white); // Print menu entries - _ui_drawMenuList(layout.line1_pos, settings_items, SETTINGS_NUM, menu_selected); + _ui_drawMenuList(layout.line1_pos, settings_items, settings_num, menu_selected); } void _ui_drawSettingsTimeDate(state_t* last_state) @@ -505,11 +504,11 @@ void ui_updateFSM(event_t event, bool *sync_rtx) if(menu_selected > 0) menu_selected -= 1; else - menu_selected = MENU_NUM-1; + menu_selected = menu_num-1; } else if(msg.keys & KEY_DOWN) { - if(menu_selected < MENU_NUM-1) + if(menu_selected < menu_num-1) menu_selected += 1; else menu_selected = 0;