🎨 LCD conditional cleanup (#27539)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
Andrew 2024-12-07 21:11:30 -05:00 committed by GitHub
parent c5bf705717
commit 71ce7803e7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 63 additions and 56 deletions

View file

@ -585,7 +585,7 @@
#endif
#endif
#if ANY(HAS_WIRED_LCD, EXTENSIBLE_UI, DWIN_LCD_PROUI, DWIN_CREALITY_LCD_JYERSUI)
#if ANY(HAS_WIRED_LCD, EXTENSIBLE_UI, HAS_DWIN_E3V2)
/**
* HAS_DISPLAY indicates the display uses these MarlinUI methods...
* - update
@ -605,10 +605,8 @@
* (calling advance_status_scroll, status_and_len for a scrolling status message)
*/
#define HAS_DISPLAY 1
#endif
#if ANY(HAS_DISPLAY, DWIN_CREALITY_LCD)
#define HAS_UI_UPDATE 1
#define HAS_STATUS_MESSAGE 1
#endif
#if HAS_WIRED_LCD && !HAS_GRAPHICAL_TFT && !IS_DWIN_MARLINUI
@ -619,10 +617,6 @@
#define HAS_UTF8_UTILS 1
#endif
#if ANY(HAS_DISPLAY, HAS_DWIN_E3V2)
#define HAS_STATUS_MESSAGE 1
#endif
#if IS_ULTIPANEL && DISABLED(NO_LCD_MENUS)
#define HAS_MARLINUI_MENU 1
#endif

View file

@ -128,6 +128,22 @@
#define ICON_Info_0 90
#define ICON_Info_1 91
// Extra Icons
#define ICON_Printer_0 93
#define ICON_Box 200
#define ICON_Checkbox 201
#define ICON_Fade 202
#define ICON_Mesh 203
#define ICON_Tilt 204
#define ICON_Brightness 205
#define ICON_Probe 206
#define ICON_AxisD 249
#define ICON_AxisBR 250
#define ICON_AxisTR 251
#define ICON_AxisBL 252
#define ICON_AxisTL 253
#define ICON_AxisC 254
#define ICON_Folder ICON_More
#define ICON_AdvSet ICON_Language
#define ICON_HomeOffset ICON_PrintSize

View file

@ -355,6 +355,10 @@ void clearPopupArea() {
dwinDrawRectangle(1, COLOR_BG_BLACK, 0, 31, DWIN_WIDTH, DWIN_HEIGHT);
}
void drawPopupBkgd60() {
dwinDrawRectangle(1, COLOR_BG_WINDOW, 14, 60, 258, 330);
}
void drawPopupBkgd105() {
dwinDrawRectangle(1, COLOR_BG_WINDOW, 14, 105, 258, 374);
}
@ -1081,10 +1085,6 @@ void drawMotionMenu() {
#endif
void drawPopupBkgd60() {
dwinDrawRectangle(1, COLOR_BG_WINDOW, 14, 60, 258, 330);
}
#if HAS_HOTEND
void popupWindowETempTooLow() {
@ -1116,7 +1116,7 @@ void popupWindowResume() {
else {
dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (272 - 8 * 14) / 2, 115, F("Continue Print"));
dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (272 - 8 * 22) / 2, 192, F("It looks like the last"));
dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (272 - 8 * 22) / 2, 212, F("file was interrupted."));
dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (272 - 8 * 21) / 2, 212, F("file was interrupted."));
dwinIconShow(ICON, ICON_Cancel_E, 26, 307);
dwinIconShow(ICON, ICON_Continue_E, 146, 307);
}
@ -1125,7 +1125,7 @@ void popupWindowResume() {
void popupWindowHome(const bool parking/*=false*/) {
clearMainWindow();
drawPopupBkgd60();
dwinIconShow(ICON, ICON_BLTouch, 101, 105);
dwinIconShow(ICON, ICON_Printer_0, 101, 105);
if (hmiIsChinese()) {
dwinFrameAreaCopy(1, 0, 371, 33, 386, 85, 240); // Wait for Move to Complete
dwinFrameAreaCopy(1, 203, 286, 271, 302, 118, 240);
@ -1148,7 +1148,7 @@ void popupWindowHome(const bool parking/*=false*/) {
dwinFrameAreaCopy(1, 0, 389, 150, 402, 61, 280);
}
else {
dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (272 - 8 * 13) / 2, 230, GET_TEXT_F(MSG_BED_LEVELING));
dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (272 - 8 * 12) / 2, 230, GET_TEXT_F(MSG_BED_LEVELING));
dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (272 - 8 * 23) / 2, 260, F("Please wait until done."));
}
}
@ -1169,8 +1169,8 @@ void popupwindowPauseOrStop() {
clearMainWindow();
drawPopupBkgd60();
if (hmiIsChinese()) {
if (select_print.now == PRINT_PAUSE_RESUME) dwinFrameAreaCopy(1, 237, 338, 269, 356, 98, 150); // Pause
else if (select_print.now == PRINT_STOP) dwinFrameAreaCopy(1, 221, 320, 253, 336, 98, 150); // Stop
if (select_print.now == PRINT_PAUSE_RESUME) dwinFrameAreaCopy(1, 237, 338, 269, 356, 98, 150); // Pause
else if (select_print.now == PRINT_STOP) dwinFrameAreaCopy(1, 221, 320, 253, 336, 98, 150); // Stop
dwinFrameAreaCopy(1, 220, 304, 264, 319, 130, 150); // Print
dwinIconShow(ICON, ICON_Confirm_C, 26, 280);
dwinIconShow(ICON, ICON_Cancel_C, 146, 280);
@ -1826,6 +1826,14 @@ void MarlinUI::update() {
void MarlinUI::_set_brightness() { dwinLCDBrightness(backlight ? brightness : 0); }
#endif
void MarlinUI::kill_screen(FSTR_P const lcd_error, FSTR_P const) {
clearMainWindow();
drawPopupBkgd60();
dwinIconShow(ICON, ICON_Printer_0, 101, 105);
dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (272 - 8 * 15) / 2, 230, GET_TEXT_F(MSG_PRINTER_KILLED));
dwinDrawString(true, font8x16, COLOR_POPUP_TEXT, COLOR_BG_WINDOW, (272 - 8 * 20) / 2, 260, GET_TEXT_F(MSG_TURN_OFF));
}
#if ENABLED(SCROLL_LONG_FILENAMES)
char shift_name[LONG_FILENAME_LENGTH + 1];

View file

@ -36,22 +36,6 @@
#include "../common/dwin_color.h"
#include "dwin_lcd.h"
// Extra Icons
#define ICON_Printer_0 93
#define ICON_Box 200
#define ICON_Checkbox 201
#define ICON_Fade 202
#define ICON_Mesh 203
#define ICON_Tilt 204
#define ICON_Brightness 205
#define ICON_Probe 206
#define ICON_AxisD 249
#define ICON_AxisBR 250
#define ICON_AxisTR 251
#define ICON_AxisBL 252
#define ICON_AxisTL 253
#define ICON_AxisC 254
#define ICON_BedSizeX ICON_PrintSize
#define ICON_BedSizeY ICON_PrintSize
#define ICON_BedTramming ICON_SetHome

View file

@ -55,10 +55,10 @@ MarlinUI ui;
#endif
#if ENABLED(LCD_PROGRESS_BAR) && !IS_TFTGLCD_PANEL
#define BASIC_PROGRESS_BAR 1
#define HAS_BASIC_PROGRESS_BAR 1
#endif
#if ANY(HAS_DISPLAY, HAS_STATUS_MESSAGE, BASIC_PROGRESS_BAR)
#if ANY(HAS_DISPLAY, HAS_STATUS_MESSAGE, HAS_BASIC_PROGRESS_BAR)
#include "../module/printcounter.h"
#endif
@ -598,7 +598,7 @@ void MarlinUI::init() {
* This is very display-dependent, so the lcd implementation draws this.
*/
#if BASIC_PROGRESS_BAR
#if HAS_BASIC_PROGRESS_BAR
millis_t MarlinUI::progress_bar_ms; // = 0
#if PROGRESS_MSG_EXPIRE > 0
millis_t MarlinUI::expire_status_ms; // = 0
@ -607,7 +607,7 @@ void MarlinUI::init() {
void MarlinUI::status_screen() {
#if BASIC_PROGRESS_BAR
#if HAS_BASIC_PROGRESS_BAR
//
// HD44780 implements the following message blinking and
@ -647,7 +647,7 @@ void MarlinUI::init() {
#endif // PROGRESS_MSG_EXPIRE
#endif // BASIC_PROGRESS_BAR
#endif // HAS_BASIC_PROGRESS_BAR
bool did_expire = status_reset_callback && (*status_reset_callback)();
@ -1592,11 +1592,11 @@ void MarlinUI::host_notify(const char * const cstr) {
#if HAS_WIRED_LCD
#if BASIC_PROGRESS_BAR || ALL(FILAMENT_LCD_DISPLAY, HAS_MEDIA)
#if HAS_BASIC_PROGRESS_BAR || ALL(FILAMENT_LCD_DISPLAY, HAS_MEDIA)
const millis_t ms = millis();
#endif
#if BASIC_PROGRESS_BAR
#if HAS_BASIC_PROGRESS_BAR
progress_bar_ms = ms;
#if PROGRESS_MSG_EXPIRE > 0
expire_status_ms = persist ? 0 : ms + PROGRESS_MSG_EXPIRE;

View file

@ -205,15 +205,6 @@ public:
static void init();
#if HAS_DISPLAY || HAS_DWIN_E3V2
static void init_lcd();
// Erase the LCD contents. Do the lowest-level thing required to clear the LCD.
static void clear_lcd();
#else
static void init_lcd() {}
static void clear_lcd() {}
#endif
static void reinit_lcd() { TERN_(REINIT_NOISY_LCD, init_lcd()); }
#if HAS_WIRED_LCD
@ -522,6 +513,11 @@ public:
#if HAS_DISPLAY
static void init_lcd();
// Erase the LCD contents. Do the lowest-level thing required to clear the LCD.
static void clear_lcd();
// Clear the LCD before new drawing. Some LCDs do nothing because they redraw frequently.
static void clear_for_drawing();
@ -635,6 +631,8 @@ public:
#else // No LCD
static void init_lcd() {}
static void clear_lcd() {}
static void clear_for_drawing() {}
static void kill_screen(FSTR_P const, FSTR_P const) {}

View file

@ -27,9 +27,10 @@
#include "endstops.h"
#include "stepper.h"
#include "../sd/cardreader.h"
#include "temperature.h"
#include "../lcd/marlinui.h"
#if HAS_STATUS_MESSAGE
#include "../lcd/marlinui.h"
#endif
#if ENABLED(SOVOL_SV06_RTS)
#include "../lcd/sovol_rts/sovol_rts.h"
#endif
@ -44,6 +45,8 @@
#if ENABLED(SD_ABORT_ON_ENDSTOP_HIT)
#include "printcounter.h" // for print_job_timer
#include "temperature.h"
#include "../sd/cardreader.h"
#endif
#if ENABLED(BLTOUCH)
@ -54,6 +57,10 @@
#include "../feature/joystick.h"
#endif
#if HAS_FILAMENT_SENSOR
#include "../feature/runout.h"
#endif
#if HAS_BED_PROBE
#include "probe.h"
#endif
@ -375,13 +382,13 @@ void Endstops::event_handler() {
#endif
SERIAL_EOL();
TERN_(HAS_STATUS_MESSAGE,
#if HAS_STATUS_MESSAGE
ui.status_printf(0,
F(S_FMT GANG_N_1(NUM_AXES, " %c") " %c"),
GET_TEXT_F(MSG_LCD_ENDSTOPS),
NUM_AXIS_LIST_(chrX, chrY, chrZ, chrI, chrJ, chrK, chrU, chrV, chrW) chrP
)
);
);
#endif
#if ENABLED(SD_ABORT_ON_ENDSTOP_HIT)
if (planner.abort_on_endstop_hit) {
@ -526,7 +533,7 @@ void __O2 Endstops::report_states() {
}
#undef _CASE_RUNOUT
#elif HAS_FILAMENT_SENSOR
print_es_state(READ(FIL_RUNOUT1_PIN) != FIL_RUNOUT1_STATE, F(STR_FILAMENT));
print_es_state(!FILAMENT_IS_OUT());
#endif
TERN_(BLTOUCH, bltouch._reset_SW_mode());