Bläddra i källkod

🩹 Fix DWIN Enhanced Tune menu during homing (#22773)

Co-authored-by: Scott Lahteine <github@thinkyhead.com>
Miguel Risco-Castillo 2 år sedan
förälder
incheckning
8235ae9cc0
Inget konto är kopplat till bidragsgivarens mejladress

+ 121
- 118
Marlin/src/lcd/e3v2/creality/dwin.cpp Visa fil

@@ -30,6 +30,9 @@
30 30
 
31 31
 #include "dwin.h"
32 32
 
33
+//#define USE_STRING_HEADINGS
34
+//#define USE_STRING_TITLES
35
+
33 36
 #if ENABLED(LCD_BED_LEVELING) && DISABLED(PROBE_MANUALLY) && ANY(AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT)
34 37
   #define HAS_ONESTEP_LEVELING 1
35 38
 #endif
@@ -141,6 +144,17 @@ millis_t dwin_heat_time = 0;
141 144
 
142 145
 uint8_t checkkey = 0;
143 146
 
147
+enum SelectItem : uint8_t {
148
+  PAGE_PRINT = 0,
149
+  PAGE_PREPARE,
150
+  PAGE_CONTROL,
151
+  PAGE_INFO_LEVELING,
152
+
153
+  PRINT_SETUP = 0,
154
+  PRINT_PAUSE_RESUME,
155
+  PRINT_STOP
156
+};
157
+
144 158
 typedef struct {
145 159
   uint8_t now, last;
146 160
   void set(uint8_t v) { now = last = v; }
@@ -235,7 +249,7 @@ void ICON_Print() {
235 249
     { 1, { 417, 449 }, 30, 14 },
236 250
     { 1, { 405, 447 }, 27, 15 }
237 251
   };
238
-  ICON_Button(select_page.now == 0, ICON_Print_0, ico, txt);
252
+  ICON_Button(select_page.now == PAGE_PRINT, ICON_Print_0, ico, txt);
239 253
 }
240 254
 
241 255
 //
@@ -247,7 +261,7 @@ void ICON_Prepare() {
247 261
     { 33, { 417, 449 }, 51, 14 },
248 262
     { 31, { 405, 447 }, 27, 15 }
249 263
   };
250
-  ICON_Button(select_page.now == 1, ICON_Prepare_0, ico, txt);
264
+  ICON_Button(select_page.now == PAGE_PREPARE, ICON_Prepare_0, ico, txt);
251 265
 }
252 266
 
253 267
 //
@@ -259,7 +273,7 @@ void ICON_Control() {
259 273
     { 85, { 417, 449 }, 46, 14 },
260 274
     { 61, { 405, 447 }, 27, 15 }
261 275
   };
262
-  ICON_Button(select_page.now == 2, ICON_Control_0, ico, txt);
276
+  ICON_Button(select_page.now == PAGE_CONTROL, ICON_Control_0, ico, txt);
263 277
 }
264 278
 
265 279
 //
@@ -271,7 +285,7 @@ void ICON_StartInfo() {
271 285
     { 133, { 417, 449 }, 23, 14 },
272 286
     {  91, { 405, 447 }, 27, 15 }
273 287
   };
274
-  ICON_Button(select_page.now == 3, ICON_Info_0, ico, txt);
288
+  ICON_Button(select_page.now == PAGE_INFO_LEVELING, ICON_Info_0, ico, txt);
275 289
 }
276 290
 
277 291
 //
@@ -283,7 +297,7 @@ void ICON_Leveling() {
283 297
     {  88, { 433, 464 }, 36, 14 },
284 298
     { 211, { 405, 447 }, 27, 15 }
285 299
   };
286
-  ICON_Button(select_page.now == 3, ICON_Leveling_0, ico, txt);
300
+  ICON_Button(select_page.now == PAGE_INFO_LEVELING, ICON_Leveling_0, ico, txt);
287 301
 }
288 302
 
289 303
 //
@@ -295,7 +309,7 @@ void ICON_Tune() {
295 309
     {   0, { 433, 464 }, 32, 14 },
296 310
     { 121, { 405, 447 }, 27, 15 }
297 311
   };
298
-  ICON_Button(select_print.now == 0, ICON_Setup_0, ico, txt);
312
+  ICON_Button(select_print.now == PRINT_SETUP, ICON_Setup_0, ico, txt);
299 313
 }
300 314
 
301 315
 //
@@ -307,7 +321,7 @@ void ICON_Pause() {
307 321
     { 157, { 417, 449 }, 39, 14 },
308 322
     { 181, { 405, 447 }, 27, 15 }
309 323
   };
310
-  ICON_Button(select_print.now == 1, ICON_Pause_0, ico, txt);
324
+  ICON_Button(select_print.now == PRINT_PAUSE_RESUME, ICON_Pause_0, ico, txt);
311 325
 }
312 326
 
313 327
 //
@@ -319,7 +333,7 @@ void ICON_Resume() {
319 333
     { 33, { 433, 464 }, 53, 14 },
320 334
     {  1, { 405, 447 }, 27, 15 }
321 335
   };
322
-  ICON_Button(select_print.now == 1, ICON_Continue_0, ico, txt);
336
+  ICON_Button(select_print.now == PRINT_PAUSE_RESUME, ICON_Continue_0, ico, txt);
323 337
 }
324 338
 
325 339
 void ICON_ResumeOrPause() {
@@ -338,7 +352,7 @@ void ICON_Stop() {
338 352
     { 196, { 417, 449 }, 29, 14 },
339 353
     { 151, { 405, 447 }, 27, 12 }
340 354
   };
341
-  ICON_Button(select_print.now == 2, ICON_Stop_0, ico, txt);
355
+  ICON_Button(select_print.now == PRINT_STOP, ICON_Stop_0, ico, txt);
342 356
 }
343 357
 
344 358
 inline void Clear_Title_Bar() {
@@ -467,6 +481,7 @@ inline bool Apply_Encoder(const ENCODER_DiffState &encoder_diffState, T &valref)
467 481
 //
468 482
 // Draw Menus
469 483
 //
484
+#define CASE_BACK          0
470 485
 
471 486
 #define MOTION_CASE_RATE   1
472 487
 #define MOTION_CASE_ACCEL  2
@@ -759,7 +774,7 @@ void Draw_Prepare_Menu() {
759 774
     #endif
760 775
   }
761 776
 
762
-  if (PVISI(0)) Draw_Back_First(select_prepare.now == 0);                         // < Back
777
+  if (PVISI(0)) Draw_Back_First(select_prepare.now == CASE_BACK);                 // < Back
763 778
   if (PVISI(PREPARE_CASE_MOVE)) Item_Prepare_Move(PSCROL(PREPARE_CASE_MOVE));     // Move >
764 779
   if (PVISI(PREPARE_CASE_DISA)) Item_Prepare_Disable(PSCROL(PREPARE_CASE_DISA));  // Disable Stepper
765 780
   if (PVISI(PREPARE_CASE_HOME)) Item_Prepare_Home(PSCROL(PREPARE_CASE_HOME));     // Auto Home
@@ -775,7 +790,7 @@ void Draw_Prepare_Menu() {
775 790
   #endif
776 791
   if (PVISI(PREPARE_CASE_LANG)) Item_Prepare_Lang(PSCROL(PREPARE_CASE_LANG));     // Language CN/EN
777 792
 
778
-  if (select_prepare.now) Draw_Menu_Cursor(PSCROL(select_prepare.now));
793
+  if (select_prepare.now != CASE_BACK) Draw_Menu_Cursor(PSCROL(select_prepare.now));
779 794
 }
780 795
 
781 796
 //
@@ -860,7 +875,7 @@ void Draw_Control_Menu() {
860 875
     #endif
861 876
   }
862 877
 
863
-  if (CVISI(0)) Draw_Back_First(select_control.now == 0);                       // < Back
878
+  if (CVISI(0)) Draw_Back_First(select_control.now == CASE_BACK);               // < Back
864 879
   if (CVISI(CONTROL_CASE_TEMP)) Item_Control_Temp(CSCROL(CONTROL_CASE_TEMP));   // Temperature >
865 880
   if (CVISI(CONTROL_CASE_MOVE)) Item_Control_Motion(CSCROL(CONTROL_CASE_MOVE)); // Motion >
866 881
 
@@ -897,7 +912,7 @@ void Draw_Control_Menu() {
897 912
   if (CVISI(CONTROL_CASE_ADVSET)) Item_Control_Advanced(CSCROL(CONTROL_CASE_ADVSET));
898 913
   if (CVISI(CONTROL_CASE_INFO)) Item_Control_Info(CSCROL(CONTROL_CASE_INFO));
899 914
 
900
-  if (select_control.now && CVISI(select_control.now))
915
+  if (select_control.now != CASE_BACK && CVISI(select_control.now))
901 916
     Draw_Menu_Cursor(CSCROL(select_control.now));
902 917
 
903 918
   // Draw icons and lines
@@ -977,8 +992,8 @@ void Draw_Tune_Menu() {
977 992
     #endif
978 993
   }
979 994
 
980
-  Draw_Back_First(select_tune.now == 0);
981
-  if (select_tune.now) Draw_Menu_Cursor(select_tune.now);
995
+  Draw_Back_First(select_tune.now == CASE_BACK);
996
+  if (select_tune.now != CASE_BACK) Draw_Menu_Cursor(select_tune.now);
982 997
 
983 998
   Draw_Menu_Line(TUNE_CASE_SPEED, ICON_Speed);
984 999
   Draw_Edit_Integer3(TUNE_CASE_SPEED, feedrate_percentage);
@@ -1042,8 +1057,8 @@ void Draw_Motion_Menu() {
1042 1057
     #endif
1043 1058
   }
1044 1059
 
1045
-  Draw_Back_First(select_motion.now == 0);
1046
-  if (select_motion.now) Draw_Menu_Cursor(select_motion.now);
1060
+  Draw_Back_First(select_motion.now == CASE_BACK);
1061
+  if (select_motion.now != CASE_BACK) Draw_Menu_Cursor(select_motion.now);
1047 1062
 
1048 1063
   uint8_t i = 0;
1049 1064
   #define _MOTION_ICON(N) Draw_Menu_Line(++i, ICON_MaxSpeed + (N) - 1)
@@ -1179,15 +1194,15 @@ void Popup_window_PauseOrStop() {
1179 1194
   Clear_Main_Window();
1180 1195
   Draw_Popup_Bkgd_60();
1181 1196
   if (HMI_IsChinese()) {
1182
-         if (select_print.now == 1) DWIN_Frame_AreaCopy(1, 237, 338, 269, 356, 98, 150);    // Pause
1183
-    else if (select_print.now == 2) DWIN_Frame_AreaCopy(1, 221, 320, 253, 336, 98, 150);    // Stop
1197
+         if (select_print.now == PRINT_PAUSE_RESUME) DWIN_Frame_AreaCopy(1, 237, 338, 269, 356, 98, 150);    // Pause
1198
+    else if (select_print.now == PRINT_STOP) DWIN_Frame_AreaCopy(1, 221, 320, 253, 336, 98, 150);    // Stop
1184 1199
     DWIN_Frame_AreaCopy(1, 220, 304, 264, 319, 130, 150); // Print
1185 1200
     DWIN_ICON_Show(ICON, ICON_Confirm_C, 26, 280);
1186 1201
     DWIN_ICON_Show(ICON, ICON_Cancel_C, 146, 280);
1187 1202
   }
1188 1203
   else {
1189
-         if (select_print.now == 1) DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 11) / 2, 150, GET_TEXT_F(MSG_PAUSE_PRINT));
1190
-    else if (select_print.now == 2) DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 10) / 2, 150, GET_TEXT_F(MSG_STOP_PRINT));
1204
+         if (select_print.now == PRINT_PAUSE_RESUME) DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 11) / 2, 150, GET_TEXT_F(MSG_PAUSE_PRINT));
1205
+    else if (select_print.now == PRINT_STOP) DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 10) / 2, 150, GET_TEXT_F(MSG_STOP_PRINT));
1191 1206
     DWIN_ICON_Show(ICON, ICON_Confirm_E, 26, 280);
1192 1207
     DWIN_ICON_Show(ICON, ICON_Cancel_E, 146, 280);
1193 1208
   }
@@ -1823,7 +1838,7 @@ void MarlinUI::refresh() { /* Nothing to see here */ }
1823 1838
 
1824 1839
   void Init_SDItem_Shift() {
1825 1840
     shift_amt = 0;
1826
-    shift_ms  = select_file.now > 0 && strlen(shift_name) > MENU_CHAR_LIMIT
1841
+    shift_ms  = select_file.now != CASE_BACK && strlen(shift_name) > MENU_CHAR_LIMIT
1827 1842
            ? millis() + 750UL : 0;
1828 1843
   }
1829 1844
 
@@ -2068,45 +2083,45 @@ void HMI_MainMenu() {
2068 2083
   if (encoder_diffState == ENCODER_DIFF_CW) {
2069 2084
     if (select_page.inc(4)) {
2070 2085
       switch (select_page.now) {
2071
-        case 0: ICON_Print(); break;
2072
-        case 1: ICON_Print(); ICON_Prepare(); break;
2073
-        case 2: ICON_Prepare(); ICON_Control(); break;
2074
-        case 3: ICON_Control(); TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break;
2086
+        case PAGE_PRINT: ICON_Print(); break;
2087
+        case PAGE_PREPARE: ICON_Print(); ICON_Prepare(); break;
2088
+        case PAGE_CONTROL: ICON_Prepare(); ICON_Control(); break;
2089
+        case PAGE_INFO_LEVELING: ICON_Control(); TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break;
2075 2090
       }
2076 2091
     }
2077 2092
   }
2078 2093
   else if (encoder_diffState == ENCODER_DIFF_CCW) {
2079 2094
     if (select_page.dec()) {
2080 2095
       switch (select_page.now) {
2081
-        case 0: ICON_Print(); ICON_Prepare(); break;
2082
-        case 1: ICON_Prepare(); ICON_Control(); break;
2083
-        case 2: ICON_Control(); TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break;
2084
-        case 3: TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break;
2096
+        case PAGE_PRINT: ICON_Print(); ICON_Prepare(); break;
2097
+        case PAGE_PREPARE: ICON_Prepare(); ICON_Control(); break;
2098
+        case PAGE_CONTROL: ICON_Control(); TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break;
2099
+        case PAGE_INFO_LEVELING: TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break;
2085 2100
       }
2086 2101
     }
2087 2102
   }
2088 2103
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
2089 2104
     switch (select_page.now) {
2090
-      case 0: // Print File
2105
+      case PAGE_PRINT:
2091 2106
         checkkey = SelectFile;
2092 2107
         Draw_Print_File_Menu();
2093 2108
         break;
2094 2109
 
2095
-      case 1: // Prepare
2110
+      case PAGE_PREPARE:
2096 2111
         checkkey = Prepare;
2097 2112
         select_prepare.reset();
2098 2113
         index_prepare = MROWS;
2099 2114
         Draw_Prepare_Menu();
2100 2115
         break;
2101 2116
 
2102
-      case 2: // Control
2117
+      case PAGE_CONTROL:
2103 2118
         checkkey = Control;
2104 2119
         select_control.reset();
2105 2120
         index_control = MROWS;
2106 2121
         Draw_Control_Menu();
2107 2122
         break;
2108 2123
 
2109
-      case 3: // Leveling or Info
2124
+      case PAGE_INFO_LEVELING:
2110 2125
         #if HAS_ONESTEP_LEVELING
2111 2126
           checkkey = Leveling;
2112 2127
           HMI_Leveling();
@@ -2196,7 +2211,7 @@ void HMI_SelectFile() {
2196 2211
     }
2197 2212
   }
2198 2213
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
2199
-    if (select_file.now == 0) { // Back
2214
+    if (select_file.now == CASE_BACK) { // Back
2200 2215
       select_page.set(0);
2201 2216
       Goto_MainMenu();
2202 2217
     }
@@ -2257,43 +2272,32 @@ void HMI_Printing() {
2257 2272
   if (encoder_diffState == ENCODER_DIFF_CW) {
2258 2273
     if (select_print.inc(3)) {
2259 2274
       switch (select_print.now) {
2260
-        case 0: ICON_Tune(); break;
2261
-        case 1:
2262
-          ICON_Tune();
2263
-          ICON_ResumeOrPause();
2264
-          break;
2265
-        case 2:
2266
-          ICON_ResumeOrPause();
2267
-          ICON_Stop();
2268
-          break;
2275
+        case PRINT_SETUP: ICON_Tune(); break;
2276
+        case PRINT_PAUSE_RESUME: ICON_Tune(); ICON_ResumeOrPause(); break;
2277
+        case PRINT_STOP: ICON_ResumeOrPause(); ICON_Stop(); break;
2269 2278
       }
2270 2279
     }
2271 2280
   }
2272 2281
   else if (encoder_diffState == ENCODER_DIFF_CCW) {
2273 2282
     if (select_print.dec()) {
2274 2283
       switch (select_print.now) {
2275
-        case 0:
2276
-          ICON_Tune();
2277
-          ICON_ResumeOrPause();
2278
-          break;
2279
-        case 1:
2280
-          ICON_ResumeOrPause();
2281
-          ICON_Stop();
2282
-          break;
2283
-        case 2: ICON_Stop(); break;
2284
+        case PRINT_SETUP: ICON_Tune(); ICON_ResumeOrPause(); break;
2285
+        case PRINT_PAUSE_RESUME: ICON_ResumeOrPause(); ICON_Stop(); break;
2286
+        case PRINT_STOP: ICON_Stop(); break;
2284 2287
       }
2285 2288
     }
2286 2289
   }
2287 2290
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
2288 2291
     switch (select_print.now) {
2289
-      case 0: // Tune
2292
+      case PRINT_SETUP:
2290 2293
         checkkey = Tune;
2291 2294
         HMI_ValueStruct.show_mode = 0;
2292 2295
         select_tune.reset();
2293 2296
         index_tune = MROWS;
2294 2297
         Draw_Tune_Menu();
2295 2298
         break;
2296
-      case 1: // Pause
2299
+
2300
+      case PRINT_PAUSE_RESUME:
2297 2301
         if (HMI_flag.pause_flag) {
2298 2302
           ICON_Pause();
2299 2303
 
@@ -2317,7 +2321,7 @@ void HMI_Printing() {
2317 2321
         }
2318 2322
         break;
2319 2323
 
2320
-      case 2: // Stop
2324
+      case PRINT_STOP:
2321 2325
         HMI_flag.select_flag = true;
2322 2326
         checkkey = Print_window;
2323 2327
         Popup_window_PauseOrStop();
@@ -2339,14 +2343,14 @@ void HMI_PauseOrStop() {
2339 2343
   else if (encoder_diffState == ENCODER_DIFF_CCW)
2340 2344
     Draw_Select_Highlight(true);
2341 2345
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
2342
-    if (select_print.now == 1) { // pause window
2346
+    if (select_print.now == PRINT_PAUSE_RESUME) {
2343 2347
       if (HMI_flag.select_flag) {
2344 2348
         HMI_flag.pause_action = true;
2345 2349
         queue.inject_P(PSTR("M25"));
2346 2350
       }
2347 2351
       Goto_PrintProcess();
2348 2352
     }
2349
-    else if (select_print.now == 2) { // stop window
2353
+    else if (select_print.now == PRINT_STOP) {
2350 2354
       if (HMI_flag.select_flag) {
2351 2355
         checkkey = Back_Main;
2352 2356
         wait_for_heatup = wait_for_user = false;       // Stop waiting for heating/user
@@ -2395,8 +2399,8 @@ void Draw_Move_Menu() {
2395 2399
     #endif
2396 2400
   }
2397 2401
 
2398
-  Draw_Back_First(select_axis.now == 0);
2399
-  if (select_axis.now) Draw_Menu_Cursor(select_axis.now);
2402
+  Draw_Back_First(select_axis.now == CASE_BACK);
2403
+  if (select_axis.now != CASE_BACK) Draw_Menu_Cursor(select_axis.now);
2400 2404
 
2401 2405
   // Draw separators and icons
2402 2406
   LOOP_L_N(i, 3 + ENABLED(HAS_HOTEND)) Draw_Menu_Line(i + 1, ICON_MoveX + i);
@@ -2506,7 +2510,7 @@ void Draw_AdvancedSettings_Menu() {
2506 2510
     #endif
2507 2511
   }
2508 2512
 
2509
-  if (AVISI(0)) Draw_Back_First(select_advset.now == 0);
2513
+  if (AVISI(0)) Draw_Back_First(select_advset.now == CASE_BACK);
2510 2514
   if (AVISI(ADVSET_CASE_HOMEOFF)) Item_Adv_HomeOffsets(ASCROL(ADVSET_CASE_HOMEOFF));      // Set Home Offsets >
2511 2515
   #if HAS_ONESTEP_LEVELING
2512 2516
     if (AVISI(ADVSET_CASE_PROBEOFF)) Item_Adv_ProbeOffsets(ASCROL(ADVSET_CASE_PROBEOFF)); // Probe Offsets >
@@ -2516,7 +2520,7 @@ void Draw_AdvancedSettings_Menu() {
2516 2520
   #if ENABLED(POWER_LOSS_RECOVERY)
2517 2521
     if (AVISI(ADVSET_CASE_PWRLOSSR)) Item_Adv_PLR(ASCROL(ADVSET_CASE_PWRLOSSR));          // Power-loss recovery
2518 2522
   #endif
2519
-  if (select_advset.now) Draw_Menu_Cursor(ASCROL(select_advset.now));
2523
+  if (select_advset.now != CASE_BACK) Draw_Menu_Cursor(ASCROL(select_advset.now));
2520 2524
 }
2521 2525
 
2522 2526
 void Item_HomeOffs_X(const uint8_t row) {
@@ -2576,18 +2580,18 @@ void Draw_HomeOff_Menu() {
2576 2580
       DWIN_Frame_TitleCopy(1, 401, 91, 12);         // "Home Offsets"
2577 2581
     #endif
2578 2582
   }
2579
-  Draw_Back_First(select_item.now == 0);
2583
+  Draw_Back_First(select_item.now == CASE_BACK);
2580 2584
   Item_HomeOffs_X(1);                               // "Home Offset X"
2581 2585
   Item_HomeOffs_Y(2);                               // "Home Offset Y"
2582 2586
   Item_HomeOffs_Z(3);                               // "Home Offset Z"
2583
-  if (select_item.now) Draw_Menu_Cursor(select_item.now);
2587
+  if (select_item.now != CASE_BACK) Draw_Menu_Cursor(select_item.now);
2584 2588
 }
2585 2589
 
2586 2590
 #if HAS_ONESTEP_LEVELING
2587 2591
 
2588 2592
   void Draw_ProbeOff_Menu() {
2589 2593
     Clear_Main_Window();
2590
-    Draw_Back_First(select_item.now == 0);
2594
+    Draw_Back_First(select_item.now == CASE_BACK);
2591 2595
     if (false && HMI_IsChinese()) {
2592 2596
       // TODO: Chinese "Probe Offsets"
2593 2597
     }
@@ -2609,7 +2613,7 @@ void Draw_HomeOff_Menu() {
2609 2613
     Draw_Edit_Signed_Float3(1, HMI_ValueStruct.Probe_OffX_scaled);
2610 2614
     Draw_Edit_Signed_Float3(2, HMI_ValueStruct.Probe_OffY_scaled);
2611 2615
 
2612
-    if (select_item.now) Draw_Menu_Cursor(select_item.now);
2616
+    if (select_item.now != CASE_BACK) Draw_Menu_Cursor(select_item.now);
2613 2617
   }
2614 2618
 #endif
2615 2619
 
@@ -2682,11 +2686,11 @@ void HMI_Prepare() {
2682 2686
   }
2683 2687
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
2684 2688
     switch (select_prepare.now) {
2685
-      case 0: // Back
2689
+      case CASE_BACK:
2686 2690
         select_page.set(1);
2687 2691
         Goto_MainMenu();
2688 2692
         break;
2689
-      case PREPARE_CASE_MOVE: // Axis move
2693
+      case PREPARE_CASE_MOVE:
2690 2694
         checkkey = AxisMove;
2691 2695
         select_axis.reset();
2692 2696
         Draw_Move_Menu();
@@ -2699,9 +2703,9 @@ void HMI_Prepare() {
2699 2703
           Draw_Edit_Signed_Float3(4, HMI_ValueStruct.Move_E_scaled);
2700 2704
         #endif
2701 2705
         break;
2702
-      case PREPARE_CASE_DISA: // Disable steppers
2703
-        queue.inject_P(PSTR("M84"));
2704
-        break;
2706
+
2707
+      case PREPARE_CASE_DISA: queue.inject_P(PSTR("M84")); break;
2708
+
2705 2709
       case PREPARE_CASE_HOME: // Homing
2706 2710
         checkkey = Last_Prepare;
2707 2711
         index_prepare = MROWS;
@@ -2709,7 +2713,7 @@ void HMI_Prepare() {
2709 2713
         Popup_Window_Home();
2710 2714
         break;
2711 2715
       #if HAS_ZOFFSET_ITEM
2712
-        case PREPARE_CASE_ZOFF: // Z-offset
2716
+        case PREPARE_CASE_ZOFF:
2713 2717
           #if EITHER(HAS_BED_PROBE, BABYSTEPPING)
2714 2718
             checkkey = Homeoffset;
2715 2719
             HMI_ValueStruct.show_mode = -4;
@@ -2724,24 +2728,24 @@ void HMI_Prepare() {
2724 2728
           break;
2725 2729
       #endif
2726 2730
       #if HAS_PREHEAT
2727
-        case PREPARE_CASE_PLA: // PLA preheat
2731
+        case PREPARE_CASE_PLA:
2728 2732
           TERN_(HAS_HOTEND, thermalManager.setTargetHotend(ui.material_preset[0].hotend_temp, 0));
2729 2733
           TERN_(HAS_HEATED_BED, thermalManager.setTargetBed(ui.material_preset[0].bed_temp));
2730 2734
           TERN_(HAS_FAN, thermalManager.set_fan_speed(0, ui.material_preset[0].fan_speed));
2731 2735
           break;
2732
-        case PREPARE_CASE_ABS: // ABS preheat
2736
+        case PREPARE_CASE_ABS:
2733 2737
           TERN_(HAS_HOTEND, thermalManager.setTargetHotend(ui.material_preset[1].hotend_temp, 0));
2734 2738
           TERN_(HAS_HEATED_BED, thermalManager.setTargetBed(ui.material_preset[1].bed_temp));
2735 2739
           TERN_(HAS_FAN, thermalManager.set_fan_speed(0, ui.material_preset[1].fan_speed));
2736 2740
           break;
2737
-        case PREPARE_CASE_COOL: // Cool
2741
+        case PREPARE_CASE_COOL:
2738 2742
           TERN_(HAS_FAN, thermalManager.zero_fan_speeds());
2739 2743
           #if HAS_HOTEND || HAS_HEATED_BED
2740 2744
             thermalManager.disable_all_heaters();
2741 2745
           #endif
2742 2746
           break;
2743 2747
       #endif
2744
-      case PREPARE_CASE_LANG: // Toggle Language
2748
+      case PREPARE_CASE_LANG:
2745 2749
         HMI_ToggleLanguage();
2746 2750
         Draw_Prepare_Menu();
2747 2751
         break;
@@ -2814,8 +2818,8 @@ void Draw_Temperature_Menu() {
2814 2818
     #endif
2815 2819
   }
2816 2820
 
2817
-  Draw_Back_First(select_temp.now == 0);
2818
-  if (select_temp.now) Draw_Menu_Cursor(select_temp.now);
2821
+  Draw_Back_First(select_temp.now == CASE_BACK);
2822
+  if (select_temp.now != CASE_BACK) Draw_Menu_Cursor(select_temp.now);
2819 2823
 
2820 2824
   // Draw icons and lines
2821 2825
   uint8_t i = 0;
@@ -2884,41 +2888,41 @@ void HMI_Control() {
2884 2888
   }
2885 2889
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
2886 2890
     switch (select_control.now) {
2887
-      case 0: // Back
2891
+      case CASE_BACK:
2888 2892
         select_page.set(2);
2889 2893
         Goto_MainMenu();
2890 2894
         break;
2891
-      case CONTROL_CASE_TEMP: // Temperature
2895
+      case CONTROL_CASE_TEMP:
2892 2896
         checkkey = TemperatureID;
2893 2897
         HMI_ValueStruct.show_mode = -1;
2894 2898
         select_temp.reset();
2895 2899
         Draw_Temperature_Menu();
2896 2900
         break;
2897
-      case CONTROL_CASE_MOVE: // Motion
2901
+      case CONTROL_CASE_MOVE:
2898 2902
         checkkey = Motion;
2899 2903
         select_motion.reset();
2900 2904
         Draw_Motion_Menu();
2901 2905
         break;
2902 2906
       #if ENABLED(EEPROM_SETTINGS)
2903
-        case CONTROL_CASE_SAVE: { // Write EEPROM
2907
+        case CONTROL_CASE_SAVE: {
2904 2908
           const bool success = settings.save();
2905 2909
           HMI_AudioFeedback(success);
2906 2910
         } break;
2907
-        case CONTROL_CASE_LOAD: { // Read EEPROM
2911
+        case CONTROL_CASE_LOAD: {
2908 2912
           const bool success = settings.load();
2909 2913
           HMI_AudioFeedback(success);
2910 2914
         } break;
2911
-        case CONTROL_CASE_RESET: // Reset EEPROM
2915
+        case CONTROL_CASE_RESET:
2912 2916
           settings.reset();
2913 2917
           HMI_AudioFeedback();
2914 2918
           break;
2915 2919
       #endif
2916
-      case CONTROL_CASE_ADVSET: // Advanced Settings
2920
+      case CONTROL_CASE_ADVSET:
2917 2921
         checkkey = AdvSet;
2918 2922
         select_advset.reset();
2919 2923
         Draw_AdvancedSettings_Menu();
2920 2924
         break;
2921
-      case CONTROL_CASE_INFO: // Info
2925
+      case CONTROL_CASE_INFO:
2922 2926
         checkkey = Info;
2923 2927
         Draw_Info_Menu();
2924 2928
         break;
@@ -2971,7 +2975,7 @@ void HMI_AxisMove() {
2971 2975
   }
2972 2976
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
2973 2977
     switch (select_axis.now) {
2974
-      case 0: // Back
2978
+      case CASE_BACK:
2975 2979
         checkkey = Prepare;
2976 2980
         select_prepare.set(1);
2977 2981
         index_prepare = MROWS;
@@ -2997,8 +3001,7 @@ void HMI_AxisMove() {
2997 3001
         break;
2998 3002
         #if HAS_HOTEND
2999 3003
           case 4: // Extruder
3000
-            // window tips
3001
-            #ifdef PREVENT_COLD_EXTRUSION
3004
+            #if ENABLED(PREVENT_COLD_EXTRUSION)
3002 3005
               if (thermalManager.tooColdToExtrude(0)) {
3003 3006
                 HMI_flag.ETempTooLow_flag = true;
3004 3007
                 Popup_Window_ETempTooLow();
@@ -3031,14 +3034,14 @@ void HMI_Temperature() {
3031 3034
   }
3032 3035
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
3033 3036
     switch (select_temp.now) {
3034
-      case 0: // Back
3037
+      case CASE_BACK:
3035 3038
         checkkey = Control;
3036 3039
         select_control.set(1);
3037 3040
         index_control = MROWS;
3038 3041
         Draw_Control_Menu();
3039 3042
         break;
3040 3043
       #if HAS_HOTEND
3041
-        case TEMP_CASE_TEMP: // Nozzle temperature
3044
+        case TEMP_CASE_TEMP:
3042 3045
           checkkey = ETemp;
3043 3046
           HMI_ValueStruct.E_Temp = thermalManager.degTargetHotend(0);
3044 3047
           Draw_Edit_Integer3(1, HMI_ValueStruct.E_Temp, true);
@@ -3046,7 +3049,7 @@ void HMI_Temperature() {
3046 3049
           break;
3047 3050
       #endif
3048 3051
       #if HAS_HEATED_BED
3049
-        case TEMP_CASE_BED: // Bed temperature
3052
+        case TEMP_CASE_BED:
3050 3053
           checkkey = BedTemp;
3051 3054
           HMI_ValueStruct.Bed_Temp = thermalManager.degTargetBed();
3052 3055
           Draw_Edit_Integer3(2, HMI_ValueStruct.Bed_Temp, true);
@@ -3054,7 +3057,7 @@ void HMI_Temperature() {
3054 3057
           break;
3055 3058
       #endif
3056 3059
       #if HAS_FAN
3057
-        case TEMP_CASE_FAN: // Fan speed
3060
+        case TEMP_CASE_FAN:
3058 3061
           checkkey = FanSpeed;
3059 3062
           HMI_ValueStruct.Fan_speed = thermalManager.fan_speed[0];
3060 3063
           Draw_Edit_Integer3(3, HMI_ValueStruct.Fan_speed, true);
@@ -3062,7 +3065,7 @@ void HMI_Temperature() {
3062 3065
           break;
3063 3066
       #endif
3064 3067
       #if HAS_HOTEND
3065
-        case TEMP_CASE_PLA: { // PLA preheat setting
3068
+        case TEMP_CASE_PLA: {
3066 3069
           checkkey = PLAPreheat;
3067 3070
           select_PLA.reset();
3068 3071
           HMI_ValueStruct.show_mode = -2;
@@ -3458,30 +3461,30 @@ void HMI_Motion() {
3458 3461
   }
3459 3462
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
3460 3463
     switch (select_motion.now) {
3461
-      case 0: // Back
3464
+      case CASE_BACK:
3462 3465
         checkkey = Control;
3463 3466
         select_control.set(CONTROL_CASE_MOVE);
3464 3467
         index_control = MROWS;
3465 3468
         Draw_Control_Menu();
3466 3469
         break;
3467
-      case MOTION_CASE_RATE:   // Max speed
3470
+      case MOTION_CASE_RATE:
3468 3471
         checkkey = MaxSpeed;
3469 3472
         select_speed.reset();
3470 3473
         Draw_Max_Speed_Menu();
3471 3474
         break;
3472
-      case MOTION_CASE_ACCEL:  // Max acceleration
3475
+      case MOTION_CASE_ACCEL:
3473 3476
         checkkey = MaxAcceleration;
3474 3477
         select_acc.reset();
3475 3478
         Draw_Max_Accel_Menu();
3476 3479
         break;
3477 3480
       #if HAS_CLASSIC_JERK
3478
-        case MOTION_CASE_JERK: // Max jerk
3481
+        case MOTION_CASE_JERK:
3479 3482
           checkkey = MaxJerk;
3480 3483
           select_jerk.reset();
3481 3484
           Draw_Max_Jerk_Menu();
3482 3485
          break;
3483 3486
       #endif
3484
-      case MOTION_CASE_STEPS:  // Steps per mm
3487
+      case MOTION_CASE_STEPS:
3485 3488
         checkkey = Step;
3486 3489
         select_step.reset();
3487 3490
         Draw_Steps_Menu();
@@ -3533,7 +3536,7 @@ void HMI_AdvSet() {
3533 3536
   }
3534 3537
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
3535 3538
     switch (select_advset.now) {
3536
-      case 0: // Back
3539
+      case CASE_BACK:
3537 3540
         checkkey = Control;
3538 3541
         select_control.set(CONTROL_CASE_ADVSET);
3539 3542
         index_control = CONTROL_CASE_ADVSET;
@@ -3541,7 +3544,7 @@ void HMI_AdvSet() {
3541 3544
         break;
3542 3545
 
3543 3546
       #if HAS_HOME_OFFSET
3544
-        case ADVSET_CASE_HOMEOFF:   // Home Offsets
3547
+        case ADVSET_CASE_HOMEOFF:
3545 3548
           checkkey = HomeOff;
3546 3549
           select_item.reset();
3547 3550
           HMI_ValueStruct.Home_OffX_scaled = home_offset[X_AXIS] * 10;
@@ -3552,7 +3555,7 @@ void HMI_AdvSet() {
3552 3555
       #endif
3553 3556
 
3554 3557
       #if HAS_ONESTEP_LEVELING
3555
-        case ADVSET_CASE_PROBEOFF:   // Probe Offsets
3558
+        case ADVSET_CASE_PROBEOFF:
3556 3559
           checkkey = ProbeOff;
3557 3560
           select_item.reset();
3558 3561
           HMI_ValueStruct.Probe_OffX_scaled = probe.offset.x * 10;
@@ -3562,21 +3565,21 @@ void HMI_AdvSet() {
3562 3565
       #endif
3563 3566
 
3564 3567
       #if HAS_HOTEND
3565
-        case ADVSET_CASE_HEPID:   // Nozzle PID Autotune
3568
+        case ADVSET_CASE_HEPID:
3566 3569
           thermalManager.setTargetHotend(ui.material_preset[0].hotend_temp, 0);
3567 3570
           thermalManager.PID_autotune(ui.material_preset[0].hotend_temp, H_E0, 10, true);
3568 3571
           break;
3569 3572
       #endif
3570 3573
 
3571 3574
       #if HAS_HEATED_BED
3572
-        case ADVSET_CASE_BEDPID:  // Bed PID Autotune
3575
+        case ADVSET_CASE_BEDPID:
3573 3576
           thermalManager.setTargetBed(ui.material_preset[0].bed_temp);
3574 3577
           thermalManager.PID_autotune(ui.material_preset[0].bed_temp, H_BED, 10, true);
3575 3578
           break;
3576 3579
       #endif
3577 3580
 
3578 3581
       #if ENABLED(POWER_LOSS_RECOVERY)
3579
-        case ADVSET_CASE_PWRLOSSR:  // Power-loss recovery
3582
+        case ADVSET_CASE_PWRLOSSR:
3580 3583
           recovery.enable(!recovery.enabled);
3581 3584
           Draw_Checkbox_Line(ADVSET_CASE_PWRLOSSR + MROWS - index_advset, recovery.enabled);
3582 3585
           break;
@@ -3603,7 +3606,7 @@ void HMI_AdvSet() {
3603 3606
     }
3604 3607
     else if (encoder_diffState == ENCODER_DIFF_ENTER) {
3605 3608
       switch (select_item.now) {
3606
-        case 0: // Back
3609
+        case CASE_BACK:
3607 3610
           checkkey = AdvSet;
3608 3611
           select_advset.set(ADVSET_CASE_HOMEOFF);
3609 3612
           Draw_AdvancedSettings_Menu();
@@ -3665,7 +3668,7 @@ void HMI_AdvSet() {
3665 3668
     }
3666 3669
     else if (encoder_diffState == ENCODER_DIFF_ENTER) {
3667 3670
       switch (select_item.now) {
3668
-        case 0: // Back
3671
+        case CASE_BACK:
3669 3672
           checkkey = AdvSet;
3670 3673
           select_advset.set(ADVSET_CASE_PROBEOFF);
3671 3674
           Draw_AdvancedSettings_Menu();
@@ -3675,7 +3678,7 @@ void HMI_AdvSet() {
3675 3678
           Draw_Edit_Signed_Float3(1, HMI_ValueStruct.Probe_OffX_scaled, true);
3676 3679
           EncoderRate.enabled = true;
3677 3680
           break;
3678
-        case 2: // Probe Offset X
3681
+        case 2: // Probe Offset Y
3679 3682
           checkkey = ProbeOffY;
3680 3683
           Draw_Edit_Signed_Float3(2, HMI_ValueStruct.Probe_OffY_scaled, true);
3681 3684
           EncoderRate.enabled = true;
@@ -3822,14 +3825,14 @@ void HMI_Tune() {
3822 3825
     }
3823 3826
     else if (encoder_diffState == ENCODER_DIFF_ENTER) {
3824 3827
       switch (select_PLA.now) {
3825
-        case 0: // Back
3828
+        case CASE_BACK:
3826 3829
           checkkey = TemperatureID;
3827 3830
           select_temp.now = TEMP_CASE_PLA;
3828 3831
           HMI_ValueStruct.show_mode = -1;
3829 3832
           Draw_Temperature_Menu();
3830 3833
           break;
3831 3834
         #if HAS_HOTEND
3832
-          case PREHEAT_CASE_TEMP: // Nozzle temperature
3835
+          case PREHEAT_CASE_TEMP:
3833 3836
             checkkey = ETemp;
3834 3837
             HMI_ValueStruct.E_Temp = ui.material_preset[0].hotend_temp;
3835 3838
             Draw_Edit_Integer3(PREHEAT_CASE_TEMP, ui.material_preset[0].hotend_temp, true);
@@ -3837,7 +3840,7 @@ void HMI_Tune() {
3837 3840
             break;
3838 3841
         #endif
3839 3842
         #if HAS_HEATED_BED
3840
-          case PREHEAT_CASE_BED: // Bed temperature
3843
+          case PREHEAT_CASE_BED:
3841 3844
             checkkey = BedTemp;
3842 3845
             HMI_ValueStruct.Bed_Temp = ui.material_preset[0].bed_temp;
3843 3846
             Draw_Edit_Integer3(PREHEAT_CASE_BED, ui.material_preset[0].bed_temp, true);
@@ -3845,7 +3848,7 @@ void HMI_Tune() {
3845 3848
             break;
3846 3849
         #endif
3847 3850
         #if HAS_FAN
3848
-          case PREHEAT_CASE_FAN: // Fan speed
3851
+          case PREHEAT_CASE_FAN:
3849 3852
             checkkey = FanSpeed;
3850 3853
             HMI_ValueStruct.Fan_speed = ui.material_preset[0].fan_speed;
3851 3854
             Draw_Edit_Integer3(PREHEAT_CASE_FAN, ui.material_preset[0].fan_speed, true);
@@ -3853,7 +3856,7 @@ void HMI_Tune() {
3853 3856
             break;
3854 3857
         #endif
3855 3858
         #if ENABLED(EEPROM_SETTINGS)
3856
-          case 4: { // Save PLA configuration
3859
+          case PREHEAT_CASE_SAVE: {
3857 3860
             const bool success = settings.save();
3858 3861
             HMI_AudioFeedback(success);
3859 3862
           } break;
@@ -3878,14 +3881,14 @@ void HMI_Tune() {
3878 3881
     }
3879 3882
     else if (encoder_diffState == ENCODER_DIFF_ENTER) {
3880 3883
       switch (select_ABS.now) {
3881
-        case 0: // Back
3884
+        case CASE_BACK:
3882 3885
           checkkey = TemperatureID;
3883 3886
           select_temp.now = TEMP_CASE_ABS;
3884 3887
           HMI_ValueStruct.show_mode = -1;
3885 3888
           Draw_Temperature_Menu();
3886 3889
           break;
3887 3890
         #if HAS_HOTEND
3888
-          case PREHEAT_CASE_TEMP: // Set nozzle temperature
3891
+          case PREHEAT_CASE_TEMP:
3889 3892
             checkkey = ETemp;
3890 3893
             HMI_ValueStruct.E_Temp = ui.material_preset[1].hotend_temp;
3891 3894
             Draw_Edit_Integer3(PREHEAT_CASE_TEMP, ui.material_preset[1].hotend_temp, true);
@@ -3893,7 +3896,7 @@ void HMI_Tune() {
3893 3896
             break;
3894 3897
         #endif
3895 3898
         #if HAS_HEATED_BED
3896
-          case PREHEAT_CASE_BED: // Set bed temperature
3899
+          case PREHEAT_CASE_BED:
3897 3900
             checkkey = BedTemp;
3898 3901
             HMI_ValueStruct.Bed_Temp = ui.material_preset[1].bed_temp;
3899 3902
             Draw_Edit_Integer3(PREHEAT_CASE_BED, ui.material_preset[1].bed_temp, true);
@@ -3901,7 +3904,7 @@ void HMI_Tune() {
3901 3904
             break;
3902 3905
         #endif
3903 3906
         #if HAS_FAN
3904
-          case PREHEAT_CASE_FAN: // Set fan speed
3907
+          case PREHEAT_CASE_FAN:
3905 3908
             checkkey = FanSpeed;
3906 3909
             HMI_ValueStruct.Fan_speed = ui.material_preset[1].fan_speed;
3907 3910
             Draw_Edit_Integer3(PREHEAT_CASE_FAN, ui.material_preset[1].fan_speed, true);
@@ -3909,7 +3912,7 @@ void HMI_Tune() {
3909 3912
             break;
3910 3913
         #endif
3911 3914
         #if ENABLED(EEPROM_SETTINGS)
3912
-          case PREHEAT_CASE_SAVE: { // Save ABS configuration
3915
+          case PREHEAT_CASE_SAVE: {
3913 3916
             const bool success = settings.save();
3914 3917
             HMI_AudioFeedback(success);
3915 3918
           } break;

+ 0
- 3
Marlin/src/lcd/e3v2/creality/dwin_lcd.h Visa fil

@@ -31,9 +31,6 @@
31 31
 
32 32
 #include <stdint.h>
33 33
 
34
-//#define USE_STRING_HEADINGS
35
-//#define USE_STRING_TITLES
36
-
37 34
 #define RECEIVED_NO_DATA         0x00
38 35
 #define RECEIVED_SHAKE_HAND_ACK  0x01
39 36
 

+ 149
- 191
Marlin/src/lcd/e3v2/enhanced/dwin.cpp Visa fil

@@ -86,9 +86,6 @@
86 86
 
87 87
 #define PAUSE_HEAT
88 88
 
89
-#define USE_STRING_HEADINGS
90
-#define USE_STRING_TITLES
91
-
92 89
 #define MENU_CHAR_LIMIT  24
93 90
 
94 91
 // Print speed limit
@@ -133,8 +130,20 @@ HMI_data_t HMI_data;
133 130
 
134 131
 millis_t dwin_heat_time = 0;
135 132
 
136
-uint8_t checkkey = MainMenu;
137
-uint8_t last_checkkey = MainMenu;
133
+uint8_t checkkey = MainMenu, last_checkkey = MainMenu;
134
+
135
+enum SelectItem : uint8_t {
136
+  PAGE_PRINT = 0,
137
+  PAGE_PREPARE,
138
+  PAGE_CONTROL,
139
+  PAGE_INFO_LEVELING,
140
+  PAGE_COUNT,
141
+
142
+  PRINT_SETUP = 0,
143
+  PRINT_PAUSE_RESUME,
144
+  PRINT_STOP,
145
+  PRINT_COUNT
146
+};
138 147
 
139 148
 typedef struct {
140 149
   uint8_t now, last;
@@ -266,7 +275,7 @@ void ICON_Print() {
266 275
     { 1, { 417, 449 }, 30, 14 },
267 276
     { 1, { 405, 447 }, 27, 15 }
268 277
   };
269
-  ICON_Button(select_page.now == 0, ICON_Print_0, ico, txt);
278
+  ICON_Button(select_page.now == PAGE_PRINT, ICON_Print_0, ico, txt);
270 279
 }
271 280
 
272 281
 //
@@ -278,7 +287,7 @@ void ICON_Prepare() {
278 287
     { 33, { 417, 449 }, 51, 14 },
279 288
     { 31, { 405, 447 }, 27, 15 }
280 289
   };
281
-  ICON_Button(select_page.now == 1, ICON_Prepare_0, ico, txt);
290
+  ICON_Button(select_page.now == PAGE_PREPARE, ICON_Prepare_0, ico, txt);
282 291
 }
283 292
 
284 293
 //
@@ -290,7 +299,7 @@ void ICON_Control() {
290 299
     { 85, { 417, 449 }, 46, 14 },
291 300
     { 61, { 405, 447 }, 27, 15 }
292 301
   };
293
-  ICON_Button(select_page.now == 2, ICON_Control_0, ico, txt);
302
+  ICON_Button(select_page.now == PAGE_CONTROL, ICON_Control_0, ico, txt);
294 303
 }
295 304
 
296 305
 //
@@ -302,7 +311,7 @@ void ICON_StartInfo() {
302 311
     { 133, { 417, 449 }, 23, 14 },
303 312
     {  91, { 405, 447 }, 27, 15 }
304 313
   };
305
-  ICON_Button(select_page.now == 3, ICON_Info_0, ico, txt);
314
+  ICON_Button(select_page.now == PAGE_INFO_LEVELING, ICON_Info_0, ico, txt);
306 315
 }
307 316
 
308 317
 //
@@ -314,7 +323,7 @@ void ICON_Leveling() {
314 323
     {  88, { 433, 464 }, 36, 14 },
315 324
     { 211, { 405, 447 }, 27, 15 }
316 325
   };
317
-  ICON_Button(select_page.now == 3, ICON_Leveling_0, ico, txt);
326
+  ICON_Button(select_page.now == PAGE_INFO_LEVELING, ICON_Leveling_0, ico, txt);
318 327
 }
319 328
 
320 329
 //
@@ -326,7 +335,7 @@ void ICON_Tune() {
326 335
     {   0, { 433, 464 }, 32, 14 },
327 336
     { 121, { 405, 447 }, 27, 15 }
328 337
   };
329
-  ICON_Button(select_print.now == 0, ICON_Setup_0, ico, txt);
338
+  ICON_Button(select_print.now == PRINT_SETUP, ICON_Setup_0, ico, txt);
330 339
 }
331 340
 
332 341
 //
@@ -338,7 +347,7 @@ void ICON_Pause() {
338 347
     { 157, { 417, 449 }, 39, 14 },
339 348
     { 181, { 405, 447 }, 27, 15 }
340 349
   };
341
-  ICON_Button(select_print.now == 1, ICON_Pause_0, ico, txt);
350
+  ICON_Button(select_print.now == PRINT_PAUSE_RESUME, ICON_Pause_0, ico, txt);
342 351
 }
343 352
 
344 353
 //
@@ -350,7 +359,7 @@ void ICON_Resume() {
350 359
     { 33, { 433, 464 }, 53, 14 },
351 360
     {  1, { 405, 447 }, 27, 15 }
352 361
   };
353
-  ICON_Button(select_print.now == 1, ICON_Continue_0, ico, txt);
362
+  ICON_Button(select_print.now == PRINT_PAUSE_RESUME, ICON_Continue_0, ico, txt);
354 363
 }
355 364
 
356 365
 //
@@ -362,7 +371,7 @@ void ICON_Stop() {
362 371
     { 196, { 417, 449 }, 29, 14 },
363 372
     { 151, { 405, 447 }, 27, 12 }
364 373
   };
365
-  ICON_Button(select_print.now == 2, ICON_Stop_0, ico, txt);
374
+  ICON_Button(select_print.now == PRINT_STOP, ICON_Stop_0, ico, txt);
366 375
 }
367 376
 
368 377
 void Draw_Menu_Cursor(const uint8_t line) {
@@ -537,14 +546,14 @@ void Popup_window_PauseOrStop() {
537 546
   if (HMI_IsChinese()) {
538 547
     DWINUI::ClearMenuArea();
539 548
     Draw_Popup_Bkgd_60();
540
-         if (select_print.now == 1) DWIN_Frame_AreaCopy(1, 237, 338, 269, 356, 98, 150);
541
-    else if (select_print.now == 2) DWIN_Frame_AreaCopy(1, 221, 320, 253, 336, 98, 150);
549
+         if (select_print.now == PRINT_PAUSE_RESUME) DWIN_Frame_AreaCopy(1, 237, 338, 269, 356, 98, 150);
550
+    else if (select_print.now == PRINT_STOP) DWIN_Frame_AreaCopy(1, 221, 320, 253, 336, 98, 150);
542 551
     DWIN_Frame_AreaCopy(1, 220, 304, 264, 319, 130, 150);
543 552
     DWINUI::Draw_Icon(ICON_Confirm_C, 26, 280);
544 553
     DWINUI::Draw_Icon(ICON_Cancel_C, 146, 280);
545 554
   }
546 555
   else {
547
-    DWIN_Draw_Popup(ICON_BLTouch, "Please confirm",(select_print.now == 1) ? GET_TEXT(MSG_PAUSE_PRINT) : GET_TEXT(MSG_STOP_PRINT));
556
+    DWIN_Draw_Popup(ICON_BLTouch, "Please confirm", select_print.now == PRINT_PAUSE_RESUME ? GET_TEXT(MSG_PAUSE_PRINT) : GET_TEXT(MSG_STOP_PRINT));
548 557
     DWINUI::Draw_Icon(ICON_Confirm_E, 26, 280);
549 558
     DWINUI::Draw_Icon(ICON_Cancel_E, 146, 280);
550 559
   }
@@ -589,16 +598,9 @@ void Draw_Print_Labels() {
589 598
     DWIN_Frame_AreaCopy(1, 65, 72, 128, 86, 176, 173);  // Remain
590 599
   }
591 600
   else {
592
-    #ifdef USE_STRING_TITLES
593
-      Title.ShowCaption(GET_TEXT(MSG_PRINTING));
594
-      DWINUI::Draw_String( 46, 173, F("Print Time"));
595
-      DWINUI::Draw_String(181, 173, F("Remain"));
596
-    #else
597
-      const uint16_t y = 168;
598
-      Title.FrameCopy(42, 0, 47, 14);                   // "Printing"
599
-      DWIN_Frame_AreaCopy(1,  0, 44,  96, 58,  41, y);  // Printing Time
600
-      DWIN_Frame_AreaCopy(1, 98, 44, 152, 58, 176, y);  // Remain
601
-    #endif
601
+    Title.ShowCaption(GET_TEXT(MSG_PRINTING));
602
+    DWINUI::Draw_String( 46, 173, F("Print Time"));
603
+    DWINUI::Draw_String(181, 173, F("Remain"));
602 604
   }
603 605
 }
604 606
 
@@ -678,13 +680,8 @@ void Draw_Main_Menu() {
678 680
 
679 681
   if (HMI_IsChinese())
680 682
     Title.FrameCopy(2, 2, 26, 13);   // "Home" etc
681
-  else {
682
-    #ifdef USE_STRING_HEADINGS
683
-      Title.ShowCaption(MACHINE_NAME);
684
-    #else
685
-      Title.FrameCopy(0, 2, 40, 11); // "Home"
686
-    #endif
687
-  }
683
+  else
684
+    Title.ShowCaption(MACHINE_NAME);
688 685
 
689 686
   DWINUI::Draw_Icon(ICON_LOGO, 71, 52);  // CREALITY logo
690 687
 
@@ -1075,11 +1072,7 @@ void Draw_Info_Menu() {
1075 1072
     DWIN_Frame_AreaCopy(1,  58, 164, 113, 176, 105, 248);   // "Contact Details"
1076 1073
   }
1077 1074
   else {
1078
-    #ifdef USE_STRING_HEADINGS
1079
-      Title.ShowCaption(GET_TEXT_F(MSG_INFO_SCREEN));
1080
-    #else
1081
-      Title.FrameCopy(192, 15, 23, 12);                     // "Info"
1082
-    #endif
1075
+    Title.ShowCaption(GET_TEXT_F(MSG_INFO_SCREEN));
1083 1076
 
1084 1077
     DWIN_Frame_AreaCopy(1, 120, 150, 146, 161, 124, 102);   // "Size"
1085 1078
     DWIN_Frame_AreaCopy(1, 146, 151, 254, 161,  82, 175);   // "Firmware Version"
@@ -1098,13 +1091,8 @@ void Draw_Info_Menu() {
1098 1091
 void Draw_Print_File_Menu() {
1099 1092
   if (HMI_IsChinese())
1100 1093
     Title.FrameCopy(0, 31, 56, 14);    // "Print file"
1101
-  else {
1102
-    #ifdef USE_STRING_HEADINGS
1103
-      Title.ShowCaption(GET_TEXT_F(MSG_MEDIA_MENU));
1104
-    #else
1105
-      Title.FrameCopy(52, 31, 86, 11); // "Print file"
1106
-    #endif
1107
-  }
1094
+  else
1095
+    Title.ShowCaption(GET_TEXT_F(MSG_MEDIA_MENU));
1108 1096
   Redraw_SD_List();
1109 1097
 }
1110 1098
 
@@ -1114,43 +1102,39 @@ void HMI_MainMenu() {
1114 1102
   if (encoder_diffState == ENCODER_DIFF_NO) return;
1115 1103
 
1116 1104
   if (encoder_diffState == ENCODER_DIFF_CW) {
1117
-    if (select_page.inc(4)) {
1105
+    if (select_page.inc(PAGE_COUNT)) {
1118 1106
       switch (select_page.now) {
1119
-        case 0: ICON_Print(); break;
1120
-        case 1: ICON_Print(); ICON_Prepare(); break;
1121
-        case 2: ICON_Prepare(); ICON_Control(); break;
1122
-        case 3: ICON_Control(); TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break;
1107
+        case PAGE_PRINT: ICON_Print(); break;
1108
+        case PAGE_PREPARE: ICON_Print(); ICON_Prepare(); break;
1109
+        case PAGE_CONTROL: ICON_Prepare(); ICON_Control(); break;
1110
+        case PAGE_INFO_LEVELING: ICON_Control(); TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break;
1123 1111
       }
1124 1112
     }
1125 1113
   }
1126 1114
   else if (encoder_diffState == ENCODER_DIFF_CCW) {
1127 1115
     if (select_page.dec()) {
1128 1116
       switch (select_page.now) {
1129
-        case 0: ICON_Print(); ICON_Prepare(); break;
1130
-        case 1: ICON_Prepare(); ICON_Control(); break;
1131
-        case 2: ICON_Control(); TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break;
1132
-        case 3: TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break;
1117
+        case PAGE_PRINT: ICON_Print(); ICON_Prepare(); break;
1118
+        case PAGE_PREPARE: ICON_Prepare(); ICON_Control(); break;
1119
+        case PAGE_CONTROL: ICON_Control(); TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break;
1120
+        case PAGE_INFO_LEVELING: TERN(HAS_ONESTEP_LEVELING, ICON_Leveling, ICON_StartInfo)(); break;
1133 1121
       }
1134 1122
     }
1135 1123
   }
1136 1124
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
1137 1125
     switch (select_page.now) {
1138
-      case 0: // Print File
1126
+      case PAGE_PRINT:
1139 1127
         checkkey = SelectFile;
1140 1128
         Draw_Print_File_Menu();
1141 1129
         break;
1142 1130
 
1143
-      case 1: // Prepare
1144
-        Draw_Prepare_Menu();
1145
-        break;
1131
+      case PAGE_PREPARE: Draw_Prepare_Menu(); break;
1146 1132
 
1147
-      case 2: // Control
1148
-        Draw_Control_Menu();
1149
-        break;
1133
+      case PAGE_CONTROL: Draw_Control_Menu(); break;
1150 1134
 
1151
-      case 3: // Leveling or Info
1135
+      case PAGE_INFO_LEVELING:
1152 1136
         #if HAS_ONESTEP_LEVELING
1153
-          queue.inject_P(PSTR("G28XYO\nG28Z\nG29"));
1137
+          queue.inject_P(PSTR("G28XYO\nG28Z\nG29"));  // TODO: 'G29' should be homing when needed. Does it make sense for every LCD to do this differently?
1154 1138
         #else
1155 1139
           checkkey = Info;
1156 1140
           Draw_Info_Menu();
@@ -1238,8 +1222,8 @@ void HMI_SelectFile() {
1238 1222
     }
1239 1223
   }
1240 1224
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
1241
-    if (select_file.now == 0) { // Back
1242
-      select_page.set(0);
1225
+    if (select_file.now == 0) {
1226
+      select_page.set(PAGE_PRINT);
1243 1227
       Goto_Main_Menu();
1244 1228
     }
1245 1229
     else if (hasUpDir && select_file.now == 1) { // CD-Up
@@ -1276,7 +1260,8 @@ void HMI_SelectFile() {
1276 1260
       DWIN_Print_Started(true);
1277 1261
     }
1278 1262
   }
1279
-HMI_SelectFileExit:
1263
+
1264
+  HMI_SelectFileExit:
1280 1265
   DWIN_UpdateLCD();
1281 1266
 }
1282 1267
 
@@ -1286,44 +1271,30 @@ void HMI_Printing() {
1286 1271
   if (encoder_diffState == ENCODER_DIFF_NO) return;
1287 1272
   // Avoid flicker by updating only the previous menu
1288 1273
   if (encoder_diffState == ENCODER_DIFF_CW) {
1289
-    if (select_print.inc(3)) {
1274
+    if (select_print.inc(PRINT_COUNT)) {
1290 1275
       switch (select_print.now) {
1291
-        case 0: ICON_Tune(); break;
1292
-        case 1:
1293
-          ICON_Tune();
1294
-          ICON_ResumeOrPause();
1295
-          break;
1296
-        case 2:
1297
-          ICON_ResumeOrPause();
1298
-          ICON_Stop();
1299
-          break;
1276
+        case PRINT_SETUP: ICON_Tune(); break;
1277
+        case PRINT_PAUSE_RESUME: ICON_Tune(); ICON_ResumeOrPause(); break;
1278
+        case PRINT_STOP: ICON_ResumeOrPause(); ICON_Stop(); break;
1300 1279
       }
1301 1280
     }
1302 1281
   }
1303 1282
   else if (encoder_diffState == ENCODER_DIFF_CCW) {
1304 1283
     if (select_print.dec()) {
1305 1284
       switch (select_print.now) {
1306
-        case 0:
1307
-          ICON_Tune();
1308
-          ICON_ResumeOrPause();
1309
-          break;
1310
-        case 1:
1311
-          ICON_ResumeOrPause();
1312
-          ICON_Stop();
1313
-          break;
1314
-        case 2: ICON_Stop(); break;
1285
+        case PRINT_SETUP: ICON_Tune(); ICON_ResumeOrPause(); break;
1286
+        case PRINT_PAUSE_RESUME: ICON_ResumeOrPause(); ICON_Stop(); break;
1287
+        case PRINT_STOP: ICON_Stop(); break;
1315 1288
       }
1316 1289
     }
1317 1290
   }
1318 1291
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
1319 1292
     switch (select_print.now) {
1320
-      case 0: // Tune
1321
-        Draw_Tune_Menu();
1322
-        break;
1323
-      case 1: // Pause
1293
+      case PRINT_SETUP: Draw_Tune_Menu(); break;
1294
+      case PRINT_PAUSE_RESUME:
1324 1295
         if (HMI_flag.pause_flag) {
1325 1296
           ICON_Pause();
1326
-          #ifndef ADVANCED_PAUSE_FEATURE
1297
+          #if DISABLED(ADVANCED_PAUSE_FEATURE)
1327 1298
             char cmd[40];
1328 1299
             cmd[0] = '\0';
1329 1300
             #if BOTH(HAS_HEATED_BED, PAUSE_HEAT)
@@ -1346,7 +1317,7 @@ void HMI_Printing() {
1346 1317
         }
1347 1318
         break;
1348 1319
 
1349
-      case 2: // Stop
1320
+      case PRINT_STOP:
1350 1321
         HMI_flag.select_flag = true;
1351 1322
         checkkey = PauseOrStop;
1352 1323
         Popup_window_PauseOrStop();
@@ -1378,7 +1349,7 @@ void HMI_PauseOrStop() {
1378 1349
   else if (encoder_diffState == ENCODER_DIFF_CCW)
1379 1350
     Draw_Select_Highlight(true);
1380 1351
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
1381
-    if (select_print.now == 1) { // pause window
1352
+    if (select_print.now == PRINT_PAUSE_RESUME) {
1382 1353
       if (HMI_flag.select_flag) {
1383 1354
         HMI_flag.pause_action = true;
1384 1355
         ICON_Resume();
@@ -1389,7 +1360,7 @@ void HMI_PauseOrStop() {
1389 1360
       }
1390 1361
       Goto_PrintProcess();
1391 1362
     }
1392
-    else if (select_print.now == 2) { // stop window
1363
+    else if (select_print.now == PRINT_STOP) {
1393 1364
       if (HMI_flag.select_flag) {
1394 1365
         checkkey = MainMenu;
1395 1366
         if (HMI_flag.home_flag) planner.synchronize(); // Wait for planner moves to finish!
@@ -1511,22 +1482,12 @@ void EachMomentUpdate() {
1511 1482
   if (HMI_flag.pause_action && printingIsPaused() && !planner.has_blocks_queued()) {
1512 1483
     HMI_flag.pause_action = false;
1513 1484
     #if ENABLED(PAUSE_HEAT)
1514
-      if (sdprint) {
1515
-        TERN_(HAS_HOTEND, resume_hotend_temp = thermalManager.degTargetHotend(0));
1516
-        TERN_(HAS_HEATED_BED, resume_bed_temp = thermalManager.degTargetBed());
1517
-      }
1518
-      else {
1519
-        TERN_(HAS_HOTEND, resume_hotend_temp = thermalManager.wholeDegHotend(0));
1520
-        TERN_(HAS_HEATED_BED, resume_bed_temp = thermalManager.wholeDegBed());
1521
-      }
1485
+      TERN_(HAS_HOTEND, resume_hotend_temp = sdprint ? thermalManager.degTargetHotend(0) : thermalManager.wholeDegHotend(0));
1486
+      TERN_(HAS_HEATED_BED, resume_bed_temp = sdprint ? thermalManager.degTargetBed() : thermalManager.wholeDegBed());
1522 1487
       TERN_(HAS_FAN, resume_fan = thermalManager.fan_speed[0]);
1523 1488
     #endif
1524
-    #if DISABLED(ADVANCED_PAUSE_FEATURE)
1525
-      thermalManager.disable_all_heaters();
1526
-    #endif
1527
-    #if DISABLED(PARK_HEAD_ON_PAUSE)
1528
-      queue.inject_P(PSTR("G1 F1200 X0 Y0"));
1529
-	#endif
1489
+    IF_DISABLED(ADVANCED_PAUSE_FEATURE, thermalManager.disable_all_heaters());
1490
+    IF_DISABLED(PARK_HEAD_ON_PAUSE, queue.inject_P(PSTR("G1 F1200 X0 Y0")));
1530 1491
   }
1531 1492
 
1532 1493
   if (checkkey == PrintProcess) { // print process
@@ -1565,7 +1526,7 @@ void EachMomentUpdate() {
1565 1526
   else if (dwin_abort_flag && !HMI_flag.home_flag) { // Print Stop
1566 1527
     dwin_abort_flag = false;
1567 1528
     dwin_zoffset = BABY_Z_VAR;
1568
-    select_page.set(0);
1529
+    select_page.set(PAGE_PRINT);
1569 1530
     Goto_Main_Menu();
1570 1531
   }
1571 1532
 
@@ -1615,7 +1576,7 @@ void EachMomentUpdate() {
1615 1576
         watchdog_refresh();
1616 1577
       }
1617 1578
 
1618
-      select_print.set(0);
1579
+      select_print.set(PRINT_SETUP);
1619 1580
       queue.inject_P(PSTR("M1000"));
1620 1581
       sdprint = true;
1621 1582
       Goto_PrintProcess();
@@ -1735,7 +1696,6 @@ void DWIN_PidTuning(pidresult_t result) {
1735 1696
 
1736 1697
 // Update filename on print
1737 1698
 void DWIN_Print_Header(const char *text = nullptr) {
1738
-
1739 1699
   static char headertxt[31] = "";  // Print header text
1740 1700
 
1741 1701
   if (text != nullptr) {
@@ -1917,6 +1877,7 @@ void DWIN_Redraw_screen() {
1917 1877
     DWINUI::Draw_Icon(ICON_Confirm_E, 26, 280);
1918 1878
     DWINUI::Draw_Icon(ICON_Continue_E, 146, 280);
1919 1879
     Draw_Select_Highlight(true);
1880
+    DWIN_UpdateLCD();
1920 1881
   }
1921 1882
 
1922 1883
   // Handle responses such as:
@@ -1981,7 +1942,6 @@ void DWIN_LockScreen(const bool flag) {
1981 1942
 //  LiveUpdate: live update function when the encoder changes
1982 1943
 //  Apply: update function when the encoder is pressed
1983 1944
 void SetOnClick(uint8_t process, const int32_t lo, const int32_t hi, uint8_t dp, const int32_t val, void (*Apply)() = nullptr, void (*LiveUpdate)() = nullptr) {
1984
-  last_checkkey = Menu;
1985 1945
   checkkey = process;
1986 1946
   HMI_value.MinValue = lo;
1987 1947
   HMI_value.MaxValue = hi;
@@ -2092,13 +2052,9 @@ void Goto_InfoMenu(){
2092 2052
   Draw_Info_Menu();
2093 2053
 }
2094 2054
 
2095
-void DisableMotors() {
2096
-  queue.inject_P(PSTR("M84"));
2097
-}
2055
+void DisableMotors() { queue.inject_P(PSTR("M84")); }
2098 2056
 
2099
-void AutoHome() {
2100
-  queue.inject_P(G28_STR);
2101
-}
2057
+void AutoHome() { queue.inject_P(G28_STR); }
2102 2058
 
2103 2059
 void SetHome() {
2104 2060
   // Apply workspace offset, making the current position 0,0,0
@@ -2116,9 +2072,11 @@ void SetHome() {
2116 2072
       if (BABYSTEP_ALLOWED()) babystep.add_mm(Z_AXIS, dwin_zoffset - last_zoffset);
2117 2073
     #endif
2118 2074
   }
2119
-    #if EITHER(HAS_BED_PROBE, BABYSTEPPING)
2120
-    void SetZOffset() { SetPFloatOnClick(Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX, 2, ApplyZOffset, LiveZOffset); }
2121
-    #endif
2075
+  #if EITHER(HAS_BED_PROBE, BABYSTEPPING)
2076
+    void SetZOffset() {
2077
+      SetPFloatOnClick(Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX, 2, ApplyZOffset, LiveZOffset);
2078
+    }
2079
+  #endif
2122 2080
 #endif
2123 2081
 
2124 2082
 #if HAS_PREHEAT
@@ -2233,9 +2191,7 @@ void SetPID(celsius_t t, heater_id_t h) {
2233 2191
   }
2234 2192
 #endif
2235 2193
 
2236
-void Goto_LockScreen() {
2237
-  DWIN_LockScreen(true);
2238
-}
2194
+void Goto_LockScreen() { DWIN_LockScreen(true); }
2239 2195
 
2240 2196
 #if HAS_HOME_OFFSET
2241 2197
   void ApplyHomeOffset() { set_home_offset(HMI_value.axis, HMI_value.Value / MINUNITMULT); }
@@ -2327,6 +2283,7 @@ void SetSpeed() { SetPIntOnClick(MIN_PRINT_SPEED, MAX_PRINT_SPEED); }
2327 2283
 #endif
2328 2284
 
2329 2285
 #if ENABLED(ADVANCED_PAUSE_FEATURE)
2286
+
2330 2287
   void ChangeFilament() {
2331 2288
     HMI_SaveProcessID(NothingToDo);
2332 2289
     queue.inject_P(PSTR("M600 B2"));
@@ -2348,7 +2305,8 @@ void SetSpeed() { SetPIntOnClick(MIN_PRINT_SPEED, MAX_PRINT_SPEED); }
2348 2305
       queue.inject_P(PSTR("M701 Z20"));
2349 2306
     }
2350 2307
   #endif
2351
-#endif
2308
+
2309
+#endif // ADVANCED_PAUSE_FEATURE
2352 2310
 
2353 2311
 void SetFlow() { SetPIntOnClick(MIN_PRINT_FLOW, MAX_PRINT_FLOW); }
2354 2312
 
@@ -2414,6 +2372,7 @@ void LevBedBL() { LevBed(3); }
2414 2372
 void LevBedC () { LevBed(4); }
2415 2373
 
2416 2374
 #if ENABLED(MESH_BED_LEVELING)
2375
+
2417 2376
   void ManualMeshStart(){
2418 2377
     ui.set_status_P(GET_TEXT(MSG_UBL_BUILD_MESH_MENU));
2419 2378
     gcode.process_subcommands_now_P(PSTR("G28 XYO\nG28 Z\nM211 S0\nG29S1"));
@@ -2443,7 +2402,8 @@ void LevBedC () { LevBed(4); }
2443 2402
     ui.set_status_P(GET_TEXT(MSG_UBL_STORAGE_MESH_MENU));
2444 2403
     queue.inject_P(PSTR("M211 S1\nM500"));
2445 2404
   }
2446
-#endif
2405
+
2406
+#endif // MESH_BED_LEVELING
2447 2407
 
2448 2408
 #if HAS_PREHEAT
2449 2409
   #if HAS_HOTEND
@@ -2516,6 +2476,7 @@ void SetStepsZ() { HMI_value.axis = Z_AXIS, SetPFloatOnClick( MIN_STEP, MAX_STEP
2516 2476
     SetFloatOnClick(0, 1000, 2, value, ApplyPIDd);
2517 2477
   }
2518 2478
 #endif
2479
+
2519 2480
 // Menuitem Drawing functions =================================================
2520 2481
 
2521 2482
 void onDrawMenuItem(MenuItemClass* menuitem, int8_t line) {
@@ -2721,7 +2682,6 @@ void onDrawGetColorItem(MenuItemClass* menuitem, int8_t line) {
2721 2682
 void onDrawPIDi(MenuItemClass* menuitem, int8_t line) { onDrawFloatMenu(menuitem, line, 2, unscalePID_i(*(float*)static_cast<MenuItemPtrClass*>(menuitem)->value)); }
2722 2683
 void onDrawPIDd(MenuItemClass* menuitem, int8_t line) { onDrawFloatMenu(menuitem, line, 2, unscalePID_d(*(float*)static_cast<MenuItemPtrClass*>(menuitem)->value)); }
2723 2684
 
2724
-
2725 2685
 void onDrawSpeedItem(MenuItemClass* menuitem, int8_t line) {
2726 2686
   if (HMI_IsChinese()) menuitem->SetFrame(1, 116, 164, 171, 176);
2727 2687
   onDrawPIntMenu(menuitem, line);
@@ -2748,30 +2708,6 @@ void onDrawSpeedItem(MenuItemClass* menuitem, int8_t line) {
2748 2708
   }
2749 2709
 #endif
2750 2710
 
2751
-void onDrawSpeed(MenuItemClass* menuitem, int8_t line) {
2752
-  if (HMI_IsChinese()) menuitem->SetFrame(1, 173, 133, 228, 147);
2753
-  onDrawSubMenu(menuitem, line);
2754
-}
2755
-
2756
-void onDrawAcc(MenuItemClass* menuitem, int8_t line) {
2757
-  if (HMI_IsChinese()) {
2758
-    menuitem->SetFrame(1, 173, 133, 200, 147);
2759
-    DWIN_Frame_AreaCopy(1, 28, 149, 69, 161, LBLX + 27, MBASE(line) + 1); // ...Acceleration
2760
-  }
2761
-  onDrawSubMenu(menuitem, line);
2762
-}
2763
-
2764
-#if HAS_CLASSIC_JERK
2765
-  void onDrawJerk(MenuItemClass* menuitem, int8_t line) {
2766
-    if (HMI_IsChinese()) {
2767
-      menuitem->SetFrame(1, 173, 133, 200, 147);
2768
-      DWIN_Frame_AreaCopy(1, 1, 180, 28, 192, LBLX + 27, MBASE(line) + 1);  // ...
2769
-      DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 54, MBASE(line));   // ...Jerk
2770
-    }
2771
-    onDrawSubMenu(menuitem, line);
2772
-  }
2773
-#endif
2774
-
2775 2711
 void onDrawSteps(MenuItemClass* menuitem, int8_t line) {
2776 2712
   if (HMI_IsChinese()) menuitem->SetFrame(1, 153, 148, 194, 161);
2777 2713
   onDrawSubMenu(menuitem, line);
@@ -2786,10 +2722,10 @@ void onDrawSteps(MenuItemClass* menuitem, int8_t line) {
2786 2722
 
2787 2723
 #if HAS_PREHEAT
2788 2724
   #if HAS_HOTEND
2789
-      void onDrawSetPreheatHotend(MenuItemClass* menuitem, int8_t line) {
2790
-        if (HMI_IsChinese()) menuitem->SetFrame(1, 1, 134, 56, 146);
2791
-        onDrawPIntMenu(menuitem, line);
2792
-      }
2725
+    void onDrawSetPreheatHotend(MenuItemClass* menuitem, int8_t line) {
2726
+      if (HMI_IsChinese()) menuitem->SetFrame(1, 1, 134, 56, 146);
2727
+      onDrawPIntMenu(menuitem, line);
2728
+    }
2793 2729
   #endif
2794 2730
   #if HAS_HEATED_BED
2795 2731
     void onDrawSetPreheatBed(MenuItemClass* menuitem, int8_t line) {
@@ -2811,7 +2747,13 @@ void onDrawSteps(MenuItemClass* menuitem, int8_t line) {
2811 2747
     if (HMI_IsChinese()) menuitem->SetFrame(1, 180, 89, 260, 100);
2812 2748
     onDrawSubMenu(menuitem,line);
2813 2749
   }
2814
-#endif // HAS_HOTEND
2750
+#endif // HAS_PREHEAT
2751
+
2752
+void onDrawSpeed(MenuItemClass* menuitem, int8_t line) {
2753
+  if (HMI_IsChinese())
2754
+    menuitem->SetFrame(1, 173, 133, 228, 147);
2755
+  onDrawSubMenu(menuitem, line);
2756
+}
2815 2757
 
2816 2758
 void onDrawMaxSpeedX(MenuItemClass* menuitem, int8_t line) {
2817 2759
   if (HMI_IsChinese()) {
@@ -2847,9 +2789,17 @@ void onDrawMaxSpeedZ(MenuItemClass* menuitem, int8_t line) {
2847 2789
   }
2848 2790
 #endif
2849 2791
 
2792
+void onDrawAcc(MenuItemClass* menuitem, int8_t line) {
2793
+  if (HMI_IsChinese()) {
2794
+    menuitem->SetFrame(1, 173, 133, 200, 147);
2795
+    DWIN_Frame_AreaCopy(1,  28, 149,  69, 161, LBLX + 27, MBASE(line) + 1); // ...Acceleration
2796
+  }
2797
+  onDrawSubMenu(menuitem, line);
2798
+}
2799
+
2850 2800
 void onDrawMaxAccelX(MenuItemClass* menuitem, int8_t line) {
2851 2801
   if (HMI_IsChinese()) {
2852
-    menuitem->SetFrame (1, 173, 133, 200, 147);
2802
+    menuitem->SetFrame(1, 173, 133, 200, 147);
2853 2803
     DWIN_Frame_AreaCopy(1, 28,  149,  69, 161, LBLX + 27, MBASE(line));
2854 2804
     DWIN_Frame_AreaCopy(1, 229, 133, 236, 147, LBLX + 71, MBASE(line));      // X
2855 2805
   }
@@ -2858,7 +2808,7 @@ void onDrawMaxAccelX(MenuItemClass* menuitem, int8_t line) {
2858 2808
 
2859 2809
 void onDrawMaxAccelY(MenuItemClass* menuitem, int8_t line) {
2860 2810
   if (HMI_IsChinese()) {
2861
-    menuitem->SetFrame (1, 173, 133, 200, 147);
2811
+    menuitem->SetFrame(1, 173, 133, 200, 147);
2862 2812
     DWIN_Frame_AreaCopy(1,  28, 149,  69, 161, LBLX + 27, MBASE(line));
2863 2813
     DWIN_Frame_AreaCopy(1,   1, 150,   7, 160, LBLX + 71, MBASE(line));          // Y
2864 2814
   }
@@ -2867,7 +2817,7 @@ void onDrawMaxAccelY(MenuItemClass* menuitem, int8_t line) {
2867 2817
 
2868 2818
 void onDrawMaxAccelZ(MenuItemClass* menuitem, int8_t line) {
2869 2819
   if (HMI_IsChinese()) {
2870
-    menuitem->SetFrame (1, 173, 133, 200, 147);
2820
+    menuitem->SetFrame(1, 173, 133, 200, 147);
2871 2821
     DWIN_Frame_AreaCopy(1,  28, 149,  69, 161, LBLX + 27, MBASE(line));
2872 2822
     DWIN_Frame_AreaCopy(1,   9, 150,  16, 160, LBLX + 71, MBASE(line));         // Z
2873 2823
   }
@@ -2877,7 +2827,7 @@ void onDrawMaxAccelZ(MenuItemClass* menuitem, int8_t line) {
2877 2827
 #if HAS_HOTEND
2878 2828
   void onDrawMaxAccelE(MenuItemClass* menuitem, int8_t line) {
2879 2829
     if (HMI_IsChinese()) {
2880
-      menuitem->SetFrame (1, 173, 133, 200, 147);
2830
+      menuitem->SetFrame(1, 173, 133, 200, 147);
2881 2831
       DWIN_Frame_AreaCopy(1,  28, 149,  69, 161, LBLX + 27, MBASE(line));
2882 2832
       DWIN_Frame_AreaCopy(1,  18, 150,  25, 160, LBLX + 71, MBASE(line));        // E
2883 2833
     }
@@ -2886,9 +2836,19 @@ void onDrawMaxAccelZ(MenuItemClass* menuitem, int8_t line) {
2886 2836
 #endif
2887 2837
 
2888 2838
 #if HAS_CLASSIC_JERK
2839
+
2840
+  void onDrawJerk(MenuItemClass* menuitem, int8_t line) {
2841
+    if (HMI_IsChinese()) {
2842
+      menuitem->SetFrame(1, 173, 133, 200, 147);
2843
+      DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(line) + 1);  // ...
2844
+      DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 54, MBASE(line));   // ...Jerk
2845
+    }
2846
+    onDrawSubMenu(menuitem, line);
2847
+  }
2848
+
2889 2849
   void onDrawMaxJerkX(MenuItemClass* menuitem, int8_t line) {
2890 2850
     if (HMI_IsChinese()) {
2891
-      menuitem->SetFrame (1, 173, 133, 200, 147);
2851
+      menuitem->SetFrame(1, 173, 133, 200, 147);
2892 2852
       DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(line));
2893 2853
       DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(line));
2894 2854
       DWIN_Frame_AreaCopy(1, 229, 133, 236, 147, LBLX + 83, MBASE(line));
@@ -2898,7 +2858,7 @@ void onDrawMaxAccelZ(MenuItemClass* menuitem, int8_t line) {
2898 2858
 
2899 2859
   void onDrawMaxJerkY(MenuItemClass* menuitem, int8_t line) {
2900 2860
     if (HMI_IsChinese()) {
2901
-      menuitem->SetFrame (1, 173, 133, 200, 147);
2861
+      menuitem->SetFrame(1, 173, 133, 200, 147);
2902 2862
       DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(line));
2903 2863
       DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(line));
2904 2864
       DWIN_Frame_AreaCopy(1,   1, 150,   7, 160, LBLX + 83, MBASE(line));
@@ -2908,7 +2868,7 @@ void onDrawMaxAccelZ(MenuItemClass* menuitem, int8_t line) {
2908 2868
 
2909 2869
   void onDrawMaxJerkZ(MenuItemClass* menuitem, int8_t line) {
2910 2870
     if (HMI_IsChinese()) {
2911
-      menuitem->SetFrame (1, 173, 133, 200, 147);
2871
+      menuitem->SetFrame(1, 173, 133, 200, 147);
2912 2872
       DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(line));
2913 2873
       DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(line));
2914 2874
       DWIN_Frame_AreaCopy(1,   9, 150,  16, 160, LBLX + 83, MBASE(line));
@@ -2919,7 +2879,7 @@ void onDrawMaxAccelZ(MenuItemClass* menuitem, int8_t line) {
2919 2879
   #if HAS_HOTEND
2920 2880
     void onDrawMaxJerkE(MenuItemClass* menuitem, int8_t line) {
2921 2881
       if (HMI_IsChinese()) {
2922
-        menuitem->SetFrame (1, 173, 133, 200, 147);
2882
+        menuitem->SetFrame(1, 173, 133, 200, 147);
2923 2883
         DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(line));
2924 2884
         DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(line));
2925 2885
         DWIN_Frame_AreaCopy(1,  18, 150,  25, 160, LBLX + 83, MBASE(line));
@@ -2927,11 +2887,12 @@ void onDrawMaxAccelZ(MenuItemClass* menuitem, int8_t line) {
2927 2887
       onDrawPFloatMenu(menuitem, line);
2928 2888
     }
2929 2889
   #endif
2890
+
2930 2891
 #endif // HAS_CLASSIC_JERK
2931 2892
 
2932 2893
 void onDrawStepsX(MenuItemClass* menuitem, int8_t line) {
2933 2894
   if (HMI_IsChinese()) {
2934
-    menuitem->SetFrame (1, 153, 148, 194, 161);
2895
+    menuitem->SetFrame(1, 153, 148, 194, 161);
2935 2896
     DWIN_Frame_AreaCopy(1, 229, 133, 236, 147, LBLX + 44, MBASE(line));      // X
2936 2897
   }
2937 2898
   onDrawPFloatMenu(menuitem, line);
@@ -2939,7 +2900,7 @@ void onDrawStepsX(MenuItemClass* menuitem, int8_t line) {
2939 2900
 
2940 2901
 void onDrawStepsY(MenuItemClass* menuitem, int8_t line) {
2941 2902
   if (HMI_IsChinese()) {
2942
-    menuitem->SetFrame (1, 153, 148, 194, 161);
2903
+    menuitem->SetFrame(1, 153, 148, 194, 161);
2943 2904
     DWIN_Frame_AreaCopy(1,   1, 150,   7, 160, LBLX + 44, MBASE(line));      // Y
2944 2905
   }
2945 2906
   onDrawPFloatMenu(menuitem, line);
@@ -2947,7 +2908,7 @@ void onDrawStepsY(MenuItemClass* menuitem, int8_t line) {
2947 2908
 
2948 2909
 void onDrawStepsZ(MenuItemClass* menuitem, int8_t line) {
2949 2910
   if (HMI_IsChinese()) {
2950
-    menuitem->SetFrame (1, 153, 148, 194, 161);
2911
+    menuitem->SetFrame(1, 153, 148, 194, 161);
2951 2912
     DWIN_Frame_AreaCopy(1,   9, 150,  16, 160, LBLX + 44, MBASE(line));      // Z
2952 2913
   }
2953 2914
   onDrawPFloatMenu(menuitem, line);
@@ -2956,7 +2917,7 @@ void onDrawStepsZ(MenuItemClass* menuitem, int8_t line) {
2956 2917
 #if HAS_HOTEND
2957 2918
   void onDrawStepsE(MenuItemClass* menuitem, int8_t line) {
2958 2919
     if (HMI_IsChinese()) {
2959
-      menuitem->SetFrame (1, 153, 148, 194, 161);
2920
+      menuitem->SetFrame(1, 153, 148, 194, 161);
2960 2921
       DWIN_Frame_AreaCopy(1,  18, 150,  25, 160, LBLX + 44, MBASE(line));    // E
2961 2922
     }
2962 2923
     onDrawPFloatMenu(menuitem, line);
@@ -2986,7 +2947,7 @@ int8_t HMI_GetIntNoDraw(const int32_t lo, const int32_t hi) {
2986 2947
   if (encoder_diffState != ENCODER_DIFF_NO) {
2987 2948
     if (Apply_Encoder(encoder_diffState, HMI_value.Value)) {
2988 2949
       EncoderRate.enabled = false;
2989
-      checkkey = last_checkkey;
2950
+      checkkey = Menu;
2990 2951
       return 2;
2991 2952
     }
2992 2953
     LIMIT(HMI_value.Value, lo, hi);
@@ -3008,7 +2969,7 @@ int8_t HMI_GetInt(const int32_t lo, const int32_t hi) {
3008 2969
     if (Apply_Encoder(encoder_diffState, HMI_value.Value)) {
3009 2970
       EncoderRate.enabled = false;
3010 2971
       DWINUI::Draw_Int(HMI_data.Text_Color, HMI_data.Background_Color, 4 , VALX, MBASE(CurrentMenu->line()) - 1, HMI_value.Value);
3011
-      checkkey = last_checkkey;
2972
+      checkkey = Menu;
3012 2973
       return 2;
3013 2974
     }
3014 2975
     LIMIT(HMI_value.Value, lo, hi);
@@ -3048,7 +3009,7 @@ void HMI_SetPInt() {
3048 3009
   } else if (HMI_value.LiveUpdate != nullptr) HMI_value.LiveUpdate();
3049 3010
 }
3050 3011
 
3051
-// Get an scaled float value using the encoder
3012
+// Get a scaled float value using the encoder
3052 3013
 //  dp: decimal places
3053 3014
 //  lo: scaled low limit
3054 3015
 //  hi: scaled high limit
@@ -3062,7 +3023,7 @@ int8_t HMI_GetFloat(uint8_t dp, int32_t lo, int32_t hi) {
3062 3023
     if (Apply_Encoder(encoder_diffState, HMI_value.Value)) {
3063 3024
       EncoderRate.enabled = false;
3064 3025
       DWINUI::Draw_Signed_Float(HMI_data.Text_Color, HMI_data.Background_Color, 3, dp, VALX - dp * DWINUI::Get_font_width(DWIN_FONT_MENU), MBASE(CurrentMenu->line()), HMI_value.Value / POW(10, dp));
3065
-      checkkey = last_checkkey;
3026
+      checkkey = Menu;
3066 3027
       return 2;
3067 3028
     }
3068 3029
     LIMIT(HMI_value.Value, lo, hi);
@@ -3072,38 +3033,34 @@ int8_t HMI_GetFloat(uint8_t dp, int32_t lo, int32_t hi) {
3072 3033
   return 0;
3073 3034
 }
3074 3035
 
3075
-// Set an scaled float using the encoder
3036
+// Set a scaled float using the encoder
3076 3037
 void HMI_SetFloat() {
3077
-  int8_t val = HMI_GetFloat(HMI_value.dp, HMI_value.MinValue, HMI_value.MaxValue);
3038
+  const int8_t val = HMI_GetFloat(HMI_value.dp, HMI_value.MinValue, HMI_value.MaxValue);
3078 3039
   switch (val) {
3079
-    case 0: return; break;
3040
+    case 0: return;
3080 3041
     case 1: if (HMI_value.LiveUpdate != nullptr) HMI_value.LiveUpdate(); break;
3081 3042
     case 2: if (HMI_value.Apply != nullptr) HMI_value.Apply(); break;
3082 3043
   }
3083 3044
 }
3084 3045
 
3085
-// Set an scaled float pointer variable using the encoder
3046
+// Set a scaled float pointer variable using the encoder
3086 3047
 void HMI_SetPFloat() {
3087
-  int8_t val = HMI_GetFloat(HMI_value.dp, HMI_value.MinValue, HMI_value.MaxValue);
3048
+  const int8_t val = HMI_GetFloat(HMI_value.dp, HMI_value.MinValue, HMI_value.MaxValue);
3088 3049
   if (!val) return;
3089
-  else if (val == 2) {  // Apply
3050
+  if (val == 2) {  // Apply
3090 3051
     *HMI_value.P_Float = HMI_value.Value / POW(10, HMI_value.dp);
3091 3052
     if (HMI_value.Apply != nullptr) HMI_value.Apply();
3092
-  } else if (HMI_value.LiveUpdate != nullptr) HMI_value.LiveUpdate();
3053
+  }
3054
+  else if (HMI_value.LiveUpdate != nullptr) HMI_value.LiveUpdate();
3093 3055
 }
3094 3056
 
3095 3057
 // Menu Creation and Drawing functions ======================================================
3096 3058
 
3097 3059
 void SetMenuTitle(frame_rect_t cn, frame_rect_t en, const __FlashStringHelper* text) {
3098
-    if (HMI_IsChinese() && (cn.w != 0))
3099
-      CurrentMenu->MenuTitle.SetFrame(cn.x, cn.y, cn.w, cn.h);
3100
-    else {
3101
-      #ifdef USE_STRING_HEADINGS
3102
-        CurrentMenu->MenuTitle.SetCaption(text);
3103
-      #else
3104
-        if (en.w != 0) CurrentMenu->MenuTitle.SetFrame(en.x, en.y, en.w, en.h);
3105
-      #endif
3106
-    }
3060
+  if (HMI_IsChinese() && (cn.w != 0))
3061
+    CurrentMenu->MenuTitle.SetFrame(cn.x, cn.y, cn.w, cn.h);
3062
+  else
3063
+    CurrentMenu->MenuTitle.SetCaption(text);
3107 3064
 }
3108 3065
 
3109 3066
 void Draw_Prepare_Menu() {
@@ -3301,7 +3258,8 @@ void Draw_Move_Menu() {
3301 3258
     }
3302 3259
     CurrentMenu->Draw();
3303 3260
   }
3304
-#endif
3261
+#endif // HAS_FILAMENT_SENSOR
3262
+
3305 3263
 void Draw_SelectColors_Menu() {
3306 3264
   checkkey = Menu;
3307 3265
   if (SelectColorMenu == nullptr) SelectColorMenu = new MenuClass();
@@ -3441,6 +3399,7 @@ void Draw_Motion_Menu() {
3441 3399
 #endif
3442 3400
 
3443 3401
 #if HAS_PREHEAT
3402
+
3444 3403
   void Draw_Preheat_Menu(frame_rect_t cn, frame_rect_t en, const __FlashStringHelper* text) {
3445 3404
     checkkey = Menu;
3446 3405
     if (CurrentMenu != PreheatMenu) {
@@ -3485,7 +3444,7 @@ void Draw_Motion_Menu() {
3485 3444
     }
3486 3445
   #endif
3487 3446
 
3488
-#endif
3447
+#endif // HAS_PREHEAT
3489 3448
 
3490 3449
 void Draw_Temperature_Menu() {
3491 3450
   checkkey = Menu;
@@ -3653,5 +3612,4 @@ void Draw_Steps_Menu() {
3653 3612
   }
3654 3613
 #endif
3655 3614
 
3656
-
3657 3615
 #endif // DWIN_CREALITY_LCD_ENHANCED

+ 3
- 13
Marlin/src/lcd/e3v2/enhanced/dwin.h Visa fil

@@ -157,15 +157,9 @@ void Popup_Window_Resume();
157 157
 void HMI_SDCardInit();
158 158
 void HMI_SDCardUpdate();
159 159
 
160
-// Main Process
161
-//void Icon_print();
162
-//void Icon_control();
163
-//void Icon_leveling(bool value);
164
-
165 160
 // Other
166 161
 void Goto_PrintProcess();
167 162
 void Goto_Main_Menu();
168
-void update_variable();
169 163
 void Draw_Select_Highlight(const bool sel);
170 164
 void Draw_Status_Area(const bool with_update); // Status Area
171 165
 void Draw_Main_Area();      // Redraw main area;
@@ -178,19 +172,15 @@ void HMI_ReturnScreen();    // Return to previous screen before popups
178 172
 void ApplyExtMinT();
179 173
 void HMI_SetLanguageCache(); // Set the languaje image cache
180 174
 
181
-//void HMI_Leveling();    // Level the page
182
-//void HMI_LevBedCorners();   // Tramming menu
183
-//void HMI_Info();          // Information menu
184
-
185
-
186 175
 void HMI_Init();
187 176
 void HMI_Popup();
188 177
 void HMI_SaveProcessID(const uint8_t id);
189 178
 void HMI_AudioFeedback(const bool success=true);
190
-void DWIN_Startup();
191
-void DWIN_Update();
192 179
 void EachMomentUpdate();
180
+void update_variable();
193 181
 void DWIN_HandleScreen();
182
+void DWIN_Startup();
183
+void DWIN_Update();
194 184
 void DWIN_DrawStatusLine(const uint16_t color, const uint16_t bgcolor, const char *text);
195 185
 void DWIN_StatusChanged(const char * const text);
196 186
 void DWIN_StatusChanged_P(PGM_P const text);

+ 26
- 19
Marlin/src/lcd/e3v2/jyersui/dwin.cpp Visa fil

@@ -141,15 +141,24 @@ constexpr float default_steps[]               = DEFAULT_AXIS_STEPS_PER_UNIT;
141 141
   constexpr float default_max_jerk[]            = { DEFAULT_XJERK, DEFAULT_YJERK, DEFAULT_ZJERK, DEFAULT_EJERK };
142 142
 #endif
143 143
 
144
-uint8_t active_menu = MainMenu;
145
-uint8_t last_menu = MainMenu;
146
-uint8_t selection = 0;
147
-uint8_t last_selection = 0;
144
+enum SelectItem : uint8_t {
145
+  PAGE_PRINT = 0,
146
+  PAGE_PREPARE,
147
+  PAGE_CONTROL,
148
+  PAGE_INFO_LEVELING,
149
+  PAGE_COUNT,
150
+
151
+  PRINT_SETUP = 0,
152
+  PRINT_PAUSE_RESUME,
153
+  PRINT_STOP,
154
+  PRINT_COUNT
155
+};
156
+
157
+uint8_t active_menu = MainMenu, last_menu = MainMenu;
158
+uint8_t selection = 0, last_selection = 0;
148 159
 uint8_t scrollpos = 0;
149
-uint8_t process = Main;
150
-uint8_t last_process = Main;
151
-PopupID popup;
152
-PopupID last_popup;
160
+uint8_t process = Main, last_process = Main;
161
+PopupID popup, last_popup;
153 162
 
154 163
 void (*funcpointer)() = nullptr;
155 164
 void *valuepointer = nullptr;
@@ -4208,7 +4217,7 @@ void CrealityDWINClass::Confirm_Handler(PopupID popupid) {
4208 4217
 void CrealityDWINClass::Main_Menu_Control() {
4209 4218
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
4210 4219
   if (encoder_diffState == ENCODER_DIFF_NO) return;
4211
-  if (encoder_diffState == ENCODER_DIFF_CW && selection < 3) {
4220
+  if (encoder_diffState == ENCODER_DIFF_CW && selection < PAGE_COUNT - 1) {
4212 4221
     selection++; // Select Down
4213 4222
     Main_Menu_Icons();
4214 4223
   }
@@ -4218,10 +4227,10 @@ void CrealityDWINClass::Main_Menu_Control() {
4218 4227
   }
4219 4228
   else if (encoder_diffState == ENCODER_DIFF_ENTER)
4220 4229
     switch (selection) {
4221
-      case 0: card.mount(); Draw_SD_List(); break;
4222
-      case 1: Draw_Menu(Prepare); break;
4223
-      case 2: Draw_Menu(Control); break;
4224
-      case 3: Draw_Menu(TERN(HAS_MESH, Leveling, InfoMain)); break;
4230
+      case PAGE_PRINT: card.mount(); Draw_SD_List(); break;
4231
+      case PAGE_PREPARE: Draw_Menu(Prepare); break;
4232
+      case PAGE_CONTROL: Draw_Menu(Control); break;
4233
+      case PAGE_INFO_LEVELING: Draw_Menu(TERN(HAS_MESH, Leveling, InfoMain)); break;
4225 4234
     }
4226 4235
   DWIN_UpdateLCD();
4227 4236
 }
@@ -4449,7 +4458,7 @@ void CrealityDWINClass::File_Control() {
4449 4458
 void CrealityDWINClass::Print_Screen_Control() {
4450 4459
   ENCODER_DiffState encoder_diffState = Encoder_ReceiveAnalyze();
4451 4460
   if (encoder_diffState == ENCODER_DIFF_NO) return;
4452
-  if (encoder_diffState == ENCODER_DIFF_CW && selection < 2) {
4461
+  if (encoder_diffState == ENCODER_DIFF_CW && selection < PRINT_COUNT - 1) {
4453 4462
     selection++; // Select Down
4454 4463
     Print_Screen_Icons();
4455 4464
   }
@@ -4459,11 +4468,11 @@ void CrealityDWINClass::Print_Screen_Control() {
4459 4468
   }
4460 4469
   else if (encoder_diffState == ENCODER_DIFF_ENTER) {
4461 4470
     switch (selection) {
4462
-      case 0:
4471
+      case PRINT_SETUP:
4463 4472
         Draw_Menu(Tune);
4464 4473
         Update_Status_Bar(true);
4465 4474
         break;
4466
-      case 1:
4475
+      case PRINT_PAUSE_RESUME:
4467 4476
         if (paused) {
4468 4477
           if (sdprint) {
4469 4478
             wait_for_user = false;
@@ -4493,9 +4502,7 @@ void CrealityDWINClass::Print_Screen_Control() {
4493 4502
         else
4494 4503
           Popup_Handler(Pause);
4495 4504
         break;
4496
-      case 2:
4497
-        Popup_Handler(Stop);
4498
-        break;
4505
+      case PRINT_STOP: Popup_Handler(Stop); break;
4499 4506
     }
4500 4507
   }
4501 4508
   DWIN_UpdateLCD();

Laddar…
Avbryt
Spara