From 8c0f69746f97c2a10cd32ae399a8ffb2ca8792dd Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sat, 10 Oct 2015 08:13:12 +0200 Subject: [PATCH] Code simplification --- radio/src/gui/Horus/menus.h | 33 ++++++++-------------------- radio/src/gui/Horus/navigation.cpp | 8 +++---- radio/src/gui/Taranis/menus.h | 3 --- radio/src/gui/Taranis/navigation.cpp | 4 ---- 4 files changed, 13 insertions(+), 35 deletions(-) diff --git a/radio/src/gui/Horus/menus.h b/radio/src/gui/Horus/menus.h index 7ab3fc062..64ae48ff5 100644 --- a/radio/src/gui/Horus/menus.h +++ b/radio/src/gui/Horus/menus.h @@ -217,46 +217,31 @@ bool isInputSourceAvailable(int source); #define CHECK_FLAG_NO_SCREEN_INDEX 1 bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTabSize, const pm_uint8_t *horTab, uint8_t horTabMax, vertpos_t maxrow, uint16_t scrollbar_X, uint8_t flags=0); -void check_simple(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTabSize, vertpos_t maxrow, uint16_t scrollbar_X); -void check_submenu_simple(check_event_t event, uint8_t maxrow, uint16_t scrollbar_X); -void title(const pm_char * s); -#define TITLE(str) title(str) +bool check_simple(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTabSize, vertpos_t maxrow, uint16_t scrollbar_X); +bool check_submenu_simple(check_event_t event, uint8_t maxrow, uint16_t scrollbar_X); #define MENU_TAB(...) const uint8_t mstate_tab[] = __VA_ARGS__ -#define MENU_CHECK(tab, menu, lines_count, scrollbar_X) \ - check(event, menu, tab, DIM(tab), mstate_tab, DIM(mstate_tab)-1, lines_count, scrollbar_X) - -#define MENU_CHECK_FLAGS(tab, menu, flags, lines_count, scrollbar_X) \ - check(event, menu, tab, DIM(tab), mstate_tab, DIM(mstate_tab)-1, lines_count, scrollbar_X, flags) - void drawMenuTemplate(const char *title, evt_t event, int pageIndex=0, int pageCount=0); #define MENU(title, tab, menu, lines_count, scrollbar_X, ...) \ + MENU_TAB(__VA_ARGS__); \ if (event == EVT_ENTRY || event == EVT_ENTRY_UP) TRACE("Menu %s displayed ...", title); \ - MENU_TAB(__VA_ARGS__); \ - if (!MENU_CHECK(tab, menu, lines_count, scrollbar_X)) return; \ + if (!check(event, menu, tab, DIM(tab), mstate_tab, DIM(mstate_tab)-1, lines_count, scrollbar_X)) return; \ drawMenuTemplate(title, event, menu, DIM(tab)); \ -#define MENU_FLAGS(title, tab, menu, flags, lines_count, scrollbar_X, ...) \ - MENU_TAB(__VA_ARGS__); \ - MENU_CHECK_FLAGS(tab, menu, flags, lines_count, scrollbar_X); \ - TITLE(title) - -#define SIMPLE_MENU_NOTITLE(tab, menu, lines_count, scrollbar_X) \ - check_simple(event, menu, tab, DIM(tab), lines_count, scrollbar_X); - #define SIMPLE_MENU(title, tab, menu, lines_count, scrollbar_X) \ + if (event == EVT_ENTRY || event == EVT_ENTRY_UP) TRACE("Menu %s displayed ...", title); \ + if (!check_simple(event, menu, tab, DIM(tab), lines_count, scrollbar_X)) return; \ drawMenuTemplate(title, event, menu, DIM(tab)); \ - SIMPLE_MENU_NOTITLE(tab, menu, lines_count, scrollbar_X) #define SUBMENU(title, lines_count, scrollbar_X, ...) \ MENU_TAB(__VA_ARGS__); \ - drawMenuTemplate(title, event); \ - check(event, 0, NULL, 0, mstate_tab, DIM(mstate_tab)-1, lines_count, scrollbar_X) + if (!check(event, 0, NULL, 0, mstate_tab, DIM(mstate_tab)-1, lines_count, scrollbar_X)) return; \ + drawMenuTemplate(title, event); #define SIMPLE_SUBMENU_NOTITLE(lines_count, scrollbar_X) \ - check_submenu_simple(event, lines_count, scrollbar_X); + if (!check_submenu_simple(event, lines_count, scrollbar_X)) return #define SIMPLE_SUBMENU(title, lines_count, scrollbar_X) \ SIMPLE_SUBMENU_NOTITLE(lines_count, scrollbar_X); \ diff --git a/radio/src/gui/Horus/navigation.cpp b/radio/src/gui/Horus/navigation.cpp index d001cae82..843737df2 100644 --- a/radio/src/gui/Horus/navigation.cpp +++ b/radio/src/gui/Horus/navigation.cpp @@ -448,14 +448,14 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t return true; } -void check_simple(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTabSize, vertpos_t rowcount, uint16_t scrollbar_X) +bool check_simple(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t menuTabSize, vertpos_t rowcount, uint16_t scrollbar_X) { - check(event, curr, menuTab, menuTabSize, 0, 0, rowcount, scrollbar_X); + return check(event, curr, menuTab, menuTabSize, 0, 0, rowcount, scrollbar_X); } -void check_submenu_simple(check_event_t event, uint8_t rowcount, uint16_t scrollbar_X) +bool check_submenu_simple(check_event_t event, uint8_t rowcount, uint16_t scrollbar_X) { - check_simple(event, 0, 0, 0, rowcount, scrollbar_X); + return check_simple(event, 0, 0, 0, rowcount, scrollbar_X); } void repeatLastCursorMove(evt_t event) diff --git a/radio/src/gui/Taranis/menus.h b/radio/src/gui/Taranis/menus.h index c47e2d052..3ef146d74 100644 --- a/radio/src/gui/Taranis/menus.h +++ b/radio/src/gui/Taranis/menus.h @@ -249,9 +249,6 @@ void title(const pm_char * s); MENU_TAB(__VA_ARGS__); \ MENU_CHECK_FLAGS(title, tab, menu, flags, lines_count) -#define SIMPLE_MENU_NOTITLE(tab, menu, lines_count) \ - check_simple(NULL, event, menu, tab, DIM(tab), lines_count); - #define SIMPLE_MENU(title, tab, menu, lines_count) \ check_simple(title, event, menu, tab, DIM(tab), lines_count) diff --git a/radio/src/gui/Taranis/navigation.cpp b/radio/src/gui/Taranis/navigation.cpp index 3905fc144..6930f1dbc 100644 --- a/radio/src/gui/Taranis/navigation.cpp +++ b/radio/src/gui/Taranis/navigation.cpp @@ -600,10 +600,6 @@ void check(const char *name, check_event_t event, uint8_t curr, const MenuFuncP displayScrollbar(scrollbar_X, MENU_HEADER_HEIGHT, LCD_H-MENU_HEADER_HEIGHT, s_pgOfs, linesCount, NUM_BODY_LINES); } - if (name) { - title(name); - } - m_posVert = l_posVert; m_posHorz = l_posHorz; }