|
|
@ -1012,10 +1012,62 @@ void CrealityDWINClass::Update_Status_Bar(bool refresh/*=false*/) { |
|
|
|
/* Menu Item Config */ |
|
|
|
|
|
|
|
void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/*=true*/) { |
|
|
|
uint8_t row = item - scrollpos; |
|
|
|
const uint8_t row = item - scrollpos; |
|
|
|
#if HAS_LEVELING |
|
|
|
static bool level_state; |
|
|
|
#endif |
|
|
|
|
|
|
|
#if HAS_PREHEAT |
|
|
|
|
|
|
|
#define PREHEAT_BACK 0 |
|
|
|
#define PREHEAT_SUBMENU_HOTEND (PREHEAT_BACK + ENABLED(HAS_HOTEND)) |
|
|
|
#define PREHEAT_SUBMENU_BED (PREHEAT_SUBMENU_HOTEND + ENABLED(HAS_HEATED_BED)) |
|
|
|
#define PREHEAT_SUBMENU_FAN (PREHEAT_SUBMENU_BED + ENABLED(HAS_FAN)) |
|
|
|
#define PREHEAT_SUBMENU_TOTAL PREHEAT_SUBMENU_FAN |
|
|
|
|
|
|
|
auto preheat_submenu = [&](const int index, const uint8_t item, const uint8_t sel) { |
|
|
|
switch (item) { |
|
|
|
case PREHEAT_BACK: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Back, F("Back")); |
|
|
|
else |
|
|
|
Draw_Menu(TempMenu, sel); |
|
|
|
break; |
|
|
|
#if HAS_HOTEND |
|
|
|
case PREHEAT_SUBMENU_HOTEND: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_SetEndTemp, F("Hotend")); |
|
|
|
Draw_Float(ui.material_preset[index].hotend_temp, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[index].hotend_temp, MIN_E_TEMP, MAX_E_TEMP, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if HAS_HEATED_BED |
|
|
|
case PREHEAT_SUBMENU_BED: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_SetBedTemp, F("Bed")); |
|
|
|
Draw_Float(ui.material_preset[index].bed_temp, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[index].bed_temp, MIN_BED_TEMP, MAX_BED_TEMP, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if HAS_FAN |
|
|
|
case PREHEAT_SUBMENU_FAN: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_FanSpeed, F("Fan")); |
|
|
|
Draw_Float(ui.material_preset[index].fan_speed, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[index].fan_speed, MIN_FAN_SPEED, MAX_FAN_SPEED, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
switch (menu) { |
|
|
|
case Prepare: |
|
|
|
|
|
|
@ -1584,7 +1636,6 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/ |
|
|
|
|
|
|
|
#if HAS_PREHEAT |
|
|
|
case Preheat: { |
|
|
|
#define PREHEAT_BACK 0 |
|
|
|
#define PREHEAT_MODE (PREHEAT_BACK + 1) |
|
|
|
#define PREHEAT_1 (PREHEAT_MODE + 1) |
|
|
|
#define PREHEAT_2 (PREHEAT_1 + (PREHEAT_COUNT >= 2)) |
|
|
@ -1606,6 +1657,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/ |
|
|
|
else |
|
|
|
Draw_Menu(Prepare, PREPARE_PREHEAT); |
|
|
|
break; |
|
|
|
|
|
|
|
case PREHEAT_MODE: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_Homing, F("Preheat Mode")); |
|
|
@ -1615,50 +1667,13 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/ |
|
|
|
Modify_Option(preheatmode, preheat_modes, 2); |
|
|
|
break; |
|
|
|
|
|
|
|
#if PREHEAT_COUNT >= 1 |
|
|
|
case PREHEAT_1: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Temperature, F(PREHEAT_1_LABEL)); |
|
|
|
else |
|
|
|
do_preheat(0); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PREHEAT_COUNT >= 2 |
|
|
|
case PREHEAT_2: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Temperature, F(PREHEAT_2_LABEL)); |
|
|
|
else |
|
|
|
do_preheat(1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PREHEAT_COUNT >= 3 |
|
|
|
case PREHEAT_3: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Temperature, F(PREHEAT_3_LABEL)); |
|
|
|
else |
|
|
|
do_preheat(2); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
|
|
|
|
#if PREHEAT_COUNT >= 4 |
|
|
|
case PREHEAT_4: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Temperature, F(PREHEAT_4_LABEL)); |
|
|
|
else |
|
|
|
do_preheat(3); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#define _PREHEAT_CASE(N) \ |
|
|
|
case PREHEAT_##N: { \ |
|
|
|
if (draw) Draw_Menu_Item(row, ICON_Temperature, F(PREHEAT_## N ##_LABEL)); \ |
|
|
|
else do_preheat(N - 1); \ |
|
|
|
} break; |
|
|
|
|
|
|
|
#if PREHEAT_COUNT >= 5 |
|
|
|
case PREHEAT_5: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Temperature, F(PREHEAT_5_LABEL)); |
|
|
|
else |
|
|
|
do_preheat(4); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
REPEAT_1(PREHEAT_COUNT, _PREHEAT_CASE) |
|
|
|
} |
|
|
|
} break; |
|
|
|
#endif // HAS_PREHEAT
|
|
|
@ -1871,46 +1886,14 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/ |
|
|
|
Draw_Menu(PID); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 1 |
|
|
|
case TEMP_PREHEAT1: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Step, F(PREHEAT_1_LABEL), nullptr, true); |
|
|
|
else |
|
|
|
Draw_Menu(Preheat1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 2 |
|
|
|
case TEMP_PREHEAT2: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Step, F(PREHEAT_2_LABEL), nullptr, true); |
|
|
|
else |
|
|
|
Draw_Menu(Preheat2); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 3 |
|
|
|
case TEMP_PREHEAT3: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Step, F(PREHEAT_3_LABEL), nullptr, true); |
|
|
|
else |
|
|
|
Draw_Menu(Preheat3); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 4 |
|
|
|
case TEMP_PREHEAT4: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Step, F(PREHEAT_4_LABEL), nullptr, true); |
|
|
|
else |
|
|
|
Draw_Menu(Preheat4); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 5 |
|
|
|
case TEMP_PREHEAT5: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Step, F(PREHEAT_5_LABEL), nullptr, true); |
|
|
|
else |
|
|
|
Draw_Menu(Preheat5); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
|
|
|
|
#define _TEMP_PREHEAT_CASE(N) \ |
|
|
|
case TEMP_PREHEAT##N: { \ |
|
|
|
if (draw) Draw_Menu_Item(row, ICON_Step, F(PREHEAT_## N ##_LABEL), nullptr, true); \ |
|
|
|
else Draw_Menu(Preheat##N); \ |
|
|
|
} break; |
|
|
|
|
|
|
|
REPEAT_1(PREHEAT_COUNT, _TEMP_PREHEAT_CASE) |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
@ -2095,255 +2078,10 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/ |
|
|
|
break; |
|
|
|
#endif // HAS_HEATED_BED
|
|
|
|
|
|
|
|
#if PREHEAT_COUNT >= 1 |
|
|
|
case Preheat1: |
|
|
|
|
|
|
|
#define PREHEAT1_BACK 0 |
|
|
|
#define PREHEAT1_HOTEND (PREHEAT1_BACK + ENABLED(HAS_HOTEND)) |
|
|
|
#define PREHEAT1_BED (PREHEAT1_HOTEND + ENABLED(HAS_HEATED_BED)) |
|
|
|
#define PREHEAT1_FAN (PREHEAT1_BED + ENABLED(HAS_FAN)) |
|
|
|
#define PREHEAT1_TOTAL PREHEAT1_FAN |
|
|
|
|
|
|
|
switch (item) { |
|
|
|
case PREHEAT1_BACK: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Back, F("Back")); |
|
|
|
else |
|
|
|
Draw_Menu(TempMenu, TEMP_PREHEAT1); |
|
|
|
break; |
|
|
|
#if HAS_HOTEND |
|
|
|
case PREHEAT1_HOTEND: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_SetEndTemp, F("Hotend")); |
|
|
|
Draw_Float(ui.material_preset[0].hotend_temp, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[0].hotend_temp, MIN_E_TEMP, MAX_E_TEMP, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if HAS_HEATED_BED |
|
|
|
case PREHEAT1_BED: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_SetBedTemp, F("Bed")); |
|
|
|
Draw_Float(ui.material_preset[0].bed_temp, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[0].bed_temp, MIN_BED_TEMP, MAX_BED_TEMP, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if HAS_FAN |
|
|
|
case PREHEAT1_FAN: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_FanSpeed, F("Fan")); |
|
|
|
Draw_Float(ui.material_preset[0].fan_speed, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[0].fan_speed, MIN_FAN_SPEED, MAX_FAN_SPEED, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
} |
|
|
|
break; |
|
|
|
#endif // PREHEAT_COUNT >= 1
|
|
|
|
|
|
|
|
#if PREHEAT_COUNT >= 2 |
|
|
|
case Preheat2: |
|
|
|
|
|
|
|
#define PREHEAT2_BACK 0 |
|
|
|
#define PREHEAT2_HOTEND (PREHEAT2_BACK + ENABLED(HAS_HOTEND)) |
|
|
|
#define PREHEAT2_BED (PREHEAT2_HOTEND + ENABLED(HAS_HEATED_BED)) |
|
|
|
#define PREHEAT2_FAN (PREHEAT2_BED + ENABLED(HAS_FAN)) |
|
|
|
#define PREHEAT2_TOTAL PREHEAT2_FAN |
|
|
|
|
|
|
|
switch (item) { |
|
|
|
case PREHEAT2_BACK: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Back, F("Back")); |
|
|
|
else |
|
|
|
Draw_Menu(TempMenu, TEMP_PREHEAT2); |
|
|
|
break; |
|
|
|
#if HAS_HOTEND |
|
|
|
case PREHEAT2_HOTEND: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_SetEndTemp, F("Hotend")); |
|
|
|
Draw_Float(ui.material_preset[1].hotend_temp, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[1].hotend_temp, MIN_E_TEMP, MAX_E_TEMP, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if HAS_HEATED_BED |
|
|
|
case PREHEAT2_BED: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_SetBedTemp, F("Bed")); |
|
|
|
Draw_Float(ui.material_preset[1].bed_temp, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[1].bed_temp, MIN_BED_TEMP, MAX_BED_TEMP, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if HAS_FAN |
|
|
|
case PREHEAT2_FAN: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_FanSpeed, F("Fan")); |
|
|
|
Draw_Float(ui.material_preset[1].fan_speed, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[1].fan_speed, MIN_FAN_SPEED, MAX_FAN_SPEED, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
} |
|
|
|
break; |
|
|
|
#endif // PREHEAT_COUNT >= 2
|
|
|
|
|
|
|
|
#if PREHEAT_COUNT >= 3 |
|
|
|
case Preheat3: |
|
|
|
|
|
|
|
#define PREHEAT3_BACK 0 |
|
|
|
#define PREHEAT3_HOTEND (PREHEAT3_BACK + ENABLED(HAS_HOTEND)) |
|
|
|
#define PREHEAT3_BED (PREHEAT3_HOTEND + ENABLED(HAS_HEATED_BED)) |
|
|
|
#define PREHEAT3_FAN (PREHEAT3_BED + ENABLED(HAS_FAN)) |
|
|
|
#define PREHEAT3_TOTAL PREHEAT3_FAN |
|
|
|
|
|
|
|
switch (item) { |
|
|
|
case PREHEAT3_BACK: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Back, F("Back")); |
|
|
|
else |
|
|
|
Draw_Menu(TempMenu, TEMP_PREHEAT3); |
|
|
|
break; |
|
|
|
#if HAS_HOTEND |
|
|
|
case PREHEAT3_HOTEND: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_SetEndTemp, F("Hotend")); |
|
|
|
Draw_Float(ui.material_preset[2].hotend_temp, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[2].hotend_temp, MIN_E_TEMP, MAX_E_TEMP, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if HAS_HEATED_BED |
|
|
|
case PREHEAT3_BED: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_SetBedTemp, F("Bed")); |
|
|
|
Draw_Float(ui.material_preset[2].bed_temp, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[2].bed_temp, MIN_BED_TEMP, MAX_BED_TEMP, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if HAS_FAN |
|
|
|
case PREHEAT3_FAN: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_FanSpeed, F("Fan")); |
|
|
|
Draw_Float(ui.material_preset[2].fan_speed, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[2].fan_speed, MIN_FAN_SPEED, MAX_FAN_SPEED, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
} |
|
|
|
break; |
|
|
|
#endif // PREHEAT_COUNT >= 3
|
|
|
|
|
|
|
|
#if PREHEAT_COUNT >= 4 |
|
|
|
case Preheat4: |
|
|
|
|
|
|
|
#define PREHEAT4_BACK 0 |
|
|
|
#define PREHEAT4_HOTEND (PREHEAT4_BACK + ENABLED(HAS_HOTEND)) |
|
|
|
#define PREHEAT4_BED (PREHEAT4_HOTEND + ENABLED(HAS_HEATED_BED)) |
|
|
|
#define PREHEAT4_FAN (PREHEAT4_BED + ENABLED(HAS_FAN)) |
|
|
|
#define PREHEAT4_TOTAL PREHEAT4_FAN |
|
|
|
|
|
|
|
switch (item) { |
|
|
|
case PREHEAT4_BACK: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Back, F("Back")); |
|
|
|
else |
|
|
|
Draw_Menu(TempMenu, TEMP_PREHEAT4); |
|
|
|
break; |
|
|
|
#if HAS_HOTEND |
|
|
|
case PREHEAT4_HOTEND: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_SetEndTemp, F("Hotend")); |
|
|
|
Draw_Float(ui.material_preset[3].hotend_temp, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[3].hotend_temp, MIN_E_TEMP, MAX_E_TEMP, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if HAS_HEATED_BED |
|
|
|
case PREHEAT4_BED: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_SetBedTemp, F("Bed")); |
|
|
|
Draw_Float(ui.material_preset[3].bed_temp, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[3].bed_temp, MIN_BED_TEMP, MAX_BED_TEMP, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if HAS_FAN |
|
|
|
case PREHEAT4_FAN: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_FanSpeed, F("Fan")); |
|
|
|
Draw_Float(ui.material_preset[3].fan_speed, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[3].fan_speed, MIN_FAN_SPEED, MAX_FAN_SPEED, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
} |
|
|
|
break; |
|
|
|
#endif // PREHEAT_COUNT >= 4
|
|
|
|
|
|
|
|
#if PREHEAT_COUNT >= 5 |
|
|
|
case Preheat5: |
|
|
|
|
|
|
|
#define PREHEAT5_BACK 0 |
|
|
|
#define PREHEAT5_HOTEND (PREHEAT5_BACK + ENABLED(HAS_HOTEND)) |
|
|
|
#define PREHEAT5_BED (PREHEAT5_HOTEND + ENABLED(HAS_HEATED_BED)) |
|
|
|
#define PREHEAT5_FAN (PREHEAT5_BED + ENABLED(HAS_FAN)) |
|
|
|
#define PREHEAT5_TOTAL PREHEAT5_FAN |
|
|
|
|
|
|
|
switch (item) { |
|
|
|
case PREHEAT5_BACK: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Back, F("Back")); |
|
|
|
else |
|
|
|
Draw_Menu(TempMenu, TEMP_PREHEAT5); |
|
|
|
break; |
|
|
|
#if HAS_HOTEND |
|
|
|
case PREHEAT5_HOTEND: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_SetEndTemp, F("Hotend")); |
|
|
|
Draw_Float(ui.material_preset[4].hotend_temp, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[4].hotend_temp, MIN_E_TEMP, MAX_E_TEMP, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if HAS_HEATED_BED |
|
|
|
case PREHEAT5_BED: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_SetBedTemp, F("Bed")); |
|
|
|
Draw_Float(ui.material_preset[4].bed_temp, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[4].bed_temp, MIN_BED_TEMP, MAX_BED_TEMP, 1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if HAS_FAN |
|
|
|
case PREHEAT5_FAN: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_FanSpeed, F("Fan")); |
|
|
|
Draw_Float(ui.material_preset[4].fan_speed, row, false, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
Modify_Value(ui.material_preset[4].fan_speed, MIN_FAN_SPEED, MAX_FAN_SPEED, 1); |
|
|
|
break; |
|
|
|
#if HAS_PREHEAT |
|
|
|
#define _PREHEAT_SUBMENU_CASE(N) case Preheat##N: preheat_submenu(N, item, TEMP_PREHEAT##N); break; |
|
|
|
REPEAT_1(PREHEAT_COUNT, _PREHEAT_SUBMENU_CASE) |
|
|
|
#endif |
|
|
|
} |
|
|
|
break; |
|
|
|
#endif // PREHEAT_COUNT >= 5
|
|
|
|
|
|
|
|
case Motion: |
|
|
|
|
|
|
@ -3855,6 +3593,8 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/ |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
|
#if HAS_PREHEAT && HAS_HOTEND |
|
|
|
|
|
|
|
case PreheatHotend: |
|
|
|
|
|
|
|
#define PREHEATHOTEND_BACK 0 |
|
|
@ -3918,46 +3658,16 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/ |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
#if PREHEAT_COUNT >= 1 |
|
|
|
case PREHEATHOTEND_1: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Temperature, F(PREHEAT_1_LABEL)); |
|
|
|
else |
|
|
|
ui.preheat_hotend_and_fan(0); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 2 |
|
|
|
case PREHEATHOTEND_2: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Temperature, F(PREHEAT_2_LABEL)); |
|
|
|
else |
|
|
|
ui.preheat_hotend_and_fan(1); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 3 |
|
|
|
case PREHEATHOTEND_3: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Temperature, F(PREHEAT_3_LABEL)); |
|
|
|
else |
|
|
|
ui.preheat_hotend_and_fan(2); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 4 |
|
|
|
case PREHEATHOTEND_4: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Temperature, F(PREHEAT_4_LABEL)); |
|
|
|
else |
|
|
|
ui.preheat_hotend_and_fan(3); |
|
|
|
break; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 5 |
|
|
|
case PREHEATHOTEND_5: |
|
|
|
if (draw) |
|
|
|
Draw_Menu_Item(row, ICON_Temperature, F(PREHEAT_5_LABEL)); |
|
|
|
else |
|
|
|
ui.preheat_hotend_and_fan(4); |
|
|
|
|
|
|
|
|
|
|
|
#define _PREHEAT_HOTEND_CASE(N) \ |
|
|
|
case PREHEATHOTEND_##N: \ |
|
|
|
if (draw) Draw_Menu_Item(row, ICON_Temperature, F(PREHEAT_## N ##_LABEL)); \ |
|
|
|
else ui.preheat_hotend_and_fan((N) - 1); \ |
|
|
|
break; |
|
|
|
#endif |
|
|
|
|
|
|
|
REPEAT_1(PREHEAT_COUNT, _PREHEAT_HOTEND_CASE) |
|
|
|
|
|
|
|
case PREHEATHOTEND_CUSTOM: |
|
|
|
if (draw) { |
|
|
|
Draw_Menu_Item(row, ICON_Temperature, F("Custom")); |
|
|
@ -3968,6 +3678,8 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/ |
|
|
|
break; |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
|
#endif // HAS_PREHEAT && HAS_HOTEND
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -3998,20 +3710,9 @@ FSTR_P CrealityDWINClass::Get_Menu_Title(uint8_t menu) { |
|
|
|
#if HAS_HEATED_BED |
|
|
|
case BedPID: return F("Bed PID Settings"); |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 1 |
|
|
|
case Preheat1: return F(PREHEAT_1_LABEL " Settings"); |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 2 |
|
|
|
case Preheat2: return F(PREHEAT_2_LABEL " Settings"); |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 3 |
|
|
|
case Preheat3: return F(PREHEAT_3_LABEL " Settings"); |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 4 |
|
|
|
case Preheat4: return F(PREHEAT_4_LABEL " Settings"); |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 5 |
|
|
|
case Preheat5: return F(PREHEAT_5_LABEL " Settings"); |
|
|
|
#if HAS_PREHEAT |
|
|
|
#define _PREHEAT_TITLE_CASE(N) case Preheat##N: return F(PREHEAT_## N ##_LABEL " Settings"); |
|
|
|
REPEAT_1(PREHEAT_COUNT, _PREHEAT_TITLE_CASE) |
|
|
|
#endif |
|
|
|
case Motion: return F("Motion Settings"); |
|
|
|
case HomeOffsets: return F("Home Offsets"); |
|
|
@ -4074,20 +3775,9 @@ uint8_t CrealityDWINClass::Get_Menu_Size(uint8_t menu) { |
|
|
|
#if HAS_HEATED_BED |
|
|
|
case BedPID: return BEDPID_TOTAL; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 1 |
|
|
|
case Preheat1: return PREHEAT1_TOTAL; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 2 |
|
|
|
case Preheat2: return PREHEAT2_TOTAL; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 3 |
|
|
|
case Preheat3: return PREHEAT3_TOTAL; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 4 |
|
|
|
case Preheat4: return PREHEAT4_TOTAL; |
|
|
|
#endif |
|
|
|
#if PREHEAT_COUNT >= 5 |
|
|
|
case Preheat5: return PREHEAT5_TOTAL; |
|
|
|
#if HAS_PREHEAT |
|
|
|
case Preheat1 ... CAT(Preheat, PREHEAT_COUNT): |
|
|
|
return PREHEAT_SUBMENU_TOTAL; |
|
|
|
#endif |
|
|
|
case Motion: return MOTION_TOTAL; |
|
|
|
case HomeOffsets: return HOMEOFFSETS_TOTAL; |
|
|
@ -4118,7 +3808,11 @@ uint8_t CrealityDWINClass::Get_Menu_Size(uint8_t menu) { |
|
|
|
case LevelManual: return LEVELING_M_TOTAL; |
|
|
|
#endif |
|
|
|
case Tune: return TUNE_TOTAL; |
|
|
|
|
|
|
|
#if HAS_PREHEAT && HAS_HOTEND |
|
|
|
case PreheatHotend: return PREHEATHOTEND_TOTAL; |
|
|
|
#endif |
|
|
|
|
|
|
|
case ColorSettings: return COLORSETTINGS_TOTAL; |
|
|
|
} |
|
|
|
return 0; |
|
|
|