Merge pull request #3500 from thinkyhead/rc_shrink_menu_macros
Reduce redundancy in MENU_ITEM code
This commit is contained in:
		@@ -199,18 +199,24 @@ static void lcd_status_screen();
 | 
			
		||||
   *     menu_action_setting_edit_int3(PSTR(MSG_SPEED), &feedrate_multiplier, 10, 999)
 | 
			
		||||
   *
 | 
			
		||||
   */
 | 
			
		||||
  #define MENU_ITEM(type, label, args...) do { \
 | 
			
		||||
  #define _MENU_ITEM_PART_1(type, label, args...) \
 | 
			
		||||
    if (_menuItemNr == _lineNr) { \
 | 
			
		||||
      itemSelected = encoderLine == _menuItemNr; \
 | 
			
		||||
      if (lcdDrawUpdate) \
 | 
			
		||||
        lcd_implementation_drawmenu_ ## type(itemSelected, _drawLineNr, PSTR(label), ## args); \
 | 
			
		||||
      if (wasClicked && itemSelected) { \
 | 
			
		||||
        lcd_quick_feedback(); \
 | 
			
		||||
        lcd_quick_feedback()
 | 
			
		||||
 | 
			
		||||
  #define _MENU_ITEM_PART_2(type, args...) \
 | 
			
		||||
        menu_action_ ## type(args); \
 | 
			
		||||
        return; \
 | 
			
		||||
      } \
 | 
			
		||||
    } \
 | 
			
		||||
    _menuItemNr++; \
 | 
			
		||||
    _menuItemNr++
 | 
			
		||||
 | 
			
		||||
  #define MENU_ITEM(type, label, args...) do { \
 | 
			
		||||
      _MENU_ITEM_PART_1(type, label, ## args); \
 | 
			
		||||
      _MENU_ITEM_PART_2(type, ## args); \
 | 
			
		||||
    } while(0)
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(ENCODER_RATE_MULTIPLIER)
 | 
			
		||||
@@ -221,20 +227,12 @@ static void lcd_status_screen();
 | 
			
		||||
     * MENU_MULTIPLIER_ITEM generates drawing and handling code for a multiplier menu item
 | 
			
		||||
     */
 | 
			
		||||
    #define MENU_MULTIPLIER_ITEM(type, label, args...) do { \
 | 
			
		||||
      if (_menuItemNr == _lineNr) { \
 | 
			
		||||
        itemSelected = encoderLine == _menuItemNr; \
 | 
			
		||||
        if (lcdDrawUpdate) \
 | 
			
		||||
          lcd_implementation_drawmenu_ ## type(itemSelected, _drawLineNr, PSTR(label), ## args); \
 | 
			
		||||
        if (wasClicked && itemSelected) { \
 | 
			
		||||
          lcd_quick_feedback(); \
 | 
			
		||||
        _MENU_ITEM_PART_1(type, label, ## args); \
 | 
			
		||||
        encoderRateMultiplierEnabled = true; \
 | 
			
		||||
        lastEncoderMovementMillis = 0; \
 | 
			
		||||
          menu_action_ ## type(args); \
 | 
			
		||||
          return; \
 | 
			
		||||
        } \
 | 
			
		||||
      } \
 | 
			
		||||
      _menuItemNr++; \
 | 
			
		||||
        _MENU_ITEM_PART_2(type, ## args); \
 | 
			
		||||
      } while(0)
 | 
			
		||||
 | 
			
		||||
  #endif //ENCODER_RATE_MULTIPLIER
 | 
			
		||||
 | 
			
		||||
  #define MENU_ITEM_DUMMY() do { _menuItemNr++; } while(0)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user