Merge pull request #3500 from thinkyhead/rc_shrink_menu_macros
Reduce redundancy in MENU_ITEM code
This commit is contained in:
commit
866c5be395
1 changed files with 16 additions and 18 deletions
|
@ -199,18 +199,24 @@ static void lcd_status_screen();
|
||||||
* menu_action_setting_edit_int3(PSTR(MSG_SPEED), &feedrate_multiplier, 10, 999)
|
* 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) { \
|
if (_menuItemNr == _lineNr) { \
|
||||||
itemSelected = encoderLine == _menuItemNr; \
|
itemSelected = encoderLine == _menuItemNr; \
|
||||||
if (lcdDrawUpdate) \
|
if (lcdDrawUpdate) \
|
||||||
lcd_implementation_drawmenu_ ## type(itemSelected, _drawLineNr, PSTR(label), ## args); \
|
lcd_implementation_drawmenu_ ## type(itemSelected, _drawLineNr, PSTR(label), ## args); \
|
||||||
if (wasClicked && itemSelected) { \
|
if (wasClicked && itemSelected) { \
|
||||||
lcd_quick_feedback(); \
|
lcd_quick_feedback()
|
||||||
|
|
||||||
|
#define _MENU_ITEM_PART_2(type, args...) \
|
||||||
menu_action_ ## type(args); \
|
menu_action_ ## type(args); \
|
||||||
return; \
|
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)
|
} while(0)
|
||||||
|
|
||||||
#if ENABLED(ENCODER_RATE_MULTIPLIER)
|
#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
|
* MENU_MULTIPLIER_ITEM generates drawing and handling code for a multiplier menu item
|
||||||
*/
|
*/
|
||||||
#define MENU_MULTIPLIER_ITEM(type, label, args...) do { \
|
#define MENU_MULTIPLIER_ITEM(type, label, args...) do { \
|
||||||
if (_menuItemNr == _lineNr) { \
|
_MENU_ITEM_PART_1(type, label, ## args); \
|
||||||
itemSelected = encoderLine == _menuItemNr; \
|
|
||||||
if (lcdDrawUpdate) \
|
|
||||||
lcd_implementation_drawmenu_ ## type(itemSelected, _drawLineNr, PSTR(label), ## args); \
|
|
||||||
if (wasClicked && itemSelected) { \
|
|
||||||
lcd_quick_feedback(); \
|
|
||||||
encoderRateMultiplierEnabled = true; \
|
encoderRateMultiplierEnabled = true; \
|
||||||
lastEncoderMovementMillis = 0; \
|
lastEncoderMovementMillis = 0; \
|
||||||
menu_action_ ## type(args); \
|
_MENU_ITEM_PART_2(type, ## args); \
|
||||||
return; \
|
|
||||||
} \
|
|
||||||
} \
|
|
||||||
_menuItemNr++; \
|
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
#endif //ENCODER_RATE_MULTIPLIER
|
#endif //ENCODER_RATE_MULTIPLIER
|
||||||
|
|
||||||
#define MENU_ITEM_DUMMY() do { _menuItemNr++; } while(0)
|
#define MENU_ITEM_DUMMY() do { _menuItemNr++; } while(0)
|
||||||
|
|
Reference in a new issue