@@ -486,24 +486,31 @@ void Clear_Popup_Area() {
486
486
DWIN_Draw_Rectangle (1 , HMI_data.Background_Color , 0 , 31 , DWIN_WIDTH, DWIN_HEIGHT);
487
487
}
488
488
489
- void DWIN_Draw_Popup ( uint8_t icon= 0 , const char * const msg1= nullptr , const char * const msg2= nullptr , uint8_t button= 0 ) {
489
+ void DWIN_Draw_Popup1 ( const uint8_t icon ) {
490
490
DWINUI::ClearMenuArea ();
491
491
Draw_Popup_Bkgd_60 ();
492
492
if (icon) DWINUI::Draw_Icon (icon, 101 , 105 );
493
- if (msg1) DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 210 , msg1);
494
- if (msg2) DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 240 , msg2);
493
+ }
494
+ void DWIN_Draw_Popup2 (FSTR_P const fmsg2, uint8_t button) {
495
+ if (fmsg2) DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 240 , fmsg2);
495
496
if (button) DWINUI::Draw_Icon (button, 86 , 280 );
496
497
}
497
498
498
- void DWIN_Popup_Confirm (uint8_t icon, const char * const msg1, const char * const msg2) {
499
- HMI_SaveProcessID (WaitResponse);
500
- DWIN_Draw_Popup (icon, msg1, msg2, ICON_Confirm_E); // Button Confirm
501
- DWIN_UpdateLCD ();
499
+ void DWIN_Draw_Popup (const uint8_t icon, const char * const cmsg1, FSTR_P const fmsg2, uint8_t button) {
500
+ DWIN_Draw_Popup1 (icon);
501
+ if (cmsg1) DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 210 , cmsg1);
502
+ DWIN_Draw_Popup2 (fmsg2, button);
503
+ }
504
+
505
+ void DWIN_Draw_Popup (const uint8_t icon, FSTR_P const fmsg1, FSTR_P const fmsg2, uint8_t button) {
506
+ DWIN_Draw_Popup1 (icon);
507
+ if (fmsg1) DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 210 , fmsg1);
508
+ DWIN_Draw_Popup2 (fmsg2, button);
502
509
}
503
510
504
- void DWIN_Popup_Continue (uint8_t icon, const char * const msg1, const char * const msg2 ) {
511
+ void DWIN_Popup_Continue (const uint8_t icon, FSTR_P const fmsg1, FSTR_P const fmsg2 ) {
505
512
HMI_SaveProcessID (WaitResponse);
506
- DWIN_Draw_Popup (icon, msg1, msg2 , ICON_Continue_E); // Button Continue
513
+ DWIN_Draw_Popup (icon, fmsg1, fmsg2 , ICON_Continue_E); // Button Continue
507
514
DWIN_UpdateLCD ();
508
515
}
509
516
@@ -521,7 +528,7 @@ void DWIN_Popup_Continue(uint8_t icon, const char * const msg1, const char * con
521
528
DWIN_UpdateLCD ();
522
529
}
523
530
else
524
- DWIN_Popup_Confirm (ICON_TempTooLow, " Nozzle is too cold" , " Preheat the hotend" );
531
+ DWIN_Popup_Confirm (ICON_TempTooLow, F ( " Nozzle is too cold" ), F ( " Preheat the hotend" ) );
525
532
}
526
533
527
534
#endif
@@ -565,7 +572,7 @@ void Popup_window_PauseOrStop() {
565
572
DWINUI::Draw_Icon (ICON_Cancel_C, 146 , 280 );
566
573
}
567
574
else {
568
- DWIN_Draw_Popup (ICON_BLTouch, " Please confirm" , select_print.now == PRINT_PAUSE_RESUME ? GET_TEXT (MSG_PAUSE_PRINT) : GET_TEXT (MSG_STOP_PRINT));
575
+ DWIN_Draw_Popup (ICON_BLTouch, F ( " Please confirm" ) , select_print.now == PRINT_PAUSE_RESUME ? GET_TEXT_F (MSG_PAUSE_PRINT) : GET_TEXT_F (MSG_STOP_PRINT));
569
576
DWINUI::Draw_Icon (ICON_Confirm_E, 26 , 280 );
570
577
DWINUI::Draw_Icon (ICON_Cancel_E, 146 , 280 );
571
578
}
@@ -1386,7 +1393,7 @@ void HMI_PauseOrStop() {
1386
1393
#ifdef ACTION_ON_CANCEL
1387
1394
host_action_cancel ();
1388
1395
#endif
1389
- DWIN_Draw_Popup (ICON_BLTouch, " Stopping..." , " Please wait until done." );
1396
+ DWIN_Draw_Popup (ICON_BLTouch, F ( " Stopping..." ) , F ( " Please wait until done." ) );
1390
1397
}
1391
1398
else
1392
1399
Goto_PrintProcess (); // cancel stop
@@ -1644,7 +1651,7 @@ void HMI_SaveProcessID(const uint8_t id) {
1644
1651
void DWIN_StartHoming () {
1645
1652
HMI_flag.home_flag = true ;
1646
1653
HMI_SaveProcessID (Homing);
1647
- DWIN_Draw_Popup (ICON_BLTouch, " Axis Homing" , " Please wait until done." );
1654
+ DWIN_Draw_Popup (ICON_BLTouch, F ( " Axis Homing" ), F ( " Please wait until done." ) );
1648
1655
}
1649
1656
1650
1657
void DWIN_CompletedHoming () {
@@ -1659,7 +1666,7 @@ void DWIN_CompletedHoming() {
1659
1666
void DWIN_MeshLevelingStart () {
1660
1667
#if HAS_ONESTEP_LEVELING
1661
1668
HMI_SaveProcessID (Leveling);
1662
- DWIN_Draw_Popup (ICON_AutoLeveling, GET_TEXT (MSG_BED_LEVELING), " Please wait until done." );
1669
+ DWIN_Draw_Popup (ICON_AutoLeveling, GET_TEXT_F (MSG_BED_LEVELING), F ( " Please wait until done." ) );
1663
1670
#elif ENABLED(MESH_BED_LEVELING)
1664
1671
Draw_ManualMesh_Menu ();
1665
1672
#endif
@@ -1682,27 +1689,27 @@ void DWIN_PidTuning(pidresult_t result) {
1682
1689
switch (result) {
1683
1690
case PID_BED_START:
1684
1691
HMI_SaveProcessID (NothingToDo);
1685
- DWIN_Draw_Popup (ICON_TempTooHigh, GET_TEXT (MSG_PID_AUTOTUNE), " for BED is running." );
1692
+ DWIN_Draw_Popup (ICON_TempTooHigh, GET_TEXT_F (MSG_PID_AUTOTUNE), F ( " for BED is running." ) );
1686
1693
break ;
1687
1694
case PID_EXTR_START:
1688
1695
HMI_SaveProcessID (NothingToDo);
1689
- DWIN_Draw_Popup (ICON_TempTooHigh, GET_TEXT (MSG_PID_AUTOTUNE), " for Nozzle is running." );
1696
+ DWIN_Draw_Popup (ICON_TempTooHigh, GET_TEXT_F (MSG_PID_AUTOTUNE), F ( " for Nozzle is running." ) );
1690
1697
break ;
1691
1698
case PID_BAD_EXTRUDER_NUM:
1692
1699
checkkey = last_checkkey;
1693
- DWIN_Popup_Confirm (ICON_TempTooLow, " PID Autotune failed!" , " Bad extruder" );
1700
+ DWIN_Popup_Confirm (ICON_TempTooLow, F ( " PID Autotune failed!" ), F ( " Bad extruder" ) );
1694
1701
break ;
1695
1702
case PID_TUNING_TIMEOUT:
1696
1703
checkkey = last_checkkey;
1697
- DWIN_Popup_Confirm (ICON_TempTooHigh, " Error" , GET_TEXT (MSG_PID_TIMEOUT));
1704
+ DWIN_Popup_Confirm (ICON_TempTooHigh, F ( " Error" ), GET_TEXT_F (MSG_PID_TIMEOUT));
1698
1705
break ;
1699
1706
case PID_TEMP_TOO_HIGH:
1700
1707
checkkey = last_checkkey;
1701
- DWIN_Popup_Confirm (ICON_TempTooHigh, " PID Autotune failed!" , " Temperature too high" );
1708
+ DWIN_Popup_Confirm (ICON_TempTooHigh, F ( " PID Autotune failed!" ), F ( " Temperature too high" ) );
1702
1709
break ;
1703
1710
case PID_DONE:
1704
1711
checkkey = last_checkkey;
1705
- DWIN_Popup_Confirm (ICON_TempTooLow, GET_TEXT (MSG_PID_AUTOTUNE), GET_TEXT (MSG_BUTTON_DONE));
1712
+ DWIN_Popup_Confirm (ICON_TempTooLow, GET_TEXT_F (MSG_PID_AUTOTUNE), GET_TEXT_F (MSG_BUTTON_DONE));
1706
1713
break ;
1707
1714
default :
1708
1715
checkkey = last_checkkey;
@@ -1864,32 +1871,32 @@ void DWIN_Redraw_screen() {
1864
1871
1865
1872
#if ENABLED(ADVANCED_PAUSE_FEATURE)
1866
1873
1867
- void DWIN_Popup_Pause (const char *msg , uint8_t button = 0 ) {
1874
+ void DWIN_Popup_Pause (FSTR_P const fmsg , uint8_t button = 0 ) {
1868
1875
HMI_SaveProcessID (button ? WaitResponse : NothingToDo);
1869
- DWIN_Draw_Popup (ICON_BLTouch, " Advanced Pause" , msg , button);
1876
+ DWIN_Draw_Popup (ICON_BLTouch, F ( " Advanced Pause" ), fmsg , button);
1870
1877
ui.reset_status (true );
1871
1878
}
1872
1879
1873
1880
void MarlinUI::pause_show_message (const PauseMessage message, const PauseMode mode/* =PAUSE_MODE_SAME*/ , const uint8_t extruder/* =active_extruder*/ ) {
1874
1881
switch (message) {
1875
- case PAUSE_MESSAGE_PARKING: DWIN_Popup_Pause (GET_TEXT (MSG_PAUSE_PRINT_PARKING)); break ;
1876
- case PAUSE_MESSAGE_CHANGING: DWIN_Popup_Pause (GET_TEXT (MSG_FILAMENT_CHANGE_INIT)); break ;
1877
- case PAUSE_MESSAGE_UNLOAD: DWIN_Popup_Pause (GET_TEXT (MSG_FILAMENT_CHANGE_UNLOAD)); break ;
1878
- case PAUSE_MESSAGE_WAITING: DWIN_Popup_Pause (GET_TEXT (MSG_ADVANCED_PAUSE_WAITING), ICON_Continue_E); break ;
1879
- case PAUSE_MESSAGE_INSERT: DWIN_Popup_Continue (ICON_BLTouch, " Advanced Pause" , GET_TEXT (MSG_FILAMENT_CHANGE_INSERT)); break ;
1880
- case PAUSE_MESSAGE_LOAD: DWIN_Popup_Pause (GET_TEXT (MSG_FILAMENT_CHANGE_LOAD)); break ;
1881
- case PAUSE_MESSAGE_PURGE: DWIN_Popup_Pause (GET_TEXT (MSG_FILAMENT_CHANGE_PURGE)); break ;
1882
+ case PAUSE_MESSAGE_PARKING: DWIN_Popup_Pause (GET_TEXT_F (MSG_PAUSE_PRINT_PARKING)); break ;
1883
+ case PAUSE_MESSAGE_CHANGING: DWIN_Popup_Pause (GET_TEXT_F (MSG_FILAMENT_CHANGE_INIT)); break ;
1884
+ case PAUSE_MESSAGE_UNLOAD: DWIN_Popup_Pause (GET_TEXT_F (MSG_FILAMENT_CHANGE_UNLOAD)); break ;
1885
+ case PAUSE_MESSAGE_WAITING: DWIN_Popup_Pause (GET_TEXT_F (MSG_ADVANCED_PAUSE_WAITING), ICON_Continue_E); break ;
1886
+ case PAUSE_MESSAGE_INSERT: DWIN_Popup_Continue (ICON_BLTouch, F ( " Advanced Pause" ), GET_TEXT_F (MSG_FILAMENT_CHANGE_INSERT)); break ;
1887
+ case PAUSE_MESSAGE_LOAD: DWIN_Popup_Pause (GET_TEXT_F (MSG_FILAMENT_CHANGE_LOAD)); break ;
1888
+ case PAUSE_MESSAGE_PURGE: DWIN_Popup_Pause (GET_TEXT_F (MSG_FILAMENT_CHANGE_PURGE)); break ;
1882
1889
case PAUSE_MESSAGE_OPTION: DWIN_Popup_FilamentPurge (); break ;
1883
- case PAUSE_MESSAGE_RESUME: DWIN_Popup_Pause (GET_TEXT (MSG_FILAMENT_CHANGE_RESUME)); break ;
1884
- case PAUSE_MESSAGE_HEAT: DWIN_Popup_Pause (GET_TEXT (MSG_FILAMENT_CHANGE_HEAT), ICON_Continue_E); break ;
1890
+ case PAUSE_MESSAGE_RESUME: DWIN_Popup_Pause (GET_TEXT_F (MSG_FILAMENT_CHANGE_RESUME)); break ;
1891
+ case PAUSE_MESSAGE_HEAT: DWIN_Popup_Pause (GET_TEXT_F (MSG_FILAMENT_CHANGE_HEAT), ICON_Continue_E); break ;
1885
1892
case PAUSE_MESSAGE_HEATING: ui.set_status_P (GET_TEXT (MSG_FILAMENT_CHANGE_HEATING)); break ;
1886
1893
case PAUSE_MESSAGE_STATUS: HMI_ReturnScreen (); break ;
1887
1894
default : break ;
1888
1895
}
1889
1896
}
1890
1897
1891
1898
void Draw_Popup_FilamentPurge () {
1892
- DWIN_Draw_Popup (ICON_BLTouch, " Advanced Pause" , " Purge or Continue?" );
1899
+ DWIN_Draw_Popup (ICON_BLTouch, F ( " Advanced Pause" ), F ( " Purge or Continue?" ) );
1893
1900
DWINUI::Draw_Icon (ICON_Confirm_E, 26 , 280 );
1894
1901
DWINUI::Draw_Icon (ICON_Continue_E, 146 , 280 );
1895
1902
Draw_Select_Highlight (true );
@@ -1928,7 +1935,7 @@ void DWIN_Redraw_screen() {
1928
1935
#if HAS_MESH
1929
1936
void DWIN_MeshViewer () {
1930
1937
if (!leveling_is_valid ())
1931
- DWIN_Popup_Continue (ICON_BLTouch, " Mesh viewer" , " No valid mesh" );
1938
+ DWIN_Popup_Continue (ICON_BLTouch, F ( " Mesh viewer" ), F ( " No valid mesh" ) );
1932
1939
else {
1933
1940
HMI_SaveProcessID (WaitResponse);
1934
1941
MeshViewer.Draw ();
0 commit comments