Skip to content

Commit 6de2580

Browse files
committed
🎨 Tweak custom menu item code
1 parent ded8ee0 commit 6de2580

File tree

2 files changed

+21
-67
lines changed

2 files changed

+21
-67
lines changed

Marlin/src/lcd/menu/menu_configuration.cpp

+13-36
Original file line numberDiff line numberDiff line change
@@ -353,127 +353,104 @@ void menu_advanced_settings();
353353

354354
#define HAS_CUSTOM_ITEM_CONF(N) (defined(CONFIG_MENU_ITEM_##N##_DESC) && defined(CONFIG_MENU_ITEM_##N##_GCODE))
355355

356-
#define CUSTOM_TEST_CONF(N) do{ \
357-
constexpr char c = CONFIG_MENU_ITEM_##N##_GCODE[strlen(CONFIG_MENU_ITEM_##N##_GCODE) - 1]; \
358-
static_assert(c != '\n' && c != '\r', "CONFIG_MENU_ITEM_" STRINGIFY(N) "_GCODE cannot have a newline at the end. Please remove it."); \
359-
}while(0)
360-
361356
#ifdef CUSTOM_MENU_CONFIG_SCRIPT_DONE
362357
#define _DONE_SCRIPT "\n" CUSTOM_MENU_CONFIG_SCRIPT_DONE
363358
#else
364359
#define _DONE_SCRIPT ""
365360
#endif
366361
#define GCODE_LAMBDA_CONF(N) []{ _lcd_custom_menus_configuration_gcode(PSTR(CONFIG_MENU_ITEM_##N##_GCODE _DONE_SCRIPT)); }
367362
#define _CUSTOM_ITEM_CONF(N) ACTION_ITEM_P(PSTR(CONFIG_MENU_ITEM_##N##_DESC), GCODE_LAMBDA_CONF(N));
368-
#define _CUSTOM_ITEM_CONF_CONFIRM(N) \
363+
#define _CUSTOM_ITEM_CONF_CONFIRM(N) \
369364
SUBMENU_P(PSTR(CONFIG_MENU_ITEM_##N##_DESC), []{ \
370-
MenuItem_confirm::confirm_screen( \
371-
GCODE_LAMBDA_CONF(N), \
372-
ui.goto_previous_screen, \
365+
MenuItem_confirm::confirm_screen( \
366+
GCODE_LAMBDA_CONF(N), \
367+
ui.goto_previous_screen, \
373368
PSTR(CONFIG_MENU_ITEM_##N##_DESC "?") \
374-
); \
369+
); \
375370
})
376371

377-
#define CUSTOM_ITEM_CONF(N) do{ if (ENABLED(CONFIG_MENU_ITEM_##N##_CONFIRM)) _CUSTOM_ITEM_CONF_CONFIRM(N); else _CUSTOM_ITEM_CONF(N); }while(0)
372+
#define CUSTOM_ITEM_CONF(N) do{ \
373+
constexpr char c = CONFIG_MENU_ITEM_##N##_GCODE[strlen(CONFIG_MENU_ITEM_##N##_GCODE) - 1]; \
374+
static_assert(c != '\n' && c != '\r', "CONFIG_MENU_ITEM_" STRINGIFY(N) "_GCODE cannot have a newline at the end. Please remove it."); \
375+
if (ENABLED(CONFIG_MENU_ITEM_##N##_CONFIRM)) \
376+
_CUSTOM_ITEM_CONF_CONFIRM(N); \
377+
else \
378+
_CUSTOM_ITEM_CONF(N); \
379+
}while(0)
378380

379381
#if HAS_CUSTOM_ITEM_CONF(1)
380-
CUSTOM_TEST_CONF(1);
381382
CUSTOM_ITEM_CONF(1);
382383
#endif
383384
#if HAS_CUSTOM_ITEM_CONF(2)
384-
CUSTOM_TEST_CONF(2);
385385
CUSTOM_ITEM_CONF(2);
386386
#endif
387387
#if HAS_CUSTOM_ITEM_CONF(3)
388-
CUSTOM_TEST_CONF(3);
389388
CUSTOM_ITEM_CONF(3);
390389
#endif
391390
#if HAS_CUSTOM_ITEM_CONF(4)
392-
CUSTOM_TEST_CONF(4);
393391
CUSTOM_ITEM_CONF(4);
394392
#endif
395393
#if HAS_CUSTOM_ITEM_CONF(5)
396-
CUSTOM_TEST_CONF(5);
397394
CUSTOM_ITEM_CONF(5);
398395
#endif
399396
#if HAS_CUSTOM_ITEM_CONF(6)
400-
CUSTOM_TEST_CONF(6);
401397
CUSTOM_ITEM_CONF(6);
402398
#endif
403399
#if HAS_CUSTOM_ITEM_CONF(7)
404-
CUSTOM_TEST_CONF(7);
405400
CUSTOM_ITEM_CONF(7);
406401
#endif
407402
#if HAS_CUSTOM_ITEM_CONF(8)
408-
CUSTOM_TEST_CONF(8);
409403
CUSTOM_ITEM_CONF(8);
410404
#endif
411405
#if HAS_CUSTOM_ITEM_CONF(9)
412-
CUSTOM_TEST_CONF(9);
413406
CUSTOM_ITEM_CONF(9);
414407
#endif
415408
#if HAS_CUSTOM_ITEM_CONF(10)
416-
CUSTOM_TEST_CONF(10);
417409
CUSTOM_ITEM_CONF(10);
418410
#endif
419411
#if HAS_CUSTOM_ITEM_CONF(11)
420-
CUSTOM_TEST_CONF(11);
421412
CUSTOM_ITEM_CONF(11);
422413
#endif
423414
#if HAS_CUSTOM_ITEM_CONF(12)
424-
CUSTOM_TEST_CONF(12);
425415
CUSTOM_ITEM_CONF(12);
426416
#endif
427417
#if HAS_CUSTOM_ITEM_CONF(13)
428-
CUSTOM_TEST_CONF(13);
429418
CUSTOM_ITEM_CONF(13);
430419
#endif
431420
#if HAS_CUSTOM_ITEM_CONF(14)
432-
CUSTOM_TEST_CONF(14);
433421
CUSTOM_ITEM_CONF(14);
434422
#endif
435423
#if HAS_CUSTOM_ITEM_CONF(15)
436-
CUSTOM_TEST_CONF(15);
437424
CUSTOM_ITEM_CONF(15);
438425
#endif
439426
#if HAS_CUSTOM_ITEM_CONF(16)
440-
CUSTOM_TEST_CONF(16);
441427
CUSTOM_ITEM_CONF(16);
442428
#endif
443429
#if HAS_CUSTOM_ITEM_CONF(17)
444-
CUSTOM_TEST_CONF(17);
445430
CUSTOM_ITEM_CONF(17);
446431
#endif
447432
#if HAS_CUSTOM_ITEM_CONF(18)
448-
CUSTOM_TEST_CONF(18);
449433
CUSTOM_ITEM_CONF(18);
450434
#endif
451435
#if HAS_CUSTOM_ITEM_CONF(19)
452-
CUSTOM_TEST_CONF(19);
453436
CUSTOM_ITEM_CONF(19);
454437
#endif
455438
#if HAS_CUSTOM_ITEM_CONF(20)
456-
CUSTOM_TEST_CONF(20);
457439
CUSTOM_ITEM_CONF(20);
458440
#endif
459441
#if HAS_CUSTOM_ITEM_CONF(21)
460-
CUSTOM_TEST_CONF(21);
461442
CUSTOM_ITEM_CONF(21);
462443
#endif
463444
#if HAS_CUSTOM_ITEM_CONF(22)
464-
CUSTOM_TEST_CONF(22);
465445
CUSTOM_ITEM_CONF(22);
466446
#endif
467447
#if HAS_CUSTOM_ITEM_CONF(23)
468-
CUSTOM_TEST_CONF(23);
469448
CUSTOM_ITEM_CONF(23);
470449
#endif
471450
#if HAS_CUSTOM_ITEM_CONF(24)
472-
CUSTOM_TEST_CONF(24);
473451
CUSTOM_ITEM_CONF(24);
474452
#endif
475453
#if HAS_CUSTOM_ITEM_CONF(25)
476-
CUSTOM_TEST_CONF(25);
477454
CUSTOM_ITEM_CONF(25);
478455
#endif
479456
END_MENU();

Marlin/src/lcd/menu/menu_main.cpp

+8-31
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,6 @@ void menu_configuration();
118118

119119
#define HAS_CUSTOM_ITEM_MAIN(N) (defined(MAIN_MENU_ITEM_##N##_DESC) && defined(MAIN_MENU_ITEM_##N##_GCODE))
120120

121-
#define CUSTOM_TEST_MAIN(N) do{ \
122-
constexpr char c = MAIN_MENU_ITEM_##N##_GCODE[strlen(MAIN_MENU_ITEM_##N##_GCODE) - 1]; \
123-
static_assert(c != '\n' && c != '\r', "MAIN_MENU_ITEM_" STRINGIFY(N) "_GCODE cannot have a newline at the end. Please remove it."); \
124-
}while(0)
125-
126121
#ifdef MAIN_MENU_ITEM_SCRIPT_DONE
127122
#define _DONE_SCRIPT "\n" MAIN_MENU_ITEM_SCRIPT_DONE
128123
#else
@@ -139,106 +134,88 @@ void menu_configuration();
139134
); \
140135
})
141136

142-
#define CUSTOM_ITEM_MAIN(N) do{ if (ENABLED(MAIN_MENU_ITEM_##N##_CONFIRM)) _CUSTOM_ITEM_MAIN_CONFIRM(N); else _CUSTOM_ITEM_MAIN(N); }while(0)
137+
#define CUSTOM_ITEM_MAIN(N) do{ \
138+
constexpr char c = MAIN_MENU_ITEM_##N##_GCODE[strlen(MAIN_MENU_ITEM_##N##_GCODE) - 1]; \
139+
static_assert(c != '\n' && c != '\r', "MAIN_MENU_ITEM_" STRINGIFY(N) "_GCODE cannot have a newline at the end. Please remove it."); \
140+
if (ENABLED(MAIN_MENU_ITEM_##N##_CONFIRM)) \
141+
_CUSTOM_ITEM_MAIN_CONFIRM(N); \
142+
else \
143+
_CUSTOM_ITEM_MAIN(N); \
144+
}while(0)
143145

144146
#if HAS_CUSTOM_ITEM_MAIN(1)
145-
CUSTOM_TEST_MAIN(1);
146147
CUSTOM_ITEM_MAIN(1);
147148
#endif
148149
#if HAS_CUSTOM_ITEM_MAIN(2)
149-
CUSTOM_TEST_MAIN(2);
150150
CUSTOM_ITEM_MAIN(2);
151151
#endif
152152
#if HAS_CUSTOM_ITEM_MAIN(3)
153-
CUSTOM_TEST_MAIN(3);
154153
CUSTOM_ITEM_MAIN(3);
155154
#endif
156155
#if HAS_CUSTOM_ITEM_MAIN(4)
157-
CUSTOM_TEST_MAIN(4);
158156
CUSTOM_ITEM_MAIN(4);
159157
#endif
160158
#if HAS_CUSTOM_ITEM_MAIN(5)
161-
CUSTOM_TEST_MAIN(5);
162159
CUSTOM_ITEM_MAIN(5);
163160
#endif
164161
#if HAS_CUSTOM_ITEM_MAIN(6)
165-
CUSTOM_TEST_MAIN(6);
166162
CUSTOM_ITEM_MAIN(6);
167163
#endif
168164
#if HAS_CUSTOM_ITEM_MAIN(7)
169-
CUSTOM_TEST_MAIN(7);
170165
CUSTOM_ITEM_MAIN(7);
171166
#endif
172167
#if HAS_CUSTOM_ITEM_MAIN(8)
173-
CUSTOM_TEST_MAIN(8);
174168
CUSTOM_ITEM_MAIN(8);
175169
#endif
176170
#if HAS_CUSTOM_ITEM_MAIN(9)
177-
CUSTOM_TEST_MAIN(9);
178171
CUSTOM_ITEM_MAIN(9);
179172
#endif
180173
#if HAS_CUSTOM_ITEM_MAIN(10)
181-
CUSTOM_TEST_MAIN(10);
182174
CUSTOM_ITEM_MAIN(10);
183175
#endif
184176
#if HAS_CUSTOM_ITEM_MAIN(11)
185-
CUSTOM_TEST_MAIN(11);
186177
CUSTOM_ITEM_MAIN(11);
187178
#endif
188179
#if HAS_CUSTOM_ITEM_MAIN(12)
189-
CUSTOM_TEST_MAIN(12);
190180
CUSTOM_ITEM_MAIN(12);
191181
#endif
192182
#if HAS_CUSTOM_ITEM_MAIN(13)
193-
CUSTOM_TEST_MAIN(13);
194183
CUSTOM_ITEM_MAIN(13);
195184
#endif
196185
#if HAS_CUSTOM_ITEM_MAIN(14)
197-
CUSTOM_TEST_MAIN(14);
198186
CUSTOM_ITEM_MAIN(14);
199187
#endif
200188
#if HAS_CUSTOM_ITEM_MAIN(15)
201-
CUSTOM_TEST_MAIN(15);
202189
CUSTOM_ITEM_MAIN(15);
203190
#endif
204191
#if HAS_CUSTOM_ITEM_MAIN(16)
205-
CUSTOM_TEST_MAIN(16);
206192
CUSTOM_ITEM_MAIN(16);
207193
#endif
208194
#if HAS_CUSTOM_ITEM_MAIN(17)
209-
CUSTOM_TEST_MAIN(17);
210195
CUSTOM_ITEM_MAIN(17);
211196
#endif
212197
#if HAS_CUSTOM_ITEM_MAIN(18)
213-
CUSTOM_TEST_MAIN(18);
214198
CUSTOM_ITEM_MAIN(18);
215199
#endif
216200
#if HAS_CUSTOM_ITEM_MAIN(19)
217-
CUSTOM_TEST_MAIN(19);
218201
CUSTOM_ITEM_MAIN(19);
219202
#endif
220203
#if HAS_CUSTOM_ITEM_MAIN(20)
221-
CUSTOM_TEST_MAIN(20);
222204
CUSTOM_ITEM_MAIN(20);
223205
#endif
224206
#if HAS_CUSTOM_ITEM_MAIN(21)
225-
CUSTOM_TEST_MAIN(21);
226207
CUSTOM_ITEM_MAIN(21);
227208
#endif
228209
#if HAS_CUSTOM_ITEM_MAIN(22)
229-
CUSTOM_TEST_MAIN(22);
230210
CUSTOM_ITEM_MAIN(22);
231211
#endif
232212
#if HAS_CUSTOM_ITEM_MAIN(23)
233-
CUSTOM_TEST_MAIN(23);
234213
CUSTOM_ITEM_MAIN(23);
235214
#endif
236215
#if HAS_CUSTOM_ITEM_MAIN(24)
237-
CUSTOM_TEST_MAIN(24);
238216
CUSTOM_ITEM_MAIN(24);
239217
#endif
240218
#if HAS_CUSTOM_ITEM_MAIN(25)
241-
CUSTOM_TEST_MAIN(25);
242219
CUSTOM_ITEM_MAIN(25);
243220
#endif
244221
END_MENU();

0 commit comments

Comments
 (0)