UI: Remove position parameter from menu list

replace/40c94bde8627fd3bbdb202c44adb946be3f5b2e1
Federico Amedeo Izzo 2021-02-20 15:35:19 +01:00
rodzic 711d8426c9
commit c644e8db1d
1 zmienionych plików z 14 dodań i 12 usunięć

Wyświetl plik

@ -25,10 +25,11 @@
#include <interfaces/nvmem.h> #include <interfaces/nvmem.h>
#include <interfaces/platform.h> #include <interfaces/platform.h>
void _ui_drawMenuList(point_t pos, uint8_t selected, int (*getCurrentEntry)(char *buf, uint8_t max_len, uint8_t index)) void _ui_drawMenuList(uint8_t selected, int (*getCurrentEntry)(char *buf, uint8_t max_len, uint8_t index))
{ {
point_t pos = layout.line1_pos;
// Number of menu entries that fit in the screen height // Number of menu entries that fit in the screen height
uint8_t entries_in_screen = ((SCREEN_HEIGHT - pos.y) / layout.top_h) + 1; uint8_t entries_in_screen = (SCREEN_HEIGHT - layout.top_h) / layout.line1_h;
uint8_t scroll = 0; uint8_t scroll = 0;
char entry_buf[MAX_ENTRY_LEN] = ""; char entry_buf[MAX_ENTRY_LEN] = "";
color_t text_color = color_white; color_t text_color = color_white;
@ -55,12 +56,13 @@ void _ui_drawMenuList(point_t pos, uint8_t selected, int (*getCurrentEntry)(char
} }
} }
void _ui_drawMenuListValue(ui_state_t* ui_state, point_t pos, uint8_t selected, void _ui_drawMenuListValue(ui_state_t* ui_state, uint8_t selected,
int (*getCurrentEntry)(char *buf, uint8_t max_len, uint8_t index), int (*getCurrentEntry)(char *buf, uint8_t max_len, uint8_t index),
int (*getCurrentValue)(char *buf, uint8_t max_len, uint8_t index)) int (*getCurrentValue)(char *buf, uint8_t max_len, uint8_t index))
{ {
point_t pos = layout.line1_pos;
// Number of menu entries that fit in the screen height // Number of menu entries that fit in the screen height
uint8_t entries_in_screen = ((SCREEN_HEIGHT - pos.y) / layout.top_h) + 1; uint8_t entries_in_screen = (SCREEN_HEIGHT - layout.top_h) / layout.line1_h;
uint8_t scroll = 0; uint8_t scroll = 0;
char entry_buf[MAX_ENTRY_LEN] = ""; char entry_buf[MAX_ENTRY_LEN] = "";
char value_buf[MAX_ENTRY_LEN] = ""; char value_buf[MAX_ENTRY_LEN] = "";
@ -253,7 +255,7 @@ void _ui_drawMenuTop(ui_state_t* ui_state)
gfx_print(layout.top_pos, "Menu", layout.top_font, gfx_print(layout.top_pos, "Menu", layout.top_font,
TEXT_ALIGN_CENTER, color_white); TEXT_ALIGN_CENTER, color_white);
// Print menu entries // Print menu entries
_ui_drawMenuList(layout.line1_pos, ui_state->menu_selected, _ui_getMenuTopEntryName); _ui_drawMenuList(ui_state->menu_selected, _ui_getMenuTopEntryName);
} }
void _ui_drawMenuZone(ui_state_t* ui_state) void _ui_drawMenuZone(ui_state_t* ui_state)
@ -263,7 +265,7 @@ void _ui_drawMenuZone(ui_state_t* ui_state)
gfx_print(layout.top_pos, "Zone", layout.top_font, gfx_print(layout.top_pos, "Zone", layout.top_font,
TEXT_ALIGN_CENTER, color_white); TEXT_ALIGN_CENTER, color_white);
// Print zone entries // Print zone entries
_ui_drawMenuList(layout.line1_pos, ui_state->menu_selected, _ui_getZoneName); _ui_drawMenuList(ui_state->menu_selected, _ui_getZoneName);
} }
void _ui_drawMenuChannel(ui_state_t* ui_state) void _ui_drawMenuChannel(ui_state_t* ui_state)
@ -273,7 +275,7 @@ void _ui_drawMenuChannel(ui_state_t* ui_state)
gfx_print(layout.top_pos, "Channels", layout.top_font, gfx_print(layout.top_pos, "Channels", layout.top_font,
TEXT_ALIGN_CENTER, color_white); TEXT_ALIGN_CENTER, color_white);
// Print channel entries // Print channel entries
_ui_drawMenuList(layout.line1_pos, ui_state->menu_selected, _ui_getChannelName); _ui_drawMenuList(ui_state->menu_selected, _ui_getChannelName);
} }
void _ui_drawMenuContacts(ui_state_t* ui_state) void _ui_drawMenuContacts(ui_state_t* ui_state)
@ -283,7 +285,7 @@ void _ui_drawMenuContacts(ui_state_t* ui_state)
gfx_print(layout.top_pos, "Contacts", layout.top_font, gfx_print(layout.top_pos, "Contacts", layout.top_font,
TEXT_ALIGN_CENTER, color_white); TEXT_ALIGN_CENTER, color_white);
// Print contact entries // Print contact entries
_ui_drawMenuList(layout.line1_pos, ui_state->menu_selected, _ui_getContactName); _ui_drawMenuList(ui_state->menu_selected, _ui_getContactName);
} }
#ifdef HAS_GPS #ifdef HAS_GPS
@ -382,7 +384,7 @@ void _ui_drawMenuSettings(ui_state_t* ui_state)
gfx_print(layout.top_pos, "Settings", layout.top_font, gfx_print(layout.top_pos, "Settings", layout.top_font,
TEXT_ALIGN_CENTER, color_white); TEXT_ALIGN_CENTER, color_white);
// Print menu entries // Print menu entries
_ui_drawMenuList(layout.line1_pos, ui_state->menu_selected, _ui_getSettingsEntryName); _ui_drawMenuList(ui_state->menu_selected, _ui_getSettingsEntryName);
} }
void _ui_drawMenuInfo(ui_state_t* ui_state) void _ui_drawMenuInfo(ui_state_t* ui_state)
@ -392,7 +394,7 @@ void _ui_drawMenuInfo(ui_state_t* ui_state)
gfx_print(layout.top_pos, "Info", layout.top_font, gfx_print(layout.top_pos, "Info", layout.top_font,
TEXT_ALIGN_CENTER, color_white); TEXT_ALIGN_CENTER, color_white);
// Print menu entries // Print menu entries
_ui_drawMenuListValue(ui_state, layout.line1_pos, ui_state->menu_selected, _ui_getInfoEntryName, _ui_drawMenuListValue(ui_state, ui_state->menu_selected, _ui_getInfoEntryName,
_ui_getInfoValueName); _ui_getInfoValueName);
} }
@ -418,7 +420,7 @@ void _ui_drawSettingsDisplay(ui_state_t* ui_state)
gfx_print(layout.top_pos, "Display", layout.top_font, gfx_print(layout.top_pos, "Display", layout.top_font,
TEXT_ALIGN_CENTER, color_white); TEXT_ALIGN_CENTER, color_white);
// Print display settings entries // Print display settings entries
_ui_drawMenuListValue(ui_state, layout.line1_pos, ui_state->menu_selected, _ui_getDisplayEntryName, _ui_drawMenuListValue(ui_state, ui_state->menu_selected, _ui_getDisplayEntryName,
_ui_getDisplayValueName); _ui_getDisplayValueName);
} }
@ -430,7 +432,7 @@ void _ui_drawSettingsGPS(ui_state_t* ui_state)
gfx_print(layout.top_pos, "GPS Settings", layout.top_font, gfx_print(layout.top_pos, "GPS Settings", layout.top_font,
TEXT_ALIGN_CENTER, color_white); TEXT_ALIGN_CENTER, color_white);
// Print display settings entries // Print display settings entries
_ui_drawMenuListValue(ui_state, layout.line1_pos, ui_state->menu_selected, _ui_drawMenuListValue(ui_state, ui_state->menu_selected,
_ui_getSettingsGPSEntryName, _ui_getSettingsGPSEntryName,
_ui_getSettingsGPSValueName); _ui_getSettingsGPSValueName);
} }