Custom menu items confirm option (#21338)
Co-authored-by: Scott Lahteine <github@thinkyhead.com>
This commit is contained in:
		
							parent
							
								
									da84b59ee4
								
							
						
					
					
						commit
						911cd1a6d3
					
				| @ -3455,22 +3455,28 @@ | ||||
|   //#define CUSTOM_USER_MENU_TITLE "Custom Commands"
 | ||||
|   #define USER_SCRIPT_DONE "M117 User Script Done" | ||||
|   #define USER_SCRIPT_AUDIBLE_FEEDBACK | ||||
|   //#define USER_SCRIPT_RETURN  // Return to status screen after a script
 | ||||
|   //#define USER_SCRIPT_RETURN    // Return to status screen after a script
 | ||||
|   #define CUSTOM_MENU_ONLY_IDLE   // Only show custom menu when the machine is idle
 | ||||
| 
 | ||||
|   #define USER_DESC_1 "Home & UBL Info" | ||||
|   #define USER_GCODE_1 "G28\nG29W" | ||||
|   //#define USER_CONFIRM_1        // Show a confirmation dialog before this action
 | ||||
| 
 | ||||
|   #define USER_DESC_2 "Preheat for " PREHEAT_1_LABEL | ||||
|   #define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND) | ||||
|   //#define USER_CONFIRM_2
 | ||||
| 
 | ||||
|   #define USER_DESC_3 "Preheat for " PREHEAT_2_LABEL | ||||
|   #define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND) | ||||
|   //#define USER_CONFIRM_3
 | ||||
| 
 | ||||
|   #define USER_DESC_4 "Heat Bed/Home/Level" | ||||
|   #define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29" | ||||
|   //#define USER_CONFIRM_4
 | ||||
| 
 | ||||
|   #define USER_DESC_5 "Home & Info" | ||||
|   #define USER_GCODE_5 "G28\nM503" | ||||
|   //#define USER_CONFIRM_5
 | ||||
| #endif | ||||
| 
 | ||||
| /**
 | ||||
|  | ||||
| @ -46,7 +46,20 @@ void _lcd_user_gcode(PGM_P const cmd) { | ||||
| void menu_user() { | ||||
|   START_MENU(); | ||||
|   BACK_ITEM(MSG_MAIN); | ||||
|   #define USER_ITEM(N) ACTION_ITEM_P(PSTR(USER_DESC_##N), []{ _lcd_user_gcode(PSTR(USER_GCODE_##N _DONE_SCRIPT)); }); | ||||
| 
 | ||||
|   #define GCODE_LAMBDA(N) []{ _lcd_user_gcode(PSTR(USER_GCODE_##N _DONE_SCRIPT)); } | ||||
|   #define _USER_ITEM(N) ACTION_ITEM_P(PSTR(USER_DESC_##N), GCODE_LAMBDA(N)); | ||||
|   #define _USER_ITEM_CONFIRM(N)           \ | ||||
|     SUBMENU_P(PSTR(USER_DESC_##N), []{    \ | ||||
|         MenuItem_confirm::confirm_screen( \ | ||||
|           GCODE_LAMBDA(N),                \ | ||||
|           ui.goto_previous_screen,        \ | ||||
|           PSTR(USER_DESC_##N "?")         \ | ||||
|         );                                \ | ||||
|       }) | ||||
| 
 | ||||
|   #define USER_ITEM(N) do{ if (ENABLED(USER_CONFIRM_##N)) _USER_ITEM_CONFIRM(N); else _USER_ITEM(N); }while(0) | ||||
| 
 | ||||
|   #if HAS_USER_ITEM(1) | ||||
|     USER_ITEM(1); | ||||
|   #endif | ||||
|  | ||||
| @ -211,11 +211,13 @@ void menu_main() { | ||||
|   SUBMENU(MSG_CONFIGURATION, menu_configuration); | ||||
| 
 | ||||
|   #if ENABLED(CUSTOM_USER_MENUS) | ||||
|     #ifdef CUSTOM_USER_MENU_TITLE | ||||
|       SUBMENU_P(PSTR(CUSTOM_USER_MENU_TITLE), menu_user); | ||||
|     #else | ||||
|       SUBMENU(MSG_USER_MENU, menu_user); | ||||
|     #endif | ||||
|     if (TERN1(CUSTOM_MENU_ONLY_IDLE, !busy)) { | ||||
|       #ifdef CUSTOM_USER_MENU_TITLE | ||||
|         SUBMENU_P(PSTR(CUSTOM_USER_MENU_TITLE), menu_user); | ||||
|       #else | ||||
|         SUBMENU(MSG_USER_MENU, menu_user); | ||||
|       #endif | ||||
|     } | ||||
|   #endif | ||||
| 
 | ||||
|   #if ENABLED(ADVANCED_PAUSE_FEATURE) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user