Toggle "HW Setup"*
All toggles from "HW Setup" were changed. This includes: -"Nozzle d." -all "Checks" Also added an option to provide a string from sram (not from progmem) as the toggle argument. This can be useful when toggling numbers or even when toggling sheets in the future.
This commit is contained in:
parent
b86a92a7d6
commit
6a8330a43b
5 changed files with 48 additions and 36 deletions
|
@ -184,11 +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, const char* toggle, const bool fromProgmem)
|
||||
{
|
||||
menu_draw_item_puts_P((toggle == NULL)?LCD_STR_ARROW_RIGHT[0]:LCD_STR_REFRESH[0], str);
|
||||
lcd_set_cursor(LCD_WIDTH - 3 - strlen_P((toggle == NULL)?_T(MSG_NA):toggle), menu_row);
|
||||
lcd_printf_P(PSTR("[%S]"), (toggle == NULL)?_T(MSG_NA):toggle);
|
||||
lcd_set_cursor(LCD_WIDTH - 3 - (fromProgmem?(strlen_P((toggle == NULL)?_T(MSG_NA):toggle)):(strlen(toggle))), menu_row);
|
||||
lcd_printf_P(fromProgmem?PSTR("[%S]"):PSTR("[%s]"), (toggle == NULL)?_T(MSG_NA):toggle);
|
||||
}
|
||||
|
||||
//! @brief Format sheet name
|
||||
|
@ -374,11 +374,11 @@ uint8_t menu_item_function_P(const char* str, char number, void (*func)(uint8_t)
|
|||
return 0;
|
||||
}
|
||||
|
||||
uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func)
|
||||
uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func, const bool fromProgmem)
|
||||
{
|
||||
if (menu_item == menu_line)
|
||||
{
|
||||
if (lcd_draw_update) menu_draw_toggle_puts_P(str, toggle);
|
||||
if (lcd_draw_update) menu_draw_toggle_puts_P(str, toggle, fromProgmem);
|
||||
if (menu_clicked && (lcd_encoder == menu_item))
|
||||
{
|
||||
if (toggle == NULL) // print N/A warning message
|
||||
|
|
|
@ -118,8 +118,9 @@ extern uint8_t menu_item_function_P(const char* str, menu_func_t func);
|
|||
#define MENU_ITEM_FUNCTION_NR_P(str, number, func, fn_par) do { if (menu_item_function_P(str, number, func, fn_par)) return; } while (0)
|
||||
extern uint8_t menu_item_function_P(const char* str, char number, void (*func)(uint8_t), uint8_t fn_par);
|
||||
|
||||
#define MENU_ITEM_TOGGLE_P(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func)) return; } while (0)
|
||||
extern uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func);
|
||||
#define MENU_ITEM_TOGGLE_P(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func, true)) return; } while (0)
|
||||
#define MENU_ITEM_TOGGLE(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func, false)) return; } while (0)
|
||||
extern uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func, const bool fromProgmem);
|
||||
|
||||
#define MENU_ITEM_GCODE_P(str, str_gcode) do { if (menu_item_gcode_P(str, str_gcode)) return; } while (0)
|
||||
extern uint8_t menu_item_gcode_P(const char* str, const char* str_gcode);
|
||||
|
|
|
@ -107,6 +107,13 @@ const char MSG_ON[] PROGMEM_I1 = ISTR("On"); ////
|
|||
const char MSG_NA[] PROGMEM_I1 = ISTR("N/A"); ////
|
||||
const char MSG_AUTO_DEPLETE[] PROGMEM_I1 = ISTR("SpoolJoin"); ////
|
||||
const char MSG_CUTTER[] PROGMEM_I1 = ISTR("Cutter"); ////
|
||||
const char MSG_NONE[] PROGMEM_I1 = ISTR("None"); ////
|
||||
const char MSG_WARN[] PROGMEM_I1 = ISTR("Warn"); ////
|
||||
const char MSG_STRICT[] PROGMEM_I1 = ISTR("Strict"); ////
|
||||
const char MSG_MODEL[] PROGMEM_I1 = ISTR("Model"); ////
|
||||
const char MSG_FIRMWARE[] PROGMEM_I1 = ISTR("Firmware"); ////
|
||||
const char MSG_GCODE[] PROGMEM_I1 = ISTR("Gcode"); ////
|
||||
const char MSG_NOZZLE_DIAMETER[] PROGMEM_I1 = ISTR("Nozzle d."); ////
|
||||
|
||||
//not internationalized messages
|
||||
const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; ////
|
||||
|
|
|
@ -107,6 +107,13 @@ extern const char MSG_ON[];
|
|||
extern const char MSG_NA[];
|
||||
extern const char MSG_AUTO_DEPLETE[];
|
||||
extern const char MSG_CUTTER[];
|
||||
extern const char MSG_NONE[];
|
||||
extern const char MSG_WARN[];
|
||||
extern const char MSG_STRICT[];
|
||||
extern const char MSG_MODEL[];
|
||||
extern const char MSG_FIRMWARE[];
|
||||
extern const char MSG_GCODE[];
|
||||
extern const char MSG_NOZZLE_DIAMETER[];
|
||||
|
||||
//not internationalized messages
|
||||
extern const char MSG_BROWNOUT_RESET[];
|
||||
|
|
|
@ -5332,16 +5332,16 @@ do\
|
|||
switch(oCheckMode)\
|
||||
{\
|
||||
case ClCheckMode::_None:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Nozzle [none]"),lcd_check_mode_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_NOZZLE), _T(MSG_NONE), lcd_check_mode_set);\
|
||||
break;\
|
||||
case ClCheckMode::_Warn:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Nozzle [warn]"),lcd_check_mode_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_NOZZLE), _T(MSG_WARN), lcd_check_mode_set);\
|
||||
break;\
|
||||
case ClCheckMode::_Strict:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Nozzle [strict]"),lcd_check_mode_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_NOZZLE), _T(MSG_STRICT), lcd_check_mode_set);\
|
||||
break;\
|
||||
default:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Nozzle [none]"),lcd_check_mode_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_NOZZLE), _T(MSG_NONE), lcd_check_mode_set);\
|
||||
}\
|
||||
}\
|
||||
while (0)
|
||||
|
@ -5375,20 +5375,17 @@ eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,nDiameter);
|
|||
#define SETTINGS_NOZZLE \
|
||||
do\
|
||||
{\
|
||||
char sNozzleDiam[5];/*enough for two decimals*/\
|
||||
float fNozzleDiam;\
|
||||
switch(oNozzleDiameter)\
|
||||
{\
|
||||
case ClNozzleDiameter::_Diameter_250:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Nozzle d. [0.25]"),lcd_nozzle_diameter_set);\
|
||||
break;\
|
||||
case ClNozzleDiameter::_Diameter_400:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Nozzle d. [0.40]"),lcd_nozzle_diameter_set);\
|
||||
break;\
|
||||
case ClNozzleDiameter::_Diameter_600:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Nozzle d. [0.60]"),lcd_nozzle_diameter_set);\
|
||||
break;\
|
||||
default:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Nozzle d. [0.40]"),lcd_nozzle_diameter_set);\
|
||||
}\
|
||||
{\
|
||||
case ClNozzleDiameter::_Diameter_250: fNozzleDiam = 0.25f; break;\
|
||||
case ClNozzleDiameter::_Diameter_400: fNozzleDiam = 0.4f; break;\
|
||||
case ClNozzleDiameter::_Diameter_600: fNozzleDiam = 0.6f; break;\
|
||||
default: fNozzleDiam = 0.4f; break;\
|
||||
}\
|
||||
sprintf_P(sNozzleDiam, PSTR("%.2f"), fNozzleDiam);\
|
||||
MENU_ITEM_TOGGLE(_T(MSG_NOZZLE_DIAMETER), sNozzleDiam, lcd_nozzle_diameter_set);\
|
||||
}\
|
||||
while (0)
|
||||
|
||||
|
@ -5417,16 +5414,16 @@ do\
|
|||
switch(oCheckModel)\
|
||||
{\
|
||||
case ClCheckModel::_None:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Model [none]"),lcd_check_model_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_MODEL), _T(MSG_NONE), lcd_check_model_set);\
|
||||
break;\
|
||||
case ClCheckModel::_Warn:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Model [warn]"),lcd_check_model_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_MODEL), _T(MSG_WARN), lcd_check_model_set);\
|
||||
break;\
|
||||
case ClCheckModel::_Strict:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Model [strict]"),lcd_check_model_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_MODEL), _T(MSG_STRICT), lcd_check_model_set);\
|
||||
break;\
|
||||
default:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Model [none]"),lcd_check_model_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_MODEL), _T(MSG_NONE), lcd_check_model_set);\
|
||||
}\
|
||||
}\
|
||||
while (0)
|
||||
|
@ -5456,16 +5453,16 @@ do\
|
|||
switch(oCheckVersion)\
|
||||
{\
|
||||
case ClCheckVersion::_None:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Firmware [none]"),lcd_check_version_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_FIRMWARE), _T(MSG_NONE), lcd_check_version_set);\
|
||||
break;\
|
||||
case ClCheckVersion::_Warn:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Firmware [warn]"),lcd_check_version_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_FIRMWARE), _T(MSG_WARN), lcd_check_version_set);\
|
||||
break;\
|
||||
case ClCheckVersion::_Strict:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Firmware [strict]"),lcd_check_version_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_FIRMWARE), _T(MSG_STRICT), lcd_check_version_set);\
|
||||
break;\
|
||||
default:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Firmware [none]"),lcd_check_version_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_FIRMWARE), _T(MSG_NONE), lcd_check_version_set);\
|
||||
}\
|
||||
}\
|
||||
while (0)
|
||||
|
@ -5495,16 +5492,16 @@ do\
|
|||
switch(oCheckGcode)\
|
||||
{\
|
||||
case ClCheckGcode::_None:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Gcode [none]"),lcd_check_gcode_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_GCODE), _T(MSG_NONE), lcd_check_gcode_set);\
|
||||
break;\
|
||||
case ClCheckGcode::_Warn:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Gcode [warn]"),lcd_check_gcode_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_GCODE), _T(MSG_WARN), lcd_check_gcode_set);\
|
||||
break;\
|
||||
case ClCheckGcode::_Strict:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Gcode [strict]"),lcd_check_gcode_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_GCODE), _T(MSG_STRICT), lcd_check_gcode_set);\
|
||||
break;\
|
||||
default:\
|
||||
MENU_ITEM_FUNCTION_P(_i("Gcode [none]"),lcd_check_gcode_set);\
|
||||
MENU_ITEM_TOGGLE_P(_T(MSG_GCODE), _T(MSG_NONE), lcd_check_gcode_set);\
|
||||
}\
|
||||
}\
|
||||
while (0)
|
||||
|
|
Loading…
Reference in a new issue