Browse Source

🎨 Tweak custom menu item code

Scott Lahteine 3 years ago
parent
commit
ea7e777cb1
2 changed files with 21 additions and 67 deletions
  1. 13
    36
      Marlin/src/lcd/menu/menu_configuration.cpp
  2. 8
    31
      Marlin/src/lcd/menu/menu_main.cpp

+ 13
- 36
Marlin/src/lcd/menu/menu_configuration.cpp View File

353
 
353
 
354
     #define HAS_CUSTOM_ITEM_CONF(N) (defined(CONFIG_MENU_ITEM_##N##_DESC) && defined(CONFIG_MENU_ITEM_##N##_GCODE))
354
     #define HAS_CUSTOM_ITEM_CONF(N) (defined(CONFIG_MENU_ITEM_##N##_DESC) && defined(CONFIG_MENU_ITEM_##N##_GCODE))
355
 
355
 
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
-
361
     #ifdef CUSTOM_MENU_CONFIG_SCRIPT_DONE
356
     #ifdef CUSTOM_MENU_CONFIG_SCRIPT_DONE
362
       #define _DONE_SCRIPT "\n" CUSTOM_MENU_CONFIG_SCRIPT_DONE
357
       #define _DONE_SCRIPT "\n" CUSTOM_MENU_CONFIG_SCRIPT_DONE
363
     #else
358
     #else
365
     #endif
360
     #endif
366
     #define GCODE_LAMBDA_CONF(N) []{ _lcd_custom_menus_configuration_gcode(PSTR(CONFIG_MENU_ITEM_##N##_GCODE _DONE_SCRIPT)); }
361
     #define GCODE_LAMBDA_CONF(N) []{ _lcd_custom_menus_configuration_gcode(PSTR(CONFIG_MENU_ITEM_##N##_GCODE _DONE_SCRIPT)); }
367
     #define _CUSTOM_ITEM_CONF(N) ACTION_ITEM_P(PSTR(CONFIG_MENU_ITEM_##N##_DESC), GCODE_LAMBDA_CONF(N));
362
     #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)               \
369
       SUBMENU_P(PSTR(CONFIG_MENU_ITEM_##N##_DESC), []{ \
364
       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,                   \
373
             PSTR(CONFIG_MENU_ITEM_##N##_DESC "?")      \
368
             PSTR(CONFIG_MENU_ITEM_##N##_DESC "?")      \
374
-          );                                         \
369
+          );                                           \
375
         })
370
         })
376
 
371
 
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)
378
 
380
 
379
     #if HAS_CUSTOM_ITEM_CONF(1)
381
     #if HAS_CUSTOM_ITEM_CONF(1)
380
-      CUSTOM_TEST_CONF(1);
381
       CUSTOM_ITEM_CONF(1);
382
       CUSTOM_ITEM_CONF(1);
382
     #endif
383
     #endif
383
     #if HAS_CUSTOM_ITEM_CONF(2)
384
     #if HAS_CUSTOM_ITEM_CONF(2)
384
-      CUSTOM_TEST_CONF(2);
385
       CUSTOM_ITEM_CONF(2);
385
       CUSTOM_ITEM_CONF(2);
386
     #endif
386
     #endif
387
     #if HAS_CUSTOM_ITEM_CONF(3)
387
     #if HAS_CUSTOM_ITEM_CONF(3)
388
-      CUSTOM_TEST_CONF(3);
389
       CUSTOM_ITEM_CONF(3);
388
       CUSTOM_ITEM_CONF(3);
390
     #endif
389
     #endif
391
     #if HAS_CUSTOM_ITEM_CONF(4)
390
     #if HAS_CUSTOM_ITEM_CONF(4)
392
-      CUSTOM_TEST_CONF(4);
393
       CUSTOM_ITEM_CONF(4);
391
       CUSTOM_ITEM_CONF(4);
394
     #endif
392
     #endif
395
     #if HAS_CUSTOM_ITEM_CONF(5)
393
     #if HAS_CUSTOM_ITEM_CONF(5)
396
-      CUSTOM_TEST_CONF(5);
397
       CUSTOM_ITEM_CONF(5);
394
       CUSTOM_ITEM_CONF(5);
398
     #endif
395
     #endif
399
     #if HAS_CUSTOM_ITEM_CONF(6)
396
     #if HAS_CUSTOM_ITEM_CONF(6)
400
-      CUSTOM_TEST_CONF(6);
401
       CUSTOM_ITEM_CONF(6);
397
       CUSTOM_ITEM_CONF(6);
402
     #endif
398
     #endif
403
     #if HAS_CUSTOM_ITEM_CONF(7)
399
     #if HAS_CUSTOM_ITEM_CONF(7)
404
-      CUSTOM_TEST_CONF(7);
405
       CUSTOM_ITEM_CONF(7);
400
       CUSTOM_ITEM_CONF(7);
406
     #endif
401
     #endif
407
     #if HAS_CUSTOM_ITEM_CONF(8)
402
     #if HAS_CUSTOM_ITEM_CONF(8)
408
-      CUSTOM_TEST_CONF(8);
409
       CUSTOM_ITEM_CONF(8);
403
       CUSTOM_ITEM_CONF(8);
410
     #endif
404
     #endif
411
     #if HAS_CUSTOM_ITEM_CONF(9)
405
     #if HAS_CUSTOM_ITEM_CONF(9)
412
-      CUSTOM_TEST_CONF(9);
413
       CUSTOM_ITEM_CONF(9);
406
       CUSTOM_ITEM_CONF(9);
414
     #endif
407
     #endif
415
     #if HAS_CUSTOM_ITEM_CONF(10)
408
     #if HAS_CUSTOM_ITEM_CONF(10)
416
-      CUSTOM_TEST_CONF(10);
417
       CUSTOM_ITEM_CONF(10);
409
       CUSTOM_ITEM_CONF(10);
418
     #endif
410
     #endif
419
     #if HAS_CUSTOM_ITEM_CONF(11)
411
     #if HAS_CUSTOM_ITEM_CONF(11)
420
-      CUSTOM_TEST_CONF(11);
421
       CUSTOM_ITEM_CONF(11);
412
       CUSTOM_ITEM_CONF(11);
422
     #endif
413
     #endif
423
     #if HAS_CUSTOM_ITEM_CONF(12)
414
     #if HAS_CUSTOM_ITEM_CONF(12)
424
-      CUSTOM_TEST_CONF(12);
425
       CUSTOM_ITEM_CONF(12);
415
       CUSTOM_ITEM_CONF(12);
426
     #endif
416
     #endif
427
     #if HAS_CUSTOM_ITEM_CONF(13)
417
     #if HAS_CUSTOM_ITEM_CONF(13)
428
-      CUSTOM_TEST_CONF(13);
429
       CUSTOM_ITEM_CONF(13);
418
       CUSTOM_ITEM_CONF(13);
430
     #endif
419
     #endif
431
     #if HAS_CUSTOM_ITEM_CONF(14)
420
     #if HAS_CUSTOM_ITEM_CONF(14)
432
-      CUSTOM_TEST_CONF(14);
433
       CUSTOM_ITEM_CONF(14);
421
       CUSTOM_ITEM_CONF(14);
434
     #endif
422
     #endif
435
     #if HAS_CUSTOM_ITEM_CONF(15)
423
     #if HAS_CUSTOM_ITEM_CONF(15)
436
-      CUSTOM_TEST_CONF(15);
437
       CUSTOM_ITEM_CONF(15);
424
       CUSTOM_ITEM_CONF(15);
438
     #endif
425
     #endif
439
     #if HAS_CUSTOM_ITEM_CONF(16)
426
     #if HAS_CUSTOM_ITEM_CONF(16)
440
-      CUSTOM_TEST_CONF(16);
441
       CUSTOM_ITEM_CONF(16);
427
       CUSTOM_ITEM_CONF(16);
442
     #endif
428
     #endif
443
     #if HAS_CUSTOM_ITEM_CONF(17)
429
     #if HAS_CUSTOM_ITEM_CONF(17)
444
-      CUSTOM_TEST_CONF(17);
445
       CUSTOM_ITEM_CONF(17);
430
       CUSTOM_ITEM_CONF(17);
446
     #endif
431
     #endif
447
     #if HAS_CUSTOM_ITEM_CONF(18)
432
     #if HAS_CUSTOM_ITEM_CONF(18)
448
-      CUSTOM_TEST_CONF(18);
449
       CUSTOM_ITEM_CONF(18);
433
       CUSTOM_ITEM_CONF(18);
450
     #endif
434
     #endif
451
     #if HAS_CUSTOM_ITEM_CONF(19)
435
     #if HAS_CUSTOM_ITEM_CONF(19)
452
-      CUSTOM_TEST_CONF(19);
453
       CUSTOM_ITEM_CONF(19);
436
       CUSTOM_ITEM_CONF(19);
454
     #endif
437
     #endif
455
     #if HAS_CUSTOM_ITEM_CONF(20)
438
     #if HAS_CUSTOM_ITEM_CONF(20)
456
-      CUSTOM_TEST_CONF(20);
457
       CUSTOM_ITEM_CONF(20);
439
       CUSTOM_ITEM_CONF(20);
458
     #endif
440
     #endif
459
     #if HAS_CUSTOM_ITEM_CONF(21)
441
     #if HAS_CUSTOM_ITEM_CONF(21)
460
-      CUSTOM_TEST_CONF(21);
461
       CUSTOM_ITEM_CONF(21);
442
       CUSTOM_ITEM_CONF(21);
462
     #endif
443
     #endif
463
     #if HAS_CUSTOM_ITEM_CONF(22)
444
     #if HAS_CUSTOM_ITEM_CONF(22)
464
-      CUSTOM_TEST_CONF(22);
465
       CUSTOM_ITEM_CONF(22);
445
       CUSTOM_ITEM_CONF(22);
466
     #endif
446
     #endif
467
     #if HAS_CUSTOM_ITEM_CONF(23)
447
     #if HAS_CUSTOM_ITEM_CONF(23)
468
-      CUSTOM_TEST_CONF(23);
469
       CUSTOM_ITEM_CONF(23);
448
       CUSTOM_ITEM_CONF(23);
470
     #endif
449
     #endif
471
     #if HAS_CUSTOM_ITEM_CONF(24)
450
     #if HAS_CUSTOM_ITEM_CONF(24)
472
-      CUSTOM_TEST_CONF(24);
473
       CUSTOM_ITEM_CONF(24);
451
       CUSTOM_ITEM_CONF(24);
474
     #endif
452
     #endif
475
     #if HAS_CUSTOM_ITEM_CONF(25)
453
     #if HAS_CUSTOM_ITEM_CONF(25)
476
-      CUSTOM_TEST_CONF(25);
477
       CUSTOM_ITEM_CONF(25);
454
       CUSTOM_ITEM_CONF(25);
478
     #endif
455
     #endif
479
     END_MENU();
456
     END_MENU();

+ 8
- 31
Marlin/src/lcd/menu/menu_main.cpp View File

118
 
118
 
119
     #define HAS_CUSTOM_ITEM_MAIN(N) (defined(MAIN_MENU_ITEM_##N##_DESC) && defined(MAIN_MENU_ITEM_##N##_GCODE))
119
     #define HAS_CUSTOM_ITEM_MAIN(N) (defined(MAIN_MENU_ITEM_##N##_DESC) && defined(MAIN_MENU_ITEM_##N##_GCODE))
120
 
120
 
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
-
126
     #ifdef MAIN_MENU_ITEM_SCRIPT_DONE
121
     #ifdef MAIN_MENU_ITEM_SCRIPT_DONE
127
       #define _DONE_SCRIPT "\n" MAIN_MENU_ITEM_SCRIPT_DONE
122
       #define _DONE_SCRIPT "\n" MAIN_MENU_ITEM_SCRIPT_DONE
128
     #else
123
     #else
139
           );                                         \
134
           );                                         \
140
         })
135
         })
141
 
136
 
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)
143
 
145
 
144
     #if HAS_CUSTOM_ITEM_MAIN(1)
146
     #if HAS_CUSTOM_ITEM_MAIN(1)
145
-      CUSTOM_TEST_MAIN(1);
146
       CUSTOM_ITEM_MAIN(1);
147
       CUSTOM_ITEM_MAIN(1);
147
     #endif
148
     #endif
148
     #if HAS_CUSTOM_ITEM_MAIN(2)
149
     #if HAS_CUSTOM_ITEM_MAIN(2)
149
-      CUSTOM_TEST_MAIN(2);
150
       CUSTOM_ITEM_MAIN(2);
150
       CUSTOM_ITEM_MAIN(2);
151
     #endif
151
     #endif
152
     #if HAS_CUSTOM_ITEM_MAIN(3)
152
     #if HAS_CUSTOM_ITEM_MAIN(3)
153
-      CUSTOM_TEST_MAIN(3);
154
       CUSTOM_ITEM_MAIN(3);
153
       CUSTOM_ITEM_MAIN(3);
155
     #endif
154
     #endif
156
     #if HAS_CUSTOM_ITEM_MAIN(4)
155
     #if HAS_CUSTOM_ITEM_MAIN(4)
157
-      CUSTOM_TEST_MAIN(4);
158
       CUSTOM_ITEM_MAIN(4);
156
       CUSTOM_ITEM_MAIN(4);
159
     #endif
157
     #endif
160
     #if HAS_CUSTOM_ITEM_MAIN(5)
158
     #if HAS_CUSTOM_ITEM_MAIN(5)
161
-      CUSTOM_TEST_MAIN(5);
162
       CUSTOM_ITEM_MAIN(5);
159
       CUSTOM_ITEM_MAIN(5);
163
     #endif
160
     #endif
164
     #if HAS_CUSTOM_ITEM_MAIN(6)
161
     #if HAS_CUSTOM_ITEM_MAIN(6)
165
-      CUSTOM_TEST_MAIN(6);
166
       CUSTOM_ITEM_MAIN(6);
162
       CUSTOM_ITEM_MAIN(6);
167
     #endif
163
     #endif
168
     #if HAS_CUSTOM_ITEM_MAIN(7)
164
     #if HAS_CUSTOM_ITEM_MAIN(7)
169
-      CUSTOM_TEST_MAIN(7);
170
       CUSTOM_ITEM_MAIN(7);
165
       CUSTOM_ITEM_MAIN(7);
171
     #endif
166
     #endif
172
     #if HAS_CUSTOM_ITEM_MAIN(8)
167
     #if HAS_CUSTOM_ITEM_MAIN(8)
173
-      CUSTOM_TEST_MAIN(8);
174
       CUSTOM_ITEM_MAIN(8);
168
       CUSTOM_ITEM_MAIN(8);
175
     #endif
169
     #endif
176
     #if HAS_CUSTOM_ITEM_MAIN(9)
170
     #if HAS_CUSTOM_ITEM_MAIN(9)
177
-      CUSTOM_TEST_MAIN(9);
178
       CUSTOM_ITEM_MAIN(9);
171
       CUSTOM_ITEM_MAIN(9);
179
     #endif
172
     #endif
180
     #if HAS_CUSTOM_ITEM_MAIN(10)
173
     #if HAS_CUSTOM_ITEM_MAIN(10)
181
-      CUSTOM_TEST_MAIN(10);
182
       CUSTOM_ITEM_MAIN(10);
174
       CUSTOM_ITEM_MAIN(10);
183
     #endif
175
     #endif
184
     #if HAS_CUSTOM_ITEM_MAIN(11)
176
     #if HAS_CUSTOM_ITEM_MAIN(11)
185
-      CUSTOM_TEST_MAIN(11);
186
       CUSTOM_ITEM_MAIN(11);
177
       CUSTOM_ITEM_MAIN(11);
187
     #endif
178
     #endif
188
     #if HAS_CUSTOM_ITEM_MAIN(12)
179
     #if HAS_CUSTOM_ITEM_MAIN(12)
189
-      CUSTOM_TEST_MAIN(12);
190
       CUSTOM_ITEM_MAIN(12);
180
       CUSTOM_ITEM_MAIN(12);
191
     #endif
181
     #endif
192
     #if HAS_CUSTOM_ITEM_MAIN(13)
182
     #if HAS_CUSTOM_ITEM_MAIN(13)
193
-      CUSTOM_TEST_MAIN(13);
194
       CUSTOM_ITEM_MAIN(13);
183
       CUSTOM_ITEM_MAIN(13);
195
     #endif
184
     #endif
196
     #if HAS_CUSTOM_ITEM_MAIN(14)
185
     #if HAS_CUSTOM_ITEM_MAIN(14)
197
-      CUSTOM_TEST_MAIN(14);
198
       CUSTOM_ITEM_MAIN(14);
186
       CUSTOM_ITEM_MAIN(14);
199
     #endif
187
     #endif
200
     #if HAS_CUSTOM_ITEM_MAIN(15)
188
     #if HAS_CUSTOM_ITEM_MAIN(15)
201
-      CUSTOM_TEST_MAIN(15);
202
       CUSTOM_ITEM_MAIN(15);
189
       CUSTOM_ITEM_MAIN(15);
203
     #endif
190
     #endif
204
     #if HAS_CUSTOM_ITEM_MAIN(16)
191
     #if HAS_CUSTOM_ITEM_MAIN(16)
205
-      CUSTOM_TEST_MAIN(16);
206
       CUSTOM_ITEM_MAIN(16);
192
       CUSTOM_ITEM_MAIN(16);
207
     #endif
193
     #endif
208
     #if HAS_CUSTOM_ITEM_MAIN(17)
194
     #if HAS_CUSTOM_ITEM_MAIN(17)
209
-      CUSTOM_TEST_MAIN(17);
210
       CUSTOM_ITEM_MAIN(17);
195
       CUSTOM_ITEM_MAIN(17);
211
     #endif
196
     #endif
212
     #if HAS_CUSTOM_ITEM_MAIN(18)
197
     #if HAS_CUSTOM_ITEM_MAIN(18)
213
-      CUSTOM_TEST_MAIN(18);
214
       CUSTOM_ITEM_MAIN(18);
198
       CUSTOM_ITEM_MAIN(18);
215
     #endif
199
     #endif
216
     #if HAS_CUSTOM_ITEM_MAIN(19)
200
     #if HAS_CUSTOM_ITEM_MAIN(19)
217
-      CUSTOM_TEST_MAIN(19);
218
       CUSTOM_ITEM_MAIN(19);
201
       CUSTOM_ITEM_MAIN(19);
219
     #endif
202
     #endif
220
     #if HAS_CUSTOM_ITEM_MAIN(20)
203
     #if HAS_CUSTOM_ITEM_MAIN(20)
221
-      CUSTOM_TEST_MAIN(20);
222
       CUSTOM_ITEM_MAIN(20);
204
       CUSTOM_ITEM_MAIN(20);
223
     #endif
205
     #endif
224
     #if HAS_CUSTOM_ITEM_MAIN(21)
206
     #if HAS_CUSTOM_ITEM_MAIN(21)
225
-      CUSTOM_TEST_MAIN(21);
226
       CUSTOM_ITEM_MAIN(21);
207
       CUSTOM_ITEM_MAIN(21);
227
     #endif
208
     #endif
228
     #if HAS_CUSTOM_ITEM_MAIN(22)
209
     #if HAS_CUSTOM_ITEM_MAIN(22)
229
-      CUSTOM_TEST_MAIN(22);
230
       CUSTOM_ITEM_MAIN(22);
210
       CUSTOM_ITEM_MAIN(22);
231
     #endif
211
     #endif
232
     #if HAS_CUSTOM_ITEM_MAIN(23)
212
     #if HAS_CUSTOM_ITEM_MAIN(23)
233
-      CUSTOM_TEST_MAIN(23);
234
       CUSTOM_ITEM_MAIN(23);
213
       CUSTOM_ITEM_MAIN(23);
235
     #endif
214
     #endif
236
     #if HAS_CUSTOM_ITEM_MAIN(24)
215
     #if HAS_CUSTOM_ITEM_MAIN(24)
237
-      CUSTOM_TEST_MAIN(24);
238
       CUSTOM_ITEM_MAIN(24);
216
       CUSTOM_ITEM_MAIN(24);
239
     #endif
217
     #endif
240
     #if HAS_CUSTOM_ITEM_MAIN(25)
218
     #if HAS_CUSTOM_ITEM_MAIN(25)
241
-      CUSTOM_TEST_MAIN(25);
242
       CUSTOM_ITEM_MAIN(25);
219
       CUSTOM_ITEM_MAIN(25);
243
     #endif
220
     #endif
244
     END_MENU();
221
     END_MENU();

Loading…
Cancel
Save