Fix/improve TURBO_BACK_MENU_ITEM (#15856)
This commit is contained in:
		
				
					committed by
					
						 Scott Lahteine
						Scott Lahteine
					
				
			
			
				
	
			
			
			
						parent
						
							776632c503
						
					
				
				
					commit
					b3f81eead5
				
			| @@ -88,7 +88,7 @@ void MarlinUI::save_previous_screen() { | ||||
|     screen_history[screen_history_depth++] = { currentScreen, encoderPosition, encoderTopLine, screen_items }; | ||||
| } | ||||
|  | ||||
| void MarlinUI::goto_previous_screen( | ||||
| void MarlinUI::_goto_previous_screen( | ||||
|   #if ENABLED(TURBO_BACK_MENU_ITEM) | ||||
|     const bool is_back/*=false*/ | ||||
|   #endif | ||||
|   | ||||
| @@ -110,13 +110,7 @@ class MenuItem_back : public MenuItemBase { | ||||
|     FORCE_INLINE static void draw(const bool sel, const uint8_t row, PGM_P const pstr) { | ||||
|       _draw(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0]); | ||||
|     } | ||||
|     static inline void action(PGM_P const=nullptr) { | ||||
|       ui.goto_previous_screen( | ||||
|         #if ENABLED(TURBO_BACK_MENU_ITEM) | ||||
|           true | ||||
|         #endif | ||||
|       ); | ||||
|     } | ||||
|     static inline void action(PGM_P const=nullptr) { ui.go_back(); } | ||||
| }; | ||||
|  | ||||
| // SUBMENU(PLABEL, screen_handler) | ||||
|   | ||||
| @@ -45,11 +45,7 @@ | ||||
|   // About Printer > Printer Stats | ||||
|   // | ||||
|   void menu_info_stats() { | ||||
|     if (ui.use_click()) return ui.goto_previous_screen( | ||||
|       #if ENABLED(TURBO_BACK_MENU_ITEM) | ||||
|         true | ||||
|       #endif | ||||
|     ); | ||||
|     if (ui.use_click()) return ui.go_back(); | ||||
|  | ||||
|     char buffer[21];  // For macro usage | ||||
|  | ||||
| @@ -97,11 +93,7 @@ | ||||
| // About Printer > Thermistors | ||||
| // | ||||
| void menu_info_thermistors() { | ||||
|   if (ui.use_click()) return ui.goto_previous_screen( | ||||
|     #if ENABLED(TURBO_BACK_MENU_ITEM) | ||||
|       true | ||||
|     #endif | ||||
|   ); | ||||
|   if (ui.use_click()) return ui.go_back(); | ||||
|  | ||||
|   char buffer[21];  // For macro usage | ||||
|  | ||||
| @@ -218,11 +210,7 @@ void menu_info_thermistors() { | ||||
| // About Printer > Board Info | ||||
| // | ||||
| void menu_info_board() { | ||||
|   if (ui.use_click()) return ui.goto_previous_screen( | ||||
|     #if ENABLED(TURBO_BACK_MENU_ITEM) | ||||
|       true | ||||
|     #endif | ||||
|   ); | ||||
|   if (ui.use_click()) return ui.go_back(); | ||||
|  | ||||
|   char buffer[21];  // For macro usage | ||||
|  | ||||
| @@ -257,11 +245,7 @@ void menu_info_board() { | ||||
| #else | ||||
|  | ||||
|   void menu_info_printer() { | ||||
|     if (ui.use_click()) return ui.goto_previous_screen( | ||||
|       #if ENABLED(TURBO_BACK_MENU_ITEM) | ||||
|         true | ||||
|       #endif | ||||
|     ); | ||||
|     if (ui.use_click()) return ui.go_back(); | ||||
|     START_SCREEN(); | ||||
|     STATIC_ITEM_P(PSTR(MSG_MARLIN), SS_CENTER|SS_INVERT);       // Marlin | ||||
|     STATIC_ITEM_P(PSTR(SHORT_BUILD_VERSION));                   // x.x.x-Branch | ||||
|   | ||||
| @@ -463,16 +463,16 @@ public: | ||||
|     static screenFunc_t currentScreen; | ||||
|     static void goto_screen(const screenFunc_t screen, const uint16_t encoder=0, const uint8_t top=0, const uint8_t items=0); | ||||
|     static void save_previous_screen(); | ||||
|     static void goto_previous_screen( | ||||
|       #if ENABLED(TURBO_BACK_MENU_ITEM) | ||||
|         const bool is_back | ||||
|       #endif | ||||
|     ); | ||||
|  | ||||
|     // goto_previous_screen and go_back may also be used as menu item callbacks | ||||
|     #if ENABLED(TURBO_BACK_MENU_ITEM) | ||||
|       // Various menu items require a "void (*)()" to point to | ||||
|       // this function so a default argument *won't* work | ||||
|       static inline void goto_previous_screen() { goto_previous_screen(false); } | ||||
|       static void _goto_previous_screen(const bool is_back); | ||||
|       static inline void goto_previous_screen() { _goto_previous_screen(false); } | ||||
|       static inline void go_back()              { _goto_previous_screen(true); } | ||||
|     #else | ||||
|       static void _goto_previous_screen(); | ||||
|       FORCE_INLINE static void goto_previous_screen() { _goto_previous_screen(); } | ||||
|       FORCE_INLINE static void go_back()              { _goto_previous_screen(); } | ||||
|     #endif | ||||
|  | ||||
|     static void return_to_status(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user