From 48c227d5f5b095f0f6babcd1e11f629657a75809 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 8 Jun 2020 15:11:34 +0200 Subject: [PATCH] Add a title to the popups on Horus --- radio/src/gui/480x272/menus.h | 1 + radio/src/gui/480x272/model_setup.cpp | 2 +- radio/src/gui/480x272/popups.cpp | 9 +++++++-- radio/src/gui/480x272/radio_sdmanager.cpp | 2 +- radio/src/gui/common/stdlcd/popups.h | 1 + 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/radio/src/gui/480x272/menus.h b/radio/src/gui/480x272/menus.h index 0177397f2..5173bb04d 100644 --- a/radio/src/gui/480x272/menus.h +++ b/radio/src/gui/480x272/menus.h @@ -502,6 +502,7 @@ inline void DISPLAY_WARNING(event_t event) #define MENU_MAX_DISPLAY_LINES 9 #define MENU_LINE_LENGTH (LEN_MODEL_NAME+12) +extern const char * popupMenuTitle; extern const char * popupMenuItems[POPUP_MENU_MAX_LINES]; extern uint16_t popupMenuItemsCount; extern uint16_t popupMenuOffset; diff --git a/radio/src/gui/480x272/model_setup.cpp b/radio/src/gui/480x272/model_setup.cpp index bc5185a2d..5f9d680cf 100644 --- a/radio/src/gui/480x272/model_setup.cpp +++ b/radio/src/gui/480x272/model_setup.cpp @@ -1455,7 +1455,7 @@ bool menuModelSetup(event_t event) for (auto rx = 0; rx < popupMenuItemsCount; rx++) { popupMenuItems[rx] = reusableBuffer.moduleSetup.bindInformation.candidateReceiversNames[rx]; } - // popupMenuTitle = STR_PXX2_SELECT_RX; + popupMenuTitle = STR_PXX2_SELECT_RX; POPUP_MENU_START(onPXX2BindMenu); } } diff --git a/radio/src/gui/480x272/popups.cpp b/radio/src/gui/480x272/popups.cpp index 2d8caeca3..672922d33 100644 --- a/radio/src/gui/480x272/popups.cpp +++ b/radio/src/gui/480x272/popups.cpp @@ -27,6 +27,7 @@ uint8_t warningType; uint8_t warningResult = 0; uint8_t warningInfoFlags = ZCHAR; PopupFunc popupFunc = nullptr; +const char * popupMenuTitle = nullptr; const char *popupMenuItems[POPUP_MENU_MAX_LINES]; uint8_t popupMenuSelectedItem = 0; uint16_t popupMenuItemsCount = 0; @@ -61,6 +62,10 @@ void drawPopupBackgroundAndBorder(coord_t x, coord_t y, coord_t w, coord_t h) { lcdDrawSolidFilledRect(x + 1, y + 1, w - 2, h - 2, TEXT_BGCOLOR); lcdDrawSolidRect(x, y, w, h, 1, ALARM_COLOR); + if (popupMenuTitle) { + lcdDrawSolidFilledRect(x, y - FH, w, FH, TEXT_INVERTED_BGCOLOR); + lcdDrawText(x + w / 2, y - FH, popupMenuTitle, BOLD | CENTERED | TEXT_INVERTED_COLOR); + } } void runPopupWarning(event_t event) @@ -167,9 +172,9 @@ const char * runPopupMenu(event_t event) break; } - int y = (LCD_H - (display_count*(FH+1))) / 2; + int y = (LCD_H - (display_count*(FH + 1)) + (popupMenuTitle ? FH : 0) + FH) / 2; - drawPopupBackgroundAndBorder(MENU_X, y, MENU_W, display_count * (FH+1) + 2); + drawPopupBackgroundAndBorder(MENU_X, y, MENU_W, display_count * (FH + 1) + 2); for (uint8_t i=0; i