Skip to content

Commit c7e6437

Browse files
committed
πŸ§‘β€πŸ’» ProUI: pre-calculate menu sizes
1 parent 58749a9 commit c7e6437

File tree

1 file changed

+149
-27
lines changed

1 file changed

+149
-27
lines changed

β€ŽMarlin/src/lcd/e3v2/proui/dwin.cpp

Lines changed: 149 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3101,8 +3101,18 @@ frame_rect_t selrect(frame_rect_t) {
31013101
}
31023102

31033103
void drawPrepareMenu() {
3104+
constexpr uint8_t items = (3
3105+
+ COUNT_ENABLED(LCD_BED_TRAMMING)
3106+
+ 2
3107+
+ TERN(MESH_BED_LEVELING, 1, ENABLED(HAS_BED_PROBE))
3108+
+ TERN(HAS_ZOFFSET_ITEM, ENABLED(HAS_BED_PROBE), ENABLED(BABYSTEPPING))
3109+
+ PREHEAT_COUNT
3110+
+ 1
3111+
+ 2 * ALL(PROUI_TUNING_GRAPH, PROUI_ITEM_PLOT)
3112+
+ 1
3113+
);
31043114
checkkey = ID_Menu;
3105-
if (SET_MENU_R(prepareMenu, selrect({133, 1, 28, 13}), MSG_PREPARE, 12 + PREHEAT_COUNT)) {
3115+
if (SET_MENU_R(prepareMenu, selrect({133, 1, 28, 13}), MSG_PREPARE, items)) {
31063116
BACK_ITEM(gotoMainMenu);
31073117
MENU_ITEM(ICON_FilMan, MSG_FILAMENT_MAN, onDrawSubMenu, drawFilamentManMenu);
31083118
MENU_ITEM(ICON_Axis, MSG_MOVE_AXIS, onDrawMoveSubMenu, drawMoveMenu);
@@ -3145,8 +3155,14 @@ void drawPrepareMenu() {
31453155
#if ENABLED(LCD_BED_TRAMMING)
31463156

31473157
void drawTrammingMenu() {
3158+
constexpr uint8_t items = (1
3159+
+ 2 * ALL(HAS_BED_PROBE, HAS_MESH)
3160+
+ (DISABLED(HAS_BED_PROBE) && ENABLED(HAS_ZOFFSET_ITEM))
3161+
+ 4
3162+
+ ENABLED(BED_TRAMMING_INCLUDE_CENTER)
3163+
);
31483164
checkkey = ID_Menu;
3149-
if (SET_MENU(trammingMenu, MSG_BED_TRAMMING, 8)) {
3165+
if (SET_MENU(trammingMenu, MSG_BED_TRAMMING, items)) {
31503166
BACK_ITEM(drawPrepareMenu);
31513167
#if HAS_BED_PROBE && HAS_MESH
31523168
MENU_ITEM(ICON_Tram, MSG_TRAMMING_WIZARD, onDrawMenuItem, trammingwizard);
@@ -3168,8 +3184,13 @@ void drawPrepareMenu() {
31683184
#endif // LCD_BED_TRAMMING
31693185

31703186
void drawControlMenu() {
3187+
constexpr uint8_t items = (3
3188+
+ COUNT_ENABLED(CASE_LIGHT_MENU, LED_CONTROL_MENU)
3189+
+ TERN0(EEPROM_SETTINGS, 3)
3190+
+ 2
3191+
);
31713192
checkkey = ID_Menu;
3172-
if (SET_MENU_R(controlMenu, selrect({103, 1, 28, 14}), MSG_CONTROL, 11)) {
3193+
if (SET_MENU_R(controlMenu, selrect({103, 1, 28, 14}), MSG_CONTROL, items)) {
31733194
BACK_ITEM(gotoMainMenu);
31743195
MENU_ITEM(ICON_Temperature, MSG_TEMPERATURE, onDrawTempSubMenu, drawTemperatureMenu);
31753196
MENU_ITEM(ICON_Motion, MSG_MOTION, onDrawMotionSubMenu, drawMotionMenu);
@@ -3198,8 +3219,20 @@ void drawControlMenu() {
31983219
}
31993220

32003221
void drawAdvancedSettingsMenu() {
3222+
constexpr uint8_t items = (1
3223+
+ COUNT_ENABLED(EEPROM_SETTINGS, HAS_MESH, HAS_BED_PROBE, HAS_HOME_OFFSET, HAS_TRINAMIC_CONFIG, HAS_ESDIAG, \
3224+
HAS_LOCKSCREEN, EDITABLE_DISPLAY_TIMEOUT, SOUND_MENU_ITEM, POWER_LOSS_RECOVERY, HAS_GCODE_PREVIEW, \
3225+
PROUI_MEDIASORT, BAUD_RATE_GCODE, HAS_CUSTOM_COLORS)
3226+
+ 1
3227+
+ (ENABLED(PIDTEMP) && ANY(PID_AUTOTUNE_MENU, PID_EDIT_MENU))
3228+
+ ANY(MPC_EDIT_MENU, MPC_AUTOTUNE_MENU)
3229+
+ (ENABLED(PIDTEMPBED) && ANY(PID_AUTOTUNE_MENU, PID_EDIT_MENU))
3230+
+ TERN0(PRINTCOUNTER, 2)
3231+
+ 1
3232+
+ TERN0(HAS_LCD_BRIGHTNESS, 2)
3233+
);
32013234
checkkey = ID_Menu;
3202-
if (SET_MENU(advancedSettingsMenu, MSG_ADVANCED_SETTINGS, 24)) {
3235+
if (SET_MENU(advancedSettingsMenu, MSG_ADVANCED_SETTINGS, items)) {
32033236
BACK_ITEM(gotoMainMenu);
32043237
#if ENABLED(EEPROM_SETTINGS)
32053238
MENU_ITEM(ICON_WriteEEPROM, MSG_STORE_EEPROM, onDrawMenuItem, writeEEPROM);
@@ -3268,8 +3301,9 @@ void drawAdvancedSettingsMenu() {
32683301
}
32693302

32703303
void drawMoveMenu() {
3304+
constexpr uint8_t items = 2 + COUNT_ENABLED(HAS_X_AXIS, HAS_Y_AXIS, HAS_Z_AXIS, HAS_HOTEND);
32713305
checkkey = ID_Menu;
3272-
if (SET_MENU_R(moveMenu, selrect({192, 1, 42, 14}), MSG_MOVE_AXIS, 6)) {
3306+
if (SET_MENU_R(moveMenu, selrect({192, 1, 42, 14}), MSG_MOVE_AXIS, items)) {
32733307
BACK_ITEM(drawPrepareMenu);
32743308
EDIT_ITEM(ICON_Axis, MSG_LIVE_MOVE, onDrawChkbMenu, setLiveMove, &enableLiveMove);
32753309
#if HAS_X_AXIS
@@ -3293,8 +3327,9 @@ void drawMoveMenu() {
32933327
#if HAS_HOME_OFFSET
32943328

32953329
void drawHomeOffsetMenu() {
3330+
constexpr uint8_t items = 1 + COUNT_ENABLED(HAS_X_AXIS, HAS_Y_AXIS, HAS_Z_AXIS);
32963331
checkkey = ID_Menu;
3297-
if (SET_MENU(homeOffsetMenu, MSG_SET_HOME_OFFSETS, 4)) {
3332+
if (SET_MENU(homeOffsetMenu, MSG_SET_HOME_OFFSETS, items)) {
32983333
BACK_ITEM(drawAdvancedSettingsMenu);
32993334
#if HAS_X_AXIS
33003335
EDIT_ITEM(ICON_HomeOffsetX, MSG_HOME_OFFSET_X, onDrawPFloatMenu, setHomeOffsetX, &home_offset.x);
@@ -3314,8 +3349,12 @@ void drawMoveMenu() {
33143349
#if HAS_BED_PROBE
33153350

33163351
void drawProbeSetMenu() {
3352+
constexpr uint8_t items = (1
3353+
+ COUNT_ENABLED(HAS_X_AXIS, HAS_Y_AXIS, HAS_Z_AXIS, Z_MIN_PROBE_REPEATABILITY_TEST)
3354+
+ TERN0(BLTOUCH, 3 + ENABLED(HAS_BLTOUCH_HS_MODE))
3355+
);
33173356
checkkey = ID_Menu;
3318-
if (SET_MENU(probeSettingsMenu, MSG_ZPROBE_SETTINGS, 9)) {
3357+
if (SET_MENU(probeSettingsMenu, MSG_ZPROBE_SETTINGS, items)) {
33193358
BACK_ITEM(drawAdvancedSettingsMenu);
33203359
#if HAS_X_AXIS
33213360
EDIT_ITEM(ICON_ProbeOffsetX, MSG_ZPROBE_XOFFSET, onDrawPFloatMenu, setProbeOffsetX, &probe.offset.x);
@@ -3344,8 +3383,12 @@ void drawMoveMenu() {
33443383
#endif // HAS_BED_PROBE
33453384

33463385
void drawFilSetMenu() {
3386+
constexpr uint8_t items = (1
3387+
+ COUNT_ENABLED(HAS_FILAMENT_SENSOR, HAS_FILAMENT_RUNOUT_DISTANCE, PREVENT_COLD_EXTRUSION, FWRETRACT)
3388+
+ TERN0(CONFIGURE_FILAMENT_CHANGE, 2)
3389+
);
33473390
checkkey = ID_Menu;
3348-
if (SET_MENU(filSetMenu, MSG_FILAMENT_SET, 9)) {
3391+
if (SET_MENU(filSetMenu, MSG_FILAMENT_SET, items)) {
33493392
BACK_ITEM(drawAdvancedSettingsMenu);
33503393
#if HAS_FILAMENT_SENSOR
33513394
EDIT_ITEM(ICON_Runout, MSG_RUNOUT_SENSOR, onDrawChkbMenu, setRunoutEnable, &runout.enabled);
@@ -3384,8 +3427,12 @@ void drawFilSetMenu() {
33843427
#if ENABLED(LED_CONTROL_MENU)
33853428

33863429
void drawLedControlMenu() {
3430+
constexpr uint8_t items = (1
3431+
+ !ALL(CASE_LIGHT_MENU, CASE_LIGHT_USE_NEOPIXEL)
3432+
+ ENABLED(HAS_COLOR_LEDS) * TERN(LED_COLOR_PRESETS, 8, 3 + ENABLED(HAS_WHITE_LED)),
3433+
);
33873434
checkkey = ID_Menu;
3388-
if (SET_MENU(ledControlMenu, MSG_LED_CONTROL, 10)) {
3435+
if (SET_MENU(ledControlMenu, MSG_LED_CONTROL, items)) {
33893436
BACK_ITEM((currentMenu == tuneMenu) ? drawTuneMenu : drawControlMenu);
33903437
#if !ALL(CASE_LIGHT_MENU, CASE_LIGHT_USE_NEOPIXEL)
33913438
EDIT_ITEM(ICON_LedControl, MSG_LIGHTS, onDrawChkbMenu, setLedStatus, &leds.lights_on);
@@ -3416,8 +3463,21 @@ void drawFilSetMenu() {
34163463
#endif // LED_CONTROL_MENU
34173464

34183465
void drawTuneMenu() {
3466+
constexpr uint8_t items = (2
3467+
+ COUNT_ENABLED(HAS_HOTEND, HAS_HEATED_BED, HAS_FAN)
3468+
+ ALL(HAS_ZOFFSET_ITEM, BABYSTEPPING)
3469+
+ 1
3470+
+ COUNT_ENABLED(ADVANCED_PAUSE_FEATURE, HAS_FILAMENT_SENSOR, PROUI_ITEM_PLR, FWRETRACT, PROUI_ITEM_JD, PROUI_ITEM_ADVK, HAS_LOCKSCREEN)
3471+
+ TERN0(HAS_LCD_BRIGHTNESS, 2)
3472+
+ ENABLED(EDITABLE_DISPLAY_TIMEOUT)
3473+
+ 2 * ALL(PROUI_TUNING_GRAPH, PROUI_ITEM_PLOT)
3474+
+ TERN(CASE_LIGHT_MENU,
3475+
1 + COUNT_ENABLED(CASELIGHT_USES_BRIGHTNESS, LED_CONTROL_MENU),
3476+
ENABLED(LED_CONTROL_MENU) && DISABLED(CASE_LIGHT_USE_NEOPIXEL)
3477+
)
3478+
);
34193479
checkkey = ID_Menu;
3420-
if (SET_MENU_R(tuneMenu, selrect({73, 2, 28, 12}), MSG_TUNE, 20)) {
3480+
if (SET_MENU_R(tuneMenu, selrect({73, 2, 28, 12}), MSG_TUNE, items)) {
34213481
BACK_ITEM(gotoPrintProcess);
34223482
EDIT_ITEM(ICON_Speed, MSG_SPEED, onDrawSpeedItem, setSpeed, &feedrate_percentage);
34233483
#if HAS_HOTEND
@@ -3518,8 +3578,9 @@ void drawTuneMenu() {
35183578
#endif
35193579

35203580
void drawInputShaping_menu() {
3581+
constexpr uint8_t items = 1 + 2 * COUNT_ENABLED(INPUT_SHAPING_X, INPUT_SHAPING_Y, INPUT_SHAPING_Z);
35213582
checkkey = ID_Menu;
3522-
if (SET_MENU(inputShapingMenu, MSG_INPUT_SHAPING, 1 PLUS_TERN0(INPUT_SHAPING_X, 2) PLUS_TERN0(INPUT_SHAPING_Y, 2) PLUS_TERN0(INPUT_SHAPING_Z, 2))) {
3583+
if (SET_MENU(inputShapingMenu, MSG_INPUT_SHAPING, items)) {
35233584
BACK_ITEM(drawMotionMenu);
35243585
#if ENABLED(INPUT_SHAPING_X)
35253586
MENU_ITEM(ICON_ShapingX, MSG_SHAPING_A_FREQ, onDrawShapingXFreq, setShapingXFreq);
@@ -3553,8 +3614,22 @@ void drawTuneMenu() {
35533614
#endif
35543615

35553616
void drawTrinamicConfigMenu() {
3617+
constexpr uint8_t items = (1
3618+
#if AXIS_IS_TMC(X)
3619+
+ 1
3620+
#endif
3621+
#if AXIS_IS_TMC(Y)
3622+
+ 1
3623+
#endif
3624+
#if AXIS_IS_TMC(Z)
3625+
+ 1
3626+
#endif
3627+
#if AXIS_IS_TMC(E0)
3628+
+ 1
3629+
#endif
3630+
);
35563631
checkkey = ID_Menu;
3557-
if (SET_MENU(trinamicConfigMenu, MSG_TMC_DRIVERS, 5)) {
3632+
if (SET_MENU(trinamicConfigMenu, MSG_TMC_DRIVERS, items)) {
35583633
BACK_ITEM(drawAdvancedSettingsMenu);
35593634
#if AXIS_IS_TMC(X)
35603635
EDIT_ITEM(ICON_TMCXSet, MSG_TMC_ACURRENT, onDrawPIntMenu, setXTMCCurrent, &stepperX.val_mA);
@@ -3574,8 +3649,12 @@ void drawTuneMenu() {
35743649
#endif
35753650

35763651
void drawMotionMenu() {
3652+
constexpr uint8_t items = (4
3653+
+ COUNT_ENABLED(EDITABLE_STEPS_PER_UNIT, EDITABLE_HOMING_FEEDRATE, LIN_ADVANCE, SHAPING_MENU, ADAPTIVE_STEP_SMOOTHING_TOGGLE)
3654+
+ 2
3655+
);
35773656
checkkey = ID_Menu;
3578-
if (SET_MENU_R(motionMenu, selrect({1, 16, 28, 13}), MSG_MOTION, 11)) {
3657+
if (SET_MENU_R(motionMenu, selrect({1, 16, 28, 13}), MSG_MOTION, items)) {
35793658
BACK_ITEM(drawControlMenu);
35803659
MENU_ITEM(ICON_MaxSpeed, MSG_SPEED, onDrawSpeed, drawMaxSpeedMenu);
35813660
MENU_ITEM(ICON_MaxAccelerated, MSG_ACCELERATION, onDrawAcc, drawMaxAccelMenu);
@@ -3620,8 +3699,13 @@ void drawMotionMenu() {
36203699
#endif
36213700

36223701
void drawFilamentManMenu() {
3702+
constexpr uint8_t items = (1
3703+
+ ENABLED(NOZZLE_PARK_FEATURE)
3704+
+ TERN0(ADVANCED_PAUSE_FEATURE, 1 + ENABLED(HAS_PREHEAT))
3705+
+ TERN0(FILAMENT_LOAD_UNLOAD_GCODES, 2)
3706+
);
36233707
checkkey = ID_Menu;
3624-
if (SET_MENU(filamentMenu, MSG_FILAMENT_MAN, 6)) {
3708+
if (SET_MENU(filamentMenu, MSG_FILAMENT_MAN, items)) {
36253709
BACK_ITEM(drawPrepareMenu);
36263710
#if ENABLED(NOZZLE_PARK_FEATURE)
36273711
MENU_ITEM(ICON_Park, MSG_FILAMENT_PARK_ENABLED, onDrawMenuItem, parkHead);
@@ -3681,16 +3765,21 @@ void drawFilamentManMenu() {
36813765

36823766
#define _preheatMenu(N) \
36833767
void drawPreheat## N ##Menu() { \
3768+
constexpr uint8_t items = 1 + COUNT_ENABLED(HAS_HOTEND, HAS_HEATED_BED, HAS_FAN, EEPROM_SETTINGS); \
36843769
hmiValue.select = (N) - 1; \
3685-
drawPreheatMenu(SET_MENU(preheatMenu, MSG_PREHEAT_## N ##_SETTINGS, 5)); \
3770+
drawPreheatMenu(SET_MENU(preheatMenu, MSG_PREHEAT_## N ##_SETTINGS, items)); \
36863771
}
36873772
REPEAT_1(PREHEAT_COUNT, _preheatMenu)
36883773

36893774
#endif // HAS_PREHEAT
36903775

36913776
void drawTemperatureMenu() {
3777+
constexpr uint8_t items = (1
3778+
+ COUNT_ENABLED(HAS_HOTEND, HAS_HEATED_BED, HAS_FAN)
3779+
+ PREHEAT_COUNT
3780+
);
36923781
checkkey = ID_Menu;
3693-
if (SET_MENU_R(temperatureMenu, selrect({236, 2, 28, 12}), MSG_TEMPERATURE, 4 + PREHEAT_COUNT)) {
3782+
if (SET_MENU_R(temperatureMenu, selrect({236, 2, 28, 12}), MSG_TEMPERATURE, items)) {
36943783
BACK_ITEM(drawControlMenu);
36953784
#if HAS_HOTEND
36963785
hotendTargetItem = EDIT_ITEM(ICON_HotendTemp, MSG_UBL_SET_TEMP_HOTEND, onDrawHotendTemp, setHotendTemp, &thermalManager.temp_hotend[0].target);
@@ -3710,8 +3799,9 @@ void drawTemperatureMenu() {
37103799
}
37113800

37123801
void drawMaxSpeedMenu() {
3802+
constexpr uint8_t items = 1 + COUNT_ENABLED(HAS_X_AXIS, HAS_Y_AXIS, HAS_Z_AXIS, HAS_HOTEND);
37133803
checkkey = ID_Menu;
3714-
if (SET_MENU_R(maxSpeedMenu, selrect({1, 16, 28, 13}), MSG_MAX_SPEED, 5)) {
3804+
if (SET_MENU_R(maxSpeedMenu, selrect({1, 16, 28, 13}), MSG_MAX_SPEED, items)) {
37153805
BACK_ITEM(drawMotionMenu);
37163806
#if HAS_X_AXIS
37173807
EDIT_ITEM(ICON_MaxSpeedX, MSG_VMAX_A, onDrawMaxSpeedX, setMaxSpeedX, &planner.settings.max_feedrate_mm_s[X_AXIS]);
@@ -3730,8 +3820,9 @@ void drawMaxSpeedMenu() {
37303820
}
37313821

37323822
void drawMaxAccelMenu() {
3823+
constexpr uint8_t items = 1 + COUNT_ENABLED(HAS_X_AXIS, HAS_Y_AXIS, HAS_Z_AXIS, HAS_HOTEND);
37333824
checkkey = ID_Menu;
3734-
if (SET_MENU_R(maxAccelMenu, selrect({1, 16, 28, 13}), MSG_AMAX_EN, 5)) {
3825+
if (SET_MENU_R(maxAccelMenu, selrect({1, 16, 28, 13}), MSG_AMAX_EN, items)) {
37353826
BACK_ITEM(drawMotionMenu);
37363827
#if HAS_X_AXIS
37373828
EDIT_ITEM(ICON_MaxAccX, MSG_AMAX_A, onDrawMaxAccelX, setMaxAccelX, &planner.settings.max_acceleration_mm_per_s2[X_AXIS]);
@@ -3752,8 +3843,9 @@ void drawMaxAccelMenu() {
37523843
#if ENABLED(CLASSIC_JERK)
37533844

37543845
void drawMaxJerkMenu() {
3846+
constexpr uint8_t items = 1 + COUNT_ENABLED(HAS_X_AXIS, HAS_Y_AXIS, HAS_Z_AXIS, HAS_HOTEND);
37553847
checkkey = ID_Menu;
3756-
if (SET_MENU_R(maxJerkMenu, selrect({1, 16, 28, 13}), MSG_JERK, 5)) {
3848+
if (SET_MENU_R(maxJerkMenu, selrect({1, 16, 28, 13}), MSG_JERK, items)) {
37573849
BACK_ITEM(drawMotionMenu);
37583850
#if HAS_X_AXIS
37593851
EDIT_ITEM(ICON_MaxSpeedJerkX, MSG_VA_JERK, onDrawMaxJerkX, setMaxJerkX, &planner.max_jerk.x);
@@ -3776,8 +3868,9 @@ void drawMaxAccelMenu() {
37763868
#if ENABLED(EDITABLE_STEPS_PER_UNIT)
37773869

37783870
void drawStepsMenu() {
3871+
constexpr uint8_t items = 1 + COUNT_ENABLED(HAS_X_AXIS, HAS_Y_AXIS, HAS_Z_AXIS, HAS_HOTEND);
37793872
checkkey = ID_Menu;
3780-
if (SET_MENU_R(stepsMenu, selrect({1, 16, 28, 13}), MSG_STEPS_PER_MM, 5)) {
3873+
if (SET_MENU_R(stepsMenu, selrect({1, 16, 28, 13}), MSG_STEPS_PER_MM, items)) {
37813874
BACK_ITEM(drawMotionMenu);
37823875
#if HAS_X_AXIS
37833876
EDIT_ITEM(ICON_StepX, MSG_A_STEPS, onDrawStepsX, setStepsX, &planner.settings.axis_steps_per_mm[X_AXIS]);
@@ -3800,8 +3893,9 @@ void drawMaxAccelMenu() {
38003893
#if ENABLED(EDITABLE_HOMING_FEEDRATE)
38013894

38023895
void drawHomingFRMenu() {
3896+
constexpr uint8_t items = 1 + COUNT_ENABLED(HAS_X_AXIS, HAS_Y_AXIS, HAS_Z_AXIS);
38033897
checkkey = ID_Menu;
3804-
if (SET_MENU(homingFRMenu, MSG_HOMING_FEEDRATE, 4)) {
3898+
if (SET_MENU(homingFRMenu, MSG_HOMING_FEEDRATE, items)) {
38053899
BACK_ITEM(drawMotionMenu);
38063900
#if HAS_X_AXIS
38073901
uint16_t xhome = static_cast<uint16_t>(homing_feedrate_mm_m.x);
@@ -3921,8 +4015,12 @@ void drawMaxAccelMenu() {
39214015
#endif
39224016

39234017
void drawHotendMPCMenu() {
4018+
constexpr uint8_t items = (1
4019+
+ ENABLED(MPC_AUTOTUNE_MENU)
4020+
+ TERN0(MPC_EDIT_MENU, 4 + ENABLED(MPC_INCLUDE_FAN))
4021+
);
39244022
checkkey = ID_Menu;
3925-
if (SET_MENU_F(hotendMPCMenu, "MPC Settings", 7)) {
4023+
if (SET_MENU_F(hotendMPCMenu, "MPC Settings", items)) {
39264024
MPC_t &mpc = thermalManager.temp_hotend[0].mpc;
39274025
BACK_ITEM(drawAdvancedSettingsMenu);
39284026
#if ENABLED(MPC_AUTOTUNE_MENU)
@@ -3991,8 +4089,13 @@ void drawMaxAccelMenu() {
39914089
#endif
39924090

39934091
void drawHotendPIDMenu() {
4092+
constexpr uint8_t items = (1
4093+
+ TERN0(PID_AUTOTUNE_MENU, 3)
4094+
+ TERN0(PID_EDIT_MENU, 3)
4095+
+ ENABLED(EEPROM_SETTINGS)
4096+
);
39944097
checkkey = ID_Menu;
3995-
if (SET_MENU_F(hotendPIDMenu, STR_HOTEND_PID " Settings", 8)) {
4098+
if (SET_MENU_F(hotendPIDMenu, STR_HOTEND_PID " Settings", items)) {
39964099
BACK_ITEM(drawAdvancedSettingsMenu);
39974100
#if ENABLED(PID_AUTOTUNE_MENU)
39984101
MENU_ITEM_F(ICON_PIDNozzle, STR_HOTEND_PID, onDrawMenuItem, hotendPID);
@@ -4021,8 +4124,13 @@ void drawMaxAccelMenu() {
40214124
#endif
40224125

40234126
void drawBedPIDMenu() {
4127+
constexpr uint8_t items = (1
4128+
+ TERN0(PID_AUTOTUNE_MENU, 3)
4129+
+ TERN0(PID_EDIT_MENU, 3)
4130+
+ ENABLED(EEPROM_SETTINGS)
4131+
);
40244132
checkkey = ID_Menu;
4025-
if (SET_MENU_F(bedPIDMenu, STR_BED_PID " Settings", 8)) {
4133+
if (SET_MENU_F(bedPIDMenu, STR_BED_PID " Settings", items)) {
40264134
BACK_ITEM(drawAdvancedSettingsMenu);
40274135
#if ENABLED(PID_AUTOTUNE_MENU)
40284136
MENU_ITEM_F(ICON_PIDBed, STR_BED_PID, onDrawMenuItem,bedPID);
@@ -4051,8 +4159,13 @@ void drawMaxAccelMenu() {
40514159
#endif
40524160

40534161
void drawChamberPIDMenu() {
4162+
constexpr uint8_t items = (1
4163+
+ TERN0(PID_AUTOTUNE_MENU, 3)
4164+
+ TERN0(PID_EDIT_MENU, 3)
4165+
+ ENABLED(EEPROM_SETTINGS)
4166+
);
40544167
checkkey = ID_Menu;
4055-
if (SET_MENU_F(chamberPIDMenu, STR_CHAMBER_PID " Settings", 8)) {
4168+
if (SET_MENU_F(chamberPIDMenu, STR_CHAMBER_PID " Settings", items)) {
40564169
BACK_ITEM(drawAdvancedSettingsMenu);
40574170
#if ENABLED(PID_AUTOTUNE_MENU)
40584171
MENU_ITEM_F(ICON_PIDChamber, STR_CHAMBER_PID, onDrawMenuItem,chamberPID);
@@ -4096,8 +4209,9 @@ void drawMaxAccelMenu() {
40964209
#if ENABLED(INDIVIDUAL_AXIS_HOMING_SUBMENU)
40974210

40984211
void drawHomingMenu() {
4212+
constexpr uint8_t items = 2 + COUNT_ENABLED(HAS_X_AXIS, HAS_Y_AXIS, HAS_Z_AXIS, Z_STEPPER_AUTO_ALIGN, MESH_BED_LEVELING);
40994213
checkkey = ID_Menu;
4100-
if (SET_MENU(homingMenu, MSG_HOMING, 6)) {
4214+
if (SET_MENU(homingMenu, MSG_HOMING, items)) {
41014215
BACK_ITEM(drawPrepareMenu);
41024216
MENU_ITEM(ICON_Homing, MSG_AUTO_HOME, onDrawMenuItem, autoHome);
41034217
#if HAS_X_AXIS
@@ -4212,8 +4326,16 @@ void drawMaxAccelMenu() {
42124326
#if HAS_MESH
42134327

42144328
void drawMeshSetMenu() {
4329+
constexpr uint8_t items = (1
4330+
+ ENABLED(PREHEAT_BEFORE_LEVELING)
4331+
+ 2
4332+
+ ENABLED(HAS_BED_PROBE)
4333+
+ TERN0(AUTO_BED_LEVELING_UBL, 6)
4334+
+ TERN0(PROUI_MESH_EDIT, 2)
4335+
+ 1
4336+
);
42154337
checkkey = ID_Menu;
4216-
if (SET_MENU(meshMenu, MSG_MESH_LEVELING, 14)) {
4338+
if (SET_MENU(meshMenu, MSG_MESH_LEVELING, items)) {
42174339
BACK_ITEM(drawAdvancedSettingsMenu);
42184340
#if ENABLED(PREHEAT_BEFORE_LEVELING)
42194341
EDIT_ITEM(ICON_Temperature, MSG_UBL_SET_TEMP_BED, onDrawPIntMenu, setBedLevT, &hmiData.bedLevT);

0 commit comments

Comments
Β (0)