|
@@ -203,9 +203,13 @@ void menu_format_sheet_E(const Sheet &sheet_E, SheetFormatBuffer &buffer)
|
|
|
void menu_format_sheet_select_E(const Sheet &sheet_E, SheetFormatBuffer &buffer)
|
|
|
{
|
|
|
uint_least8_t index = sprintf_P(buffer.c,PSTR("%-9.9S["), _T(MSG_SHEET));
|
|
|
- eeprom_read_block(&(buffer.c[index]), sheet_E.name, 7);
|
|
|
- buffer.c[index + 7] = ']';
|
|
|
- buffer.c[index + 8] = '\0';
|
|
|
+ eeprom_read_block(&(buffer.c[index]), sheet_E.name, sizeof(sheet_E.name)/sizeof(sheet_E.name[0]));
|
|
|
+ for (const uint_least8_t start = index;index - start < sizeof(sheet_E.name)/sizeof(sheet_E.name[0]);++index)
|
|
|
+ {
|
|
|
+ if (buffer.c[index] == '\0') break;
|
|
|
+ }
|
|
|
+ buffer.c[index] = ']';
|
|
|
+ buffer.c[index + 1] = '\0';
|
|
|
}
|
|
|
|
|
|
static void menu_draw_item_select_sheet_E(char type_char, const Sheet &sheet)
|
|
@@ -290,14 +294,18 @@ uint8_t menu_item_submenu_E(const Sheet &sheet, menu_func_t submenu)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-uint8_t menu_item_submenu_select_sheet_E(const Sheet &sheet, menu_func_t submenu)
|
|
|
+uint8_t menu_item_function_E(const Sheet &sheet, menu_func_t func)
|
|
|
{
|
|
|
if (menu_item == menu_line)
|
|
|
{
|
|
|
- if (lcd_draw_update) menu_draw_item_select_sheet_E(LCD_STR_ARROW_RIGHT[0], sheet);
|
|
|
+ if (lcd_draw_update) menu_draw_item_select_sheet_E(' ', sheet);
|
|
|
if (menu_clicked && (lcd_encoder == menu_item))
|
|
|
{
|
|
|
- menu_submenu(submenu);
|
|
|
+ menu_clicked = false;
|
|
|
+ lcd_consume_click();
|
|
|
+ lcd_update_enabled = 0;
|
|
|
+ if (func) func();
|
|
|
+ lcd_update_enabled = 1;
|
|
|
return menu_item_ret();
|
|
|
}
|
|
|
}
|