From 5a3f14b752334465e17dbec65d619d8633e9bc93 Mon Sep 17 00:00:00 2001 From: leptun Date: Mon, 19 Aug 2019 10:20:17 +0300 Subject: [PATCH] "N/A" toggle support and format update --- Firmware/menu.cpp | 27 ++++++++++++++++++--------- Firmware/messages.c | 2 ++ Firmware/messages.h | 2 ++ Firmware/ultralcd.cpp | 10 +++++----- lang/lang_en.txt | 2 +- lang/lang_en_cz.txt | 2 +- lang/lang_en_de.txt | 2 +- lang/lang_en_es.txt | 4 ++-- lang/lang_en_fr.txt | 2 +- lang/lang_en_it.txt | 2 +- lang/lang_en_pl.txt | 2 +- 11 files changed, 35 insertions(+), 22 deletions(-) diff --git a/Firmware/menu.cpp b/Firmware/menu.cpp index 8d3c8d64..971122dc 100755 --- a/Firmware/menu.cpp +++ b/Firmware/menu.cpp @@ -184,10 +184,11 @@ static void menu_draw_item_puts_P(char type_char, const char* str) lcd_printf_P(PSTR("%c%-18.18S%c"), menu_selection_mark(), str, type_char); } -static void menu_draw_toggle_puts_P(const char* str, const char* toggle) +static void menu_draw_toggle_puts_P(const char* str, char* toggle) { - menu_draw_item_puts_P(LCD_STR_REFRESH[0], str); - lcd_set_cursor(LCD_WIDTH - 4 - strlen_P(toggle), menu_row); + menu_draw_item_puts_P((toggle == NULL)?LCD_STR_ARROW_RIGHT[0]:LCD_STR_REFRESH[0], str); + if (toggle == NULL) toggle = _T(MSG_NA); + lcd_set_cursor(LCD_WIDTH - 3 - strlen_P(toggle), menu_row); lcd_printf_P(PSTR("[%S]"), toggle); } @@ -381,12 +382,20 @@ uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func if (lcd_draw_update) menu_draw_toggle_puts_P(str, toggle); if (menu_clicked && (lcd_encoder == menu_item)) { - menu_clicked = false; - lcd_consume_click(); - lcd_update_enabled = 0; - if (func) func(); - lcd_update_enabled = 1; - return menu_item_ret(); + if (toggle == NULL) // print N/A warning message + { + menu_submenu(func); + return menu_item_ret(); + } + else // do the actual toggling + { + menu_clicked = false; + lcd_consume_click(); + lcd_update_enabled = 0; + if (func) func(); + lcd_update_enabled = 1; + return menu_item_ret(); + } } } menu_item++; diff --git a/Firmware/messages.c b/Firmware/messages.c index 8ba32a4d..61082c15 100644 --- a/Firmware/messages.c +++ b/Firmware/messages.c @@ -106,6 +106,8 @@ const char MSG_V2_CALIBRATION[] PROGMEM_I1 = ISTR("First layer cal."); ////c=17 const char WELCOME_MSG[] PROGMEM_I1 = ISTR(CUSTOM_MENDEL_NAME " OK."); ////c=20 const char MSG_OFF[] PROGMEM_I1 = ISTR("Off"); //// const char MSG_ON[] PROGMEM_I1 = ISTR("On"); //// +const char MSG_NA[] PROGMEM_I1 = ISTR("N/A"); //// + //not internationalized messages const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; //// const char MSG_BROWNOUT_RESET[] PROGMEM_N1 = " Brown out Reset"; //// diff --git a/Firmware/messages.h b/Firmware/messages.h index 65ddbab3..b2f72a1a 100644 --- a/Firmware/messages.h +++ b/Firmware/messages.h @@ -106,6 +106,8 @@ extern const char MSG_V2_CALIBRATION[]; extern const char WELCOME_MSG[]; extern const char MSG_OFF[]; extern const char MSG_ON[]; +extern const char MSG_NA[]; + //not internationalized messages extern const char MSG_BROWNOUT_RESET[]; extern const char MSG_EXTERNAL_RESET[]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index cf81908d..9e93c20c 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2970,7 +2970,7 @@ static void lcd_menu_xyz_y_min() for (uint8_t i = 0; i < 2; i++) { lcd_set_cursor(11,2+i); - if (distanceMin[i] >= 200) lcd_puts_P(_N("N/A")); + if (distanceMin[i] >= 200) lcd_puts_P(_T(MSG_NA)); else lcd_printf_P(_N("%6.2fmm"), distanceMin[i]); } if (lcd_clicked()) @@ -3010,7 +3010,7 @@ static void lcd_menu_xyz_skew() } else{ lcd_set_cursor(15,0); - lcd_puts_P(_N("N/A")); + lcd_puts_P(_T(MSG_NA)); } if (lcd_clicked()) menu_goto(lcd_menu_xyz_offset, 0, true, true); @@ -3910,13 +3910,13 @@ static void lcd_print_state(uint8_t state) { switch (state) { case STATE_ON: - lcd_puts_P(_i(" 1")); + lcd_puts_P(_N(" 1")); break; case STATE_OFF: - lcd_puts_P(_i(" 0")); + lcd_puts_P(_N(" 0")); break; default: - lcd_puts_P(_i("N/A")); + lcd_puts_P(_T(MSG_NA)); break; } } diff --git a/lang/lang_en.txt b/lang/lang_en.txt index 8819d40a..c55ca2b1 100755 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -481,7 +481,7 @@ #MSG_NO_CARD "No SD card" -# +#MSG_NA "N/A" #MSG_NO diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 9a4b7579..177b88f7 100755 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -642,7 +642,7 @@ "No SD card" "Zadna SD karta" -# +#MSG_NA "N/A" "\x00" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 1dc09798..06d5016b 100755 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -642,7 +642,7 @@ "No SD card" "Keine SD Karte" -# +#MSG_NA "N/A" "N.V." diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index ba1fea1e..f684dd29 100755 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -642,9 +642,9 @@ "No SD card" "No hay tarjeta SD" -# +#MSG_NA "N/A" -"No disponible" +"N/D" #MSG_NO "No" diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index f86795d7..bc9f6062 100755 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -642,7 +642,7 @@ "No SD card" "Pas de carte SD" -# +#MSG_NA "N/A" "\x00" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 4130aedb..19eed4d8 100755 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -642,7 +642,7 @@ "No SD card" "Nessuna SD" -# +#MSG_NA "N/A" "\x00" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 45b402fa..e1feb11f 100755 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -642,7 +642,7 @@ "No SD card" "Brak karty SD" -# +#MSG_NA "N/A" "N/D"