Translatable strings on Ender-3 V2 DWIN (#19053)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
Steven Haigh 2020-08-22 14:44:21 +10:00 committed by Scott Lahteine
parent fe1e880ffe
commit ee19e1d3ff
2 changed files with 218 additions and 182 deletions

View File

@ -190,23 +190,23 @@ float last_zoffset = 0, last_probe_zoffset = 0;
#define DWIN_LANGUAGE_EEPROM_ADDRESS 0x01 // Between 0x01 and 0x63 (EEPROM_OFFSET-1)
// BL24CXX::check() uses 0x00
void lcd_select_language(void) {
BL24CXX::read(DWIN_LANGUAGE_EEPROM_ADDRESS, (uint8_t*)&HMI_flag.language_flag, sizeof(HMI_flag.language_flag));
if (HMI_flag.language_flag)
void HMI_SetLanguage(void) {
BL24CXX::read(DWIN_LANGUAGE_EEPROM_ADDRESS, (uint8_t*)&HMI_flag.language_chinese, sizeof(HMI_flag.language_chinese));
if (HMI_flag.language_chinese)
DWIN_JPG_CacheTo1(Language_Chinese);
else
DWIN_JPG_CacheTo1(Language_English);
}
void set_english_to_eeprom(void) {
HMI_flag.language_flag = 0;
void HMI_SetAndSaveLanguageWestern(void) {
HMI_flag.language_chinese = false;
DWIN_JPG_CacheTo1(Language_English);
BL24CXX::write(DWIN_LANGUAGE_EEPROM_ADDRESS, (uint8_t*)&HMI_flag.language_flag, sizeof(HMI_flag.language_flag));
BL24CXX::write(DWIN_LANGUAGE_EEPROM_ADDRESS, (uint8_t*)&HMI_flag.language_chinese, sizeof(HMI_flag.language_chinese));
}
void set_chinese_to_eeprom(void) {
HMI_flag.language_flag = 1;
void HMI_SetAndSaveLanguageChinese(void) {
HMI_flag.language_chinese = true;
DWIN_JPG_CacheTo1(Language_Chinese);
BL24CXX::write(DWIN_LANGUAGE_EEPROM_ADDRESS, (uint8_t*)&HMI_flag.language_flag, sizeof(HMI_flag.language_flag));
BL24CXX::write(DWIN_LANGUAGE_EEPROM_ADDRESS, (uint8_t*)&HMI_flag.language_chinese, sizeof(HMI_flag.language_chinese));
}
void show_plus_or_minus(uint8_t size, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
@ -223,14 +223,14 @@ void show_plus_or_minus(uint8_t size, uint16_t bColor, uint8_t iNum, uint8_t fNu
void ICON_Print() {
if (select_page.now == 0) {
DWIN_ICON_Show(ICON, ICON_Print_1, 17, 130);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 1, 447, 271 - 243, 479 - 19, 58, 201);
else
DWIN_Frame_AreaCopy(1, 1, 451, 271 - 240, 479 - 16, 72 - 15, 201);
}
else {
DWIN_ICON_Show(ICON, ICON_Print_0, 17, 130);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 1, 405, 271 - 243, 420, 58, 201);
else
DWIN_Frame_AreaCopy(1, 1, 423, 271 - 240, 423 + 12, 72 - 15, 201);
@ -240,14 +240,14 @@ void ICON_Print() {
void ICON_Prepare() {
if (select_page.now == 1) {
DWIN_ICON_Show(ICON, ICON_Prepare_1, 145, 130);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 31, 447, 271 - 213, 479 - 19, 186, 201);
else
DWIN_Frame_AreaCopy(1, 33, 451, 271 - 189, 479 - 13, 200 - 25, 201);
}
else {
DWIN_ICON_Show(ICON, ICON_Prepare_0, 145, 130);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 31, 405, 271 - 213, 420, 186, 201);
else
DWIN_Frame_AreaCopy(1, 33, 423, 271 - 189, 423 + 15, 200 - 25, 201);
@ -257,14 +257,14 @@ void ICON_Prepare() {
void ICON_Control() {
if (select_page.now == 2) {
DWIN_ICON_Show(ICON, ICON_Control_1, 17, 246);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 61, 447, 271 - 183, 479 - 19, 58, 318);
else
DWIN_Frame_AreaCopy(1, 85, 451, 271 - 139, 479 - 16, 72 - 24, 318);
}
else {
DWIN_ICON_Show(ICON, ICON_Control_0, 17, 246);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 61, 405, 271 - 183, 420, 58, 318);
else
DWIN_Frame_AreaCopy(1, 85, 423, 271 - 139, 479 - 45, 72 - 24, 318);
@ -274,14 +274,14 @@ void ICON_Control() {
void ICON_StartInfo(bool show) {
if (show) {
DWIN_ICON_Show(ICON, ICON_Info_1, 145, 246);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 91, 447, 271 - 153, 479 - 19, 186, 318);
else
DWIN_Frame_AreaCopy(1, 132, 451, 159, 479 - 13, 186, 318);
}
else {
DWIN_ICON_Show(ICON, ICON_Info_0, 145, 246);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 91, 405, 271 - 153, 420, 186, 318);
else
DWIN_Frame_AreaCopy(1, 132, 423, 159, 423 + 12, 186, 318);
@ -291,14 +291,14 @@ void ICON_StartInfo(bool show) {
void ICON_Leveling(bool show) {
if (show) {
DWIN_ICON_Show(ICON, ICON_Leveling_1, 145, 246);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 211, 447, 238, 479 - 19, 186, 318);
else
DWIN_Frame_AreaCopy(1, 84, 437, 120, 449, 200 - 18, 318);
}
else {
DWIN_ICON_Show(ICON, ICON_Leveling_0, 145, 246);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 211, 405, 238, 420, 186, 318);
else
DWIN_Frame_AreaCopy(1, 84, 465, 120, 478, 200 - 18, 318);
@ -308,14 +308,14 @@ void ICON_Leveling(bool show) {
void ICON_Tune() {
if (select_print.now == 0) {
DWIN_ICON_Show(ICON, ICON_Setup_1, 8, 252);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 121, 447, 271 - 123, 479 - 21, 34, 325);
else
DWIN_Frame_AreaCopy(1, 1, 465, 271 - 237, 479 - 2, 48 - 17, 325);
}
else {
DWIN_ICON_Show(ICON, ICON_Setup_0, 8, 252);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 121, 405, 271 - 123, 420, 34, 325);
else
DWIN_Frame_AreaCopy(1, 1, 438, 271 - 239, 479 - 31, 48 - 17, 325);
@ -325,14 +325,14 @@ void ICON_Tune() {
void ICON_Pause() {
if (select_print.now == 1) {
DWIN_ICON_Show(ICON, ICON_Pause_1, 96, 252);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 181, 447, 271 - 63, 479 - 20, 124, 325);
else
DWIN_Frame_AreaCopy(1, 177, 451, 271 - 55, 479 - 17, 136 - 20, 325);
}
else {
DWIN_ICON_Show(ICON, ICON_Pause_0, 96, 252);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 181, 405, 271 - 63, 420, 124, 325);
else
DWIN_Frame_AreaCopy(1, 177, 423, 271 - 56, 479 - 46, 136 - 20, 325);
@ -342,14 +342,14 @@ void ICON_Pause() {
void ICON_Continue() {
if (select_print.now == 1) {
DWIN_ICON_Show(ICON, ICON_Continue_1, 96, 252);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 1, 447, 271 - 243, 479 - 19, 124, 325);
else
DWIN_Frame_AreaCopy(1, 1, 451, 271 - 239, 479 - 16, 136 - 15, 325);
}
else {
DWIN_ICON_Show(ICON, ICON_Continue_0, 96, 252);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 1, 405, 271 - 243, 420, 124, 325);
else
DWIN_Frame_AreaCopy(1, 1, 424, 271 - 240, 479 - 45, 136 - 15, 325);
@ -359,14 +359,14 @@ void ICON_Continue() {
void ICON_Stop() {
if (select_print.now == 2) {
DWIN_ICON_Show(ICON, ICON_Stop_1, 184, 252);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 151, 447, 271 - 93, 479 - 20, 210, 325);
else
DWIN_Frame_AreaCopy(1, 218, 451, 271 - 22, 479 - 14, 224 - 15, 325);
}
else {
DWIN_ICON_Show(ICON, ICON_Stop_0, 184, 252);
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 151, 405, 271 - 93, 420, 210, 325);
else
DWIN_Frame_AreaCopy(1, 218, 423, 271 - 24, 479 - 43, 224 - 15, 325);
@ -454,7 +454,7 @@ inline void Draw_Menu_Line(const uint8_t line, const uint8_t icon=0, const char
// The "Back" label is always on the first line
inline void Draw_Back_Label(void) {
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 129, 72, 271 - 115, 479 - 395, LBLX, MBASE(0));
else
DWIN_Frame_AreaCopy(1, 226, 179, 271 - 15, 479 - 290, LBLX, MBASE(0));
@ -476,7 +476,7 @@ inline void draw_move_en(const uint16_t line) {
}
inline void Prepare_Item_Move(const uint8_t row) {
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 159, 70, 271 - 71, 479 - 395, LBLX, MBASE(row));
else
draw_move_en(MBASE(row)); // "Move >"
@ -485,7 +485,7 @@ inline void Prepare_Item_Move(const uint8_t row) {
}
inline void Prepare_Item_Disable(const uint8_t row) {
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 204, 70, 271 - 12, 479 - 397, LBLX, MBASE(row));
else
DWIN_Frame_AreaCopy(1, 103, 59, 271 - 71, 479 - 405, LBLX, MBASE(row)); // "Disable Stepper"
@ -493,7 +493,7 @@ inline void Prepare_Item_Disable(const uint8_t row) {
}
inline void Prepare_Item_Home(const uint8_t row) {
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 0, 89, 271 - 230, 479 - 378, LBLX, MBASE(row));
else
DWIN_Frame_AreaCopy(1, 202, 61, 271 - 0, 479 - 408, LBLX, MBASE(row)); // "Auto Home"
@ -501,7 +501,7 @@ inline void Prepare_Item_Home(const uint8_t row) {
}
inline void Prepare_Item_Offset(const uint8_t row) {
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
#if HAS_BED_PROBE
DWIN_Frame_AreaCopy(1, 174, 164, 271 - 48, 479 - 302, LBLX, MBASE(row));
show_plus_or_minus(font8x16, Background_black, 2, 2, 202, MBASE(row), probe.offset.z * 100);
@ -521,7 +521,7 @@ inline void Prepare_Item_Offset(const uint8_t row) {
}
inline void Prepare_Item_PLA(const uint8_t row) {
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 100, 89, 271 - 93 - 27, 479 - 378, LBLX, MBASE(row));
}
else {
@ -532,7 +532,7 @@ inline void Prepare_Item_PLA(const uint8_t row) {
}
inline void Prepare_Item_ABS(const uint8_t row) {
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 180, 89, 271 - 11 - 27, 479 - 379, LBLX, MBASE(row));
}
else {
@ -543,7 +543,7 @@ inline void Prepare_Item_ABS(const uint8_t row) {
}
inline void Prepare_Item_Cool(const uint8_t row) {
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 1, 104, 271 - 215, 479 - 362, LBLX, MBASE(row));
else
DWIN_Frame_AreaCopy(1, 200, 76, 271 - 7, 479 - 393, LBLX, MBASE(row));// "Cooldown"
@ -551,7 +551,7 @@ inline void Prepare_Item_Cool(const uint8_t row) {
}
inline void Prepare_Item_Lang(const uint8_t row) {
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 239, 134, 271 - 5, 479 - 333, LBLX, MBASE(row));
DWIN_Draw_String(false, false, font8x16, White, Background_black, 226, MBASE(row), (char*)"CN");
}
@ -569,7 +569,7 @@ inline void Draw_Prepare_Menu() {
#define PSCROL(L) (scroll + (L))
#define PVISI(L) WITHIN(PSCROL(L), 0, MROWS)
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 133, 1, 271 - 111, 479 - 465 - 1, 14, 8); // "Prepare"
}
else {
@ -604,7 +604,7 @@ inline void Draw_Control_Menu() {
if (CVISI(0)) Draw_Back_First(select_control.now == 0); // < Back
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 103, 1, 271 - 141, 479 - 465, 14, 8);
DWIN_Frame_AreaCopy(1, 57, 104, 271 - 187, 479 - 363, LBLX, CLINE(1)); // Temperature >
DWIN_Frame_AreaCopy(1, 87, 104, 271 - 157, 479 - 363, LBLX, CLINE(2)); // Motion >
@ -618,22 +618,25 @@ inline void Draw_Control_Menu() {
else {
#ifdef USE_STRING_HEADINGS
Draw_Title(GET_TEXT_F(MSG_CONTROL));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)GET_TEXT_F(MSG_TEMPERATURE));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)GET_TEXT_F(MSG_MOTION));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)GET_TEXT_F(MSG_STORE_EEPROM));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)GET_TEXT_F(MSG_LOAD_EEPROM));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 4), (char*)GET_TEXT_F(MSG_RESTORE_DEFAULTS));
if (CVISI(6))
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 5), (char*)"Info");
#else
DWIN_Frame_AreaCopy(1, 128, 2, 271 - 95, 479 - 467, 14, 8);
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX, CLINE(1));// Temperature >
DWIN_Frame_AreaCopy(1, 84, 89, 271 - 143, 479 - 380, LBLX, CLINE(2));// Motion >
DWIN_Frame_AreaCopy(1, 131 + 17, 89, 271 - 3, 479 - 377 - 1, LBLX, CLINE(3));// "Store Configuration"
DWIN_Frame_AreaCopy(1, 26, 104, 271 - 214, 479 - 365, LBLX, CLINE(4)); // "Read"
DWIN_Frame_AreaCopy(1, 131 + 51, 89, 271 - 3, 479 - 377 - 1, LBLX + 31 + 3, CLINE(4)); // "Configuration"
DWIN_Frame_AreaCopy(1, 59, 104, 271 - 178, 479 - 365, LBLX, CLINE(5)); // "Reset"
DWIN_Frame_AreaCopy(1, 131 + 51, 89, 271 - 3, 479 - 377 - 1, LBLX + 34 + 3, CLINE(5)); // "Configuration"
if (CVISI(6))
DWIN_Frame_AreaCopy(1, 0, 104, 25, 115, LBLX, CLINE(6)); // Info >
#endif
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX, CLINE(1));// Temperature >
DWIN_Frame_AreaCopy(1, 84, 89, 271 - 143, 479 - 380, LBLX, CLINE(2));// Motion >
DWIN_Frame_AreaCopy(1, 131 + 17, 89, 271 - 3, 479 - 377 - 1, LBLX, CLINE(3));// "Store Configuration"
DWIN_Frame_AreaCopy(1, 26, 104, 271 - 214, 479 - 365, LBLX, CLINE(4)); // "Read"
DWIN_Frame_AreaCopy(1, 131 + 51, 89, 271 - 3, 479 - 377 - 1, LBLX + 31 + 3, CLINE(4)); // "Configuration"
DWIN_Frame_AreaCopy(1, 59, 104, 271 - 178, 479 - 365, LBLX, CLINE(5)); // "Reset"
DWIN_Frame_AreaCopy(1, 131 + 51, 89, 271 - 3, 479 - 377 - 1, LBLX + 34 + 3, CLINE(5)); // "Configuration"
if (CVISI(6))
DWIN_Frame_AreaCopy(1, 0, 104, 25, 115, LBLX, CLINE(6)); // Info >
}
if (select_control.now && CVISI(select_control.now))
@ -651,9 +654,8 @@ inline void Draw_Control_Menu() {
inline void Draw_Tune_Menu() {
Clear_Main_Window();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 73, 2, 271 - 171, 479 - 466, 14, 9);
DWIN_Frame_AreaCopy(1, 116, 164, 271 - 100, 479 - 303, LBLX, MBASE(1));
DWIN_Frame_AreaCopy(1, 1, 134, 271 - 215, 479 - 333, LBLX, MBASE(2));
DWIN_Frame_AreaCopy(1, 58, 134, 271 - 158, 479 - 333, LBLX, MBASE(3));
@ -663,16 +665,21 @@ inline void Draw_Tune_Menu() {
else {
#ifdef USE_STRING_HEADINGS
Draw_Title(GET_TEXT_F(MSG_TUNE));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)GET_TEXT_F(MSG_SPEED));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)GET_TEXT_F(MSG_UBL_SET_TEMP_HOTEND));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)GET_TEXT_F(MSG_UBL_SET_TEMP_BED));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)GET_TEXT_F(MSG_FAN_SPEED));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 4), (char*)GET_TEXT_F(MSG_ZPROBE_ZOFFSET));
#else
DWIN_Frame_AreaCopy(1, 94, 2, 271 - 145, 479 - 467, 14, 9);
DWIN_Frame_AreaCopy(1, 1, 179, 271 - 179, 479 - 287 - 2, LBLX, MBASE(1)); // print speed
DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX, MBASE(2)); // Hotend...
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 41 + 3, MBASE(2)); // ...Temperature
DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX, MBASE(3)); // Bed...
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 3, MBASE(3)); // ...Temperature
DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX, MBASE(4)); // fan speed
DWIN_Frame_AreaCopy(1, 93, 179, 271 - 130, 479 - 290, LBLX, MBASE(5)); // Z-offset
#endif
DWIN_Frame_AreaCopy(1, 1, 179, 271 - 179, 479 - 287 - 2, LBLX, MBASE(1)); // print speed
DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX, MBASE(2)); // Hotend...
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 41 + 3, MBASE(2)); // ...Temperature
DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX, MBASE(3)); // Bed...
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 3, MBASE(3)); // ...Temperature
DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX, MBASE(4)); // fan speed
DWIN_Frame_AreaCopy(1, 93, 179, 271 - 130, 479 - 290, LBLX, MBASE(5)); // Z-offset
}
Draw_Back_First(select_tune.now == 0);
@ -723,7 +730,7 @@ inline void say_e(const uint16_t inset, const uint16_t line) {
inline void Draw_Motion_Menu() {
Clear_Main_Window();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 1, 16, 271 - 243, 479 - 451, 14, 8);
DWIN_Frame_AreaCopy(1, 173, 133, 228, 479 - 332, LBLX, MBASE(1)); // max speed
@ -737,13 +744,17 @@ inline void Draw_Motion_Menu() {
else {
#ifdef USE_STRING_HEADINGS
Draw_Title(GET_TEXT_F(MSG_MOTION));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Feedrate");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)GET_TEXT_F(MSG_ACCELERATION));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)GET_TEXT_F(MSG_JERK));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)GET_TEXT_F(MSG_STEPS_PER_MM));
#else
DWIN_Frame_AreaCopy(1, 144, 16, 271 - 82, 479 - 453, 14, 8);
draw_max_en(MBASE(1)); draw_speed_en(24 + 3, MBASE(1)); // "Max Speed"
draw_max_accel_en(MBASE(2)); // "Max Acceleration"
draw_max_en(MBASE(3)); draw_corner_en(MBASE(3)); // "Max Corner"
draw_steps_per_mm(MBASE(4)); // "Steps-per-mm"
#endif
draw_max_en(MBASE(1)); draw_speed_en(24 + 3, MBASE(1)); // "Max Speed"
draw_max_accel_en(MBASE(2)); // "Max Acceleration"
draw_max_en(MBASE(3)); draw_corner_en(MBASE(3)); // "Max Corner"
draw_steps_per_mm(MBASE(4)); // "Steps-per-mm"
}
Draw_Back_First(select_motion.now == 0);
@ -766,7 +777,7 @@ void Popup_Window_Temperature(const bool toohigh) {
Draw_Popup_Bkgd_105();
if (toohigh) {
DWIN_ICON_Show(ICON, ICON_TempTooHigh, 102, 165);
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 103, 371, 237, 479 - 93, 52, 285);
DWIN_Frame_AreaCopy(1, 151, 389, 185, 402, 187, 285);
DWIN_Frame_AreaCopy(1, 189, 389, 271 - 0, 402, 95, 310);
@ -778,7 +789,7 @@ void Popup_Window_Temperature(const bool toohigh) {
}
else {
DWIN_ICON_Show(ICON, ICON_TempTooLow, 102, 165);
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 103, 371, 271 - 1, 479 - 93, 52, 285);
DWIN_Frame_AreaCopy(1, 189, 389, 271 - 0, 402, 95, 310);
}
@ -799,7 +810,7 @@ inline void Draw_Popup_Bkgd_60() {
Clear_Main_Window();
Draw_Popup_Bkgd_60();
DWIN_ICON_Show(ICON, ICON_TempTooLow, 102, 105);
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 103, 371, 136, 479 - 93, 69, 240);
DWIN_Frame_AreaCopy(1, 170, 371, 271 - 1, 479 - 93, 69 + 33, 240);
DWIN_ICON_Show(ICON, ICON_Confirm_C, 86, 280);
@ -815,7 +826,7 @@ inline void Draw_Popup_Bkgd_60() {
void Popup_Window_Resume(void) {
Clear_Popup_Area();
Draw_Popup_Bkgd_105();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 160, 338, 271 - 36, 479 - 125, 98, 135);
DWIN_Frame_AreaCopy(1, 103, 321, 271 - 0, 479 - 144, 52, 192);
DWIN_ICON_Show(ICON, ICON_Continue_C, 26, 307);
@ -834,13 +845,13 @@ void Popup_Window_Home(void) {
Clear_Main_Window();
Draw_Popup_Bkgd_60();
DWIN_ICON_Show(ICON, ICON_BLTouch, 101, 105);
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 0, 371, 33, 386, 85, 240);
DWIN_Frame_AreaCopy(1, 203, 286, 271, 302, 118, 240);
DWIN_Frame_AreaCopy(1, 0, 389, 150, 402, 61, 280);
}
else {
DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 80, 230, (char*)"Auto homing...");
DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 80, 230, (char*)GET_TEXT_F(MSG_LEVEL_BED_HOMING));
DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 24, 260, (char*)"Please wait until completed");
}
}
@ -849,12 +860,12 @@ void Popup_Window_Leveling(void) {
Clear_Main_Window();
Draw_Popup_Bkgd_60();
DWIN_ICON_Show(ICON, ICON_AutoLeveling, 101, 105);
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 0, 371, 100, 386, 84, 240);
DWIN_Frame_AreaCopy(1, 0, 389, 150, 402, 61, 280);
}
else {
DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 76, 230, (char*)"Auto leveling...");
DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 76, 230, (char*)GET_TEXT_F(MSG_BED_LEVELING));
DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 24, 260, (char*)"Please wait until completed");
}
}
@ -872,7 +883,7 @@ void Draw_Select_Highlight(const bool sel) {
void Popup_window_PauseOrStop(void) {
Clear_Main_Window();
Draw_Popup_Bkgd_60();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
if (select_print.now == 1) DWIN_Frame_AreaCopy(1, 237, 338, 269, 356, 98, 150);
else if (select_print.now == 2) DWIN_Frame_AreaCopy(1, 221, 320, 253, 336, 98, 150);
DWIN_Frame_AreaCopy(1, 220, 304, 264, 319, 130, 150);
@ -880,8 +891,8 @@ void Popup_window_PauseOrStop(void) {
DWIN_ICON_Show(ICON, ICON_Cancel_C, 146, 280);
}
else {
if (select_print.now == 1) DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 88, 150, (char*)"Pause print?");
else if (select_print.now == 2) DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 92, 150, (char*)"Stop print?");
if (select_print.now == 1) DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 88, 150, (char*)GET_TEXT_F(MSG_PAUSE_PRINT));
else if (select_print.now == 2) DWIN_Draw_String(false, true, font8x16, Font_window, Background_window, 92, 150, (char*)GET_TEXT_F(MSG_STOP_PRINT));
DWIN_ICON_Show(ICON, ICON_Confirm_E, 26, 280);
DWIN_ICON_Show(ICON, ICON_Cancel_E, 146, 280);
}
@ -889,7 +900,7 @@ void Popup_window_PauseOrStop(void) {
}
void Draw_Printing_Screen(void) {
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 30, 1, 271 - 200, 479 - 465, 14, 9);// Tune
DWIN_Frame_AreaCopy(1, 0, 72, 271 - 208, 479 - 393, 41, 188);// Pause
DWIN_Frame_AreaCopy(1, 65, 72, 271 - 143, 479 - 393, 176, 188); // Stop
@ -949,7 +960,7 @@ void Goto_MainMenu(void) {
Clear_Main_Window();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 2, 2, 271 - 244, 479 - 465, 14, 9); // "Home"
}
else {
@ -1715,7 +1726,7 @@ inline void Draw_Info_Menu() {
DWIN_Draw_String(false, false, font8x16, White, Background_black, (DWIN_WIDTH - strlen(MACHINE_SIZE) * MENU_CHR_W) / 2, 122, (char*)MACHINE_SIZE);
DWIN_Draw_String(false, false, font8x16, White, Background_black, (DWIN_WIDTH - strlen(SHORT_BUILD_VERSION) * MENU_CHR_W) / 2, 195, (char*)SHORT_BUILD_VERSION);
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 30, 17, 271 - 214, 479 - 450, 14, 8);
DWIN_Frame_AreaCopy(1, 197, 149, 271 - 19, 479 - 318, 108, 102);
@ -1746,7 +1757,7 @@ inline void Draw_Info_Menu() {
inline void Draw_Print_File_Menu() {
Clear_Title_Bar();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 0, 31, 271 - 216, 479 - 435, 14, 8);
}
else {
@ -2093,7 +2104,7 @@ void HMI_PauseOrStop(void) {
inline void Draw_Move_Menu() {
Clear_Main_Window();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 192, 1, 271 - 38, 479 - 465, 14, 8);
DWIN_Frame_AreaCopy(1, 58, 118, 271 - 165, 479 - 347, LBLX, MBASE(1));
DWIN_Frame_AreaCopy(1, 109, 118, 271 - 114, 479 - 347, LBLX, MBASE(2));
@ -2239,13 +2250,13 @@ void HMI_Prepare(void) {
break;
case 8: // language
/* select language */
HMI_flag.language_flag = !HMI_flag.language_flag;
if (HMI_flag.language_flag) {
set_chinese_to_eeprom();
HMI_flag.language_chinese ^= true;
if (HMI_flag.language_chinese) {
HMI_SetAndSaveLanguageChinese();
DWIN_JPG_CacheTo1(Language_Chinese);
}
else {
set_english_to_eeprom();
HMI_SetAndSaveLanguageWestern();
DWIN_JPG_CacheTo1(Language_English);
}
Draw_Prepare_Menu();
@ -2260,7 +2271,7 @@ void HMI_Prepare(void) {
void Draw_Temperature_Menu() {
Clear_Main_Window();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 236, 2, 271 - 8, 479 - 466, 14, 8);
DWIN_Frame_AreaCopy(1, 1, 134, 271 - 215, 479 - 333, LBLX, MBASE(1));
@ -2272,21 +2283,25 @@ void Draw_Temperature_Menu() {
else {
#ifdef USE_STRING_HEADINGS
Draw_Title(GET_TEXT_F(MSG_TEMPERATURE));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)GET_TEXT_F(MSG_UBL_SET_TEMP_HOTEND));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)GET_TEXT_F(MSG_UBL_SET_TEMP_BED));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)GET_TEXT_F(MSG_FAN_SPEED));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)"PLA Preheat Settings");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 4), (char*)"ABS Preheat Settings");
#else
DWIN_Frame_AreaCopy(1, 56, 16, 271 - 130, 479 - 450 - 1, 14, 8);
DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX, MBASE(1)); // Nozzle...
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 41 + 3, MBASE(1)); // ...Temperature
DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX, MBASE(2)); // Bed...
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 3, MBASE(2)); // ...Temperature
DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX, MBASE(3)); // Fan speed
DWIN_Frame_AreaCopy(1, 107, 76, 271 - 115, 479 - 393, LBLX, MBASE(4)); // Preheat...
DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX + 49 + 3, MBASE(4)); // ...PLA
DWIN_Frame_AreaCopy(1, 131, 119, 271 - 89, 479 - 347, LBLX + 49 + 24 + 6, MBASE(4)); // PLA setting
DWIN_Frame_AreaCopy(1, 107, 76, 271 - 115, 479 - 393, LBLX, MBASE(5)); // Preheat...
DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX + 49 + 3, MBASE(5)); // ...ABS
DWIN_Frame_AreaCopy(1, 131, 119, 271 - 89, 479 - 347, LBLX + 49 + 3 + 26 + 3, MBASE(5)); // ABS setting
#endif
DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX, MBASE(1)); // Nozzle...
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 41 + 3, MBASE(1)); // ...Temperature
DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX, MBASE(2)); // Bed...
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 3, MBASE(2)); // ...Temperature
DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX, MBASE(3)); // Fan speed
DWIN_Frame_AreaCopy(1, 107, 76, 271 - 115, 479 - 393, LBLX, MBASE(4)); // Preheat...
DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX + 49 + 3, MBASE(4)); // ...PLA
DWIN_Frame_AreaCopy(1, 131, 119, 271 - 89, 479 - 347, LBLX + 49 + 24 + 6, MBASE(4)); // PLA setting
DWIN_Frame_AreaCopy(1, 107, 76, 271 - 115, 479 - 393, LBLX, MBASE(5)); // Preheat...
DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX + 49 + 3, MBASE(5)); // ...ABS
DWIN_Frame_AreaCopy(1, 131, 119, 271 - 89, 479 - 347, LBLX + 49 + 3 + 26 + 3, MBASE(5)); // ABS setting
}
Draw_Back_First(select_temp.now == 0);
@ -2319,7 +2334,7 @@ void HMI_Control(void) {
Draw_More_Icon(2 + MROWS - index_control); // Motion >
if (index_control > MROWS) {
Draw_More_Icon(6 + MROWS - index_control); // Info >
if (HMI_flag.language_flag)
if (HMI_flag.language_chinese)
DWIN_Frame_AreaCopy(1, 231, 104, 271 - 13, 479 - 363, LBLX, MBASE(5));
else
DWIN_Frame_AreaCopy(1, 0, 104, 271 - 247, 479 - 365, LBLX, MBASE(5));
@ -2523,7 +2538,7 @@ void HMI_Temperature(void) {
Clear_Main_Window();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 59, 16, 271 - 132, 479 - 450, 14, 8);
DWIN_Frame_AreaCopy(1, 100, 89, 124, 479 - 378, LBLX, MBASE(1));
@ -2537,19 +2552,22 @@ void HMI_Temperature(void) {
else {
#ifdef USE_STRING_HEADINGS
Draw_Title("PLA Settings"); // TODO: GET_TEXT_F
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Nozzle Temp");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)"Bed Temp");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)GET_TEXT_F(MSG_FAN_SPEED));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)GET_TEXT_F(MSG_STORE_EEPROM));
#else
DWIN_Frame_AreaCopy(1, 56, 16, 271 - 130, 479 - 450 - 1, 14, 8);
DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX, MBASE(1));
DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX + 24 + 3, MBASE(1));
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 41 + 6, MBASE(1)); // PLA nozzle temp
DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX, MBASE(2) + 3);
DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX + 24 + 3, MBASE(2) + 3);
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 24 + 6, MBASE(2) + 3); // PLA bed temp
DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX, MBASE(3));
DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX + 24 + 3, MBASE(3)); // PLA fan speed
DWIN_Frame_AreaCopy(1, 97, 165, 271 - 42, 479 - 301 - 1, LBLX, MBASE(4)); // save PLA configuration
#endif
DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX, MBASE(1));
DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX + 24 + 3, MBASE(1));
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 41 + 6, MBASE(1)); // PLA nozzle temp
DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX, MBASE(2) + 3);
DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX + 24 + 3, MBASE(2) + 3);
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 24 + 6, MBASE(2) + 3); // PLA bed temp
DWIN_Frame_AreaCopy(1, 157, 76, 181, 479 - 393, LBLX, MBASE(3));
DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX + 24 + 3, MBASE(3)); // PLA fan speed
DWIN_Frame_AreaCopy(1, 97, 165, 271 - 42, 479 - 301 - 1, LBLX, MBASE(4)); // save PLA configuration
}
Draw_Back_First();
@ -2572,7 +2590,7 @@ void HMI_Temperature(void) {
Clear_Main_Window();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 142, 16, 271 - 48, 479 - 450, 14, 8);
DWIN_Frame_AreaCopy(1, 180, 89, 204, 479 - 379, LBLX, MBASE(1));
@ -2587,20 +2605,23 @@ void HMI_Temperature(void) {
else {
#ifdef USE_STRING_HEADINGS
Draw_Title("ABS Settings"); // TODO: GET_TEXT_F
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Nozzle Temp");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)"Bed Temp");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)GET_TEXT_F(MSG_FAN_SPEED));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)GET_TEXT_F(MSG_STORE_EEPROM));
#else
DWIN_Frame_AreaCopy(1, 56, 16, 271 - 130, 479 - 450 - 1, 14, 8);
DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX, MBASE(1));
DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX + 24 + 3, MBASE(1));
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 41 + 6, MBASE(1)); // ABS nozzle temp
DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX, MBASE(2) + 3);
DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX + 24 + 3, MBASE(2) + 3);
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 24 + 6, MBASE(2) + 3); // ABS bed temp
DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX, MBASE(3));
DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX + 24 + 3, MBASE(3)); // ABS fan speed
DWIN_Frame_AreaCopy(1, 97, 165, 271 - 42, 479 - 301 - 1, LBLX, MBASE(4));
DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX + 33, MBASE(4)); // save ABS configuration
#endif
DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX, MBASE(1));
DWIN_Frame_AreaCopy(1, 197, 104, 271 - 33, 479 - 365, LBLX + 24 + 3, MBASE(1));
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 41 + 6, MBASE(1)); // ABS nozzle temp
DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX, MBASE(2) + 3);
DWIN_Frame_AreaCopy(1, 240, 104, 271 - 7, 479 - 365, LBLX + 24 + 3, MBASE(2) + 3);
DWIN_Frame_AreaCopy(1, 1, 89, 271 - 188, 479 - 377 - 1, LBLX + 24 + 24 + 6, MBASE(2) + 3); // ABS bed temp
DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX, MBASE(3));
DWIN_Frame_AreaCopy(1, 0, 119, 271 - 207, 479 - 347, LBLX + 24 + 3, MBASE(3)); // ABS fan speed
DWIN_Frame_AreaCopy(1, 97, 165, 271 - 42, 479 - 301 - 1, LBLX, MBASE(4));
DWIN_Frame_AreaCopy(1, 172, 76, 198, 479 - 393, LBLX + 33, MBASE(4)); // save ABS configuration
}
Draw_Back_First();
@ -2624,7 +2645,7 @@ void HMI_Temperature(void) {
inline void Draw_Max_Speed_Menu() {
Clear_Main_Window();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 1, 16, 271 - 243, 479 - 451, 14, 8);
auto say_max_speed = [](const uint16_t row) {
@ -2643,24 +2664,28 @@ inline void Draw_Max_Speed_Menu() {
else {
#ifdef USE_STRING_HEADINGS
Draw_Title("Max Speed (mm/s)"); // TODO: GET_TEXT_F
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Max Feedrate X");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)"Max Feedrate Y");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)"Max Feedrate Z");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)"Max Feedrate E");
#else
DWIN_Frame_AreaCopy(1, 144, 16, 271 - 82, 479 - 453, 14, 8);
draw_max_en(MBASE(1)); // "Max"
DWIN_Frame_AreaCopy(1, 184, 119, 271 - 37, 479 - 347, LBLX + 24 + 3, MBASE(1)); // "Speed X"
draw_max_en(MBASE(2)); // "Max"
draw_speed_en(24 + 3, MBASE(2)); // "Speed"
say_y(24 + 40 + 6, MBASE(2)); // "Y"
draw_max_en(MBASE(3)); // "Max"
draw_speed_en(24 + 3, MBASE(3)); // "Speed"
say_z(24 + 40 + 6, MBASE(3)); // "Z"
draw_max_en(MBASE(4)); // "Max"
draw_speed_en(24 + 3, MBASE(4)); // "Speed"
say_e(24 + 40 + 6, MBASE(4)); // "E"
#endif
draw_max_en(MBASE(1)); // "Max"
DWIN_Frame_AreaCopy(1, 184, 119, 271 - 37, 479 - 347, LBLX + 24 + 3, MBASE(1)); // "Speed X"
draw_max_en(MBASE(2)); // "Max"
draw_speed_en(24 + 3, MBASE(2)); // "Speed"
say_y(24 + 40 + 6, MBASE(2)); // "Y"
draw_max_en(MBASE(3)); // "Max"
draw_speed_en(24 + 3, MBASE(3)); // "Speed"
say_z(24 + 40 + 6, MBASE(3)); // "Z"
draw_max_en(MBASE(4)); // "Max"
draw_speed_en(24 + 3, MBASE(4)); // "Speed"
say_e(24 + 40 + 6, MBASE(4)); // "E"
}
Draw_Back_First();
@ -2675,7 +2700,7 @@ inline void Draw_Max_Speed_Menu() {
inline void Draw_Max_Accel_Menu() {
Clear_Main_Window();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 1, 16, 271 - 243, 479 - 451, 14, 8);
DWIN_Frame_AreaCopy(1, 173, 133, 200, 479 - 332, LBLX, MBASE(1));
@ -2693,14 +2718,18 @@ inline void Draw_Max_Accel_Menu() {
}
else {
#ifdef USE_STRING_HEADINGS
Draw_Title("Max Accel (mm/s/s)"); // TODO: GET_TEXT_F
Draw_Title(GET_TEXT_F(MSG_ACCELERATION));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Max Accel X");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)"Max Accel Y");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)"Max Accel Z");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)"Max Accel E");
#else
DWIN_Frame_AreaCopy(1, 144, 16, 271 - 82, 479 - 453, 14, 8);
draw_max_accel_en(MBASE(1)); say_x(24 + 78 + 6, MBASE(1)); // "Max Acceleration X"
draw_max_accel_en(MBASE(2)); say_y(24 + 78 + 6, MBASE(2)); // "Max Acceleration Y"
draw_max_accel_en(MBASE(3)); say_z(24 + 78 + 6, MBASE(3)); // "Max Acceleration Z"
draw_max_accel_en(MBASE(4)); say_e(24 + 78 + 6, MBASE(4)); // "Max Acceleration E"
#endif
draw_max_accel_en(MBASE(1)); say_x(24 + 78 + 6, MBASE(1)); // "Max Acceleration X"
draw_max_accel_en(MBASE(2)); say_y(24 + 78 + 6, MBASE(2)); // "Max Acceleration Y"
draw_max_accel_en(MBASE(3)); say_z(24 + 78 + 6, MBASE(3)); // "Max Acceleration Z"
draw_max_accel_en(MBASE(4)); say_e(24 + 78 + 6, MBASE(4)); // "Max Acceleration E"
}
Draw_Back_First();
@ -2715,7 +2744,7 @@ inline void Draw_Max_Accel_Menu() {
inline void Draw_Max_Jerk_Menu() {
Clear_Main_Window();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 1, 16, 271 - 243, 479 - 451, 14, 8);
DWIN_Frame_AreaCopy(1, 173, 133, 200, 479 - 332, LBLX, MBASE(1));
@ -2737,30 +2766,33 @@ inline void Draw_Max_Jerk_Menu() {
}
else {
#ifdef USE_STRING_HEADINGS
Draw_Title("Max Corner"); // TODO: GET_TEXT_F
Draw_Title(GET_TEXT_F(MSG_JERK));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Max Jerk X");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)"Max Jerk Y");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)"Max Jerk Z");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)"Max Jerk E");
#else
DWIN_Frame_AreaCopy(1, 144, 16, 271 - 82, 479 - 453, 14, 8);
draw_max_en(MBASE(1)); // "Max"
draw_corner_en(MBASE(1)); // "Corner"
draw_speed_en(66 + 6, MBASE(1)); // "Speed"
say_x(106 + 9, MBASE(1)); // "X"
draw_max_en(MBASE(2)); // "Max"
draw_corner_en(MBASE(2)); // "Corner"
draw_speed_en(66 + 6, MBASE(2)); // "Speed"
say_y(106 + 9, MBASE(2)); // "Y"
draw_max_en(MBASE(3)); // "Max"
draw_corner_en(MBASE(3)); // "Corner"
draw_speed_en(66 + 6, MBASE(3)); // "Speed"
say_z(106 + 9, MBASE(3)); // "Z"
draw_max_en(MBASE(4)); // "Max"
draw_corner_en(MBASE(4)); // "Corner"
draw_speed_en(66 + 6, MBASE(4)); // "Speed"
say_e(106 + 9, MBASE(4)); // "E"
#endif
draw_max_en(MBASE(1)); // "Max"
draw_corner_en(MBASE(1)); // "Corner"
draw_speed_en(66 + 6, MBASE(1)); // "Speed"
say_x(106 + 9, MBASE(1)); // "X"
draw_max_en(MBASE(2)); // "Max"
draw_corner_en(MBASE(2)); // "Corner"
draw_speed_en(66 + 6, MBASE(2)); // "Speed"
say_y(106 + 9, MBASE(2)); // "Y"
draw_max_en(MBASE(3)); // "Max"
draw_corner_en(MBASE(3)); // "Corner"
draw_speed_en(66 + 6, MBASE(3)); // "Speed"
say_z(106 + 9, MBASE(3)); // "Z"
draw_max_en(MBASE(4)); // "Max"
draw_corner_en(MBASE(4)); // "Corner"
draw_speed_en(66 + 6, MBASE(4)); // "Speed"
say_e(106 + 9, MBASE(4)); // "E"
}
Draw_Back_First();
@ -2775,7 +2807,7 @@ inline void Draw_Max_Jerk_Menu() {
inline void Draw_Steps_Menu() {
Clear_Main_Window();
if (HMI_flag.language_flag) {
if (HMI_flag.language_chinese) {
DWIN_Frame_AreaCopy(1, 1, 16, 271 - 243, 479 - 451, 14, 8);
DWIN_Frame_AreaCopy(1, 153, 148, 271 - 77, 479 - 318, LBLX, MBASE(1));
@ -2789,14 +2821,18 @@ inline void Draw_Steps_Menu() {
}
else {
#ifdef USE_STRING_HEADINGS
Draw_Title("Steps-per-mm"); // TODO: GET_TEXT_F
Draw_Title(GET_TEXT_F(MSG_STEPS_PER_MM));
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 0), (char*)"Steps/mm X");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 1), (char*)"Steps/mm Y");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 2), (char*)"Steps/mm Z");
DWIN_Draw_String(false, true, font8x16, White, Background_black, 60, 102 + (MLINE * 3), (char*)"Steps/mm E");
#else
DWIN_Frame_AreaCopy(1, 144, 16, 271 - 82, 479 - 453, 14, 8);
draw_steps_per_mm(MBASE(1)); say_x(100 + 3, MBASE(1)); // "Steps-per-mm X"
draw_steps_per_mm(MBASE(2)); say_y(100 + 3, MBASE(2)); // "Y"
draw_steps_per_mm(MBASE(3)); say_z(100 + 3, MBASE(3)); // "Z"
draw_steps_per_mm(MBASE(4)); say_e(100 + 3, MBASE(4)); // "E"
#endif
draw_steps_per_mm(MBASE(1)); say_x(100 + 3, MBASE(1)); // "Steps-per-mm X"
draw_steps_per_mm(MBASE(2)); say_y(100 + 3, MBASE(2)); // "Y"
draw_steps_per_mm(MBASE(3)); say_z(100 + 3, MBASE(3)); // "Z"
draw_steps_per_mm(MBASE(4)); say_e(100 + 3, MBASE(4)); // "E"
}
Draw_Back_First();
@ -2947,16 +2983,16 @@ void HMI_Tune(void) {
break;
case 6: // Language
// Select language
HMI_flag.language_flag = !HMI_flag.language_flag;
HMI_flag.language_chinese ^= true;
Clear_Main_Window();
if (HMI_flag.language_flag) {
set_chinese_to_eeprom();
if (HMI_flag.language_chinese) {
HMI_SetAndSaveLanguageChinese();
DWIN_JPG_CacheTo1(Language_Chinese);
}
else {
set_english_to_eeprom();
HMI_SetAndSaveLanguageWestern();
DWIN_JPG_CacheTo1(Language_English);
}
@ -3304,7 +3340,7 @@ void HMI_Init(void) {
delay(20);
}
lcd_select_language();
HMI_SetLanguage();
#if ENABLED(FIX_MOUNTED_PROBE) // For "CREALITY_TOUCH" probe too?
SET_OUTPUT(COM_PIN);
@ -3345,7 +3381,7 @@ void EachMomentUpdate(void) {
// show print done confirm
DWIN_Draw_Rectangle(1, Background_black, 0, 250, 271, 360);
DWIN_ICON_Show(ICON, HMI_flag.language_flag ? ICON_Confirm_C : ICON_Confirm_E, 86, 302 - 19);
DWIN_ICON_Show(ICON, HMI_flag.language_chinese ? ICON_Confirm_C : ICON_Confirm_E, 86, 302 - 19);
}
else if (HMI_flag.pause_flag != printingIsPaused()) {
// print status update

View File

@ -244,7 +244,7 @@ typedef struct {
} HMI_value_t;
typedef struct {
bool language_flag; // 0: EN, 1: CN
bool language_chinese; // 0: EN, 1: CN
bool pause_flag:1;
bool print_finish:1;
bool confirm_flag:1;
@ -269,9 +269,9 @@ extern HMI_value_t HMI_ValueStruct;
extern HMI_Flag HMI_flag;
// Language
void lcd_select_language(void);
void set_english_to_eeprom(void);
void set_chinese_to_eeprom(void);
void HMI_SetLanguage(void);
void HMI_SetAndSaveLanguageWestern(void);
void HMI_SetAndSaveLanguageChinese(void);
// Show ICO
void ICON_Print(bool show);