Pārlūkot izejas kodu

🎨 Updated string macros

Scott Lahteine 3 gadus atpakaļ
vecāks
revīzija
a7fdaabd54
51 mainītis faili ar 237 papildinājumiem un 234 dzēšanām
  1. 1
    1
      Marlin/src/core/multi_language.h
  2. 5
    1
      Marlin/src/core/types.h
  3. 4
    7
      Marlin/src/lcd/e3v2/common/dwin_api.h
  4. 3
    3
      Marlin/src/lcd/e3v2/creality/dwin.cpp
  5. 119
    119
      Marlin/src/lcd/e3v2/enhanced/dwin.cpp
  6. 1
    1
      Marlin/src/lcd/e3v2/enhanced/dwin_lcd.h
  7. 0
    1
      Marlin/src/lcd/e3v2/enhanced/dwinui.cpp
  8. 12
    12
      Marlin/src/lcd/e3v2/enhanced/dwinui.h
  9. 2
    0
      Marlin/src/lcd/e3v2/marlinui/dwin_lcd.h
  10. 1
    1
      Marlin/src/lcd/e3v2/marlinui/dwin_string.h
  11. 2
    2
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/archim2-flash/flash_storage.cpp
  12. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/archim2-flash/flash_storage.h
  13. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/printing_dialog_box.cpp
  14. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/printing_dialog_box.h
  15. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/status_screen.cpp
  16. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/status_screen.h
  17. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/preheat_screen.cpp
  18. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/preheat_screen.h
  19. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/status_screen.cpp
  20. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/status_screen.h
  21. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/compat.h
  22. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_extui.cpp
  23. 5
    5
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/basic/commands.cpp
  24. 5
    5
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/basic/commands.h
  25. 2
    2
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/adjuster_widget.cpp
  26. 2
    2
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/adjuster_widget.h
  27. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/command_processor.h
  28. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/text_box.cpp
  29. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/text_box.h
  30. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/text_ellipsis.cpp
  31. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/text_ellipsis.h
  32. 3
    3
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/unicode/unicode.cpp
  33. 3
    3
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/unicode/unicode.h
  34. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/about_screen.cpp
  35. 2
    2
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/alert_dialog_box.cpp
  36. 15
    15
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/base_numeric_adjustment_screen.cpp
  37. 12
    12
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/base_numeric_adjustment_screen.h
  38. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/bed_mesh_view_screen.h
  39. 2
    2
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/dialog_box_base_class.cpp
  40. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/filament_runout_screen.cpp
  41. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/lock_screen.cpp
  42. 3
    3
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.cpp
  43. 3
    3
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.h
  44. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/status_screen.cpp
  45. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/status_screen.h
  46. 1
    1
      Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/stress_test_screen.cpp
  47. 1
    0
      Marlin/src/lcd/language/language_en.h
  48. 2
    2
      Marlin/src/lcd/menu/game/brickout.cpp
  49. 2
    2
      Marlin/src/lcd/menu/game/snake.cpp
  50. 1
    1
      Marlin/src/lcd/menu/game/types.h
  51. 1
    1
      Marlin/src/lcd/menu/menu.h

+ 1
- 1
Marlin/src/core/multi_language.h Parādīt failu

78
   #define GET_TEXT(MSG) GET_LANG(LCD_LANGUAGE)::MSG
78
   #define GET_TEXT(MSG) GET_LANG(LCD_LANGUAGE)::MSG
79
   #define MAX_LANG_CHARSIZE LANG_CHARSIZE
79
   #define MAX_LANG_CHARSIZE LANG_CHARSIZE
80
 #endif
80
 #endif
81
-#define GET_TEXT_F(MSG) (const __FlashStringHelper*)GET_TEXT(MSG)
81
+#define GET_TEXT_F(MSG) FPSTR(GET_TEXT(MSG))
82
 
82
 
83
 #define GET_LANGUAGE_NAME(INDEX) GET_LANG(LCD_LANGUAGE_##INDEX)::LANGUAGE
83
 #define GET_LANGUAGE_NAME(INDEX) GET_LANG(LCD_LANGUAGE_##INDEX)::LANGUAGE
84
 #define LANG_CHARSIZE GET_TEXT(CHARSIZE)
84
 #define LANG_CHARSIZE GET_TEXT(CHARSIZE)

+ 5
- 1
Marlin/src/core/types.h Parādīt failu

27
 #include "../inc/MarlinConfigPre.h"
27
 #include "../inc/MarlinConfigPre.h"
28
 
28
 
29
 class __FlashStringHelper;
29
 class __FlashStringHelper;
30
-typedef const __FlashStringHelper *progmem_str;
30
+typedef const __FlashStringHelper* FSTR_P;
31
+#ifndef FPSTR
32
+  #define FPSTR(S) (reinterpret_cast<FSTR_P>(S))
33
+#endif
34
+#define FTOP(S) (reinterpret_cast<const char*>(S))
31
 
35
 
32
 //
36
 //
33
 // Conditional type assignment magic. For example...
37
 // Conditional type assignment magic. For example...

+ 4
- 7
Marlin/src/lcd/e3v2/common/dwin_api.h Parādīt failu

21
  */
21
  */
22
 #pragma once
22
 #pragma once
23
 
23
 
24
-#include <stddef.h>
24
+#include "../../../inc/MarlinConfig.h"
25
-#include <stdint.h>
26
-
27
-#include "../../../HAL/shared/Marduino.h"
28
 
25
 
29
 #ifndef DWIN_WIDTH
26
 #ifndef DWIN_WIDTH
30
   #define DWIN_WIDTH  272
27
   #define DWIN_WIDTH  272
74
   i += len;
71
   i += len;
75
 }
72
 }
76
 
73
 
77
-inline void DWIN_Text(size_t &i, const __FlashStringHelper * string, uint16_t rlimit=0xFFFF) {
74
+inline void DWIN_Text(size_t &i, FSTR_P string, uint16_t rlimit=0xFFFF) {
78
   if (!string) return;
75
   if (!string) return;
79
   const size_t len = _MIN(sizeof(DWIN_SendBuf) - i, _MIN(rlimit, strlen_P((PGM_P)string))); // cast to PGM_P (const char*) measure with strlen_P.
76
   const size_t len = _MIN(sizeof(DWIN_SendBuf) - i, _MIN(rlimit, strlen_P((PGM_P)string))); // cast to PGM_P (const char*) measure with strlen_P.
80
   if (len == 0) return;
77
   if (len == 0) return;
175
 //  rlimit: For draw less chars than string length use rlimit
172
 //  rlimit: For draw less chars than string length use rlimit
176
 void DWIN_Draw_String(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, const char * const string, uint16_t rlimit=0xFFFF);
173
 void DWIN_Draw_String(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, const char * const string, uint16_t rlimit=0xFFFF);
177
 
174
 
178
-inline void DWIN_Draw_String(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, const __FlashStringHelper *title) {
175
+inline void DWIN_Draw_String(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, FSTR_P title) {
179
   // Note that this won't work on AVR, only 32-bit systems!
176
   // Note that this won't work on AVR, only 32-bit systems!
180
-  DWIN_Draw_String(bShow, size, color, bColor, x, y, reinterpret_cast<const char*>(title));
177
+  DWIN_Draw_String(bShow, size, color, bColor, x, y, FTOP(title));
181
 }
178
 }
182
 
179
 
183
 // Draw a positive integer
180
 // Draw a positive integer

+ 3
- 3
Marlin/src/lcd/e3v2/creality/dwin.cpp Parādīt failu

363
   DWIN_Draw_String(false, DWIN_FONT_HEAD, Color_White, Color_Bg_Blue, 14, 4, (char*)title);
363
   DWIN_Draw_String(false, DWIN_FONT_HEAD, Color_White, Color_Bg_Blue, 14, 4, (char*)title);
364
 }
364
 }
365
 
365
 
366
-void Draw_Title(const __FlashStringHelper * title) {
366
+void Draw_Title(FSTR_P title) {
367
   DWIN_Draw_String(false, DWIN_FONT_HEAD, Color_White, Color_Bg_Blue, 14, 4, (char*)title);
367
   DWIN_Draw_String(false, DWIN_FONT_HEAD, Color_White, Color_Bg_Blue, 14, 4, (char*)title);
368
 }
368
 }
369
 
369
 
439
   DWIN_Draw_Line(Line_Color, 16, MBASE(line) + 33, 256, MBASE(line) + 34);
439
   DWIN_Draw_Line(Line_Color, 16, MBASE(line) + 33, 256, MBASE(line) + 34);
440
 }
440
 }
441
 
441
 
442
-void Draw_Menu_LineF(const uint8_t line, const uint8_t icon=0, const __FlashStringHelper *label=nullptr, bool more=false) {
442
+void Draw_Menu_LineF(const uint8_t line, const uint8_t icon=0, FSTR_P label=nullptr, bool more=false) {
443
   Draw_Menu_Line(line, icon, (char*)label, more);
443
   Draw_Menu_Line(line, icon, (char*)label, more);
444
 }
444
 }
445
 
445
 
589
 void DWIN_Draw_Label(const uint8_t row, char *string) {
589
 void DWIN_Draw_Label(const uint8_t row, char *string) {
590
   DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(row), string);
590
   DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(row), string);
591
 }
591
 }
592
-void DWIN_Draw_Label(const uint8_t row, const __FlashStringHelper *title) {
592
+void DWIN_Draw_Label(const uint8_t row, FSTR_P title) {
593
   DWIN_Draw_Label(row, (char*)title);
593
   DWIN_Draw_Label(row, (char*)title);
594
 }
594
 }
595
 
595
 

+ 119
- 119
Marlin/src/lcd/e3v2/enhanced/dwin.cpp Parādīt failu

3078
     CurrentMenu = PrepareMenu;
3078
     CurrentMenu = PrepareMenu;
3079
     SetMenuTitle({133, 1, 28, 13}, {179, 0, 48, 14}, GET_TEXT_F(MSG_PREPARE));
3079
     SetMenuTitle({133, 1, 28, 13}, {179, 0, 48, 14}, GET_TEXT_F(MSG_PREPARE));
3080
     DWINUI::MenuItemsPrepare(13);
3080
     DWINUI::MenuItemsPrepare(13);
3081
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Goto_Main_Menu);
3081
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Goto_Main_Menu);
3082
     #if ENABLED(ADVANCED_PAUSE_FEATURE)
3082
     #if ENABLED(ADVANCED_PAUSE_FEATURE)
3083
-      ADDMENUITEM(ICON_FilMan, GET_TEXT(MSG_FILAMENT_MAN), onDrawSubMenu, Draw_FilamentMan_Menu);
3083
+      ADDMENUITEM(ICON_FilMan, GET_TEXT_F(MSG_FILAMENT_MAN), onDrawSubMenu, Draw_FilamentMan_Menu);
3084
     #endif
3084
     #endif
3085
-    ADDMENUITEM(ICON_Axis, GET_TEXT(MSG_MOVE_AXIS), onDrawMoveSubMenu, Draw_Move_Menu);
3085
+    ADDMENUITEM(ICON_Axis, GET_TEXT_F(MSG_MOVE_AXIS), onDrawMoveSubMenu, Draw_Move_Menu);
3086
-    ADDMENUITEM(ICON_LevBed, GET_TEXT(MSG_BED_LEVELING), onDrawSubMenu, Draw_LevBedCorners_Menu);
3086
+    ADDMENUITEM(ICON_LevBed, GET_TEXT_F(MSG_BED_LEVELING), onDrawSubMenu, Draw_LevBedCorners_Menu);
3087
-    ADDMENUITEM(ICON_CloseMotor, GET_TEXT(MSG_DISABLE_STEPPERS), onDrawDisableMotors, DisableMotors);
3087
+    ADDMENUITEM(ICON_CloseMotor, GET_TEXT_F(MSG_DISABLE_STEPPERS), onDrawDisableMotors, DisableMotors);
3088
-    ADDMENUITEM(ICON_Homing, GET_TEXT(MSG_AUTO_HOME), onDrawAutoHome, AutoHome);
3088
+    ADDMENUITEM(ICON_Homing, GET_TEXT_F(MSG_AUTO_HOME), onDrawAutoHome, AutoHome);
3089
     #if ENABLED(MESH_BED_LEVELING)
3089
     #if ENABLED(MESH_BED_LEVELING)
3090
-      ADDMENUITEM(ICON_ManualMesh, GET_TEXT(MSG_MANUAL_MESH), onDrawSubMenu, Draw_ManualMesh_Menu);
3090
+      ADDMENUITEM(ICON_ManualMesh, GET_TEXT_F(MSG_MANUAL_MESH), onDrawSubMenu, Draw_ManualMesh_Menu);
3091
     #endif
3091
     #endif
3092
     #if HAS_ZOFFSET_ITEM
3092
     #if HAS_ZOFFSET_ITEM
3093
       #if EITHER(HAS_BED_PROBE, BABYSTEPPING)
3093
       #if EITHER(HAS_BED_PROBE, BABYSTEPPING)
3094
-        ADDMENUITEM(ICON_SetZOffset, GET_TEXT(MSG_PROBE_WIZARD), onDrawSubMenu, Draw_ZOffsetWiz_Menu);
3094
+        ADDMENUITEM(ICON_SetZOffset, GET_TEXT_F(MSG_PROBE_WIZARD), onDrawSubMenu, Draw_ZOffsetWiz_Menu);
3095
       #else
3095
       #else
3096
-        ADDMENUITEM(ICON_SetHome, GET_TEXT(MSG_SET_HOME_OFFSETS), onDrawHomeOffset, SetHome);
3096
+        ADDMENUITEM(ICON_SetHome, GET_TEXT_F(MSG_SET_HOME_OFFSETS), onDrawHomeOffset, SetHome);
3097
       #endif
3097
       #endif
3098
     #endif
3098
     #endif
3099
     #if HAS_HOTEND
3099
     #if HAS_HOTEND
3100
-      ADDMENUITEM(ICON_PLAPreheat, GET_TEXT(MSG_PREHEAT_1), onDrawPreheat1, SetPreheat0);
3100
+      ADDMENUITEM(ICON_PLAPreheat, GET_TEXT_F(MSG_PREHEAT_1), onDrawPreheat1, SetPreheat0);
3101
       ADDMENUITEM(ICON_ABSPreheat, PSTR("Preheat " PREHEAT_2_LABEL), onDrawPreheat2, SetPreheat1);
3101
       ADDMENUITEM(ICON_ABSPreheat, PSTR("Preheat " PREHEAT_2_LABEL), onDrawPreheat2, SetPreheat1);
3102
-      ADDMENUITEM(ICON_CustomPreheat, GET_TEXT(MSG_PREHEAT_CUSTOM), onDrawMenuItem, SetPreheat2);
3102
+      ADDMENUITEM(ICON_CustomPreheat, GET_TEXT_F(MSG_PREHEAT_CUSTOM), onDrawMenuItem, SetPreheat2);
3103
     #endif
3103
     #endif
3104
     #if HAS_PREHEAT
3104
     #if HAS_PREHEAT
3105
-      ADDMENUITEM(ICON_Cool, GET_TEXT(MSG_COOLDOWN), onDrawCooldown, SetCoolDown);
3105
+      ADDMENUITEM(ICON_Cool, GET_TEXT_F(MSG_COOLDOWN), onDrawCooldown, SetCoolDown);
3106
     #endif
3106
     #endif
3107
     ADDMENUITEM(ICON_Language, PSTR("UI Language"), onDrawLanguage, SetLanguage);
3107
     ADDMENUITEM(ICON_Language, PSTR("UI Language"), onDrawLanguage, SetLanguage);
3108
   }
3108
   }
3117
     CurrentMenu = LevBedMenu;
3117
     CurrentMenu = LevBedMenu;
3118
     SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_BED_TRAMMING)); // TODO: Chinese, English "Bed Tramming" JPG
3118
     SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_BED_TRAMMING)); // TODO: Chinese, English "Bed Tramming" JPG
3119
     DWINUI::MenuItemsPrepare(6);
3119
     DWINUI::MenuItemsPrepare(6);
3120
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Prepare_Menu);
3120
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_Prepare_Menu);
3121
-    ADDMENUITEM(ICON_Axis, GET_TEXT(MSG_LEVBED_FL), onDrawMenuItem, LevBedFL);
3121
+    ADDMENUITEM(ICON_Axis, GET_TEXT_F(MSG_LEVBED_FL), onDrawMenuItem, LevBedFL);
3122
-    ADDMENUITEM(ICON_Axis, GET_TEXT(MSG_LEVBED_FR), onDrawMenuItem, LevBedFR);
3122
+    ADDMENUITEM(ICON_Axis, GET_TEXT_F(MSG_LEVBED_FR), onDrawMenuItem, LevBedFR);
3123
-    ADDMENUITEM(ICON_Axis, GET_TEXT(MSG_LEVBED_BR), onDrawMenuItem, LevBedBR);
3123
+    ADDMENUITEM(ICON_Axis, GET_TEXT_F(MSG_LEVBED_BR), onDrawMenuItem, LevBedBR);
3124
-    ADDMENUITEM(ICON_Axis, GET_TEXT(MSG_LEVBED_BL), onDrawMenuItem, LevBedBL);
3124
+    ADDMENUITEM(ICON_Axis, GET_TEXT_F(MSG_LEVBED_BL), onDrawMenuItem, LevBedBL);
3125
-    ADDMENUITEM(ICON_Axis, GET_TEXT(MSG_LEVBED_C ), onDrawMenuItem, LevBedC );
3125
+    ADDMENUITEM(ICON_Axis, GET_TEXT_F(MSG_LEVBED_C ), onDrawMenuItem, LevBedC );
3126
   }
3126
   }
3127
   CurrentMenu->draw();
3127
   CurrentMenu->draw();
3128
 }
3128
 }
3134
     CurrentMenu = ControlMenu;
3134
     CurrentMenu = ControlMenu;
3135
     SetMenuTitle({103, 1, 28, 14}, {128, 2, 49, 11}, GET_TEXT_F(MSG_CONTROL));
3135
     SetMenuTitle({103, 1, 28, 14}, {128, 2, 49, 11}, GET_TEXT_F(MSG_CONTROL));
3136
     DWINUI::MenuItemsPrepare(9);
3136
     DWINUI::MenuItemsPrepare(9);
3137
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Goto_Main_Menu);
3137
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Goto_Main_Menu);
3138
-    ADDMENUITEM(ICON_Temperature, GET_TEXT(MSG_TEMPERATURE), onDrawTempSubMenu, Draw_Temperature_Menu);
3138
+    ADDMENUITEM(ICON_Temperature, GET_TEXT_F(MSG_TEMPERATURE), onDrawTempSubMenu, Draw_Temperature_Menu);
3139
-    ADDMENUITEM(ICON_Motion, GET_TEXT(MSG_MOTION), onDrawMotionSubMenu, Draw_Motion_Menu);
3139
+    ADDMENUITEM(ICON_Motion, GET_TEXT_F(MSG_MOTION), onDrawMotionSubMenu, Draw_Motion_Menu);
3140
     #if ENABLED(EEPROM_SETTINGS)
3140
     #if ENABLED(EEPROM_SETTINGS)
3141
-      ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT(MSG_STORE_EEPROM), onDrawWriteEeprom, WriteEeprom);
3141
+      ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT_F(MSG_STORE_EEPROM), onDrawWriteEeprom, WriteEeprom);
3142
-      ADDMENUITEM(ICON_ReadEEPROM, GET_TEXT(MSG_LOAD_EEPROM), onDrawReadEeprom, ReadEeprom);
3142
+      ADDMENUITEM(ICON_ReadEEPROM, GET_TEXT_F(MSG_LOAD_EEPROM), onDrawReadEeprom, ReadEeprom);
3143
-      ADDMENUITEM(ICON_ResumeEEPROM, GET_TEXT(MSG_RESTORE_DEFAULTS), onDrawResetEeprom, ResetEeprom);
3143
+      ADDMENUITEM(ICON_ResumeEEPROM, GET_TEXT_F(MSG_RESTORE_DEFAULTS), onDrawResetEeprom, ResetEeprom);
3144
     #endif
3144
     #endif
3145
-    ADDMENUITEM(ICON_Reboot, GET_TEXT(MSG_RESET_PRINTER), onDrawMenuItem, RebootPrinter);
3145
+    ADDMENUITEM(ICON_Reboot, GET_TEXT_F(MSG_RESET_PRINTER), onDrawMenuItem, RebootPrinter);
3146
-    ADDMENUITEM(ICON_AdvSet, GET_TEXT(MSG_ADVANCED_SETTINGS), onDrawSubMenu, Draw_AdvancedSettings_Menu);
3146
+    ADDMENUITEM(ICON_AdvSet, GET_TEXT_F(MSG_ADVANCED_SETTINGS), onDrawSubMenu, Draw_AdvancedSettings_Menu);
3147
-    ADDMENUITEM(ICON_Info, GET_TEXT(MSG_INFO_SCREEN), onDrawInfoSubMenu, Goto_InfoMenu);
3147
+    ADDMENUITEM(ICON_Info, GET_TEXT_F(MSG_INFO_SCREEN), onDrawInfoSubMenu, Goto_InfoMenu);
3148
   }
3148
   }
3149
   CurrentMenu->draw();
3149
   CurrentMenu->draw();
3150
 }
3150
 }
3156
     CurrentMenu = AdvancedSettings;
3156
     CurrentMenu = AdvancedSettings;
3157
     SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_ADVANCED_SETTINGS)); // TODO: Chinese, English "Advanced Settings" JPG
3157
     SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_ADVANCED_SETTINGS)); // TODO: Chinese, English "Advanced Settings" JPG
3158
     DWINUI::MenuItemsPrepare(11);
3158
     DWINUI::MenuItemsPrepare(11);
3159
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Control_Menu);
3159
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_Control_Menu);
3160
     #if HAS_HOME_OFFSET
3160
     #if HAS_HOME_OFFSET
3161
-      ADDMENUITEM(ICON_HomeOffset, GET_TEXT(MSG_SET_HOME_OFFSETS), onDrawSubMenu, Draw_HomeOffset_Menu);
3161
+      ADDMENUITEM(ICON_HomeOffset, GET_TEXT_F(MSG_SET_HOME_OFFSETS), onDrawSubMenu, Draw_HomeOffset_Menu);
3162
     #endif
3162
     #endif
3163
     #if HAS_BED_PROBE
3163
     #if HAS_BED_PROBE
3164
-      ADDMENUITEM(ICON_ProbeSet, GET_TEXT(MSG_ZPROBE_SETTINGS), onDrawSubMenu, Draw_ProbeSet_Menu);
3164
+      ADDMENUITEM(ICON_ProbeSet, GET_TEXT_F(MSG_ZPROBE_SETTINGS), onDrawSubMenu, Draw_ProbeSet_Menu);
3165
     #endif
3165
     #endif
3166
     #if HAS_HOTEND
3166
     #if HAS_HOTEND
3167
       ADDMENUITEM(ICON_PIDNozzle, F("Hotend PID Settings"), onDrawSubMenu, Draw_HotendPID_Menu);
3167
       ADDMENUITEM(ICON_PIDNozzle, F("Hotend PID Settings"), onDrawSubMenu, Draw_HotendPID_Menu);
3170
       ADDMENUITEM(ICON_PIDbed, F("Bed PID Settings"), onDrawSubMenu, Draw_BedPID_Menu);
3170
       ADDMENUITEM(ICON_PIDbed, F("Bed PID Settings"), onDrawSubMenu, Draw_BedPID_Menu);
3171
     #endif
3171
     #endif
3172
     #if HAS_FILAMENT_SENSOR
3172
     #if HAS_FILAMENT_SENSOR
3173
-      ADDMENUITEM(ICON_FilSet, GET_TEXT(MSG_FILAMENT_SET), onDrawSubMenu, Draw_FilSet_Menu);
3173
+      ADDMENUITEM(ICON_FilSet, GET_TEXT_F(MSG_FILAMENT_SET), onDrawSubMenu, Draw_FilSet_Menu);
3174
     #endif
3174
     #endif
3175
     #if ENABLED(POWER_LOSS_RECOVERY)
3175
     #if ENABLED(POWER_LOSS_RECOVERY)
3176
-      ADDMENUITEM(ICON_Pwrlossr, F("Power-loss recovery"), onDrawPwrLossR, SetPwrLossr);
3176
+      ADDMENUITEM(ICON_Pwrlossr, GET_TEXT_F(MSG_OUTAGE_RECOVERY), onDrawPwrLossR, SetPwrLossr);
3177
     #endif
3177
     #endif
3178
     #if HAS_LCD_BRIGHTNESS
3178
     #if HAS_LCD_BRIGHTNESS
3179
-      ADDMENUITEM_P(ICON_Brightness, F("LCD Brightness"), onDrawPInt8Menu, SetBrightness, &ui.brightness);
3179
+      ADDMENUITEM_P(ICON_Brightness, GET_TEXT_F(MSG_BRIGHTNESS), onDrawPInt8Menu, SetBrightness, &ui.brightness);
3180
     #endif
3180
     #endif
3181
     ADDMENUITEM(ICON_Scolor, F("Select Colors"), onDrawSubMenu, Draw_SelectColors_Menu);
3181
     ADDMENUITEM(ICON_Scolor, F("Select Colors"), onDrawSubMenu, Draw_SelectColors_Menu);
3182
     #if ENABLED(SOUND_MENU_ITEM)
3182
     #if ENABLED(SOUND_MENU_ITEM)
3194
     CurrentMenu = MoveMenu;
3194
     CurrentMenu = MoveMenu;
3195
     SetMenuTitle({192, 1, 42, 14}, {231, 2, 35, 11}, GET_TEXT_F(MSG_MOVE_AXIS));
3195
     SetMenuTitle({192, 1, 42, 14}, {231, 2, 35, 11}, GET_TEXT_F(MSG_MOVE_AXIS));
3196
     DWINUI::MenuItemsPrepare(5);
3196
     DWINUI::MenuItemsPrepare(5);
3197
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Prepare_Menu);
3197
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_Prepare_Menu);
3198
-    ADDMENUITEM_P(ICON_MoveX, GET_TEXT(MSG_MOVE_X), onDrawMoveX, SetMoveX, &current_position.x);
3198
+    ADDMENUITEM_P(ICON_MoveX, GET_TEXT_F(MSG_MOVE_X), onDrawMoveX, SetMoveX, &current_position.x);
3199
-    ADDMENUITEM_P(ICON_MoveY, GET_TEXT(MSG_MOVE_Y), onDrawMoveY, SetMoveY, &current_position.y);
3199
+    ADDMENUITEM_P(ICON_MoveY, GET_TEXT_F(MSG_MOVE_Y), onDrawMoveY, SetMoveY, &current_position.y);
3200
-    ADDMENUITEM_P(ICON_MoveZ, GET_TEXT(MSG_MOVE_Z), onDrawMoveZ, SetMoveZ, &current_position.z);
3200
+    ADDMENUITEM_P(ICON_MoveZ, GET_TEXT_F(MSG_MOVE_Z), onDrawMoveZ, SetMoveZ, &current_position.z);
3201
     #if HAS_HOTEND
3201
     #if HAS_HOTEND
3202
-      ADDMENUITEM_P(ICON_Extruder, GET_TEXT(MSG_MOVE_E), onDrawMoveE, SetMoveE, &current_position.e);
3202
+      ADDMENUITEM_P(ICON_Extruder, GET_TEXT_F(MSG_MOVE_E), onDrawMoveE, SetMoveE, &current_position.e);
3203
     #endif
3203
     #endif
3204
   }
3204
   }
3205
   CurrentMenu->draw();
3205
   CurrentMenu->draw();
3214
       CurrentMenu = HomeOffMenu;
3214
       CurrentMenu = HomeOffMenu;
3215
       SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_SET_HOME_OFFSETS)); // TODO: Chinese, English "Set Home Offsets" JPG
3215
       SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_SET_HOME_OFFSETS)); // TODO: Chinese, English "Set Home Offsets" JPG
3216
       DWINUI::MenuItemsPrepare(4);
3216
       DWINUI::MenuItemsPrepare(4);
3217
-      ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_AdvancedSettings_Menu);
3217
+      ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_AdvancedSettings_Menu);
3218
-      ADDMENUITEM_P(ICON_HomeOffsetX, GET_TEXT(MSG_HOME_OFFSET_X), onDrawPFloatMenu, SetHomeOffsetX, &home_offset[X_AXIS]);
3218
+      ADDMENUITEM_P(ICON_HomeOffsetX, GET_TEXT_F(MSG_HOME_OFFSET_X), onDrawPFloatMenu, SetHomeOffsetX, &home_offset[X_AXIS]);
3219
-      ADDMENUITEM_P(ICON_HomeOffsetY, GET_TEXT(MSG_HOME_OFFSET_Y), onDrawPFloatMenu, SetHomeOffsetY, &home_offset[Y_AXIS]);
3219
+      ADDMENUITEM_P(ICON_HomeOffsetY, GET_TEXT_F(MSG_HOME_OFFSET_Y), onDrawPFloatMenu, SetHomeOffsetY, &home_offset[Y_AXIS]);
3220
-      ADDMENUITEM_P(ICON_HomeOffsetZ, GET_TEXT(MSG_HOME_OFFSET_Z), onDrawPFloatMenu, SetHomeOffsetZ, &home_offset[Z_AXIS]);
3220
+      ADDMENUITEM_P(ICON_HomeOffsetZ, GET_TEXT_F(MSG_HOME_OFFSET_Z), onDrawPFloatMenu, SetHomeOffsetZ, &home_offset[Z_AXIS]);
3221
     }
3221
     }
3222
     CurrentMenu->draw();
3222
     CurrentMenu->draw();
3223
   }
3223
   }
3231
       CurrentMenu = ProbeSetMenu;
3231
       CurrentMenu = ProbeSetMenu;
3232
       SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_ZPROBE_SETTINGS)); // TODO: Chinese, English "Probe Settings" JPG
3232
       SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_ZPROBE_SETTINGS)); // TODO: Chinese, English "Probe Settings" JPG
3233
       DWINUI::MenuItemsPrepare(5);
3233
       DWINUI::MenuItemsPrepare(5);
3234
-      ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_AdvancedSettings_Menu);
3234
+      ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_AdvancedSettings_Menu);
3235
-      ADDMENUITEM_P(ICON_ProbeOffsetX, GET_TEXT(MSG_ZPROBE_XOFFSET), onDrawPFloatMenu, SetProbeOffsetX, &probe.offset.x);
3235
+      ADDMENUITEM_P(ICON_ProbeOffsetX, GET_TEXT_F(MSG_ZPROBE_XOFFSET), onDrawPFloatMenu, SetProbeOffsetX, &probe.offset.x);
3236
-      ADDMENUITEM_P(ICON_ProbeOffsetY, GET_TEXT(MSG_ZPROBE_YOFFSET), onDrawPFloatMenu, SetProbeOffsetY, &probe.offset.y);
3236
+      ADDMENUITEM_P(ICON_ProbeOffsetY, GET_TEXT_F(MSG_ZPROBE_YOFFSET), onDrawPFloatMenu, SetProbeOffsetY, &probe.offset.y);
3237
-      ADDMENUITEM_P(ICON_ProbeOffsetZ, GET_TEXT(MSG_ZPROBE_ZOFFSET), onDrawPFloat2Menu, SetProbeOffsetZ, &probe.offset.z);
3237
+      ADDMENUITEM_P(ICON_ProbeOffsetZ, GET_TEXT_F(MSG_ZPROBE_ZOFFSET), onDrawPFloat2Menu, SetProbeOffsetZ, &probe.offset.z);
3238
-      ADDMENUITEM(ICON_ProbeTest, GET_TEXT(MSG_M48_TEST), onDrawMenuItem, ProbeTest);
3238
+      ADDMENUITEM(ICON_ProbeTest, GET_TEXT_F(MSG_M48_TEST), onDrawMenuItem, ProbeTest);
3239
     }
3239
     }
3240
     CurrentMenu->draw();
3240
     CurrentMenu->draw();
3241
   }
3241
   }
3249
       CurrentMenu = FilSetMenu;
3249
       CurrentMenu = FilSetMenu;
3250
       CurrentMenu->MenuTitle.SetCaption(GET_TEXT_F(MSG_FILAMENT_SET));
3250
       CurrentMenu->MenuTitle.SetCaption(GET_TEXT_F(MSG_FILAMENT_SET));
3251
       DWINUI::MenuItemsPrepare(6);
3251
       DWINUI::MenuItemsPrepare(6);
3252
-      ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawMenuItem, Draw_AdvancedSettings_Menu);
3252
+      ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawMenuItem, Draw_AdvancedSettings_Menu);
3253
       #if HAS_FILAMENT_SENSOR
3253
       #if HAS_FILAMENT_SENSOR
3254
-        ADDMENUITEM(ICON_Runout, GET_TEXT(MSG_RUNOUT_ENABLE), onDrawRunoutEnable, SetRunoutEnable);
3254
+        ADDMENUITEM(ICON_Runout, GET_TEXT_F(MSG_RUNOUT_ENABLE), onDrawRunoutEnable, SetRunoutEnable);
3255
       #endif
3255
       #endif
3256
       #if HAS_FILAMENT_RUNOUT_DISTANCE
3256
       #if HAS_FILAMENT_RUNOUT_DISTANCE
3257
         ADDMENUITEM_P(ICON_Runout, F("Runout Distance"), onDrawPFloatMenu, SetRunoutDistance, &runout.runout_distance());
3257
         ADDMENUITEM_P(ICON_Runout, F("Runout Distance"), onDrawPFloatMenu, SetRunoutDistance, &runout.runout_distance());
3260
         ADDMENUITEM_P(ICON_ExtrudeMinT, F("Extrude Min Temp."), onDrawPIntMenu, SetExtMinT, &HMI_data.ExtMinT);
3260
         ADDMENUITEM_P(ICON_ExtrudeMinT, F("Extrude Min Temp."), onDrawPIntMenu, SetExtMinT, &HMI_data.ExtMinT);
3261
       #endif
3261
       #endif
3262
       #if ENABLED(ADVANCED_PAUSE_FEATURE)
3262
       #if ENABLED(ADVANCED_PAUSE_FEATURE)
3263
-        ADDMENUITEM_P(ICON_FilLoad, GET_TEXT(MSG_FILAMENT_LOAD), onDrawPFloatMenu, SetFilLoad, &fc_settings[0].load_length);
3263
+        ADDMENUITEM_P(ICON_FilLoad, GET_TEXT_F(MSG_FILAMENT_LOAD), onDrawPFloatMenu, SetFilLoad, &fc_settings[0].load_length);
3264
-        ADDMENUITEM_P(ICON_FilUnload, GET_TEXT(MSG_FILAMENT_UNLOAD), onDrawPFloatMenu, SetFilUnload, &fc_settings[0].unload_length);
3264
+        ADDMENUITEM_P(ICON_FilUnload, GET_TEXT_F(MSG_FILAMENT_UNLOAD), onDrawPFloatMenu, SetFilUnload, &fc_settings[0].unload_length);
3265
       #endif
3265
       #endif
3266
     }
3266
     }
3267
     CurrentMenu->draw();
3267
     CurrentMenu->draw();
3275
     CurrentMenu = SelectColorMenu;
3275
     CurrentMenu = SelectColorMenu;
3276
     SetMenuTitle({0}, {0}, F("Select Colors")); // TODO: Chinese, English "Select Color" JPG
3276
     SetMenuTitle({0}, {0}, F("Select Colors")); // TODO: Chinese, English "Select Color" JPG
3277
     DWINUI::MenuItemsPrepare(20);
3277
     DWINUI::MenuItemsPrepare(20);
3278
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_AdvancedSettings_Menu);
3278
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_AdvancedSettings_Menu);
3279
-    ADDMENUITEM(ICON_StockConfiguration, GET_TEXT(MSG_RESTORE_DEFAULTS), onDrawMenuItem, RestoreDefaultsColors);
3279
+    ADDMENUITEM(ICON_StockConfiguration, GET_TEXT_F(MSG_RESTORE_DEFAULTS), onDrawMenuItem, RestoreDefaultsColors);
3280
     ADDMENUITEM_P(0, "Screen Background", onDrawSelColorItem, SelColor, &HMI_data.Background_Color);
3280
     ADDMENUITEM_P(0, "Screen Background", onDrawSelColorItem, SelColor, &HMI_data.Background_Color);
3281
     ADDMENUITEM_P(0, "Cursor", onDrawSelColorItem, SelColor, &HMI_data.Cursor_color);
3281
     ADDMENUITEM_P(0, "Cursor", onDrawSelColorItem, SelColor, &HMI_data.Cursor_color);
3282
     ADDMENUITEM_P(0, "Title Background", onDrawSelColorItem, SelColor, &HMI_data.TitleBg_color);
3282
     ADDMENUITEM_P(0, "Title Background", onDrawSelColorItem, SelColor, &HMI_data.TitleBg_color);
3306
     CurrentMenu = GetColorMenu;
3306
     CurrentMenu = GetColorMenu;
3307
     SetMenuTitle({0}, {0}, F("Get Color")); // TODO: Chinese, English "Get Color" JPG
3307
     SetMenuTitle({0}, {0}, F("Get Color")); // TODO: Chinese, English "Get Color" JPG
3308
     DWINUI::MenuItemsPrepare(5);
3308
     DWINUI::MenuItemsPrepare(5);
3309
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, DWIN_ApplyColor);
3309
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, DWIN_ApplyColor);
3310
-    ADDMENUITEM(ICON_Cancel, GET_TEXT(MSG_BUTTON_CANCEL), onDrawMenuItem, Draw_SelectColors_Menu);
3310
+    ADDMENUITEM(ICON_Cancel, GET_TEXT_F(MSG_BUTTON_CANCEL), onDrawMenuItem, Draw_SelectColors_Menu);
3311
     ADDMENUITEM(0, "Red", onDrawGetColorItem, SetRGBColor);
3311
     ADDMENUITEM(0, "Red", onDrawGetColorItem, SetRGBColor);
3312
     ADDMENUITEM(1, "Green", onDrawGetColorItem, SetRGBColor);
3312
     ADDMENUITEM(1, "Green", onDrawGetColorItem, SetRGBColor);
3313
     ADDMENUITEM(2, "Blue", onDrawGetColorItem, SetRGBColor);
3313
     ADDMENUITEM(2, "Blue", onDrawGetColorItem, SetRGBColor);
3323
     CurrentMenu = TuneMenu;
3323
     CurrentMenu = TuneMenu;
3324
     SetMenuTitle({73, 2, 28, 12}, {94, 2, 33, 11}, GET_TEXT_F(MSG_TUNE)); // TODO: Chinese, English "Tune" JPG
3324
     SetMenuTitle({73, 2, 28, 12}, {94, 2, 33, 11}, GET_TEXT_F(MSG_TUNE)); // TODO: Chinese, English "Tune" JPG
3325
     DWINUI::MenuItemsPrepare(10);
3325
     DWINUI::MenuItemsPrepare(10);
3326
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Goto_PrintProcess);
3326
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Goto_PrintProcess);
3327
-    ADDMENUITEM_P(ICON_Speed, GET_TEXT(MSG_SPEED), onDrawSpeedItem, SetSpeed, &feedrate_percentage);
3327
+    ADDMENUITEM_P(ICON_Speed, GET_TEXT_F(MSG_SPEED), onDrawSpeedItem, SetSpeed, &feedrate_percentage);
3328
     #if HAS_HOTEND
3328
     #if HAS_HOTEND
3329
-      HotendTargetItem = ADDMENUITEM_P(ICON_HotendTemp, GET_TEXT(MSG_UBL_SET_TEMP_HOTEND), onDrawHotendTemp, SetHotendTemp, &thermalManager.temp_hotend[0].target);
3329
+      HotendTargetItem = ADDMENUITEM_P(ICON_HotendTemp, GET_TEXT_F(MSG_UBL_SET_TEMP_HOTEND), onDrawHotendTemp, SetHotendTemp, &thermalManager.temp_hotend[0].target);
3330
     #endif
3330
     #endif
3331
     #if HAS_HEATED_BED
3331
     #if HAS_HEATED_BED
3332
-      BedTargetItem = ADDMENUITEM_P(ICON_BedTemp, GET_TEXT(MSG_UBL_SET_TEMP_BED), onDrawBedTemp, SetBedTemp, &thermalManager.temp_bed.target);
3332
+      BedTargetItem = ADDMENUITEM_P(ICON_BedTemp, GET_TEXT_F(MSG_UBL_SET_TEMP_BED), onDrawBedTemp, SetBedTemp, &thermalManager.temp_bed.target);
3333
     #endif
3333
     #endif
3334
     #if HAS_FAN
3334
     #if HAS_FAN
3335
-      FanSpeedItem = ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT(MSG_FAN_SPEED), onDrawFanSpeed, SetFanSpeed, &thermalManager.fan_speed[0]);
3335
+      FanSpeedItem = ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT_F(MSG_FAN_SPEED), onDrawFanSpeed, SetFanSpeed, &thermalManager.fan_speed[0]);
3336
     #endif
3336
     #endif
3337
     #if HAS_ZOFFSET_ITEM && EITHER(HAS_BED_PROBE, BABYSTEPPING)
3337
     #if HAS_ZOFFSET_ITEM && EITHER(HAS_BED_PROBE, BABYSTEPPING)
3338
-      ADDMENUITEM_P(ICON_Zoffset, GET_TEXT(MSG_ZPROBE_ZOFFSET), onDrawZOffset, SetZOffset, &BABY_Z_VAR);
3338
+      ADDMENUITEM_P(ICON_Zoffset, GET_TEXT_F(MSG_ZPROBE_ZOFFSET), onDrawZOffset, SetZOffset, &BABY_Z_VAR);
3339
     #endif
3339
     #endif
3340
-    ADDMENUITEM_P(ICON_Flow, GET_TEXT(MSG_FLOW), onDrawPIntMenu, SetFlow, &planner.flow_percentage[0]);
3340
+    ADDMENUITEM_P(ICON_Flow, GET_TEXT_F(MSG_FLOW), onDrawPIntMenu, SetFlow, &planner.flow_percentage[0]);
3341
     #if ENABLED(ADVANCED_PAUSE_FEATURE)
3341
     #if ENABLED(ADVANCED_PAUSE_FEATURE)
3342
-      ADDMENUITEM(ICON_FilMan, GET_TEXT(MSG_FILAMENTCHANGE), onDrawMenuItem, ChangeFilament);
3342
+      ADDMENUITEM(ICON_FilMan, GET_TEXT_F(MSG_FILAMENTCHANGE), onDrawMenuItem, ChangeFilament);
3343
     #endif
3343
     #endif
3344
     ADDMENUITEM(ICON_Lock, F("Lock Screen"), onDrawMenuItem, Goto_LockScreen);
3344
     ADDMENUITEM(ICON_Lock, F("Lock Screen"), onDrawMenuItem, Goto_LockScreen);
3345
     #if HAS_LCD_BRIGHTNESS
3345
     #if HAS_LCD_BRIGHTNESS
3356
     CurrentMenu = MotionMenu;
3356
     CurrentMenu = MotionMenu;
3357
     SetMenuTitle({1, 16, 28, 13}, {144, 16, 46, 11}, GET_TEXT_F(MSG_MOTION)); // TODO: Chinese, English "Motion" JPG
3357
     SetMenuTitle({1, 16, 28, 13}, {144, 16, 46, 11}, GET_TEXT_F(MSG_MOTION)); // TODO: Chinese, English "Motion" JPG
3358
     DWINUI::MenuItemsPrepare(6);
3358
     DWINUI::MenuItemsPrepare(6);
3359
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Control_Menu);
3359
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_Control_Menu);
3360
-    ADDMENUITEM(ICON_MaxSpeed, GET_TEXT(MSG_SPEED), onDrawSpeed, Draw_MaxSpeed_Menu);
3360
+    ADDMENUITEM(ICON_MaxSpeed, GET_TEXT_F(MSG_SPEED), onDrawSpeed, Draw_MaxSpeed_Menu);
3361
-    ADDMENUITEM(ICON_MaxAccelerated, GET_TEXT(MSG_ACCELERATION), onDrawAcc, Draw_MaxAccel_Menu);
3361
+    ADDMENUITEM(ICON_MaxAccelerated, GET_TEXT_F(MSG_ACCELERATION), onDrawAcc, Draw_MaxAccel_Menu);
3362
     #if HAS_CLASSIC_JERK
3362
     #if HAS_CLASSIC_JERK
3363
-      ADDMENUITEM(ICON_MaxJerk, GET_TEXT(MSG_JERK), onDrawJerk, Draw_MaxJerk_Menu);
3363
+      ADDMENUITEM(ICON_MaxJerk, GET_TEXT_F(MSG_JERK), onDrawJerk, Draw_MaxJerk_Menu);
3364
     #endif
3364
     #endif
3365
-    ADDMENUITEM(ICON_Step, GET_TEXT(MSG_STEPS_PER_MM), onDrawSteps, Draw_Steps_Menu);
3365
+    ADDMENUITEM(ICON_Step, GET_TEXT_F(MSG_STEPS_PER_MM), onDrawSteps, Draw_Steps_Menu);
3366
-    ADDMENUITEM_P(ICON_Flow, GET_TEXT(MSG_FLOW), onDrawPIntMenu, SetFlow, &planner.flow_percentage[0]);
3366
+    ADDMENUITEM_P(ICON_Flow, GET_TEXT_F(MSG_FLOW), onDrawPIntMenu, SetFlow, &planner.flow_percentage[0]);
3367
   }
3367
   }
3368
   CurrentMenu->draw();
3368
   CurrentMenu->draw();
3369
 }
3369
 }
3376
       CurrentMenu = FilamentMenu;
3376
       CurrentMenu = FilamentMenu;
3377
       SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_FILAMENT_MAN)); // TODO: Chinese, English "Filament Management" JPG
3377
       SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_FILAMENT_MAN)); // TODO: Chinese, English "Filament Management" JPG
3378
       DWINUI::MenuItemsPrepare(5);
3378
       DWINUI::MenuItemsPrepare(5);
3379
-      ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Prepare_Menu);
3379
+      ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_Prepare_Menu);
3380
-      ADDMENUITEM(ICON_Park, GET_TEXT(MSG_FILAMENT_PARK_ENABLED), onDrawMenuItem, ParkHead);
3380
+      ADDMENUITEM(ICON_Park, GET_TEXT_F(MSG_FILAMENT_PARK_ENABLED), onDrawMenuItem, ParkHead);
3381
-      ADDMENUITEM(ICON_FilMan, GET_TEXT(MSG_FILAMENTCHANGE), onDrawMenuItem, ChangeFilament);
3381
+      ADDMENUITEM(ICON_FilMan, GET_TEXT_F(MSG_FILAMENTCHANGE), onDrawMenuItem, ChangeFilament);
3382
       #if ENABLED(FILAMENT_LOAD_UNLOAD_GCODES)
3382
       #if ENABLED(FILAMENT_LOAD_UNLOAD_GCODES)
3383
-        ADDMENUITEM(ICON_FilUnload, GET_TEXT(MSG_FILAMENTUNLOAD), onDrawMenuItem, UnloadFilament);
3383
+        ADDMENUITEM(ICON_FilUnload, GET_TEXT_F(MSG_FILAMENTUNLOAD), onDrawMenuItem, UnloadFilament);
3384
-        ADDMENUITEM(ICON_FilLoad, GET_TEXT(MSG_FILAMENTLOAD), onDrawMenuItem, LoadFilament);
3384
+        ADDMENUITEM(ICON_FilLoad, GET_TEXT_F(MSG_FILAMENTLOAD), onDrawMenuItem, LoadFilament);
3385
       #endif
3385
       #endif
3386
     }
3386
     }
3387
     CurrentMenu->draw();
3387
     CurrentMenu->draw();
3396
       CurrentMenu = ManualMesh;
3396
       CurrentMenu = ManualMesh;
3397
       SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_MANUAL_MESH)); // TODO: Chinese, English "Manual Mesh Leveling" JPG
3397
       SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_MANUAL_MESH)); // TODO: Chinese, English "Manual Mesh Leveling" JPG
3398
       DWINUI::MenuItemsPrepare(5);
3398
       DWINUI::MenuItemsPrepare(5);
3399
-      ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Prepare_Menu);
3399
+      ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_Prepare_Menu);
3400
-      ADDMENUITEM(ICON_ManualMesh, GET_TEXT(MSG_LEVEL_BED), onDrawMenuItem, ManualMeshStart);
3400
+      ADDMENUITEM(ICON_ManualMesh, GET_TEXT_F(MSG_LEVEL_BED), onDrawMenuItem, ManualMeshStart);
3401
-      MMeshMoveZItem = ADDMENUITEM_P(ICON_Zoffset, GET_TEXT(MSG_MOVE_Z), onDrawMMeshMoveZ, SetMMeshMoveZ, &current_position.z);
3401
+      MMeshMoveZItem = ADDMENUITEM_P(ICON_Zoffset, GET_TEXT_F(MSG_MOVE_Z), onDrawMMeshMoveZ, SetMMeshMoveZ, &current_position.z);
3402
-      ADDMENUITEM(ICON_Axis, GET_TEXT(MSG_UBL_CONTINUE_MESH), onDrawMenuItem, ManualMeshContinue);
3402
+      ADDMENUITEM(ICON_Axis, GET_TEXT_F(MSG_UBL_CONTINUE_MESH), onDrawMenuItem, ManualMeshContinue);
3403
-      ADDMENUITEM(ICON_MeshSave, GET_TEXT(MSG_UBL_SAVE_MESH), onDrawMenuItem, ManualMeshSave);
3403
+      ADDMENUITEM(ICON_MeshSave, GET_TEXT_F(MSG_UBL_SAVE_MESH), onDrawMenuItem, ManualMeshSave);
3404
     }
3404
     }
3405
     CurrentMenu->draw();
3405
     CurrentMenu->draw();
3406
   }
3406
   }
3414
       CurrentMenu = PreheatMenu;
3414
       CurrentMenu = PreheatMenu;
3415
       SetMenuTitle(cn, en, text);
3415
       SetMenuTitle(cn, en, text);
3416
       DWINUI::MenuItemsPrepare(5);
3416
       DWINUI::MenuItemsPrepare(5);
3417
-      ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Temperature_Menu);
3417
+      ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_Temperature_Menu);
3418
       #if HAS_HOTEND
3418
       #if HAS_HOTEND
3419
-        ADDMENUITEM_P(ICON_SetEndTemp, GET_TEXT(MSG_UBL_SET_TEMP_HOTEND), onDrawSetPreheatHotend, SetPreheatEndTemp, &ui.material_preset[HMI_value.Preheat].hotend_temp);
3419
+        ADDMENUITEM_P(ICON_SetEndTemp, GET_TEXT_F(MSG_UBL_SET_TEMP_HOTEND), onDrawSetPreheatHotend, SetPreheatEndTemp, &ui.material_preset[HMI_value.Preheat].hotend_temp);
3420
       #endif
3420
       #endif
3421
       #if HAS_HEATED_BED
3421
       #if HAS_HEATED_BED
3422
-        ADDMENUITEM_P(ICON_SetBedTemp, GET_TEXT(MSG_UBL_SET_TEMP_BED), onDrawSetPreheatBed, SetPreheatBedTemp, &ui.material_preset[HMI_value.Preheat].bed_temp);
3422
+        ADDMENUITEM_P(ICON_SetBedTemp, GET_TEXT_F(MSG_UBL_SET_TEMP_BED), onDrawSetPreheatBed, SetPreheatBedTemp, &ui.material_preset[HMI_value.Preheat].bed_temp);
3423
       #endif
3423
       #endif
3424
       #if HAS_FAN
3424
       #if HAS_FAN
3425
-        ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT(MSG_FAN_SPEED), onDrawSetPreheatFan, SetPreheatFanSpeed, &ui.material_preset[HMI_value.Preheat].fan_speed);
3425
+        ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT_F(MSG_FAN_SPEED), onDrawSetPreheatFan, SetPreheatFanSpeed, &ui.material_preset[HMI_value.Preheat].fan_speed);
3426
       #endif
3426
       #endif
3427
       #if ENABLED(EEPROM_SETTINGS)
3427
       #if ENABLED(EEPROM_SETTINGS)
3428
-        ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT(MSG_STORE_EEPROM), onDrawWriteEeprom, WriteEeprom);
3428
+        ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT_F(MSG_STORE_EEPROM), onDrawWriteEeprom, WriteEeprom);
3429
       #endif
3429
       #endif
3430
     }
3430
     }
3431
     CurrentMenu->draw();
3431
     CurrentMenu->draw();
3461
     CurrentMenu = TemperatureMenu;
3461
     CurrentMenu = TemperatureMenu;
3462
     SetMenuTitle({236, 2, 28, 12}, {56, 15, 85, 14}, GET_TEXT_F(MSG_TEMPERATURE));
3462
     SetMenuTitle({236, 2, 28, 12}, {56, 15, 85, 14}, GET_TEXT_F(MSG_TEMPERATURE));
3463
     DWINUI::MenuItemsPrepare(7);
3463
     DWINUI::MenuItemsPrepare(7);
3464
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Control_Menu);
3464
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_Control_Menu);
3465
     #if HAS_HOTEND
3465
     #if HAS_HOTEND
3466
-      HotendTargetItem = ADDMENUITEM_P(ICON_SetEndTemp, GET_TEXT(MSG_UBL_SET_TEMP_HOTEND), onDrawHotendTemp, SetHotendTemp, &thermalManager.temp_hotend[0].target);
3466
+      HotendTargetItem = ADDMENUITEM_P(ICON_SetEndTemp, GET_TEXT_F(MSG_UBL_SET_TEMP_HOTEND), onDrawHotendTemp, SetHotendTemp, &thermalManager.temp_hotend[0].target);
3467
     #endif
3467
     #endif
3468
     #if HAS_HEATED_BED
3468
     #if HAS_HEATED_BED
3469
-      BedTargetItem = ADDMENUITEM_P(ICON_SetBedTemp, GET_TEXT(MSG_UBL_SET_TEMP_BED), onDrawBedTemp, SetBedTemp, &thermalManager.temp_bed.target);
3469
+      BedTargetItem = ADDMENUITEM_P(ICON_SetBedTemp, GET_TEXT_F(MSG_UBL_SET_TEMP_BED), onDrawBedTemp, SetBedTemp, &thermalManager.temp_bed.target);
3470
     #endif
3470
     #endif
3471
     #if HAS_FAN
3471
     #if HAS_FAN
3472
-      FanSpeedItem = ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT(MSG_FAN_SPEED), onDrawFanSpeed, SetFanSpeed, &thermalManager.fan_speed[0]);
3472
+      FanSpeedItem = ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT_F(MSG_FAN_SPEED), onDrawFanSpeed, SetFanSpeed, &thermalManager.fan_speed[0]);
3473
     #endif
3473
     #endif
3474
     #if HAS_HOTEND
3474
     #if HAS_HOTEND
3475
       ADDMENUITEM(ICON_SetPLAPreheat, F(PREHEAT_1_LABEL " Preheat Settings"), onDrawPLAPreheatSubMenu, Draw_Preheat1_Menu);
3475
       ADDMENUITEM(ICON_SetPLAPreheat, F(PREHEAT_1_LABEL " Preheat Settings"), onDrawPLAPreheatSubMenu, Draw_Preheat1_Menu);
3489
     CurrentMenu = MaxSpeedMenu;
3489
     CurrentMenu = MaxSpeedMenu;
3490
     SetMenuTitle({1, 16, 28, 13}, {144, 16, 46, 11}, GET_TEXT_F(MSG_MAXSPEED));
3490
     SetMenuTitle({1, 16, 28, 13}, {144, 16, 46, 11}, GET_TEXT_F(MSG_MAXSPEED));
3491
     DWINUI::MenuItemsPrepare(5);
3491
     DWINUI::MenuItemsPrepare(5);
3492
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Motion_Menu);
3492
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_Motion_Menu);
3493
-    ADDMENUITEM_P(ICON_MaxSpeedX, GET_TEXT(MSG_MAXSPEED_X), onDrawMaxSpeedX, SetMaxSpeedX, &planner.settings.max_feedrate_mm_s[X_AXIS]);
3493
+    ADDMENUITEM_P(ICON_MaxSpeedX, GET_TEXT_F(MSG_MAXSPEED_X), onDrawMaxSpeedX, SetMaxSpeedX, &planner.settings.max_feedrate_mm_s[X_AXIS]);
3494
-    ADDMENUITEM_P(ICON_MaxSpeedY, GET_TEXT(MSG_MAXSPEED_Y), onDrawMaxSpeedY, SetMaxSpeedY, &planner.settings.max_feedrate_mm_s[Y_AXIS]);
3494
+    ADDMENUITEM_P(ICON_MaxSpeedY, GET_TEXT_F(MSG_MAXSPEED_Y), onDrawMaxSpeedY, SetMaxSpeedY, &planner.settings.max_feedrate_mm_s[Y_AXIS]);
3495
-    ADDMENUITEM_P(ICON_MaxSpeedZ, GET_TEXT(MSG_MAXSPEED_Z), onDrawMaxSpeedZ, SetMaxSpeedZ, &planner.settings.max_feedrate_mm_s[Z_AXIS]);
3495
+    ADDMENUITEM_P(ICON_MaxSpeedZ, GET_TEXT_F(MSG_MAXSPEED_Z), onDrawMaxSpeedZ, SetMaxSpeedZ, &planner.settings.max_feedrate_mm_s[Z_AXIS]);
3496
     #if HAS_HOTEND
3496
     #if HAS_HOTEND
3497
-      ADDMENUITEM_P(ICON_MaxSpeedE, GET_TEXT(MSG_MAXSPEED_E), onDrawMaxSpeedE, SetMaxSpeedE, &planner.settings.max_feedrate_mm_s[Z_AXIS]);
3497
+      ADDMENUITEM_P(ICON_MaxSpeedE, GET_TEXT_F(MSG_MAXSPEED_E), onDrawMaxSpeedE, SetMaxSpeedE, &planner.settings.max_feedrate_mm_s[Z_AXIS]);
3498
     #endif
3498
     #endif
3499
   }
3499
   }
3500
   CurrentMenu->draw();
3500
   CurrentMenu->draw();
3507
     CurrentMenu = MaxAccelMenu;
3507
     CurrentMenu = MaxAccelMenu;
3508
     SetMenuTitle({1, 16, 28, 13}, {144, 16, 46, 11}, GET_TEXT_F(MSG_ACCELERATION));
3508
     SetMenuTitle({1, 16, 28, 13}, {144, 16, 46, 11}, GET_TEXT_F(MSG_ACCELERATION));
3509
     DWINUI::MenuItemsPrepare(5);
3509
     DWINUI::MenuItemsPrepare(5);
3510
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Motion_Menu);
3510
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_Motion_Menu);
3511
-    ADDMENUITEM_P(ICON_MaxAccX, GET_TEXT(MSG_AMAX_A), onDrawMaxAccelX, SetMaxAccelX, &planner.settings.max_acceleration_mm_per_s2[X_AXIS]);
3511
+    ADDMENUITEM_P(ICON_MaxAccX, GET_TEXT_F(MSG_AMAX_A), onDrawMaxAccelX, SetMaxAccelX, &planner.settings.max_acceleration_mm_per_s2[X_AXIS]);
3512
-    ADDMENUITEM_P(ICON_MaxAccY, GET_TEXT(MSG_AMAX_B), onDrawMaxAccelY, SetMaxAccelY, &planner.settings.max_acceleration_mm_per_s2[Y_AXIS]);
3512
+    ADDMENUITEM_P(ICON_MaxAccY, GET_TEXT_F(MSG_AMAX_B), onDrawMaxAccelY, SetMaxAccelY, &planner.settings.max_acceleration_mm_per_s2[Y_AXIS]);
3513
-    ADDMENUITEM_P(ICON_MaxAccZ, GET_TEXT(MSG_AMAX_C), onDrawMaxAccelZ, SetMaxAccelZ, &planner.settings.max_acceleration_mm_per_s2[Z_AXIS]);
3513
+    ADDMENUITEM_P(ICON_MaxAccZ, GET_TEXT_F(MSG_AMAX_C), onDrawMaxAccelZ, SetMaxAccelZ, &planner.settings.max_acceleration_mm_per_s2[Z_AXIS]);
3514
     #if HAS_HOTEND
3514
     #if HAS_HOTEND
3515
-      ADDMENUITEM_P(ICON_MaxAccE, GET_TEXT(MSG_AMAX_E), onDrawMaxAccelE, SetMaxAccelE, &planner.settings.max_acceleration_mm_per_s2[E_AXIS]);
3515
+      ADDMENUITEM_P(ICON_MaxAccE, GET_TEXT_F(MSG_AMAX_E), onDrawMaxAccelE, SetMaxAccelE, &planner.settings.max_acceleration_mm_per_s2[E_AXIS]);
3516
     #endif
3516
     #endif
3517
   }
3517
   }
3518
   CurrentMenu->draw();
3518
   CurrentMenu->draw();
3526
       CurrentMenu = MaxJerkMenu;
3526
       CurrentMenu = MaxJerkMenu;
3527
       SetMenuTitle({1, 16, 28, 13}, {144, 16, 46, 11}, GET_TEXT_F(MSG_JERK));
3527
       SetMenuTitle({1, 16, 28, 13}, {144, 16, 46, 11}, GET_TEXT_F(MSG_JERK));
3528
       DWINUI::MenuItemsPrepare(5);
3528
       DWINUI::MenuItemsPrepare(5);
3529
-      ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Motion_Menu);
3529
+      ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_Motion_Menu);
3530
-      ADDMENUITEM_P(ICON_MaxSpeedJerkX, GET_TEXT(MSG_VA_JERK), onDrawMaxJerkX, SetMaxJerkX, &planner.max_jerk[X_AXIS]);
3530
+      ADDMENUITEM_P(ICON_MaxSpeedJerkX, GET_TEXT_F(MSG_VA_JERK), onDrawMaxJerkX, SetMaxJerkX, &planner.max_jerk[X_AXIS]);
3531
-      ADDMENUITEM_P(ICON_MaxSpeedJerkY, GET_TEXT(MSG_VB_JERK), onDrawMaxJerkY, SetMaxJerkY, &planner.max_jerk[Y_AXIS]);
3531
+      ADDMENUITEM_P(ICON_MaxSpeedJerkY, GET_TEXT_F(MSG_VB_JERK), onDrawMaxJerkY, SetMaxJerkY, &planner.max_jerk[Y_AXIS]);
3532
-      ADDMENUITEM_P(ICON_MaxSpeedJerkZ, GET_TEXT(MSG_VC_JERK), onDrawMaxJerkZ, SetMaxJerkZ, &planner.max_jerk[Z_AXIS]);
3532
+      ADDMENUITEM_P(ICON_MaxSpeedJerkZ, GET_TEXT_F(MSG_VC_JERK), onDrawMaxJerkZ, SetMaxJerkZ, &planner.max_jerk[Z_AXIS]);
3533
       #if HAS_HOTEND
3533
       #if HAS_HOTEND
3534
-        ADDMENUITEM_P(ICON_MaxSpeedJerkE, GET_TEXT(MSG_VE_JERK), onDrawMaxJerkE, SetMaxJerkE, &planner.max_jerk[E_AXIS]);
3534
+        ADDMENUITEM_P(ICON_MaxSpeedJerkE, GET_TEXT_F(MSG_VE_JERK), onDrawMaxJerkE, SetMaxJerkE, &planner.max_jerk[E_AXIS]);
3535
       #endif
3535
       #endif
3536
     }
3536
     }
3537
     CurrentMenu->draw();
3537
     CurrentMenu->draw();
3545
     CurrentMenu = StepsMenu;
3545
     CurrentMenu = StepsMenu;
3546
     SetMenuTitle({1, 16, 28, 13}, {144, 16, 46, 11}, GET_TEXT_F(MSG_STEPS_PER_MM));
3546
     SetMenuTitle({1, 16, 28, 13}, {144, 16, 46, 11}, GET_TEXT_F(MSG_STEPS_PER_MM));
3547
     DWINUI::MenuItemsPrepare(5);
3547
     DWINUI::MenuItemsPrepare(5);
3548
-    ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_Motion_Menu);
3548
+    ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawBack, Draw_Motion_Menu);
3549
-    ADDMENUITEM_P(ICON_StepX, GET_TEXT(MSG_A_STEPS), onDrawStepsX, SetStepsX, &planner.settings.axis_steps_per_mm[X_AXIS]);
3549
+    ADDMENUITEM_P(ICON_StepX, GET_TEXT_F(MSG_A_STEPS), onDrawStepsX, SetStepsX, &planner.settings.axis_steps_per_mm[X_AXIS]);
3550
-    ADDMENUITEM_P(ICON_StepY, GET_TEXT(MSG_B_STEPS), onDrawStepsY, SetStepsY, &planner.settings.axis_steps_per_mm[Y_AXIS]);
3550
+    ADDMENUITEM_P(ICON_StepY, GET_TEXT_F(MSG_B_STEPS), onDrawStepsY, SetStepsY, &planner.settings.axis_steps_per_mm[Y_AXIS]);
3551
-    ADDMENUITEM_P(ICON_StepZ, GET_TEXT(MSG_C_STEPS), onDrawStepsZ, SetStepsZ, &planner.settings.axis_steps_per_mm[Z_AXIS]);
3551
+    ADDMENUITEM_P(ICON_StepZ, GET_TEXT_F(MSG_C_STEPS), onDrawStepsZ, SetStepsZ, &planner.settings.axis_steps_per_mm[Z_AXIS]);
3552
     #if HAS_HOTEND
3552
     #if HAS_HOTEND
3553
-      ADDMENUITEM_P(ICON_StepE, GET_TEXT(MSG_E_STEPS), onDrawStepsE, SetStepsE, &planner.settings.axis_steps_per_mm[E_AXIS]);
3553
+      ADDMENUITEM_P(ICON_StepE, GET_TEXT_F(MSG_E_STEPS), onDrawStepsE, SetStepsE, &planner.settings.axis_steps_per_mm[E_AXIS]);
3554
     #endif
3554
     #endif
3555
   }
3555
   }
3556
   CurrentMenu->draw();
3556
   CurrentMenu->draw();
3564
       CurrentMenu = HotendPIDMenu;
3564
       CurrentMenu = HotendPIDMenu;
3565
       CurrentMenu->MenuTitle.SetCaption(F("Hotend PID Settings"));
3565
       CurrentMenu->MenuTitle.SetCaption(F("Hotend PID Settings"));
3566
       DWINUI::MenuItemsPrepare(8);
3566
       DWINUI::MenuItemsPrepare(8);
3567
-      ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawMenuItem, Draw_AdvancedSettings_Menu);
3567
+      ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawMenuItem, Draw_AdvancedSettings_Menu);
3568
       ADDMENUITEM(ICON_PIDNozzle, F("Hotend PID"), onDrawMenuItem, HotendPID);
3568
       ADDMENUITEM(ICON_PIDNozzle, F("Hotend PID"), onDrawMenuItem, HotendPID);
3569
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KP), onDrawPFloat2Menu, SetKp, &thermalManager.temp_hotend[0].pid.Kp);
3569
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KP), onDrawPFloat2Menu, SetKp, &thermalManager.temp_hotend[0].pid.Kp);
3570
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KI), onDrawPIDi, SetKi, &thermalManager.temp_hotend[0].pid.Ki);
3570
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KI), onDrawPIDi, SetKi, &thermalManager.temp_hotend[0].pid.Ki);
3571
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KD), onDrawPIDd, SetKd, &thermalManager.temp_hotend[0].pid.Kd);
3571
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KD), onDrawPIDd, SetKd, &thermalManager.temp_hotend[0].pid.Kd);
3572
-      ADDMENUITEM_P(ICON_Temperature, GET_TEXT(MSG_TEMPERATURE), onDrawPIntMenu, SetHotendPidT, &HMI_data.HotendPidT);
3572
+      ADDMENUITEM_P(ICON_Temperature, GET_TEXT_F(MSG_TEMPERATURE), onDrawPIntMenu, SetHotendPidT, &HMI_data.HotendPidT);
3573
-      ADDMENUITEM_P(ICON_PIDcycles, GET_TEXT(MSG_PID_CYCLE), onDrawPIntMenu, SetPidCycles, &HMI_data.PidCycles);
3573
+      ADDMENUITEM_P(ICON_PIDcycles, GET_TEXT_F(MSG_PID_CYCLE), onDrawPIntMenu, SetPidCycles, &HMI_data.PidCycles);
3574
       #if ENABLED(EEPROM_SETTINGS)
3574
       #if ENABLED(EEPROM_SETTINGS)
3575
-        ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT(MSG_STORE_EEPROM), onDrawMenuItem, WriteEeprom);
3575
+        ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT_F(MSG_STORE_EEPROM), onDrawMenuItem, WriteEeprom);
3576
       #endif
3576
       #endif
3577
     }
3577
     }
3578
     CurrentMenu->draw();
3578
     CurrentMenu->draw();
3587
       CurrentMenu = BedPIDMenu;
3587
       CurrentMenu = BedPIDMenu;
3588
       CurrentMenu->MenuTitle.SetCaption(F("Bed PID Settings"));
3588
       CurrentMenu->MenuTitle.SetCaption(F("Bed PID Settings"));
3589
       DWINUI::MenuItemsPrepare(8);
3589
       DWINUI::MenuItemsPrepare(8);
3590
-      ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawMenuItem, Draw_AdvancedSettings_Menu);
3590
+      ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawMenuItem, Draw_AdvancedSettings_Menu);
3591
       ADDMENUITEM(ICON_PIDNozzle, F("Bed PID"), onDrawMenuItem,BedPID);
3591
       ADDMENUITEM(ICON_PIDNozzle, F("Bed PID"), onDrawMenuItem,BedPID);
3592
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KP), onDrawPFloat2Menu, SetKp, &thermalManager.temp_bed.pid.Kp);
3592
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KP), onDrawPFloat2Menu, SetKp, &thermalManager.temp_bed.pid.Kp);
3593
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KI), onDrawPIDi, SetKi, &thermalManager.temp_bed.pid.Ki);
3593
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KI), onDrawPIDi, SetKi, &thermalManager.temp_bed.pid.Ki);
3594
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KD), onDrawPIDd, SetKd, &thermalManager.temp_bed.pid.Kd);
3594
       ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KD), onDrawPIDd, SetKd, &thermalManager.temp_bed.pid.Kd);
3595
-      ADDMENUITEM_P(ICON_Temperature, GET_TEXT(MSG_TEMPERATURE), onDrawPIntMenu, SetBedPidT, &HMI_data.BedPidT);
3595
+      ADDMENUITEM_P(ICON_Temperature, GET_TEXT_F(MSG_TEMPERATURE), onDrawPIntMenu, SetBedPidT, &HMI_data.BedPidT);
3596
-      ADDMENUITEM_P(ICON_PIDcycles, GET_TEXT(MSG_PID_CYCLE), onDrawPIntMenu, SetPidCycles, &HMI_data.PidCycles);
3596
+      ADDMENUITEM_P(ICON_PIDcycles, GET_TEXT_F(MSG_PID_CYCLE), onDrawPIntMenu, SetPidCycles, &HMI_data.PidCycles);
3597
       #if ENABLED(EEPROM_SETTINGS)
3597
       #if ENABLED(EEPROM_SETTINGS)
3598
-        ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT(MSG_STORE_EEPROM), onDrawMenuItem, WriteEeprom);
3598
+        ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT_F(MSG_STORE_EEPROM), onDrawMenuItem, WriteEeprom);
3599
       #endif
3599
       #endif
3600
     }
3600
     }
3601
     CurrentMenu->draw();
3601
     CurrentMenu->draw();
3610
       CurrentMenu = ZOffsetWizMenu;
3610
       CurrentMenu = ZOffsetWizMenu;
3611
       CurrentMenu->MenuTitle.SetCaption(GET_TEXT_F(MSG_PROBE_WIZARD));
3611
       CurrentMenu->MenuTitle.SetCaption(GET_TEXT_F(MSG_PROBE_WIZARD));
3612
       DWINUI::MenuItemsPrepare(4);
3612
       DWINUI::MenuItemsPrepare(4);
3613
-      ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawMenuItem, Draw_Prepare_Menu);
3613
+      ADDMENUITEM(ICON_Back, GET_TEXT_F(MSG_BUTTON_BACK), onDrawMenuItem, Draw_Prepare_Menu);
3614
-      ADDMENUITEM(ICON_Homing, GET_TEXT(MSG_AUTO_HOME), onDrawMenuItem, AutoHome);
3614
+      ADDMENUITEM(ICON_Homing, GET_TEXT_F(MSG_AUTO_HOME), onDrawMenuItem, AutoHome);
3615
       ADDMENUITEM(ICON_MoveZ0, F("Move Z to Home"), onDrawMenuItem, SetMoveZto0);
3615
       ADDMENUITEM(ICON_MoveZ0, F("Move Z to Home"), onDrawMenuItem, SetMoveZto0);
3616
-      ADDMENUITEM_P(ICON_Zoffset, GET_TEXT(MSG_ZPROBE_ZOFFSET), onDrawPFloat2Menu, SetZOffset, &BABY_Z_VAR);
3616
+      ADDMENUITEM_P(ICON_Zoffset, GET_TEXT_F(MSG_ZPROBE_ZOFFSET), onDrawPFloat2Menu, SetZOffset, &BABY_Z_VAR);
3617
     }
3617
     }
3618
     CurrentMenu->draw();
3618
     CurrentMenu->draw();
3619
     if (!axis_is_trusted(Z_AXIS)) ui.set_status_P(PSTR("WARNING: Z position is unknow, move Z to home"));
3619
     if (!axis_is_trusted(Z_AXIS)) ui.set_status_P(PSTR("WARNING: Z position is unknow, move Z to home"));

+ 1
- 1
Marlin/src/lcd/e3v2/enhanced/dwin_lcd.h Parādīt failu

37
 //  str: multi-bit data
37
 //  str: multi-bit data
38
 void DWIN_Draw_QR(uint8_t QR_Pixel, uint16_t x, uint16_t y, char *string);
38
 void DWIN_Draw_QR(uint8_t QR_Pixel, uint16_t x, uint16_t y, char *string);
39
 
39
 
40
-inline void DWIN_Draw_QR(uint8_t QR_Pixel, uint16_t x, uint16_t y, const __FlashStringHelper *title) {
40
+inline void DWIN_Draw_QR(uint8_t QR_Pixel, uint16_t x, uint16_t y, FSTR_P title) {
41
   DWIN_Draw_QR(QR_Pixel, x, y, (char *)title);
41
   DWIN_Draw_QR(QR_Pixel, x, y, (char *)title);
42
 }
42
 }
43
 
43
 

+ 0
- 1
Marlin/src/lcd/e3v2/enhanced/dwinui.cpp Parādīt failu

32
 #if ENABLED(DWIN_CREALITY_LCD_ENHANCED)
32
 #if ENABLED(DWIN_CREALITY_LCD_ENHANCED)
33
 
33
 
34
 #include "../../../inc/MarlinConfig.h"
34
 #include "../../../inc/MarlinConfig.h"
35
-#include "../../../core/macros.h"
36
 #include "dwin_lcd.h"
35
 #include "dwin_lcd.h"
37
 #include "dwinui.h"
36
 #include "dwinui.h"
38
 
37
 

+ 12
- 12
Marlin/src/lcd/e3v2/enhanced/dwinui.h Parādīt failu

124
   rect_t frame = {0};
124
   rect_t frame = {0};
125
   void draw();
125
   void draw();
126
   void SetCaption(const char * const title);
126
   void SetCaption(const char * const title);
127
-  inline void SetCaption(const __FlashStringHelper * title) { SetCaption((char *)title); }
127
+  inline void SetCaption(FSTR_P title) { SetCaption((char *)title); }
128
   void ShowCaption(const char * const title);
128
   void ShowCaption(const char * const title);
129
-  inline void ShowCaption(const __FlashStringHelper * title) { ShowCaption((char *)title); }
129
+  inline void ShowCaption(FSTR_P title) { ShowCaption((char *)title); }
130
   void SetFrame(uint8_t id, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
130
   void SetFrame(uint8_t id, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
131
   void SetFrame(uint16_t x, uint16_t y, uint16_t w, uint16_t h);
131
   void SetFrame(uint16_t x, uint16_t y, uint16_t w, uint16_t h);
132
   void FrameCopy(uint8_t id, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
132
   void FrameCopy(uint8_t id, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
146
   void (*onClick)() = nullptr;
146
   void (*onClick)() = nullptr;
147
   MenuItemClass() {};
147
   MenuItemClass() {};
148
   MenuItemClass(uint8_t cicon, const char * const text=nullptr, void (*ondraw)(MenuItemClass* menuitem, int8_t line)=nullptr, void (*onclick)()=nullptr);
148
   MenuItemClass(uint8_t cicon, const char * const text=nullptr, void (*ondraw)(MenuItemClass* menuitem, int8_t line)=nullptr, void (*onclick)()=nullptr);
149
-  MenuItemClass(uint8_t cicon, const __FlashStringHelper * text = nullptr, void (*ondraw)(MenuItemClass* menuitem, int8_t line)=nullptr, void (*onclick)()=nullptr) : MenuItemClass(cicon, (char*)text, ondraw, onclick){}
149
+  MenuItemClass(uint8_t cicon, FSTR_P text = nullptr, void (*ondraw)(MenuItemClass* menuitem, int8_t line)=nullptr, void (*onclick)()=nullptr) : MenuItemClass(cicon, FTOP(text), ondraw, onclick){}
150
   MenuItemClass(uint8_t cicon, uint8_t id, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, void (*ondraw)(MenuItemClass* menuitem, int8_t line)=nullptr, void (*onclick)()=nullptr);
150
   MenuItemClass(uint8_t cicon, uint8_t id, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, void (*ondraw)(MenuItemClass* menuitem, int8_t line)=nullptr, void (*onclick)()=nullptr);
151
   void SetFrame(uint8_t id, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
151
   void SetFrame(uint8_t id, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
152
   virtual ~MenuItemClass(){};
152
   virtual ~MenuItemClass(){};
158
   void *value = nullptr;
158
   void *value = nullptr;
159
   using MenuItemClass::MenuItemClass;
159
   using MenuItemClass::MenuItemClass;
160
   MenuItemPtrClass(uint8_t cicon, const char * const text, void (*ondraw)(MenuItemClass* menuitem, int8_t line), void (*onclick)(), void* val);
160
   MenuItemPtrClass(uint8_t cicon, const char * const text, void (*ondraw)(MenuItemClass* menuitem, int8_t line), void (*onclick)(), void* val);
161
-  MenuItemPtrClass(uint8_t cicon, const __FlashStringHelper * text, void (*ondraw)(MenuItemClass* menuitem, int8_t line), void (*onclick)(), void* val) : MenuItemPtrClass(cicon, (char*)text, ondraw, onclick, val){}
161
+  MenuItemPtrClass(uint8_t cicon, FSTR_P text, void (*ondraw)(MenuItemClass* menuitem, int8_t line), void (*onclick)(), void* val) : MenuItemPtrClass(cicon, FTOP(text), ondraw, onclick, val){}
162
 };
162
 };
163
 
163
 
164
 class MenuClass {
164
 class MenuClass {
351
   inline void Draw_String(uint16_t x, uint16_t y, const char * const string) {
351
   inline void Draw_String(uint16_t x, uint16_t y, const char * const string) {
352
     DWIN_Draw_String(false, font, textcolor, backcolor, x, y, string);
352
     DWIN_Draw_String(false, font, textcolor, backcolor, x, y, string);
353
   }
353
   }
354
-  inline void Draw_String(uint16_t x, uint16_t y, const __FlashStringHelper *title) {
354
+  inline void Draw_String(uint16_t x, uint16_t y, FSTR_P title) {
355
     DWIN_Draw_String(false, font, textcolor, backcolor, x, y, (char *)title);
355
     DWIN_Draw_String(false, font, textcolor, backcolor, x, y, (char *)title);
356
   }
356
   }
357
   inline void Draw_String(uint16_t color, uint16_t x, uint16_t y, const char * const string) {
357
   inline void Draw_String(uint16_t color, uint16_t x, uint16_t y, const char * const string) {
358
     DWIN_Draw_String(false, font, color, backcolor, x, y, string);
358
     DWIN_Draw_String(false, font, color, backcolor, x, y, string);
359
   }
359
   }
360
-  inline void Draw_String(uint16_t color, uint16_t x, uint16_t y, const __FlashStringHelper *title) {
360
+  inline void Draw_String(uint16_t color, uint16_t x, uint16_t y, FSTR_P title) {
361
     DWIN_Draw_String(false, font, color, backcolor, x, y, (char *)title);
361
     DWIN_Draw_String(false, font, color, backcolor, x, y, (char *)title);
362
   }
362
   }
363
   inline void Draw_String(uint16_t color, uint16_t bgcolor, uint16_t x, uint16_t y, const char * const string) {
363
   inline void Draw_String(uint16_t color, uint16_t bgcolor, uint16_t x, uint16_t y, const char * const string) {
364
     DWIN_Draw_String(true, font, color, bgcolor, x, y, string);
364
     DWIN_Draw_String(true, font, color, bgcolor, x, y, string);
365
   }
365
   }
366
-  inline void Draw_String(uint16_t color, uint16_t bgcolor, uint16_t x, uint16_t y, const __FlashStringHelper *title) {
366
+  inline void Draw_String(uint16_t color, uint16_t bgcolor, uint16_t x, uint16_t y, FSTR_P title) {
367
     DWIN_Draw_String(true, font, color, bgcolor, x, y, (char *)title);
367
     DWIN_Draw_String(true, font, color, bgcolor, x, y, (char *)title);
368
   }
368
   }
369
   inline void Draw_String(uint8_t size, uint16_t color, uint16_t bgcolor, uint16_t x, uint16_t y, const char * const string) {
369
   inline void Draw_String(uint8_t size, uint16_t color, uint16_t bgcolor, uint16_t x, uint16_t y, const char * const string) {
370
     DWIN_Draw_String(true, size, color, bgcolor, x, y, string);
370
     DWIN_Draw_String(true, size, color, bgcolor, x, y, string);
371
   }
371
   }
372
-  inline void Draw_String(uint8_t size, uint16_t color, uint16_t bgcolor, uint16_t x, uint16_t y, const __FlashStringHelper *title) {
372
+  inline void Draw_String(uint8_t size, uint16_t color, uint16_t bgcolor, uint16_t x, uint16_t y, FSTR_P title) {
373
     DWIN_Draw_String(true, size, color, bgcolor, x, y, (char *)title);
373
     DWIN_Draw_String(true, size, color, bgcolor, x, y, (char *)title);
374
   }
374
   }
375
 
375
 
381
   //  y: Upper coordinate of the string
381
   //  y: Upper coordinate of the string
382
   //  *string: The string
382
   //  *string: The string
383
   void Draw_CenteredString(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t y, const char * const string);
383
   void Draw_CenteredString(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t y, const char * const string);
384
-  inline void Draw_CenteredString(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t y, const __FlashStringHelper *title) {
384
+  inline void Draw_CenteredString(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t y, FSTR_P title) {
385
     Draw_CenteredString(bShow, size, color, bColor, y, (char *)title);
385
     Draw_CenteredString(bShow, size, color, bColor, y, (char *)title);
386
   }
386
   }
387
   inline void Draw_CenteredString(uint16_t color, uint16_t bcolor, uint16_t y, const char * const string) {
387
   inline void Draw_CenteredString(uint16_t color, uint16_t bcolor, uint16_t y, const char * const string) {
390
   inline void Draw_CenteredString(uint8_t size, uint16_t color, uint16_t y, const char * const string) {
390
   inline void Draw_CenteredString(uint8_t size, uint16_t color, uint16_t y, const char * const string) {
391
     Draw_CenteredString(false, size, color, backcolor, y, string);
391
     Draw_CenteredString(false, size, color, backcolor, y, string);
392
   }
392
   }
393
-  inline void Draw_CenteredString(uint8_t size, uint16_t color, uint16_t y, const __FlashStringHelper *title) {
393
+  inline void Draw_CenteredString(uint8_t size, uint16_t color, uint16_t y, FSTR_P title) {
394
     Draw_CenteredString(false, size, color, backcolor, y, (char *)title);
394
     Draw_CenteredString(false, size, color, backcolor, y, (char *)title);
395
   }
395
   }
396
   inline void Draw_CenteredString(uint16_t color, uint16_t y, const char * const string) {
396
   inline void Draw_CenteredString(uint16_t color, uint16_t y, const char * const string) {
397
     Draw_CenteredString(false, font, color, backcolor, y, string);
397
     Draw_CenteredString(false, font, color, backcolor, y, string);
398
   }
398
   }
399
-  inline void Draw_CenteredString(uint16_t color, uint16_t y, const __FlashStringHelper *title) {
399
+  inline void Draw_CenteredString(uint16_t color, uint16_t y, FSTR_P title) {
400
     Draw_CenteredString(false, font, color, backcolor, y, (char *)title);
400
     Draw_CenteredString(false, font, color, backcolor, y, (char *)title);
401
   }
401
   }
402
   inline void Draw_CenteredString(uint16_t y, const char * const string) {
402
   inline void Draw_CenteredString(uint16_t y, const char * const string) {
403
     Draw_CenteredString(false, font, textcolor, backcolor, y, string);
403
     Draw_CenteredString(false, font, textcolor, backcolor, y, string);
404
   }
404
   }
405
-  inline void Draw_CenteredString(uint16_t y, const __FlashStringHelper *title) {
405
+  inline void Draw_CenteredString(uint16_t y, FSTR_P title) {
406
     Draw_CenteredString(false, font, textcolor, backcolor, y, (char *)title);
406
     Draw_CenteredString(false, font, textcolor, backcolor, y, (char *)title);
407
   }
407
   }
408
 
408
 

+ 2
- 0
Marlin/src/lcd/e3v2/marlinui/dwin_lcd.h Parādīt failu

26
  * @brief    DWIN screen control functions
26
  * @brief    DWIN screen control functions
27
  ********************************************************************************/
27
  ********************************************************************************/
28
 
28
 
29
+#include "../../../inc/MarlinConfigPre.h"
30
+
29
 #if ENABLED(DWIN_MARLINUI_LANDSCAPE)
31
 #if ENABLED(DWIN_MARLINUI_LANDSCAPE)
30
   #define DWIN_WIDTH  480
32
   #define DWIN_WIDTH  480
31
   #define DWIN_HEIGHT 272
33
   #define DWIN_HEIGHT 272

+ 1
- 1
Marlin/src/lcd/e3v2/marlinui/dwin_string.h Parādīt failu

65
     static void set(uint8_t *string)   { set(); add(string); }
65
     static void set(uint8_t *string)   { set(); add(string); }
66
     static void set(wchar_t character) { set(); add(character); }
66
     static void set(wchar_t character) { set(); add(character); }
67
     static void set(uint8_t *string, int8_t index, const char *itemString=nullptr) { set(); add(string, index, (uint8_t *)itemString); }
67
     static void set(uint8_t *string, int8_t index, const char *itemString=nullptr) { set(); add(string, index, (uint8_t *)itemString); }
68
-    static inline void set(const __FlashStringHelper *fstring) { set((uint8_t *)fstring); }
68
+    static inline void set(FSTR_P fstring) { set((uint8_t *)fstring); }
69
     static inline void set(const char *string) { set((uint8_t *)string); }
69
     static inline void set(const char *string) { set((uint8_t *)string); }
70
     static inline void set(const char *string, int8_t index, const char *itemString=nullptr) { set((uint8_t *)string, index, itemString); }
70
     static inline void set(const char *string, int8_t index, const char *itemString=nullptr) { set((uint8_t *)string, index, itemString); }
71
     static inline void add(const char *string) { add((uint8_t *)string); }
71
     static inline void add(const char *string) { add((uint8_t *)string); }

+ 2
- 2
Marlin/src/lcd/extui/ftdi_eve_touch_ui/archim2-flash/flash_storage.cpp Parādīt failu

416
   /* Writes a media file from the SD card/USB flash drive into a slot on the SPI Flash. Media
416
   /* Writes a media file from the SD card/USB flash drive into a slot on the SPI Flash. Media
417
    * files must be written sequentially following by a chip erase and it is not possible to
417
    * files must be written sequentially following by a chip erase and it is not possible to
418
    * overwrite files. */
418
    * overwrite files. */
419
-  UIFlashStorage::error_t UIFlashStorage::write_media_file(progmem_str filename, uint8_t slot) {
419
+  UIFlashStorage::error_t UIFlashStorage::write_media_file(FSTR_P filename, uint8_t slot) {
420
     #if ENABLED(SDSUPPORT)
420
     #if ENABLED(SDSUPPORT)
421
       uint32_t addr;
421
       uint32_t addr;
422
       uint8_t buff[write_page_size];
422
       uint8_t buff[write_page_size];
543
   void UIFlashStorage::write_config_data(const void *, size_t)                {}
543
   void UIFlashStorage::write_config_data(const void *, size_t)                {}
544
   bool UIFlashStorage::verify_config_data(const void *, size_t)               {return false;}
544
   bool UIFlashStorage::verify_config_data(const void *, size_t)               {return false;}
545
   bool UIFlashStorage::read_config_data(void *, size_t )                      {return false;}
545
   bool UIFlashStorage::read_config_data(void *, size_t )                      {return false;}
546
-  UIFlashStorage::error_t UIFlashStorage::write_media_file(progmem_str, uint8_t) {return FILE_NOT_FOUND;}
546
+  UIFlashStorage::error_t UIFlashStorage::write_media_file(FSTR_P, uint8_t)   {return FILE_NOT_FOUND;}
547
   void UIFlashStorage::format_flash()                                         {}
547
   void UIFlashStorage::format_flash()                                         {}
548
 
548
 
549
   bool UIFlashStorage::BootMediaReader::isAvailable(uint32_t)                 {return false;}
549
   bool UIFlashStorage::BootMediaReader::isAvailable(uint32_t)                 {return false;}

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/archim2-flash/flash_storage.h Parādīt failu

88
     static void    write_config_data  (const void *data, size_t size);
88
     static void    write_config_data  (const void *data, size_t size);
89
     static bool    verify_config_data (const void *data, size_t size);
89
     static bool    verify_config_data (const void *data, size_t size);
90
     static bool    read_config_data   (void *data, size_t size);
90
     static bool    read_config_data   (void *data, size_t size);
91
-    static error_t write_media_file   (progmem_str filename, uint8_t slot = 0);
91
+    static error_t write_media_file   (FSTR_P filename, uint8_t slot = 0);
92
 
92
 
93
     class BootMediaReader;
93
     class BootMediaReader;
94
 };
94
 };

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/printing_dialog_box.cpp Parādīt failu

105
   return true;
105
   return true;
106
 }
106
 }
107
 
107
 
108
-void BioPrintingDialogBox::setStatusMessage(progmem_str message) {
108
+void BioPrintingDialogBox::setStatusMessage(FSTR_P message) {
109
   char buff[strlen_P((const char*)message)+1];
109
   char buff[strlen_P((const char*)message)+1];
110
   strcpy_P(buff, (const char*) message);
110
   strcpy_P(buff, (const char*) message);
111
   setStatusMessage(buff);
111
   setStatusMessage(buff);

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/printing_dialog_box.h Parādīt failu

37
     static void show();
37
     static void show();
38
 
38
 
39
     static void setStatusMessage(const char *);
39
     static void setStatusMessage(const char *);
40
-    static void setStatusMessage(progmem_str);
40
+    static void setStatusMessage(FSTR_P);
41
 
41
 
42
     static void onIdle();
42
     static void onIdle();
43
     static bool onTouchEnd(uint8_t tag);
43
     static bool onTouchEnd(uint8_t tag);

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/status_screen.cpp Parādīt failu

354
   return false;
354
   return false;
355
 }
355
 }
356
 
356
 
357
-void StatusScreen::setStatusMessage(progmem_str pstr) {
357
+void StatusScreen::setStatusMessage(FSTR_P pstr) {
358
   BioPrintingDialogBox::setStatusMessage(pstr);
358
   BioPrintingDialogBox::setStatusMessage(pstr);
359
 }
359
 }
360
 
360
 

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/status_screen.h Parādīt failu

44
     static void unlockMotors();
44
     static void unlockMotors();
45
 
45
 
46
     static void setStatusMessage(const char *);
46
     static void setStatusMessage(const char *);
47
-    static void setStatusMessage(progmem_str);
47
+    static void setStatusMessage(FSTR_P);
48
 
48
 
49
     static void onRedraw(draw_mode_t);
49
     static void onRedraw(draw_mode_t);
50
 
50
 

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/preheat_screen.cpp Parādīt failu

81
   }
81
   }
82
 }
82
 }
83
 
83
 
84
-void PreheatTimerScreen::draw_adjuster(draw_mode_t what, uint8_t tag, progmem_str label, float value, int16_t x, int16_t y, int16_t w, int16_t h) {
84
+void PreheatTimerScreen::draw_adjuster(draw_mode_t what, uint8_t tag, FSTR_P label, float value, int16_t x, int16_t y, int16_t w, int16_t h) {
85
     #define SUB_COLS          9
85
     #define SUB_COLS          9
86
     #define SUB_ROWS          2
86
     #define SUB_ROWS          2
87
 
87
 

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/preheat_screen.h Parādīt failu

35
     static void draw_message(draw_mode_t);
35
     static void draw_message(draw_mode_t);
36
     static void draw_time_remaining(draw_mode_t);
36
     static void draw_time_remaining(draw_mode_t);
37
     static void draw_interaction_buttons(draw_mode_t);
37
     static void draw_interaction_buttons(draw_mode_t);
38
-    static void draw_adjuster(draw_mode_t, uint8_t tag, progmem_str label, float value, int16_t x, int16_t y, int16_t w, int16_t h);
38
+    static void draw_adjuster(draw_mode_t, uint8_t tag, FSTR_P label, float value, int16_t x, int16_t y, int16_t w, int16_t h);
39
   public:
39
   public:
40
     static void onRedraw(draw_mode_t);
40
     static void onRedraw(draw_mode_t);
41
 
41
 

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/status_screen.cpp Parādīt failu

279
   return false;
279
   return false;
280
 }
280
 }
281
 
281
 
282
-void StatusScreen::setStatusMessage(progmem_str) {
282
+void StatusScreen::setStatusMessage(FSTR_P) {
283
 }
283
 }
284
 
284
 
285
 void StatusScreen::setStatusMessage(const char * const) {
285
 void StatusScreen::setStatusMessage(const char * const) {

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/status_screen.h Parādīt failu

44
     static void unlockMotors();
44
     static void unlockMotors();
45
 
45
 
46
     static void setStatusMessage(const char *);
46
     static void setStatusMessage(const char *);
47
-    static void setStatusMessage(progmem_str);
47
+    static void setStatusMessage(FSTR_P);
48
 
48
 
49
     static void onRedraw(draw_mode_t);
49
     static void onRedraw(draw_mode_t);
50
 
50
 

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/compat.h Parādīt failu

49
 #endif
49
 #endif
50
 
50
 
51
 class __FlashStringHelper;
51
 class __FlashStringHelper;
52
-typedef const __FlashStringHelper *progmem_str;
52
+typedef const __FlashStringHelper *FSTR_P;
53
 extern const char G28_STR[];
53
 extern const char G28_STR[];

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_extui.cpp Parādīt failu

71
   }
71
   }
72
 
72
 
73
   void onStatusChanged(const char *lcd_msg) { StatusScreen::setStatusMessage(lcd_msg); }
73
   void onStatusChanged(const char *lcd_msg) { StatusScreen::setStatusMessage(lcd_msg); }
74
-  void onStatusChanged(progmem_str lcd_msg) { StatusScreen::setStatusMessage(lcd_msg); }
74
+  void onStatusChanged(FSTR_P lcd_msg) { StatusScreen::setStatusMessage(lcd_msg); }
75
 
75
 
76
   void onPrintTimerStarted() {
76
   void onPrintTimerStarted() {
77
     InterfaceSoundsScreen::playEventSound(InterfaceSoundsScreen::PRINTING_STARTED);
77
     InterfaceSoundsScreen::playEventSound(InterfaceSoundsScreen::PRINTING_STARTED);

+ 5
- 5
Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/basic/commands.cpp Parādīt failu

66
   return width;
66
   return width;
67
 }
67
 }
68
 
68
 
69
-uint16_t CLCD::FontMetrics::get_text_width(progmem_str str, size_t n) const {
69
+uint16_t CLCD::FontMetrics::get_text_width(FSTR_P str, size_t n) const {
70
   uint16_t width = 0;
70
   uint16_t width = 0;
71
   const uint8_t *p = (const uint8_t *) str;
71
   const uint8_t *p = (const uint8_t *) str;
72
   for (;;) {
72
   for (;;) {
162
 }
162
 }
163
 
163
 
164
 // Write 3-Byte Address, Multiple Bytes, plus padding bytes, from PROGMEM
164
 // Write 3-Byte Address, Multiple Bytes, plus padding bytes, from PROGMEM
165
-void CLCD::mem_write_bulk(uint32_t reg_address, progmem_str str, uint16_t len, uint8_t padding) {
165
+void CLCD::mem_write_bulk(uint32_t reg_address, FSTR_P str, uint16_t len, uint8_t padding) {
166
   spi_ftdi_select();
166
   spi_ftdi_select();
167
   spi_write_addr(reg_address);
167
   spi_write_addr(reg_address);
168
   spi_write_bulk<pgm_write>(str, len, padding);
168
   spi_write_bulk<pgm_write>(str, len, padding);
178
 }
178
 }
179
 
179
 
180
 // Write 3-Byte Address, Multiple Bytes, plus padding bytes, from PROGMEM, reversing bytes (suitable for loading XBM images)
180
 // Write 3-Byte Address, Multiple Bytes, plus padding bytes, from PROGMEM, reversing bytes (suitable for loading XBM images)
181
-void CLCD::mem_write_xbm(uint32_t reg_address, progmem_str data, uint16_t len, uint8_t padding) {
181
+void CLCD::mem_write_xbm(uint32_t reg_address, FSTR_P data, uint16_t len, uint8_t padding) {
182
   spi_ftdi_select();
182
   spi_ftdi_select();
183
   spi_write_addr(reg_address);
183
   spi_write_addr(reg_address);
184
   spi_write_bulk<xbm_write>(data, len, padding);
184
   spi_write_bulk<xbm_write>(data, len, padding);
1048
 #endif // ... FTDI_API_LEVEL != 800
1048
 #endif // ... FTDI_API_LEVEL != 800
1049
 
1049
 
1050
 template bool CLCD::CommandFifo::write(const void*, uint16_t);
1050
 template bool CLCD::CommandFifo::write(const void*, uint16_t);
1051
-template bool CLCD::CommandFifo::write(progmem_str, uint16_t);
1051
+template bool CLCD::CommandFifo::write(FSTR_P, uint16_t);
1052
 
1052
 
1053
 // CO_PROCESSOR COMMANDS
1053
 // CO_PROCESSOR COMMANDS
1054
 
1054
 
1071
   write(data, strlen(data)+1);
1071
   write(data, strlen(data)+1);
1072
 }
1072
 }
1073
 
1073
 
1074
-void CLCD::CommandFifo::str(progmem_str data) {
1074
+void CLCD::CommandFifo::str(FSTR_P data) {
1075
   write(data, strlen_P((const char*)data)+1);
1075
   write(data, strlen_P((const char*)data)+1);
1076
 }
1076
 }
1077
 
1077
 

+ 5
- 5
Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/basic/commands.h Parādīt failu

93
 
93
 
94
 #pragma once
94
 #pragma once
95
 
95
 
96
-typedef const __FlashStringHelper *progmem_str;
96
+typedef const __FlashStringHelper *FSTR_P;
97
 
97
 
98
 class UIStorage;
98
 class UIStorage;
99
 
99
 
118
     static void     mem_write_fill (uint32_t reg_address, uint8_t w_data, uint16_t len);
118
     static void     mem_write_fill (uint32_t reg_address, uint8_t w_data, uint16_t len);
119
     static void     mem_write_bulk (uint32_t reg_address, const void *data, uint16_t len, uint8_t padding = 0);
119
     static void     mem_write_bulk (uint32_t reg_address, const void *data, uint16_t len, uint8_t padding = 0);
120
     static void     mem_write_pgm  (uint32_t reg_address, const void *data, uint16_t len, uint8_t padding = 0);
120
     static void     mem_write_pgm  (uint32_t reg_address, const void *data, uint16_t len, uint8_t padding = 0);
121
-    static void     mem_write_bulk (uint32_t reg_address, progmem_str str, uint16_t len, uint8_t padding = 0);
121
+    static void     mem_write_bulk (uint32_t reg_address, FSTR_P str, uint16_t len, uint8_t padding = 0);
122
-    static void     mem_write_xbm  (uint32_t reg_address, progmem_str str, uint16_t len, uint8_t padding = 0);
122
+    static void     mem_write_xbm  (uint32_t reg_address, FSTR_P str, uint16_t len, uint8_t padding = 0);
123
 
123
 
124
   public:
124
   public:
125
     class CommandFifo;
125
     class CommandFifo;
168
 
168
 
169
     // Returns width of string, up to a maximum of n characters.
169
     // Returns width of string, up to a maximum of n characters.
170
     uint16_t get_text_width(const char *str, size_t n = SIZE_MAX) const;
170
     uint16_t get_text_width(const char *str, size_t n = SIZE_MAX) const;
171
-    uint16_t get_text_width(progmem_str str, size_t n = SIZE_MAX) const;
171
+    uint16_t get_text_width(FSTR_P str, size_t n = SIZE_MAX) const;
172
 };
172
 };
173
 
173
 
174
 /******************* FT800/810 Graphic Commands *********************************/
174
 /******************* FT800/810 Graphic Commands *********************************/
250
     // Sends the string portion of text, button, toggle and keys.
250
     // Sends the string portion of text, button, toggle and keys.
251
     void str (const char * data, size_t maxlen);
251
     void str (const char * data, size_t maxlen);
252
     void str (const char * data);
252
     void str (const char * data);
253
-    void str (progmem_str data);
253
+    void str (FSTR_P data);
254
 
254
 
255
     void memzero  (uint32_t ptr, uint32_t size);
255
     void memzero  (uint32_t ptr, uint32_t size);
256
     void memset   (uint32_t ptr, uint32_t value, uint32_t size);
256
     void memset   (uint32_t ptr, uint32_t value, uint32_t size);

+ 2
- 2
Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/adjuster_widget.cpp Parādīt failu

30
 #define DEC_POS           SUB_POS(8,1), SUB_SIZE(2,1)
30
 #define DEC_POS           SUB_POS(8,1), SUB_SIZE(2,1)
31
 
31
 
32
 namespace FTDI {
32
 namespace FTDI {
33
-  void draw_adjuster_value(CommandProcessor& cmd, int16_t x, int16_t y, int16_t w, int16_t h, float value, progmem_str units, int8_t width, uint8_t precision) {
33
+  void draw_adjuster_value(CommandProcessor& cmd, int16_t x, int16_t y, int16_t w, int16_t h, float value, FSTR_P units, int8_t width, uint8_t precision) {
34
     char str[width + precision + 10 + (units ? strlen_P((const char*) units) : 0)];
34
     char str[width + precision + 10 + (units ? strlen_P((const char*) units) : 0)];
35
     if (isnan(value))
35
     if (isnan(value))
36
       strcpy_P(str, PSTR("-"));
36
       strcpy_P(str, PSTR("-"));
45
     cmd.tag(0).text(VAL_POS, str);
45
     cmd.tag(0).text(VAL_POS, str);
46
   }
46
   }
47
 
47
 
48
-  void draw_adjuster(CommandProcessor& cmd, int16_t x, int16_t y, int16_t w, int16_t h, uint8_t tag, float value, progmem_str units, int8_t width, uint8_t precision, draw_mode_t what) {
48
+  void draw_adjuster(CommandProcessor& cmd, int16_t x, int16_t y, int16_t w, int16_t h, uint8_t tag, float value, FSTR_P units, int8_t width, uint8_t precision, draw_mode_t what) {
49
     if (what & BACKGROUND)
49
     if (what & BACKGROUND)
50
       cmd.tag(0).button(VAL_POS, F(""), FTDI::OPT_FLAT);
50
       cmd.tag(0).button(VAL_POS, F(""), FTDI::OPT_FLAT);
51
 
51
 

+ 2
- 2
Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/adjuster_widget.h Parādīt failu

25
   void draw_adjuster_value(
25
   void draw_adjuster_value(
26
     CommandProcessor& cmd,
26
     CommandProcessor& cmd,
27
     int16_t x, int16_t y, int16_t w, int16_t h,
27
     int16_t x, int16_t y, int16_t w, int16_t h,
28
-    float value, progmem_str units = nullptr,
28
+    float value, FSTR_P units = nullptr,
29
     int8_t width = 5, uint8_t precision = 1
29
     int8_t width = 5, uint8_t precision = 1
30
   );
30
   );
31
 
31
 
33
     CommandProcessor& cmd,
33
     CommandProcessor& cmd,
34
     int16_t x, int16_t y, int16_t w, int16_t h,
34
     int16_t x, int16_t y, int16_t w, int16_t h,
35
     uint8_t tag,
35
     uint8_t tag,
36
-    float value, progmem_str units = nullptr,
36
+    float value, FSTR_P units = nullptr,
37
     int8_t width = 5, uint8_t precision = 1,
37
     int8_t width = 5, uint8_t precision = 1,
38
     draw_mode_t what = BOTH
38
     draw_mode_t what = BOTH
39
   );
39
   );

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/command_processor.h Parādīt failu

241
       return *this;
241
       return *this;
242
     }
242
     }
243
 
243
 
244
-    CommandProcessor& toggle2(int16_t x, int16_t y, int16_t w, int16_t h, progmem_str no, progmem_str yes, bool state, uint16_t options = FTDI::OPT_3D) {
244
+    CommandProcessor& toggle2(int16_t x, int16_t y, int16_t w, int16_t h, FSTR_P no, FSTR_P yes, bool state, uint16_t options = FTDI::OPT_3D) {
245
       char text[strlen_P((const char *)no) + strlen_P((const char *)yes) + 2];
245
       char text[strlen_P((const char *)no) + strlen_P((const char *)yes) + 2];
246
       strcpy_P(text, (const char *)no);
246
       strcpy_P(text, (const char *)no);
247
       strcat(text, "\xFF");
247
       strcat(text, "\xFF");

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/text_box.cpp Parādīt failu

135
     }
135
     }
136
   }
136
   }
137
 
137
 
138
-  void draw_text_box(CommandProcessor& cmd, int x, int y, int w, int h, progmem_str pstr, uint16_t options, uint8_t font) {
138
+  void draw_text_box(CommandProcessor& cmd, int x, int y, int w, int h, FSTR_P pstr, uint16_t options, uint8_t font) {
139
     char str[strlen_P((const char*)pstr) + 1];
139
     char str[strlen_P((const char*)pstr) + 1];
140
     strcpy_P(str, (const char*)pstr);
140
     strcpy_P(str, (const char*)pstr);
141
     draw_text_box(cmd, x, y, w, h, (const char*) str, options, font);
141
     draw_text_box(cmd, x, y, w, h, (const char*) str, options, font);

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/text_box.h Parādīt failu

27
 namespace FTDI {
27
 namespace FTDI {
28
   constexpr uint16_t OPT_BOTTOMY      = 0x1000; // Non-standard
28
   constexpr uint16_t OPT_BOTTOMY      = 0x1000; // Non-standard
29
 
29
 
30
-  void draw_text_box(class CommandProcessor& cmd, int x, int y, int w, int h, progmem_str str, uint16_t options = 0, uint8_t font = 31);
30
+  void draw_text_box(class CommandProcessor& cmd, int x, int y, int w, int h, FSTR_P str, uint16_t options = 0, uint8_t font = 31);
31
   void draw_text_box(class CommandProcessor& cmd, int x, int y, int w, int h, const char *str, uint16_t options = 0, uint8_t font = 31);
31
   void draw_text_box(class CommandProcessor& cmd, int x, int y, int w, int h, const char *str, uint16_t options = 0, uint8_t font = 31);
32
 }
32
 }

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/text_ellipsis.cpp Parādīt failu

80
     _draw_text_with_ellipsis(cmd, x, y, w, h, tmp, options, font);
80
     _draw_text_with_ellipsis(cmd, x, y, w, h, tmp, options, font);
81
   }
81
   }
82
 
82
 
83
-  void draw_text_with_ellipsis(CommandProcessor& cmd, int x, int y, int w, int h, progmem_str pstr, uint16_t options, uint8_t font) {
83
+  void draw_text_with_ellipsis(CommandProcessor& cmd, int x, int y, int w, int h, FSTR_P pstr, uint16_t options, uint8_t font) {
84
     char tmp[strlen_P((const char*)pstr) + 3];
84
     char tmp[strlen_P((const char*)pstr) + 3];
85
     strcpy_P(tmp, (const char*)pstr);
85
     strcpy_P(tmp, (const char*)pstr);
86
     _draw_text_with_ellipsis(cmd, x, y, w, h, tmp, options, font);
86
     _draw_text_with_ellipsis(cmd, x, y, w, h, tmp, options, font);

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/text_ellipsis.h Parādīt failu

26
  * showing ellipsis if it does not fit.
26
  * showing ellipsis if it does not fit.
27
  */
27
  */
28
 namespace FTDI {
28
 namespace FTDI {
29
-  void draw_text_with_ellipsis(class CommandProcessor& cmd, int x, int y, int w, int h, progmem_str str, uint16_t options = 0, uint8_t font = 31);
29
+  void draw_text_with_ellipsis(class CommandProcessor& cmd, int x, int y, int w, int h, FSTR_P str, uint16_t options = 0, uint8_t font = 31);
30
   void draw_text_with_ellipsis(class CommandProcessor& cmd, int x, int y, int w, int h, const char *str, uint16_t options = 0, uint8_t font = 31);
30
   void draw_text_with_ellipsis(class CommandProcessor& cmd, int x, int y, int w, int h, const char *str, uint16_t options = 0, uint8_t font = 31);
31
 }
31
 }

+ 3
- 3
Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/unicode/unicode.cpp Parādīt failu

44
     return false;
44
     return false;
45
   }
45
   }
46
 
46
 
47
-  bool FTDI::has_utf8_chars(progmem_str _str) {
47
+  bool FTDI::has_utf8_chars(FSTR_P _str) {
48
     const char *str = (const char *) _str;
48
     const char *str = (const char *) _str;
49
     for (;;) {
49
     for (;;) {
50
       const char c = pgm_read_byte(str++);
50
       const char c = pgm_read_byte(str++);
191
     return render_utf8_text(nullptr, 0, 0, str, fs, maxlen);
191
     return render_utf8_text(nullptr, 0, 0, str, fs, maxlen);
192
   }
192
   }
193
 
193
 
194
-  uint16_t FTDI::get_utf8_text_width(progmem_str pstr, font_size_t fs) {
194
+  uint16_t FTDI::get_utf8_text_width(FSTR_P pstr, font_size_t fs) {
195
     char str[strlen_P((const char*)pstr) + 1];
195
     char str[strlen_P((const char*)pstr) + 1];
196
     strcpy_P(str, (const char*)pstr);
196
     strcpy_P(str, (const char*)pstr);
197
     return get_utf8_text_width(str, fs);
197
     return get_utf8_text_width(str, fs);
234
     cmd.cmd(RESTORE_CONTEXT());
234
     cmd.cmd(RESTORE_CONTEXT());
235
   }
235
   }
236
 
236
 
237
-  void FTDI::draw_utf8_text(CommandProcessor& cmd, int x, int y, progmem_str pstr, font_size_t fs, uint16_t options) {
237
+  void FTDI::draw_utf8_text(CommandProcessor& cmd, int x, int y, FSTR_P pstr, font_size_t fs, uint16_t options) {
238
     char str[strlen_P((const char*)pstr) + 1];
238
     char str[strlen_P((const char*)pstr) + 1];
239
     strcpy_P(str, (const char*)pstr);
239
     strcpy_P(str, (const char*)pstr);
240
     draw_utf8_text(cmd, x, y, (const char*) str, fs, options);
240
     draw_utf8_text(cmd, x, y, (const char*) str, fs, options);

+ 3
- 3
Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/unicode/unicode.h Parādīt failu

40
 
40
 
41
     /* Returns true if the string has UTF8 string characters */
41
     /* Returns true if the string has UTF8 string characters */
42
 
42
 
43
-    bool has_utf8_chars(progmem_str str);
43
+    bool has_utf8_chars(FSTR_P str);
44
     bool has_utf8_chars(const char *str);
44
     bool has_utf8_chars(const char *str);
45
 
45
 
46
     /* Returns the next character in a UTF8 string and increments the
46
     /* Returns the next character in a UTF8 string and increments the
66
   void load_utf8_bitmaps(CommandProcessor& cmd);
66
   void load_utf8_bitmaps(CommandProcessor& cmd);
67
 
67
 
68
   uint16_t get_utf8_char_width(utf8_char_t, font_size_t);
68
   uint16_t get_utf8_char_width(utf8_char_t, font_size_t);
69
-  uint16_t get_utf8_text_width(progmem_str, font_size_t);
69
+  uint16_t get_utf8_text_width(FSTR_P, font_size_t);
70
   uint16_t get_utf8_text_width(const char *, font_size_t, size_t maxlen=SIZE_MAX);
70
   uint16_t get_utf8_text_width(const char *, font_size_t, size_t maxlen=SIZE_MAX);
71
 
71
 
72
-  void draw_utf8_text(CommandProcessor&, int x, int y, progmem_str, font_size_t, uint16_t options = 0);
72
+  void draw_utf8_text(CommandProcessor&, int x, int y, FSTR_P, font_size_t, uint16_t options = 0);
73
   void draw_utf8_text(CommandProcessor&, int x, int y, const char *, font_size_t, uint16_t options = 0, size_t maxlen=SIZE_MAX);
73
   void draw_utf8_text(CommandProcessor&, int x, int y, const char *, font_size_t, uint16_t options = 0, size_t maxlen=SIZE_MAX);
74
 
74
 
75
   // Similar to CLCD::FontMetrics, but can be used with UTF8 encoded strings.
75
   // Similar to CLCD::FontMetrics, but can be used with UTF8 encoded strings.

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/about_screen.cpp Parādīt failu

83
   #ifdef TOUCH_UI_VERSION
83
   #ifdef TOUCH_UI_VERSION
84
     F(TOUCH_UI_VERSION)
84
     F(TOUCH_UI_VERSION)
85
   #else
85
   #else
86
-    progmem_str(getFirmwareName_str())
86
+    FPSTR(getFirmwareName_str())
87
   #endif
87
   #endif
88
   , OPT_CENTER, font_medium);
88
   , OPT_CENTER, font_medium);
89
   cmd.tag(0);
89
   cmd.tag(0);

+ 2
- 2
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/alert_dialog_box.cpp Parādīt failu

64
 }
64
 }
65
 
65
 
66
 template void AlertDialogBox::show(const char *);
66
 template void AlertDialogBox::show(const char *);
67
-template void AlertDialogBox::show(progmem_str);
67
+template void AlertDialogBox::show(FSTR_P);
68
 template void AlertDialogBox::showError(const char *);
68
 template void AlertDialogBox::showError(const char *);
69
-template void AlertDialogBox::showError(progmem_str);
69
+template void AlertDialogBox::showError(FSTR_P);
70
 
70
 
71
 #endif // FTDI_ALERT_DIALOG_BOX
71
 #endif // FTDI_ALERT_DIALOG_BOX

+ 15
- 15
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/base_numeric_adjustment_screen.cpp Parādīt failu

109
  * Speed optimization for drawing buttons. Draw all unpressed buttons in the
109
  * Speed optimization for drawing buttons. Draw all unpressed buttons in the
110
  * background layer and draw only the pressed button in the foreground layer.
110
  * background layer and draw only the pressed button in the foreground layer.
111
  */
111
  */
112
-void BaseNumericAdjustmentScreen::widgets_t::_button(CommandProcessor &cmd, uint8_t tag, int16_t x, int16_t y, int16_t w, int16_t h, progmem_str text, bool enabled, bool highlight) {
112
+void BaseNumericAdjustmentScreen::widgets_t::_button(CommandProcessor &cmd, uint8_t tag, int16_t x, int16_t y, int16_t w, int16_t h, FSTR_P text, bool enabled, bool highlight) {
113
   if (_what & BACKGROUND) enabled = true;
113
   if (_what & BACKGROUND) enabled = true;
114
   if ((_what & BACKGROUND) || buttonIsPressed(tag) || highlight || !enabled) {
114
   if ((_what & BACKGROUND) || buttonIsPressed(tag) || highlight || !enabled) {
115
     _button_style(cmd, (!enabled) ? BTN_DISABLED : (highlight ? BTN_ACTION : BTN_NORMAL));
115
     _button_style(cmd, (!enabled) ? BTN_DISABLED : (highlight ? BTN_ACTION : BTN_NORMAL));
125
   return *this;
125
   return *this;
126
 }
126
 }
127
 
127
 
128
-void BaseNumericAdjustmentScreen::widgets_t::heading(progmem_str label) {
128
+void BaseNumericAdjustmentScreen::widgets_t::heading(FSTR_P label) {
129
   if (_what & BACKGROUND) {
129
   if (_what & BACKGROUND) {
130
     CommandProcessor cmd;
130
     CommandProcessor cmd;
131
     _button_style(cmd, TEXT_LABEL);
131
     _button_style(cmd, TEXT_LABEL);
176
 
176
 
177
   switch (pos) {
177
   switch (pos) {
178
     #if ENABLED(TOUCH_UI_PORTRAIT)
178
     #if ENABLED(TOUCH_UI_PORTRAIT)
179
-      case 0: _button(cmd, tag, BTN_POS(5,_line), BTN_SIZE(2,1), progmem_str(label), true, highlight); break;
179
+      case 0: _button(cmd, tag, BTN_POS(5,_line), BTN_SIZE(2,1), FPSTR(label), true, highlight); break;
180
-      case 1: _button(cmd, tag, BTN_POS(7,_line), BTN_SIZE(2,1), progmem_str(label), true, highlight); break;
180
+      case 1: _button(cmd, tag, BTN_POS(7,_line), BTN_SIZE(2,1), FPSTR(label), true, highlight); break;
181
-      case 2: _button(cmd, tag, BTN_POS(9,_line), BTN_SIZE(2,1), progmem_str(label), true, highlight); break;
181
+      case 2: _button(cmd, tag, BTN_POS(9,_line), BTN_SIZE(2,1), FPSTR(label), true, highlight); break;
182
     #else
182
     #else
183
-      case 0: _button(cmd, tag, BTN_POS(15,2),    BTN_SIZE(4,1), progmem_str(label), true, highlight); break;
183
+      case 0: _button(cmd, tag, BTN_POS(15,2),    BTN_SIZE(4,1), FPSTR(label), true, highlight); break;
184
-      case 1: _button(cmd, tag, BTN_POS(15,3),    BTN_SIZE(4,1), progmem_str(label), true, highlight); break;
184
+      case 1: _button(cmd, tag, BTN_POS(15,3),    BTN_SIZE(4,1), FPSTR(label), true, highlight); break;
185
-      case 2: _button(cmd, tag, BTN_POS(15,4),    BTN_SIZE(4,1), progmem_str(label), true, highlight); break;
185
+      case 2: _button(cmd, tag, BTN_POS(15,4),    BTN_SIZE(4,1), FPSTR(label), true, highlight); break;
186
     #endif
186
     #endif
187
   }
187
   }
188
 }
188
 }
213
   #endif
213
   #endif
214
 }
214
 }
215
 
215
 
216
-void BaseNumericAdjustmentScreen::widgets_t::adjuster_sram_val(uint8_t tag, progmem_str label, const char *value, bool is_enabled) {
216
+void BaseNumericAdjustmentScreen::widgets_t::adjuster_sram_val(uint8_t tag, FSTR_P label, const char *value, bool is_enabled) {
217
   CommandProcessor cmd;
217
   CommandProcessor cmd;
218
 
218
 
219
   if (_what & BACKGROUND) {
219
   if (_what & BACKGROUND) {
239
   _line++;
239
   _line++;
240
 }
240
 }
241
 
241
 
242
-void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, progmem_str label, const char *value, bool is_enabled) {
242
+void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, FSTR_P label, const char *value, bool is_enabled) {
243
   if (_what & BACKGROUND) {
243
   if (_what & BACKGROUND) {
244
     adjuster_sram_val(tag, label, nullptr);
244
     adjuster_sram_val(tag, label, nullptr);
245
   }
245
   }
251
   }
251
   }
252
 }
252
 }
253
 
253
 
254
-void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, progmem_str label, float value, bool is_enabled) {
254
+void BaseNumericAdjustmentScreen::widgets_t::adjuster(uint8_t tag, FSTR_P label, float value, bool is_enabled) {
255
   if (_what & BACKGROUND) {
255
   if (_what & BACKGROUND) {
256
     adjuster_sram_val(tag, label, nullptr);
256
     adjuster_sram_val(tag, label, nullptr);
257
   }
257
   }
265
   }
265
   }
266
 }
266
 }
267
 
267
 
268
-void BaseNumericAdjustmentScreen::widgets_t::button(uint8_t tag, progmem_str label, bool is_enabled) {
268
+void BaseNumericAdjustmentScreen::widgets_t::button(uint8_t tag, FSTR_P label, bool is_enabled) {
269
   CommandProcessor cmd;
269
   CommandProcessor cmd;
270
   cmd.font(LAYOUT_FONT);
270
   cmd.font(LAYOUT_FONT);
271
   _button(cmd, tag, BTN_POS(5,_line), BTN_SIZE(9,1), label, is_enabled);
271
   _button(cmd, tag, BTN_POS(5,_line), BTN_SIZE(9,1), label, is_enabled);
273
   _line++;
273
   _line++;
274
 }
274
 }
275
 
275
 
276
-void BaseNumericAdjustmentScreen::widgets_t::text_field(uint8_t tag, progmem_str label, const char *value, bool is_enabled) {
276
+void BaseNumericAdjustmentScreen::widgets_t::text_field(uint8_t tag, FSTR_P label, const char *value, bool is_enabled) {
277
   CommandProcessor cmd;
277
   CommandProcessor cmd;
278
 
278
 
279
   if (_what & BACKGROUND) {
279
   if (_what & BACKGROUND) {
295
   _line++;
295
   _line++;
296
 }
296
 }
297
 
297
 
298
-void BaseNumericAdjustmentScreen::widgets_t::two_buttons(uint8_t tag1, progmem_str label1, uint8_t tag2, progmem_str label2, bool is_enabled) {
298
+void BaseNumericAdjustmentScreen::widgets_t::two_buttons(uint8_t tag1, FSTR_P label1, uint8_t tag2, FSTR_P label2, bool is_enabled) {
299
   CommandProcessor cmd;
299
   CommandProcessor cmd;
300
   cmd.font(LAYOUT_FONT);
300
   cmd.font(LAYOUT_FONT);
301
   _button(cmd, tag1, BTN_POS(5,_line),   BTN_SIZE(4.5,1), label1, is_enabled);
301
   _button(cmd, tag1, BTN_POS(5,_line),   BTN_SIZE(4.5,1), label1, is_enabled);
304
   _line++;
304
   _line++;
305
 }
305
 }
306
 
306
 
307
-void BaseNumericAdjustmentScreen::widgets_t::toggle(uint8_t tag, progmem_str label, bool value, bool is_enabled) {
307
+void BaseNumericAdjustmentScreen::widgets_t::toggle(uint8_t tag, FSTR_P label, bool value, bool is_enabled) {
308
   CommandProcessor cmd;
308
   CommandProcessor cmd;
309
 
309
 
310
   if (_what & BACKGROUND) {
310
   if (_what & BACKGROUND) {

+ 12
- 12
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/base_numeric_adjustment_screen.h Parādīt failu

44
         uint8_t     _line;
44
         uint8_t     _line;
45
         uint32_t    _color;
45
         uint32_t    _color;
46
         uint8_t     _decimals;
46
         uint8_t     _decimals;
47
-        progmem_str _units;
47
+        FSTR_P      _units;
48
         enum style_t {
48
         enum style_t {
49
           BTN_NORMAL,
49
           BTN_NORMAL,
50
           BTN_ACTION,
50
           BTN_ACTION,
56
 
56
 
57
       protected:
57
       protected:
58
         void _draw_increment_btn(CommandProcessor &, uint8_t line, const uint8_t tag);
58
         void _draw_increment_btn(CommandProcessor &, uint8_t line, const uint8_t tag);
59
-        void _button(CommandProcessor &, uint8_t tag, int16_t x, int16_t y, int16_t w, int16_t h, progmem_str, bool enabled = true, bool highlight = false);
59
+        void _button(CommandProcessor &, uint8_t tag, int16_t x, int16_t y, int16_t w, int16_t h, FSTR_P, bool enabled = true, bool highlight = false);
60
         void _button_style(CommandProcessor &cmd, style_t style);
60
         void _button_style(CommandProcessor &cmd, style_t style);
61
       public:
61
       public:
62
         widgets_t(draw_mode_t);
62
         widgets_t(draw_mode_t);
63
 
63
 
64
         widgets_t &color(uint32_t color)       {_color = color; return *this;}
64
         widgets_t &color(uint32_t color)       {_color = color; return *this;}
65
-        widgets_t &units(progmem_str units)    {_units = units; return *this;}
65
+        widgets_t &units(FSTR_P units)         {_units = units; return *this;}
66
         widgets_t &draw_mode(draw_mode_t what) {_what  = what;  return *this;}
66
         widgets_t &draw_mode(draw_mode_t what) {_what  = what;  return *this;}
67
         widgets_t &precision(uint8_t decimals, precision_default_t = DEFAULT_HIGHEST);
67
         widgets_t &precision(uint8_t decimals, precision_default_t = DEFAULT_HIGHEST);
68
 
68
 
69
-        void heading           (progmem_str label);
69
+        void heading           (FSTR_P label);
70
-        void adjuster_sram_val (uint8_t tag,  progmem_str label, const char *value,  bool is_enabled = true);
70
+        void adjuster_sram_val (uint8_t tag,  FSTR_P label, const char *value,  bool is_enabled = true);
71
-        void adjuster          (uint8_t tag,  progmem_str label, const char *value,  bool is_enabled = true);
71
+        void adjuster          (uint8_t tag,  FSTR_P label, const char *value,  bool is_enabled = true);
72
-        void adjuster          (uint8_t tag,  progmem_str label, float value=0,      bool is_enabled = true);
72
+        void adjuster          (uint8_t tag,  FSTR_P label, float value=0,      bool is_enabled = true);
73
-        void button            (uint8_t tag,  progmem_str label,                     bool is_enabled = true);
73
+        void button            (uint8_t tag,  FSTR_P label,                     bool is_enabled = true);
74
-        void text_field        (uint8_t tag,  progmem_str label, const char *value,  bool is_enabled = true);
74
+        void text_field        (uint8_t tag,  FSTR_P label, const char *value,  bool is_enabled = true);
75
-        void two_buttons       (uint8_t tag1, progmem_str label1,
75
+        void two_buttons       (uint8_t tag1, FSTR_P label1,
76
-                                uint8_t tag2, progmem_str label2,                    bool is_enabled = true);
76
+                                uint8_t tag2, FSTR_P label2,                    bool is_enabled = true);
77
-        void toggle            (uint8_t tag,  progmem_str label,                     bool value, bool is_enabled = true);
77
+        void toggle            (uint8_t tag,  FSTR_P label,                     bool value, bool is_enabled = true);
78
         void home_buttons      (uint8_t tag);
78
         void home_buttons      (uint8_t tag);
79
         void increments        ();
79
         void increments        ();
80
     };
80
     };

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/bed_mesh_view_screen.h Parādīt failu

25
 #define FTDI_BED_MESH_VIEW_SCREEN_CLASS BedMeshViewScreen
25
 #define FTDI_BED_MESH_VIEW_SCREEN_CLASS BedMeshViewScreen
26
 
26
 
27
 struct BedMeshViewScreenData {
27
 struct BedMeshViewScreenData {
28
-  progmem_str message;
28
+  FSTR_P message;
29
   uint8_t count;
29
   uint8_t count;
30
   xy_uint8_t highlight;
30
   xy_uint8_t highlight;
31
 };
31
 };

+ 2
- 2
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/dialog_box_base_class.cpp Parādīt failu

44
 }
44
 }
45
 
45
 
46
 template void DialogBoxBaseClass::drawMessage(const char *, int16_t font);
46
 template void DialogBoxBaseClass::drawMessage(const char *, int16_t font);
47
-template void DialogBoxBaseClass::drawMessage(progmem_str, int16_t font);
47
+template void DialogBoxBaseClass::drawMessage(FSTR_P, int16_t font);
48
 
48
 
49
 void DialogBoxBaseClass::drawYesNoButtons(uint8_t default_btn) {
49
 void DialogBoxBaseClass::drawYesNoButtons(uint8_t default_btn) {
50
   CommandProcessor cmd;
50
   CommandProcessor cmd;
67
 }
67
 }
68
 
68
 
69
 template void DialogBoxBaseClass::drawButton(const char *);
69
 template void DialogBoxBaseClass::drawButton(const char *);
70
-template void DialogBoxBaseClass::drawButton(progmem_str);
70
+template void DialogBoxBaseClass::drawButton(FSTR_P);
71
 
71
 
72
 bool DialogBoxBaseClass::onTouchEnd(uint8_t tag) {
72
 bool DialogBoxBaseClass::onTouchEnd(uint8_t tag) {
73
   switch (tag) {
73
   switch (tag) {

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/filament_runout_screen.cpp Parādīt failu

39
     w.units(GET_TEXT_F(MSG_UNITS_MM));
39
     w.units(GET_TEXT_F(MSG_UNITS_MM));
40
     w.precision(0);
40
     w.precision(0);
41
     w.color(e_axis);
41
     w.color(e_axis);
42
-    w.adjuster( 10, progmem_str(NUL_STR), getFilamentRunoutDistance_mm(), getFilamentRunoutEnabled());
42
+    w.adjuster( 10, FPSTR(NUL_STR), getFilamentRunoutDistance_mm(), getFilamentRunoutEnabled());
43
     w.increments();
43
     w.increments();
44
   #endif
44
   #endif
45
 }
45
 }

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/lock_screen.cpp Parādīt failu

63
     #define MARGIN_T 3
63
     #define MARGIN_T 3
64
     #define MARGIN_B 3
64
     #define MARGIN_B 3
65
 
65
 
66
-    progmem_str message;
66
+    FSTR_P message;
67
     switch (message_style()) {
67
     switch (message_style()) {
68
       case 'w':
68
       case 'w':
69
         message = GET_TEXT_F(MSG_PASSCODE_REJECTED);
69
         message = GET_TEXT_F(MSG_PASSCODE_REJECTED);

+ 3
- 3
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.cpp Parādīt failu

60
 void SpinnerDialogBox::onRedraw(draw_mode_t) {
60
 void SpinnerDialogBox::onRedraw(draw_mode_t) {
61
 }
61
 }
62
 
62
 
63
-void SpinnerDialogBox::show(progmem_str message) {
63
+void SpinnerDialogBox::show(FSTR_P message) {
64
   CommandProcessor cmd;
64
   CommandProcessor cmd;
65
   if (AT_SCREEN(SpinnerDialogBox)) cmd.stop().execute();
65
   if (AT_SCREEN(SpinnerDialogBox)) cmd.stop().execute();
66
   cmd.cmd(CMD_DLSTART)
66
   cmd.cmd(CMD_DLSTART)
86
   GOTO_PREVIOUS();
86
   GOTO_PREVIOUS();
87
 }
87
 }
88
 
88
 
89
-void SpinnerDialogBox::enqueueAndWait(progmem_str message, progmem_str commands) {
89
+void SpinnerDialogBox::enqueueAndWait(FSTR_P message, FSTR_P commands) {
90
   show(message);
90
   show(message);
91
   ExtUI::injectCommands_P((const char*)commands);
91
   ExtUI::injectCommands_P((const char*)commands);
92
   mydata.auto_hide = true;
92
   mydata.auto_hide = true;
93
 }
93
 }
94
 
94
 
95
-void SpinnerDialogBox::enqueueAndWait(progmem_str message, char *commands) {
95
+void SpinnerDialogBox::enqueueAndWait(FSTR_P message, char *commands) {
96
   show(message);
96
   show(message);
97
   ExtUI::injectCommands(commands);
97
   ExtUI::injectCommands(commands);
98
   mydata.auto_hide = true;
98
   mydata.auto_hide = true;

+ 3
- 3
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.h Parādīt failu

37
     static void onRefresh();
37
     static void onRefresh();
38
     static void onIdle();
38
     static void onIdle();
39
 
39
 
40
-    static void show(progmem_str);
40
+    static void show(FSTR_P);
41
     static void hide();
41
     static void hide();
42
 
42
 
43
     template<typename T>
43
     template<typename T>
44
     static void enqueueAndWait(T commands) {enqueueAndWait(GET_TEXT_F(MSG_PLEASE_WAIT), commands);}
44
     static void enqueueAndWait(T commands) {enqueueAndWait(GET_TEXT_F(MSG_PLEASE_WAIT), commands);}
45
 
45
 
46
-    static void enqueueAndWait(progmem_str message, char *commands);
46
+    static void enqueueAndWait(FSTR_P message, char *commands);
47
-    static void enqueueAndWait(progmem_str message, progmem_str commands);
47
+    static void enqueueAndWait(FSTR_P message, FSTR_P commands);
48
 };
48
 };

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/status_screen.cpp Parādīt failu

344
   #undef  GRID_COLS
344
   #undef  GRID_COLS
345
 }
345
 }
346
 
346
 
347
-void StatusScreen::setStatusMessage(progmem_str message) {
347
+void StatusScreen::setStatusMessage(FSTR_P message) {
348
   char buff[strlen_P((const char * const)message)+1];
348
   char buff[strlen_P((const char * const)message)+1];
349
   strcpy_P(buff, (const char * const) message);
349
   strcpy_P(buff, (const char * const) message);
350
   setStatusMessage((const char *) buff);
350
   setStatusMessage((const char *) buff);

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/status_screen.h Parādīt failu

36
   public:
36
   public:
37
     static void loadBitmaps();
37
     static void loadBitmaps();
38
     static void setStatusMessage(const char *);
38
     static void setStatusMessage(const char *);
39
-    static void setStatusMessage(progmem_str);
39
+    static void setStatusMessage(FSTR_P);
40
     static void onRedraw(draw_mode_t);
40
     static void onRedraw(draw_mode_t);
41
     static void onStartup();
41
     static void onStartup();
42
     static void onEntry();
42
     static void onEntry();

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/stress_test_screen.cpp Parādīt failu

59
      .cmd(CLEAR(true,true,true))
59
      .cmd(CLEAR(true,true,true))
60
      .cmd(COLOR_RGB(bg_text_enabled))
60
      .cmd(COLOR_RGB(bg_text_enabled))
61
      .font(font_medium)
61
      .font(font_medium)
62
-     .text(BTN_POS(1,1), BTN_SIZE(4,1), progmem_str(mydata.message));
62
+     .text(BTN_POS(1,1), BTN_SIZE(4,1), FPSTR(mydata.message));
63
 
63
 
64
   drawDots(BTN_POS(1,3), BTN_SIZE(4,4));
64
   drawDots(BTN_POS(1,3), BTN_SIZE(4,4));
65
 
65
 

+ 1
- 0
Marlin/src/lcd/language/language_en.h Parādīt failu

397
   LSTR MSG_ADVANCE_K                      = _UxGT("Advance K");
397
   LSTR MSG_ADVANCE_K                      = _UxGT("Advance K");
398
   LSTR MSG_ADVANCE_K_E                    = _UxGT("Advance K *");
398
   LSTR MSG_ADVANCE_K_E                    = _UxGT("Advance K *");
399
   LSTR MSG_CONTRAST                       = _UxGT("LCD Contrast");
399
   LSTR MSG_CONTRAST                       = _UxGT("LCD Contrast");
400
+  LSTR MSG_BRIGHTNESS                     = _UxGT("LCD Brightness");
400
   LSTR MSG_STORE_EEPROM                   = _UxGT("Store Settings");
401
   LSTR MSG_STORE_EEPROM                   = _UxGT("Store Settings");
401
   LSTR MSG_LOAD_EEPROM                    = _UxGT("Load Settings");
402
   LSTR MSG_LOAD_EEPROM                    = _UxGT("Load Settings");
402
   LSTR MSG_RESTORE_DEFAULTS               = _UxGT("Restore Defaults");
403
   LSTR MSG_RESTORE_DEFAULTS               = _UxGT("Restore Defaults");

+ 2
- 2
Marlin/src/lcd/menu/game/brickout.cpp Parādīt failu

50
 void reset_ball() {
50
 void reset_ball() {
51
   constexpr uint8_t ball_dist = 24;
51
   constexpr uint8_t ball_dist = 24;
52
   bdat.bally = BTOF(PADDLE_Y - ball_dist);
52
   bdat.bally = BTOF(PADDLE_Y - ball_dist);
53
-  bdat.ballv = FTOP(1.3f);
53
+  bdat.ballv = FTOF(1.3f);
54
-  bdat.ballh = -FTOP(1.25f);
54
+  bdat.ballh = -FTOF(1.25f);
55
   uint8_t bx = bdat.paddle_x + (PADDLE_W) / 2 + ball_dist;
55
   uint8_t bx = bdat.paddle_x + (PADDLE_W) / 2 + ball_dist;
56
   if (bx >= LCD_PIXEL_WIDTH - 10) { bx -= ball_dist * 2; bdat.ballh = -bdat.ballh; }
56
   if (bx >= LCD_PIXEL_WIDTH - 10) { bx -= ball_dist * 2; bdat.ballh = -bdat.ballh; }
57
   bdat.ballx = BTOF(bx);
57
   bdat.ballx = BTOF(bx);

+ 2
- 2
Marlin/src/lcd/menu/game/snake.cpp Parādīt failu

63
   #define SNAKE_SIZ SNAKE_BOX
63
   #define SNAKE_SIZ SNAKE_BOX
64
 #endif
64
 #endif
65
 
65
 
66
-constexpr fixed_t snakev = FTOP(0.20);
66
+constexpr fixed_t snakev = FTOF(0.20);
67
 
67
 
68
 snake_data_t &sdat = marlin_game_data.snake;
68
 snake_data_t &sdat = marlin_game_data.snake;
69
 
69
 
125
   // Init the head and velocity
125
   // Init the head and velocity
126
   sdat.snakex = BTOF(1);
126
   sdat.snakex = BTOF(1);
127
   sdat.snakey = BTOF(GAME_H / 2);
127
   sdat.snakey = BTOF(GAME_H / 2);
128
-  //snakev = FTOP(0.25);
128
+  //snakev = FTOF(0.25);
129
 
129
 
130
   // Init the tail with a cw turn
130
   // Init the tail with a cw turn
131
   sdat.snake_dir = 0;
131
   sdat.snake_dir = 0;

+ 1
- 1
Marlin/src/lcd/menu/game/types.h Parādīt failu

27
 
27
 
28
 // Simple 8:8 fixed-point
28
 // Simple 8:8 fixed-point
29
 typedef int16_t fixed_t;
29
 typedef int16_t fixed_t;
30
-#define FTOP(F) fixed_t((F)*256.0f)
30
+#define FTOF(F) fixed_t((F)*256.0f)
31
 #define PTOF(P) (float(P)*(1.0f/256.0f))
31
 #define PTOF(P) (float(P)*(1.0f/256.0f))
32
 #define BTOF(X) (fixed_t(X)<<8)
32
 #define BTOF(X) (fixed_t(X)<<8)
33
 #define FTOB(X) int8_t(fixed_t(X)>>8)
33
 #define FTOB(X) int8_t(fixed_t(X)>>8)

+ 1
- 1
Marlin/src/lcd/menu/menu.h Parādīt failu

114
     static inline void select_screen(
114
     static inline void select_screen(
115
       PGM_P const yes, PGM_P const no,
115
       PGM_P const yes, PGM_P const no,
116
       selectFunc_t yesFunc, selectFunc_t noFunc,
116
       selectFunc_t yesFunc, selectFunc_t noFunc,
117
-      PGM_P const pref, const progmem_str string, PGM_P const suff=nullptr
117
+      PGM_P const pref, FSTR_P const string, PGM_P const suff=nullptr
118
     ) {
118
     ) {
119
       char str[strlen_P((PGM_P)string) + 1];
119
       char str[strlen_P((PGM_P)string) + 1];
120
       strcpy_P(str, (PGM_P)string);
120
       strcpy_P(str, (PGM_P)string);

Notiek ielāde…
Atcelt
Saglabāt