Browse Source

🐛 Followup to E3V2 Enhanced

Fix #22741
Scott Lahteine 3 years ago
parent
commit
953d283e53
2 changed files with 185 additions and 73 deletions
  1. 182
    72
      Marlin/src/lcd/e3v2/enhanced/dwin.cpp
  2. 3
    1
      Marlin/src/lcd/e3v2/enhanced/dwin.h

+ 182
- 72
Marlin/src/lcd/e3v2/enhanced/dwin.cpp View File

@@ -33,13 +33,15 @@
33 33
 #include "../../../MarlinCore.h"
34 34
 #include "../../../core/serial.h"
35 35
 #include "../../../core/macros.h"
36
-#include "../../../gcode/queue.h"
37 36
 
38 37
 #include "../../../module/temperature.h"
39 38
 #include "../../../module/printcounter.h"
40 39
 #include "../../../module/motion.h"
41 40
 #include "../../../module/planner.h"
42 41
 
42
+#include "../../../gcode/gcode.h"
43
+#include "../../../gcode/queue.h"
44
+
43 45
 #if HAS_FILAMENT_SENSOR
44 46
   #include "../../../feature/runout.h"
45 47
 #endif
@@ -187,16 +189,24 @@ MenuClass *LevBedMenu = nullptr;
187 189
 MenuClass *MoveMenu = nullptr;
188 190
 MenuClass *ControlMenu = nullptr;
189 191
 MenuClass *AdvancedSettings = nullptr;
190
-TERN_(HAS_HOME_OFFSET, MenuClass *HomeOffMenu = nullptr);
191
-TERN_(HAS_BED_PROBE, MenuClass *ProbeSetMenu = nullptr);
192
+#if HAS_HOME_OFFSET
193
+  MenuClass *HomeOffMenu = nullptr;
194
+#endif
195
+#if HAS_BED_PROBE
196
+  MenuClass *ProbeSetMenu = nullptr;
197
+#endif
192 198
 MenuClass *FilSetMenu = nullptr;
193 199
 MenuClass *SelectColorMenu = nullptr;
194 200
 MenuClass *GetColorMenu = nullptr;
195 201
 MenuClass *TuneMenu = nullptr;
196 202
 MenuClass *MotionMenu = nullptr;
197 203
 MenuClass *FilamentMenu = nullptr;
198
-TERN_(MESH_BED_LEVELING, MenuClass *ManualMesh = nullptr);
199
-TERN_(HAS_HOTEND, MenuClass *PreheatMenu = nullptr);
204
+#if ENABLED(MESH_BED_LEVELING)
205
+  MenuClass *ManualMesh = nullptr;
206
+#endif
207
+#if HAS_HOTEND
208
+  MenuClass *PreheatMenu = nullptr;
209
+#endif
200 210
 MenuClass *TemperatureMenu = nullptr;
201 211
 MenuClass *MaxSpeedMenu = nullptr;
202 212
 MenuClass *MaxAccelMenu = nullptr;
@@ -1558,6 +1568,7 @@ void EachMomentUpdate() {
1558 1568
     select_page.set(0);
1559 1569
     Goto_Main_Menu();
1560 1570
   }
1571
+
1561 1572
   #if ENABLED(POWER_LOSS_RECOVERY)
1562 1573
     else if (DWIN_lcd_sd_status && recovery.dwin_flag) { // resume print before power off
1563 1574
       static bool recovery_flag = false;
@@ -1679,7 +1690,7 @@ void DWIN_MeshLevelingStart() {
1679 1690
 
1680 1691
 void DWIN_CompletedLeveling() { HMI_ReturnScreen(); }
1681 1692
 
1682
-#if ENABLED(MESH_BED_LEVELING)
1693
+#if HAS_MESH
1683 1694
   void DWIN_MeshUpdate(const int8_t xpos, const int8_t ypos, const float zval) {
1684 1695
     char msg[33] = "";
1685 1696
     char str_1[6] = "";
@@ -1837,10 +1848,10 @@ void DWIN_SetColorDefaults() {
1837 1848
 void DWIN_SetDataDefaults() {
1838 1849
   DWIN_SetColorDefaults();
1839 1850
   DWINUI::SetColors(HMI_data.Text_Color, HMI_data.Background_Color);
1840
-  TERN_(HAS_HOTEND, HMI_data.HotendPidT = PREHEAT_1_TEMP_HOTEND);
1841
-  TERN_(HAS_HEATED_BED, HMI_data.BedPidT = PREHEAT_1_TEMP_BED);
1842
-  TERN_(HAS_HOTEND, HMI_data.PidCycles = 5);
1843
-  TERN_(PREVENT_COLD_EXTRUSION, HMI_data.ExtMinT = EXTRUDE_MINTEMP);
1851
+  TERN_(HAS_HOTEND,             HMI_data.HotendPidT = PREHEAT_1_TEMP_HOTEND);
1852
+  TERN_(HAS_HEATED_BED,         HMI_data.BedPidT    = PREHEAT_1_TEMP_BED);
1853
+  TERN_(HAS_HOTEND,             HMI_data.PidCycles  = 5);
1854
+  TERN_(PREVENT_COLD_EXTRUSION, HMI_data.ExtMinT    = EXTRUDE_MINTEMP);
1844 1855
 }
1845 1856
 
1846 1857
 void DWIN_StoreSettings(char *buff) {
@@ -2112,9 +2123,9 @@ void SetHome() {
2112 2123
 
2113 2124
 #if HAS_PREHEAT
2114 2125
   void SetPreheat(const uint8_t i) {
2115
-    TERN_(HAS_HOTEND, thermalManager.setTargetHotend(ui.material_preset[i].hotend_temp, 0));
2126
+    TERN_(HAS_HOTEND,     thermalManager.setTargetHotend(ui.material_preset[i].hotend_temp, 0));
2116 2127
     TERN_(HAS_HEATED_BED, thermalManager.setTargetBed(ui.material_preset[i].bed_temp));
2117
-    TERN_(HAS_FAN, thermalManager.set_fan_speed(0, ui.material_preset[i].fan_speed));
2128
+    TERN_(HAS_FAN,        thermalManager.set_fan_speed(0, ui.material_preset[i].fan_speed));
2118 2129
   }
2119 2130
   void SetPreheat0() { SetPreheat(0); }
2120 2131
   void SetPreheat1() { SetPreheat(1); }
@@ -2193,14 +2204,20 @@ void SetPID(celsius_t t, heater_id_t h) {
2193 2204
   planner.synchronize();
2194 2205
   thermalManager.PID_autotune(t, h, HMI_data.PidCycles, true);
2195 2206
 }
2196
-TERN_(HAS_HOTEND, void HotendPID() { SetPID(HMI_data.HotendPidT, H_E0); })
2197
-TERN_(HAS_HEATED_BED, void BedPID() { SetPID(HMI_data.BedPidT, H_BED); })
2207
+#if HAS_HOTEND
2208
+  void HotendPID() { SetPID(HMI_data.HotendPidT, H_E0); }
2209
+#endif
2210
+#if HAS_HEATED_BED
2211
+  void BedPID() { SetPID(HMI_data.BedPidT, H_BED); }
2212
+#endif
2198 2213
 
2199
-void SetPwrLossr() {
2200
-  recovery.enable(!recovery.enabled);
2201
-  Draw_Chkb_Line(CurrentMenu->line(), recovery.enabled);
2202
-  DWIN_UpdateLCD();
2203
-}
2214
+#if ENABLED(POWER_LOSS_RECOVERY)
2215
+  void SetPwrLossr() {
2216
+    recovery.enable(!recovery.enabled);
2217
+    Draw_Chkb_Line(CurrentMenu->line(), recovery.enabled);
2218
+    DWIN_UpdateLCD();
2219
+  }
2220
+#endif
2204 2221
 
2205 2222
 #if HAS_LCD_BRIGHTNESS
2206 2223
   void ApplyBrightness() { ui.set_brightness(HMI_value.Value); }
@@ -2250,11 +2267,15 @@ void Goto_LockScreen() {
2250 2267
   #endif
2251 2268
 #endif
2252 2269
 
2253
-TERN_(ADVANCED_PAUSE_FEATURE, void SetFilLoad()   { SetPFloatOnClick(0, MAX_LOAD_UNLOAD, UNITFDIGITS); });
2254
-TERN_(ADVANCED_PAUSE_FEATURE, void SetFilUnload() { SetPFloatOnClick(0, MAX_LOAD_UNLOAD, UNITFDIGITS); });
2270
+#if ENABLED(ADVANCED_PAUSE_FEATURE)
2271
+  void SetFilLoad()   { SetPFloatOnClick(0, MAX_LOAD_UNLOAD, UNITFDIGITS); }
2272
+  void SetFilUnload() { SetPFloatOnClick(0, MAX_LOAD_UNLOAD, UNITFDIGITS); }
2273
+#endif
2255 2274
 
2256
-TERN_(PREVENT_COLD_EXTRUSION, void ApplyExtMinT() { thermalManager.extrude_min_temp = HMI_data.ExtMinT; thermalManager.allow_cold_extrude = (HMI_data.ExtMinT == 0); });
2257
-TERN_(PREVENT_COLD_EXTRUSION, void SetExtMinT() { SetPIntOnClick(MIN_ETEMP, MAX_ETEMP, ApplyExtMinT); });
2275
+#if ENABLED(PREVENT_COLD_EXTRUSION)
2276
+  void ApplyExtMinT() { thermalManager.extrude_min_temp = HMI_data.ExtMinT; thermalManager.allow_cold_extrude = (HMI_data.ExtMinT == 0); }
2277
+  void SetExtMinT() { SetPIntOnClick(MIN_ETEMP, MAX_ETEMP, ApplyExtMinT); }
2278
+#endif
2258 2279
 
2259 2280
 void RestoreDefaultsColors() {
2260 2281
   DWIN_SetColorDefaults();
@@ -2425,38 +2446,53 @@ void LevBedC () { LevBed(4); }
2425 2446
 #endif
2426 2447
 
2427 2448
 #if HAS_PREHEAT
2428
-  TERN_(HAS_HOTEND, void SetPreheatEndTemp() { SetPIntOnClick(MIN_ETEMP, MAX_ETEMP); });
2429
-  TERN_(HAS_HEATED_BED, void SetPreheatBedTemp() { SetPIntOnClick(BED_MINTEMP, BED_MAX_TARGET); });
2430
-  TERN_(HAS_FAN, void SetPreheatFanSpeed() { SetPIntOnClick(0, 255); });
2449
+  #if HAS_HOTEND
2450
+    void SetPreheatEndTemp() { SetPIntOnClick(MIN_ETEMP, MAX_ETEMP); }
2451
+  #endif
2452
+  #if HAS_HEATED_BED
2453
+    void SetPreheatBedTemp() { SetPIntOnClick(BED_MINTEMP, BED_MAX_TARGET); }
2454
+  #endif
2455
+  #if HAS_FAN
2456
+    void SetPreheatFanSpeed() { SetPIntOnClick(0, 255); }
2457
+  #endif
2431 2458
 #endif
2432 2459
 
2433 2460
 void ApplyMaxSpeed() { planner.set_max_feedrate(HMI_value.axis, HMI_value.Value / MINUNITMULT); }
2434 2461
 void SetMaxSpeedX() { HMI_value.axis = X_AXIS, SetFloatOnClick(MIN_MAXFEEDSPEED, default_max_feedrate[X_AXIS] * 2, UNITFDIGITS, planner.settings.max_feedrate_mm_s[X_AXIS], ApplyMaxSpeed); }
2435 2462
 void SetMaxSpeedY() { HMI_value.axis = Y_AXIS, SetFloatOnClick(MIN_MAXFEEDSPEED, default_max_feedrate[Y_AXIS] * 2, UNITFDIGITS, planner.settings.max_feedrate_mm_s[Y_AXIS], ApplyMaxSpeed); }
2436 2463
 void SetMaxSpeedZ() { HMI_value.axis = Z_AXIS, SetFloatOnClick(MIN_MAXFEEDSPEED, default_max_feedrate[Z_AXIS] * 2, UNITFDIGITS, planner.settings.max_feedrate_mm_s[Z_AXIS], ApplyMaxSpeed); }
2437
-TERN_(HAS_HOTEND, void SetMaxSpeedE() { HMI_value.axis = E_AXIS; SetFloatOnClick(MIN_MAXFEEDSPEED, default_max_feedrate[E_AXIS] * 2, UNITFDIGITS, planner.settings.max_feedrate_mm_s[E_AXIS], ApplyMaxSpeed); });
2464
+#if HAS_HOTEND
2465
+  void SetMaxSpeedE() { HMI_value.axis = E_AXIS; SetFloatOnClick(MIN_MAXFEEDSPEED, default_max_feedrate[E_AXIS] * 2, UNITFDIGITS, planner.settings.max_feedrate_mm_s[E_AXIS], ApplyMaxSpeed); }
2466
+#endif
2438 2467
 
2439 2468
 void ApplyMaxAccel() { planner.set_max_acceleration(HMI_value.axis, HMI_value.Value); }
2440 2469
 void SetMaxAccelX() { HMI_value.axis = X_AXIS, SetIntOnClick(MIN_MAXACCELERATION, default_max_acceleration[X_AXIS] * 2, planner.settings.max_acceleration_mm_per_s2[X_AXIS], ApplyMaxAccel); }
2441 2470
 void SetMaxAccelY() { HMI_value.axis = Y_AXIS, SetIntOnClick(MIN_MAXACCELERATION, default_max_acceleration[Y_AXIS] * 2, planner.settings.max_acceleration_mm_per_s2[Y_AXIS], ApplyMaxAccel); }
2442 2471
 void SetMaxAccelZ() { HMI_value.axis = Z_AXIS, SetIntOnClick(MIN_MAXACCELERATION, default_max_acceleration[Z_AXIS] * 2, planner.settings.max_acceleration_mm_per_s2[Z_AXIS], ApplyMaxAccel); }
2443
-TERN_(HAS_HOTEND, void SetMaxAccelE() { HMI_value.axis = E_AXIS; SetIntOnClick(MIN_MAXACCELERATION, default_max_acceleration[E_AXIS] * 2, planner.settings.max_acceleration_mm_per_s2[E_AXIS], ApplyMaxAccel); });
2472
+#if HAS_HOTEND
2473
+  void SetMaxAccelE() { HMI_value.axis = E_AXIS; SetIntOnClick(MIN_MAXACCELERATION, default_max_acceleration[E_AXIS] * 2, planner.settings.max_acceleration_mm_per_s2[E_AXIS], ApplyMaxAccel); }
2474
+#endif
2444 2475
 
2445 2476
 #if HAS_CLASSIC_JERK
2446 2477
   void ApplyMaxJerk() { planner.set_max_jerk(HMI_value.axis, HMI_value.Value / MINUNITMULT); }
2447 2478
   void SetMaxJerkX() { HMI_value.axis = X_AXIS, SetFloatOnClick(MIN_MAXJERK, default_max_jerk[X_AXIS] * 2, UNITFDIGITS, planner.max_jerk[X_AXIS], ApplyMaxJerk); }
2448 2479
   void SetMaxJerkY() { HMI_value.axis = Y_AXIS, SetFloatOnClick(MIN_MAXJERK, default_max_jerk[Y_AXIS] * 2, UNITFDIGITS, planner.max_jerk[Y_AXIS], ApplyMaxJerk); }
2449 2480
   void SetMaxJerkZ() { HMI_value.axis = Z_AXIS, SetFloatOnClick(MIN_MAXJERK, default_max_jerk[Z_AXIS] * 2, UNITFDIGITS, planner.max_jerk[Z_AXIS], ApplyMaxJerk); }
2450
-  TERN_(HAS_HOTEND, void SetMaxJerkE() { HMI_value.axis = E_AXIS; SetFloatOnClick(MIN_MAXJERK, default_max_jerk[E_AXIS] * 2, UNITFDIGITS, planner.max_jerk[E_AXIS], ApplyMaxJerk); });
2481
+  #if HAS_HOTEND
2482
+    void SetMaxJerkE() { HMI_value.axis = E_AXIS; SetFloatOnClick(MIN_MAXJERK, default_max_jerk[E_AXIS] * 2, UNITFDIGITS, planner.max_jerk[E_AXIS], ApplyMaxJerk); }
2483
+  #endif
2451 2484
 #endif
2452 2485
 
2453 2486
 void SetStepsX() { HMI_value.axis = X_AXIS, SetPFloatOnClick( MIN_STEP, MAX_STEP, UNITFDIGITS); }
2454 2487
 void SetStepsY() { HMI_value.axis = Y_AXIS, SetPFloatOnClick( MIN_STEP, MAX_STEP, UNITFDIGITS); }
2455 2488
 void SetStepsZ() { HMI_value.axis = Z_AXIS, SetPFloatOnClick( MIN_STEP, MAX_STEP, UNITFDIGITS); }
2456
-TERN_(HAS_HOTEND, void SetStepsE() { HMI_value.axis = E_AXIS; SetPFloatOnClick( MIN_STEP, MAX_STEP, UNITFDIGITS); });
2457
-
2458
-TERN_(HAS_HOTEND, void SetHotendPidT() { SetPIntOnClick(MIN_ETEMP, MAX_ETEMP); })
2459
-TERN_(HAS_HEATED_BED, void SetBedPidT() { SetPIntOnClick(BED_MINTEMP, BED_MAX_TARGET); })
2489
+#if HAS_HOTEND
2490
+  void SetStepsE() { HMI_value.axis = E_AXIS; SetPFloatOnClick( MIN_STEP, MAX_STEP, UNITFDIGITS); }
2491
+  void SetHotendPidT() { SetPIntOnClick(MIN_ETEMP, MAX_ETEMP); }
2492
+#endif
2493
+#if HAS_HEATED_BED
2494
+  void SetBedPidT() { SetPIntOnClick(BED_MINTEMP, BED_MAX_TARGET); }
2495
+#endif
2460 2496
 
2461 2497
 #if HAS_HOTEND || HAS_HEATED_BED
2462 2498
   void SetPidCycles() { SetPIntOnClick(3, 50); }
@@ -2649,7 +2685,9 @@ void onDrawLanguage(MenuItemClass* menuitem, int8_t line) {
2649 2685
   DWINUI::Draw_String(VALX, MBASE(line), HMI_IsChinese() ? F("CN") : F("EN"));
2650 2686
 }
2651 2687
 
2652
-void onDrawPwrLossR(MenuItemClass* menuitem, int8_t line) { onDrawChkbMenu(menuitem, line, recovery.enabled); }
2688
+#if ENABLED(POWER_LOSS_RECOVERY)
2689
+  void onDrawPwrLossR(MenuItemClass* menuitem, int8_t line) { onDrawChkbMenu(menuitem, line, recovery.enabled); }
2690
+#endif
2653 2691
 
2654 2692
 void onDrawEnableSound(MenuItemClass* menuitem, int8_t line) { onDrawChkbMenu(menuitem, line, ui.buzzer_enabled); }
2655 2693
 
@@ -3076,12 +3114,16 @@ void Draw_Prepare_Menu() {
3076 3114
     SetMenuTitle({133, 1, 28, 13}, {179, 0, 48, 14}, GET_TEXT_F(MSG_PREPARE));
3077 3115
     DWINUI::MenuItemsPrepare(13);
3078 3116
     ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Goto_Main_Menu);
3079
-    TERN_(ADVANCED_PAUSE_FEATURE, ADDMENUITEM(ICON_FilMan, GET_TEXT(MSG_FILAMENT_MAN), onDrawSubMenu, Draw_FilamentMan_Menu));
3117
+    #if ENABLED(ADVANCED_PAUSE_FEATURE)
3118
+      ADDMENUITEM(ICON_FilMan, GET_TEXT(MSG_FILAMENT_MAN), onDrawSubMenu, Draw_FilamentMan_Menu);
3119
+    #endif
3080 3120
     ADDMENUITEM(ICON_Axis, GET_TEXT(MSG_MOVE_AXIS), onDrawMoveSubMenu, Draw_Move_Menu);
3081 3121
     ADDMENUITEM(ICON_LevBed, GET_TEXT(MSG_BED_LEVELING), onDrawSubMenu, Draw_LevBedCorners_Menu);
3082 3122
     ADDMENUITEM(ICON_CloseMotor, GET_TEXT(MSG_DISABLE_STEPPERS), onDrawDisableMotors, DisableMotors);
3083 3123
     ADDMENUITEM(ICON_Homing, GET_TEXT(MSG_AUTO_HOME), onDrawAutoHome, AutoHome);
3084
-    TERN_(MESH_BED_LEVELING, ADDMENUITEM(ICON_ManualMesh, GET_TEXT(MSG_MANUAL_MESH), onDrawSubMenu, Draw_ManualMesh_Menu));
3124
+    #if ENABLED(MESH_BED_LEVELING)
3125
+      ADDMENUITEM(ICON_ManualMesh, GET_TEXT(MSG_MANUAL_MESH), onDrawSubMenu, Draw_ManualMesh_Menu);
3126
+    #endif
3085 3127
     #if HAS_ZOFFSET_ITEM
3086 3128
       #if EITHER(HAS_BED_PROBE, BABYSTEPPING)
3087 3129
         ADDMENUITEM(ICON_SetZOffset, GET_TEXT(MSG_PROBE_WIZARD), onDrawSubMenu, Draw_ZOffsetWiz_Menu);
@@ -3094,7 +3136,9 @@ void Draw_Prepare_Menu() {
3094 3136
       ADDMENUITEM(ICON_ABSPreheat, PSTR("Preheat " PREHEAT_2_LABEL), onDrawPreheat2, SetPreheat1);
3095 3137
       ADDMENUITEM(ICON_CustomPreheat, GET_TEXT(MSG_PREHEAT_CUSTOM), onDrawMenuItem, SetPreheat2);
3096 3138
     #endif
3097
-    TERN_(HAS_PREHEAT, ADDMENUITEM(ICON_Cool, GET_TEXT(MSG_COOLDOWN), onDrawCooldown, SetCoolDown));
3139
+    #if HAS_PREHEAT
3140
+      ADDMENUITEM(ICON_Cool, GET_TEXT(MSG_COOLDOWN), onDrawCooldown, SetCoolDown);
3141
+    #endif
3098 3142
     ADDMENUITEM(ICON_Language, PSTR("UI Language"), onDrawLanguage, SetLanguage);
3099 3143
   }
3100 3144
   CurrentMenu->Draw();
@@ -3148,15 +3192,31 @@ void Draw_AdvancedSettings_Menu() {
3148 3192
     SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_ADVANCED_SETTINGS)); // TODO: Chinese, English "Advanced Settings" JPG
3149 3193
     DWINUI::MenuItemsPrepare(11);
3150 3194
     ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Control_Menu);
3151
-    TERN_(HAS_HOME_OFFSET, ADDMENUITEM(ICON_HomeOffset, GET_TEXT(MSG_SET_HOME_OFFSETS), onDrawSubMenu, Draw_HomeOffset_Menu));
3152
-    TERN_(HAS_BED_PROBE, ADDMENUITEM(ICON_ProbeSet, GET_TEXT(MSG_ZPROBE_SETTINGS), onDrawSubMenu, Draw_ProbeSet_Menu));
3153
-    TERN_(HAS_HOTEND, ADDMENUITEM(ICON_PIDNozzle, F("Hotend PID Settings"), onDrawSubMenu, Draw_HotendPID_Menu));
3154
-    TERN_(HAS_HEATED_BED, ADDMENUITEM(ICON_PIDbed, F("Bed PID Settings"), onDrawSubMenu, Draw_BedPID_Menu));
3155
-    TERN_(HAS_FILAMENT_SENSOR, ADDMENUITEM(ICON_FilSet, GET_TEXT(MSG_FILAMENT_SET), onDrawSubMenu, Draw_FilSet_Menu));
3156
-    TERN_(POWER_LOSS_RECOVERY, ADDMENUITEM(ICON_Pwrlossr, F("Power-loss recovery"), onDrawPwrLossR, SetPwrLossr));
3157
-    TERN_(HAS_LCD_BRIGHTNESS, ADDMENUITEM_P(ICON_Brightness, F("LCD Brightness"), onDrawPInt8Menu, SetBrightness, &ui.brightness));
3195
+    #if HAS_HOME_OFFSET
3196
+      ADDMENUITEM(ICON_HomeOffset, GET_TEXT(MSG_SET_HOME_OFFSETS), onDrawSubMenu, Draw_HomeOffset_Menu);
3197
+    #endif
3198
+    #if HAS_BED_PROBE
3199
+      ADDMENUITEM(ICON_ProbeSet, GET_TEXT(MSG_ZPROBE_SETTINGS), onDrawSubMenu, Draw_ProbeSet_Menu);
3200
+    #endif
3201
+    #if HAS_HOTEND
3202
+      ADDMENUITEM(ICON_PIDNozzle, F("Hotend PID Settings"), onDrawSubMenu, Draw_HotendPID_Menu);
3203
+    #endif
3204
+    #if HAS_HEATED_BED
3205
+      ADDMENUITEM(ICON_PIDbed, F("Bed PID Settings"), onDrawSubMenu, Draw_BedPID_Menu);
3206
+    #endif
3207
+    #if HAS_FILAMENT_SENSOR
3208
+      ADDMENUITEM(ICON_FilSet, GET_TEXT(MSG_FILAMENT_SET), onDrawSubMenu, Draw_FilSet_Menu);
3209
+    #endif
3210
+    #if ENABLED(POWER_LOSS_RECOVERY)
3211
+      ADDMENUITEM(ICON_Pwrlossr, F("Power-loss recovery"), onDrawPwrLossR, SetPwrLossr);
3212
+    #endif
3213
+    #if HAS_LCD_BRIGHTNESS
3214
+      ADDMENUITEM_P(ICON_Brightness, F("LCD Brightness"), onDrawPInt8Menu, SetBrightness, &ui.brightness);
3215
+    #endif
3158 3216
     ADDMENUITEM(ICON_Scolor, F("Select Colors"), onDrawSubMenu, Draw_SelectColors_Menu);
3159
-    TERN_(SOUND_MENU_ITEM, ADDMENUITEM(ICON_Sound, F("Enable Sound"), onDrawEnableSound, SetEnableSound));
3217
+    #if ENABLED(SOUND_MENU_ITEM)
3218
+      ADDMENUITEM(ICON_Sound, F("Enable Sound"), onDrawEnableSound, SetEnableSound);
3219
+    #endif
3160 3220
     ADDMENUITEM(ICON_Lock, F("Lock Screen"), onDrawMenuItem, Goto_LockScreen);
3161 3221
   }
3162 3222
   CurrentMenu->Draw();
@@ -3173,7 +3233,9 @@ void Draw_Move_Menu() {
3173 3233
     ADDMENUITEM_P(ICON_MoveX, GET_TEXT(MSG_MOVE_X), onDrawMoveX, SetMoveX, &current_position.x);
3174 3234
     ADDMENUITEM_P(ICON_MoveY, GET_TEXT(MSG_MOVE_Y), onDrawMoveY, SetMoveY, &current_position.y);
3175 3235
     ADDMENUITEM_P(ICON_MoveZ, GET_TEXT(MSG_MOVE_Z), onDrawMoveZ, SetMoveZ, &current_position.z);
3176
-    TERN_(HAS_HOTEND, ADDMENUITEM_P(ICON_Extruder, GET_TEXT(MSG_MOVE_E), onDrawMoveE, SetMoveE, &current_position.e));
3236
+    #if HAS_HOTEND
3237
+      ADDMENUITEM_P(ICON_Extruder, GET_TEXT(MSG_MOVE_E), onDrawMoveE, SetMoveE, &current_position.e);
3238
+    #endif
3177 3239
   }
3178 3240
   CurrentMenu->Draw();
3179 3241
   if (!all_axes_trusted()) ui.set_status_P(PSTR("WARNING: position is unknow"));
@@ -3223,11 +3285,19 @@ void Draw_Move_Menu() {
3223 3285
       CurrentMenu->MenuTitle.SetCaption(GET_TEXT_F(MSG_FILAMENT_SET));
3224 3286
       DWINUI::MenuItemsPrepare(6);
3225 3287
       ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawMenuItem, Draw_AdvancedSettings_Menu);
3226
-      TERN_(HAS_FILAMENT_SENSOR, ADDMENUITEM(ICON_Runout, GET_TEXT(MSG_RUNOUT_ENABLE), onDrawRunoutEnable, SetRunoutEnable));
3227
-      TERN_(HAS_FILAMENT_RUNOUT_DISTANCE, ADDMENUITEM_P(ICON_Runout, F("Runout Distance"), onDrawPFloatMenu, SetRunoutDistance, &runout.runout_distance()));
3228
-      TERN_(PREVENT_COLD_EXTRUSION, ADDMENUITEM_P(ICON_ExtrudeMinT, F("Extrude Min Temp."), onDrawPIntMenu, SetExtMinT, &HMI_data.ExtMinT));
3229
-      TERN_(ADVANCED_PAUSE_FEATURE, ADDMENUITEM_P(ICON_FilLoad, GET_TEXT(MSG_FILAMENT_LOAD), onDrawPFloatMenu, SetFilLoad, &fc_settings[0].load_length));
3230
-      TERN_(ADVANCED_PAUSE_FEATURE, ADDMENUITEM_P(ICON_FilUnload, GET_TEXT(MSG_FILAMENT_UNLOAD), onDrawPFloatMenu, SetFilUnload, &fc_settings[0].unload_length));
3288
+      #if HAS_FILAMENT_SENSOR
3289
+        ADDMENUITEM(ICON_Runout, GET_TEXT(MSG_RUNOUT_ENABLE), onDrawRunoutEnable, SetRunoutEnable);
3290
+      #endif
3291
+      #if HAS_FILAMENT_RUNOUT_DISTANCE
3292
+        ADDMENUITEM_P(ICON_Runout, F("Runout Distance"), onDrawPFloatMenu, SetRunoutDistance, &runout.runout_distance());
3293
+      #endif
3294
+      #if ENABLED(PREVENT_COLD_EXTRUSION)
3295
+        ADDMENUITEM_P(ICON_ExtrudeMinT, F("Extrude Min Temp."), onDrawPIntMenu, SetExtMinT, &HMI_data.ExtMinT);
3296
+      #endif
3297
+      #if ENABLED(ADVANCED_PAUSE_FEATURE)
3298
+        ADDMENUITEM_P(ICON_FilLoad, GET_TEXT(MSG_FILAMENT_LOAD), onDrawPFloatMenu, SetFilLoad, &fc_settings[0].load_length);
3299
+        ADDMENUITEM_P(ICON_FilUnload, GET_TEXT(MSG_FILAMENT_UNLOAD), onDrawPFloatMenu, SetFilUnload, &fc_settings[0].unload_length);
3300
+      #endif
3231 3301
     }
3232 3302
     CurrentMenu->Draw();
3233 3303
   }
@@ -3289,16 +3359,26 @@ void Draw_Tune_Menu() {
3289 3359
     DWINUI::MenuItemsPrepare(10);
3290 3360
     ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Goto_PrintProcess);
3291 3361
     ADDMENUITEM_P(ICON_Speed, GET_TEXT(MSG_SPEED), onDrawSpeedItem, SetSpeed, &feedrate_percentage);
3292
-    TERN_(HAS_HOTEND, HotendTargetItem = ADDMENUITEM_P(ICON_HotendTemp, GET_TEXT(MSG_UBL_SET_TEMP_HOTEND), onDrawHotendTemp, SetHotendTemp, &thermalManager.temp_hotend[0].target));
3293
-    TERN_(HAS_HEATED_BED, BedTargetItem = ADDMENUITEM_P(ICON_BedTemp, GET_TEXT(MSG_UBL_SET_TEMP_BED), onDrawBedTemp, SetBedTemp, &thermalManager.temp_bed.target));
3294
-    TERN_(HAS_FAN, FanSpeedItem = ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT(MSG_FAN_SPEED), onDrawFanSpeed, SetFanSpeed, &thermalManager.fan_speed[0]));
3362
+    #if HAS_HOTEND
3363
+      HotendTargetItem = ADDMENUITEM_P(ICON_HotendTemp, GET_TEXT(MSG_UBL_SET_TEMP_HOTEND), onDrawHotendTemp, SetHotendTemp, &thermalManager.temp_hotend[0].target);
3364
+    #endif
3365
+    #if HAS_HEATED_BED
3366
+      BedTargetItem = ADDMENUITEM_P(ICON_BedTemp, GET_TEXT(MSG_UBL_SET_TEMP_BED), onDrawBedTemp, SetBedTemp, &thermalManager.temp_bed.target);
3367
+    #endif
3368
+    #if HAS_FAN
3369
+      FanSpeedItem = ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT(MSG_FAN_SPEED), onDrawFanSpeed, SetFanSpeed, &thermalManager.fan_speed[0]);
3370
+    #endif
3295 3371
     #if HAS_ZOFFSET_ITEM && EITHER(HAS_BED_PROBE, BABYSTEPPING)
3296 3372
       ADDMENUITEM_P(ICON_Zoffset, GET_TEXT(MSG_ZPROBE_ZOFFSET), onDrawZOffset, SetZOffset, &BABY_Z_VAR);
3297 3373
     #endif
3298 3374
     ADDMENUITEM_P(ICON_Flow, GET_TEXT(MSG_FLOW), onDrawPIntMenu, SetFlow, &planner.flow_percentage[0]);
3299
-    TERN_(ADVANCED_PAUSE_FEATURE, ADDMENUITEM(ICON_FilMan, GET_TEXT(MSG_FILAMENTCHANGE), onDrawMenuItem, ChangeFilament));
3375
+    #if ENABLED(ADVANCED_PAUSE_FEATURE)
3376
+      ADDMENUITEM(ICON_FilMan, GET_TEXT(MSG_FILAMENTCHANGE), onDrawMenuItem, ChangeFilament);
3377
+    #endif
3300 3378
     ADDMENUITEM(ICON_Lock, F("Lock Screen"), onDrawMenuItem, Goto_LockScreen);
3301
-    TERN_(HAS_LCD_BRIGHTNESS, ADDMENUITEM_P(ICON_Brightness, F("LCD Brightness"), onDrawPInt8Menu, SetBrightness, &ui.brightness));
3379
+    #if HAS_LCD_BRIGHTNESS
3380
+      ADDMENUITEM_P(ICON_Brightness, F("LCD Brightness"), onDrawPInt8Menu, SetBrightness, &ui.brightness);
3381
+    #endif
3302 3382
   }
3303 3383
   CurrentMenu->Draw();
3304 3384
 }
@@ -3313,7 +3393,9 @@ void Draw_Motion_Menu() {
3313 3393
     ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Control_Menu);
3314 3394
     ADDMENUITEM(ICON_MaxSpeed, GET_TEXT(MSG_SPEED), onDrawSpeed, Draw_MaxSpeed_Menu);
3315 3395
     ADDMENUITEM(ICON_MaxAccelerated, GET_TEXT(MSG_ACCELERATION), onDrawAcc, Draw_MaxAccel_Menu);
3316
-    TERN_(HAS_CLASSIC_JERK, ADDMENUITEM(ICON_MaxJerk, GET_TEXT(MSG_JERK), onDrawJerk, Draw_MaxJerk_Menu));
3396
+    #if HAS_CLASSIC_JERK
3397
+      ADDMENUITEM(ICON_MaxJerk, GET_TEXT(MSG_JERK), onDrawJerk, Draw_MaxJerk_Menu);
3398
+    #endif
3317 3399
     ADDMENUITEM(ICON_Step, GET_TEXT(MSG_STEPS_PER_MM), onDrawSteps, Draw_Steps_Menu);
3318 3400
     ADDMENUITEM_P(ICON_Flow, GET_TEXT(MSG_FLOW), onDrawPIntMenu, SetFlow, &planner.flow_percentage[0]);
3319 3401
   }
@@ -3331,8 +3413,10 @@ void Draw_Motion_Menu() {
3331 3413
       ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Prepare_Menu);
3332 3414
       ADDMENUITEM(ICON_Park, GET_TEXT(MSG_FILAMENT_PARK_ENABLED), onDrawMenuItem, ParkHead);
3333 3415
       ADDMENUITEM(ICON_FilMan, GET_TEXT(MSG_FILAMENTCHANGE), onDrawMenuItem, ChangeFilament);
3334
-      TERN_(FILAMENT_LOAD_UNLOAD_GCODES, ADDMENUITEM(ICON_FilUnload, GET_TEXT(MSG_FILAMENTUNLOAD), onDrawMenuItem, UnloadFilament));
3335
-      TERN_(FILAMENT_LOAD_UNLOAD_GCODES, ADDMENUITEM(ICON_FilLoad, GET_TEXT(MSG_FILAMENTLOAD), onDrawMenuItem, LoadFilament));
3416
+      #if ENABLED(FILAMENT_LOAD_UNLOAD_GCODES)
3417
+        ADDMENUITEM(ICON_FilUnload, GET_TEXT(MSG_FILAMENTUNLOAD), onDrawMenuItem, UnloadFilament);
3418
+        ADDMENUITEM(ICON_FilLoad, GET_TEXT(MSG_FILAMENTLOAD), onDrawMenuItem, LoadFilament);
3419
+      #endif
3336 3420
     }
3337 3421
     CurrentMenu->Draw();
3338 3422
   }
@@ -3364,10 +3448,18 @@ void Draw_Motion_Menu() {
3364 3448
       SetMenuTitle(cn, en, text);
3365 3449
       DWINUI::MenuItemsPrepare(5);
3366 3450
       ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Temperature_Menu);
3367
-      TERN_(HAS_HOTEND, ADDMENUITEM_P(ICON_SetEndTemp, GET_TEXT(MSG_UBL_SET_TEMP_HOTEND), onDrawSetPreheatHotend, SetPreheatEndTemp, &ui.material_preset[HMI_value.Preheat].hotend_temp));
3368
-      TERN_(HAS_HEATED_BED, ADDMENUITEM_P(ICON_SetBedTemp, GET_TEXT(MSG_UBL_SET_TEMP_BED), onDrawSetPreheatBed, SetPreheatBedTemp, &ui.material_preset[HMI_value.Preheat].bed_temp));
3369
-      TERN_(HAS_FAN, ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT(MSG_FAN_SPEED), onDrawSetPreheatFan, SetPreheatFanSpeed, &ui.material_preset[HMI_value.Preheat].fan_speed));
3370
-      TERN_(EEPROM_SETTINGS, ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT(MSG_STORE_EEPROM), onDrawWriteEeprom, WriteEeprom));
3451
+      #if HAS_HOTEND
3452
+        ADDMENUITEM_P(ICON_SetEndTemp, GET_TEXT(MSG_UBL_SET_TEMP_HOTEND), onDrawSetPreheatHotend, SetPreheatEndTemp, &ui.material_preset[HMI_value.Preheat].hotend_temp);
3453
+      #endif
3454
+      #if HAS_HEATED_BED
3455
+        ADDMENUITEM_P(ICON_SetBedTemp, GET_TEXT(MSG_UBL_SET_TEMP_BED), onDrawSetPreheatBed, SetPreheatBedTemp, &ui.material_preset[HMI_value.Preheat].bed_temp);
3456
+      #endif
3457
+      #if HAS_FAN
3458
+        ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT(MSG_FAN_SPEED), onDrawSetPreheatFan, SetPreheatFanSpeed, &ui.material_preset[HMI_value.Preheat].fan_speed);
3459
+      #endif
3460
+      #if ENABLED(EEPROM_SETTINGS)
3461
+        ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT(MSG_STORE_EEPROM), onDrawWriteEeprom, WriteEeprom);
3462
+      #endif
3371 3463
     }
3372 3464
     CurrentMenu->Draw();
3373 3465
   }
@@ -3403,9 +3495,15 @@ void Draw_Temperature_Menu() {
3403 3495
     SetMenuTitle({236, 2, 28, 12}, {56, 15, 85, 14}, GET_TEXT_F(MSG_TEMPERATURE));
3404 3496
     DWINUI::MenuItemsPrepare(7);
3405 3497
     ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Control_Menu);
3406
-    TERN_(HAS_HOTEND, HotendTargetItem = ADDMENUITEM_P(ICON_SetEndTemp, GET_TEXT(MSG_UBL_SET_TEMP_HOTEND), onDrawHotendTemp, SetHotendTemp, &thermalManager.temp_hotend[0].target));
3407
-    TERN_(HAS_HEATED_BED, BedTargetItem = ADDMENUITEM_P(ICON_SetBedTemp, GET_TEXT(MSG_UBL_SET_TEMP_BED), onDrawBedTemp, SetBedTemp, &thermalManager.temp_bed.target));
3408
-    TERN_(HAS_FAN, FanSpeedItem = ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT(MSG_FAN_SPEED), onDrawFanSpeed, SetFanSpeed, &thermalManager.fan_speed[0]));
3498
+    #if HAS_HOTEND
3499
+      HotendTargetItem = ADDMENUITEM_P(ICON_SetEndTemp, GET_TEXT(MSG_UBL_SET_TEMP_HOTEND), onDrawHotendTemp, SetHotendTemp, &thermalManager.temp_hotend[0].target);
3500
+    #endif
3501
+    #if HAS_HEATED_BED
3502
+      BedTargetItem = ADDMENUITEM_P(ICON_SetBedTemp, GET_TEXT(MSG_UBL_SET_TEMP_BED), onDrawBedTemp, SetBedTemp, &thermalManager.temp_bed.target);
3503
+    #endif
3504
+    #if HAS_FAN
3505
+      FanSpeedItem = ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT(MSG_FAN_SPEED), onDrawFanSpeed, SetFanSpeed, &thermalManager.fan_speed[0]);
3506
+    #endif
3409 3507
     #if HAS_HOTEND
3410 3508
       ADDMENUITEM(ICON_SetPLAPreheat, F(PREHEAT_1_LABEL " Preheat Settings"), onDrawPLAPreheatSubMenu, Draw_Preheat1_Menu);
3411 3509
       ADDMENUITEM(ICON_SetABSPreheat, F(PREHEAT_2_LABEL " Preheat Settings"), onDrawABSPreheatSubMenu, Draw_Preheat2_Menu);
@@ -3428,7 +3526,9 @@ void Draw_MaxSpeed_Menu() {
3428 3526
     ADDMENUITEM_P(ICON_MaxSpeedX, GET_TEXT(MSG_MAXSPEED_X), onDrawMaxSpeedX, SetMaxSpeedX, &planner.settings.max_feedrate_mm_s[X_AXIS]);
3429 3527
     ADDMENUITEM_P(ICON_MaxSpeedY, GET_TEXT(MSG_MAXSPEED_Y), onDrawMaxSpeedY, SetMaxSpeedY, &planner.settings.max_feedrate_mm_s[Y_AXIS]);
3430 3528
     ADDMENUITEM_P(ICON_MaxSpeedZ, GET_TEXT(MSG_MAXSPEED_Z), onDrawMaxSpeedZ, SetMaxSpeedZ, &planner.settings.max_feedrate_mm_s[Z_AXIS]);
3431
-    TERN_(HAS_HOTEND, ADDMENUITEM_P(ICON_MaxSpeedE, GET_TEXT(MSG_MAXSPEED_E), onDrawMaxSpeedE, SetMaxSpeedE, &planner.settings.max_feedrate_mm_s[Z_AXIS]));
3529
+    #if HAS_HOTEND
3530
+      ADDMENUITEM_P(ICON_MaxSpeedE, GET_TEXT(MSG_MAXSPEED_E), onDrawMaxSpeedE, SetMaxSpeedE, &planner.settings.max_feedrate_mm_s[Z_AXIS]);
3531
+    #endif
3432 3532
   }
3433 3533
   CurrentMenu->Draw();
3434 3534
 }
@@ -3444,7 +3544,9 @@ void Draw_MaxAccel_Menu() {
3444 3544
     ADDMENUITEM_P(ICON_MaxAccX, GET_TEXT(MSG_AMAX_A), onDrawMaxAccelX, SetMaxAccelX, &planner.settings.max_acceleration_mm_per_s2[X_AXIS]);
3445 3545
     ADDMENUITEM_P(ICON_MaxAccY, GET_TEXT(MSG_AMAX_B), onDrawMaxAccelY, SetMaxAccelY, &planner.settings.max_acceleration_mm_per_s2[Y_AXIS]);
3446 3546
     ADDMENUITEM_P(ICON_MaxAccZ, GET_TEXT(MSG_AMAX_C), onDrawMaxAccelZ, SetMaxAccelZ, &planner.settings.max_acceleration_mm_per_s2[Z_AXIS]);
3447
-    TERN_(HAS_HOTEND, ADDMENUITEM_P(ICON_MaxAccE, GET_TEXT(MSG_AMAX_E), onDrawMaxAccelE, SetMaxAccelE, &planner.settings.max_acceleration_mm_per_s2[E_AXIS]));
3547
+    #if HAS_HOTEND
3548
+      ADDMENUITEM_P(ICON_MaxAccE, GET_TEXT(MSG_AMAX_E), onDrawMaxAccelE, SetMaxAccelE, &planner.settings.max_acceleration_mm_per_s2[E_AXIS]);
3549
+    #endif
3448 3550
   }
3449 3551
   CurrentMenu->Draw();
3450 3552
 }
@@ -3461,7 +3563,9 @@ void Draw_MaxAccel_Menu() {
3461 3563
       ADDMENUITEM_P(ICON_MaxSpeedJerkX, GET_TEXT(MSG_VA_JERK), onDrawMaxJerkX, SetMaxJerkX, &planner.max_jerk[X_AXIS]);
3462 3564
       ADDMENUITEM_P(ICON_MaxSpeedJerkY, GET_TEXT(MSG_VB_JERK), onDrawMaxJerkY, SetMaxJerkY, &planner.max_jerk[Y_AXIS]);
3463 3565
       ADDMENUITEM_P(ICON_MaxSpeedJerkZ, GET_TEXT(MSG_VC_JERK), onDrawMaxJerkZ, SetMaxJerkZ, &planner.max_jerk[Z_AXIS]);
3464
-      TERN_(HAS_HOTEND, ADDMENUITEM_P(ICON_MaxSpeedJerkE, GET_TEXT(MSG_VE_JERK), onDrawMaxJerkE, SetMaxJerkE, &planner.max_jerk[E_AXIS]));
3566
+      #if HAS_HOTEND
3567
+        ADDMENUITEM_P(ICON_MaxSpeedJerkE, GET_TEXT(MSG_VE_JERK), onDrawMaxJerkE, SetMaxJerkE, &planner.max_jerk[E_AXIS]);
3568
+      #endif
3465 3569
     }
3466 3570
     CurrentMenu->Draw();
3467 3571
   }
@@ -3478,7 +3582,9 @@ void Draw_Steps_Menu() {
3478 3582
     ADDMENUITEM_P(ICON_StepX, GET_TEXT(MSG_A_STEPS), onDrawStepsX, SetStepsX, &planner.settings.axis_steps_per_mm[X_AXIS]);
3479 3583
     ADDMENUITEM_P(ICON_StepY, GET_TEXT(MSG_B_STEPS), onDrawStepsY, SetStepsY, &planner.settings.axis_steps_per_mm[Y_AXIS]);
3480 3584
     ADDMENUITEM_P(ICON_StepZ, GET_TEXT(MSG_C_STEPS), onDrawStepsZ, SetStepsZ, &planner.settings.axis_steps_per_mm[Z_AXIS]);
3481
-    TERN_(HAS_HOTEND, ADDMENUITEM_P(ICON_StepE, GET_TEXT(MSG_E_STEPS), onDrawStepsE, SetStepsE, &planner.settings.axis_steps_per_mm[E_AXIS]));
3585
+    #if HAS_HOTEND
3586
+      ADDMENUITEM_P(ICON_StepE, GET_TEXT(MSG_E_STEPS), onDrawStepsE, SetStepsE, &planner.settings.axis_steps_per_mm[E_AXIS]);
3587
+    #endif
3482 3588
   }
3483 3589
   CurrentMenu->Draw();
3484 3590
 }
@@ -3498,7 +3604,9 @@ void Draw_Steps_Menu() {
3498 3604
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KD), onDrawPIDd, SetKd, &thermalManager.temp_hotend[0].pid.Kd);
3499 3605
       ADDMENUITEM_P(ICON_Temperature, GET_TEXT(MSG_TEMPERATURE), onDrawPIntMenu, SetHotendPidT, &HMI_data.HotendPidT);
3500 3606
       ADDMENUITEM_P(ICON_PIDcycles, GET_TEXT(MSG_PID_CYCLE), onDrawPIntMenu, SetPidCycles, &HMI_data.PidCycles);
3501
-      TERN_(EEPROM_SETTINGS, ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT(MSG_STORE_EEPROM), onDrawMenuItem, WriteEeprom));
3607
+      #if ENABLED(EEPROM_SETTINGS)
3608
+        ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT(MSG_STORE_EEPROM), onDrawMenuItem, WriteEeprom);
3609
+      #endif
3502 3610
     }
3503 3611
     CurrentMenu->Draw();
3504 3612
   }
@@ -3519,7 +3627,9 @@ void Draw_Steps_Menu() {
3519 3627
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KD), onDrawPIDd, SetKd, &thermalManager.temp_bed.pid.Kd);
3520 3628
       ADDMENUITEM_P(ICON_Temperature, GET_TEXT(MSG_TEMPERATURE), onDrawPIntMenu, SetBedPidT, &HMI_data.BedPidT);
3521 3629
       ADDMENUITEM_P(ICON_PIDcycles, GET_TEXT(MSG_PID_CYCLE), onDrawPIntMenu, SetPidCycles, &HMI_data.PidCycles);
3522
-      TERN_(EEPROM_SETTINGS, ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT(MSG_STORE_EEPROM), onDrawMenuItem, WriteEeprom));
3630
+      #if ENABLED(EEPROM_SETTINGS)
3631
+        ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT(MSG_STORE_EEPROM), onDrawMenuItem, WriteEeprom);
3632
+      #endif
3523 3633
     }
3524 3634
     CurrentMenu->Draw();
3525 3635
   }

+ 3
- 1
Marlin/src/lcd/e3v2/enhanced/dwin.h View File

@@ -196,7 +196,9 @@ void DWIN_StatusChanged(const char * const text);
196 196
 void DWIN_StatusChanged_P(PGM_P const text);
197 197
 void DWIN_StartHoming();
198 198
 void DWIN_CompletedHoming();
199
-TERN_(MESH_BED_LEVELING, void DWIN_MeshUpdate(const int8_t xpos, const int8_t ypos, const float zval));
199
+#if HAS_MESH
200
+  void DWIN_MeshUpdate(const int8_t xpos, const int8_t ypos, const float zval);
201
+#endif
200 202
 void DWIN_MeshLevelingStart();
201 203
 void DWIN_CompletedLeveling();
202 204
 void DWIN_PidTuning(pidresult_t result);

Loading…
Cancel
Save