🚸 Fix, clean up ProUI (#26434)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
Andrew 2023-11-21 04:57:31 -05:00 committed by GitHub
parent 20445b8e83
commit cc8f7c83da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 141 additions and 99 deletions

View file

@ -2491,15 +2491,9 @@
// PID heating
#if ANY(PIDTEMP, PIDTEMPBED, PIDTEMPCHAMBER)
#define HAS_PID_HEATING 1
#endif
#if ENABLED(DWIN_LCD_PROUI)
#if ANY(PIDTEMP, PIDTEMPBED)
#if ENABLED(DWIN_LCD_PROUI) && ANY(PIDTEMP, PIDTEMPBED)
#define PROUI_PID_TUNE 1
#endif
#if ANY(PROUI_PID_TUNE, MPC_AUTOTUNE) && DISABLED(DISABLE_TUNING_GRAPH)
#define PROUI_TUNING_GRAPH 1
#endif
#endif
// Thermal protection

View file

@ -1533,7 +1533,7 @@ static_assert(COUNT(arm) == LOGICAL_AXES, "AXIS_RELATIVE_MODES must contain " _L
* Allow only one bed leveling option to be defined
*/
#if MANY(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL, MESH_BED_LEVELING)
#error "Select only one of: MESH_BED_LEVELING, AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
#error "Select only one of: MESH_BED_LEVELING, AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_BILINEAR, or AUTO_BED_LEVELING_UBL."
#endif
/**
@ -1541,7 +1541,7 @@ static_assert(COUNT(arm) == LOGICAL_AXES, "AXIS_RELATIVE_MODES must contain " _L
*/
#if IS_SCARA && ANY(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_UBL)
#error "SCARA machines can only use AUTO_BED_LEVELING_BILINEAR or MESH_BED_LEVELING leveling."
#error "SCARA machines can only use AUTO_BED_LEVELING_BILINEAR or MESH_BED_LEVELING."
#elif ENABLED(AUTO_BED_LEVELING_LINEAR) && !(WITHIN(GRID_MAX_POINTS_X, 2, 255) && WITHIN(GRID_MAX_POINTS_Y, 2, 255))
#error "GRID_MAX_POINTS_[XY] must be between 2 and 255 with AUTO_BED_LEVELING_LINEAR."
#elif ENABLED(AUTO_BED_LEVELING_BILINEAR) && !(WITHIN(GRID_MAX_POINTS_X, 3, 255) && WITHIN(GRID_MAX_POINTS_Y, 3, 255))
@ -1610,7 +1610,7 @@ static_assert(COUNT(arm) == LOGICAL_AXES, "AXIS_RELATIVE_MODES must contain " _L
#elif !(ENABLED(MESH_BED_LEVELING) || HAS_ABL_NOT_UBL)
#error "LCD_BED_LEVELING requires MESH_BED_LEVELING or AUTO_BED_LEVELING."
#elif ENABLED(MESH_EDIT_MENU) && !HAS_MESH
#error "MESH_EDIT_MENU requires MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
#error "MESH_EDIT_MENU requires MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, or AUTO_BED_LEVELING_UBL."
#endif
#endif
@ -2746,16 +2746,6 @@ static_assert(COUNT(arm) == LOGICAL_AXES, "AXIS_RELATIVE_MODES must contain " _L
#error "DWIN_LCD_PROUI requires SDSUPPORT to be enabled."
#elif ALL(LCD_BED_LEVELING, PROBE_MANUALLY)
#error "DWIN_LCD_PROUI does not support LCD_BED_LEVELING with PROBE_MANUALLY."
#elif ENABLED(MEDIASORT_MENU_ITEM) && DISABLED(SDCARD_SORT_ALPHA)
#error "MEDIASORT_MENU_ITEM requires SDCARD_SORT_ALPHA."
#elif ENABLED(RUNOUT_TUNE_ITEM) && DISABLED(HAS_FILAMENT_SENSOR)
#error "RUNOUT_TUNE_ITEM requires HAS_FILAMENT_SENSOR."
#elif ENABLED(PLR_TUNE_ITEM) && DISABLED(POWER_LOSS_RECOVERY)
#error "PLR_TUNE_ITEM requires POWER_LOSS_RECOVERY."
#elif ENABLED(JD_TUNE_ITEM) && DISABLED(HAS_JUNCTION_DEVIATION)
#error "JD_TUNE_ITEM requires HAS_JUNCTION_DEVIATION."
#elif ENABLED(ADVK_TUNE_ITEM) && DISABLED(LIN_ADVANCE)
#error "ADVK_TUNE_ITEM requires LIN_ADVANCE."
#endif
#endif

View file

@ -389,7 +389,7 @@ private:
// Draw value text on
if (viewer_print_value) {
xy_int8_t offset { 0, cell_height_px / 2 - 6 };
xy_int_t offset { 0, cell_height_px / 2 - 6 };
if (isnan(bedlevel.z_values[x][y])) { // undefined
dwinDrawString(false, font6x12, COLOR_WHITE, COLOR_BG_BLUE, start_x_px + cell_width_px / 2 - 5, start_y_px + offset.y, F("X"));
}

View file

@ -200,7 +200,7 @@ float BedLevelTools::getMinValue() {
bool BedLevelTools::meshValidate() {
GRID_LOOP(x, y) {
const float v = bedlevel.z_values[x][y];
if (isnan(v) || !WITHIN(v, UBL_Z_OFFSET_MIN, UBL_Z_OFFSET_MAX)) return false;
if (isnan(v) || !WITHIN(v, Z_OFFSET_MIN, Z_OFFSET_MAX)) return false;
}
return true;
}
@ -247,7 +247,7 @@ bool BedLevelTools::meshValidate() {
// Draw value text on
const uint8_t fs = DWINUI::fontWidth(meshfont);
if (viewer_print_value) {
xy_int8_t offset { 0, cell_height_px / 2 - fs };
xy_int_t offset { 0, cell_height_px / 2 - fs };
if (isnan(bedlevel.z_values[x][y])) { // undefined
dwinDrawString(false, meshfont, COLOR_WHITE, COLOR_BG_BLUE, start_x_px + cell_width_px / 2 - 5, start_y_px + offset.y, F("X"));
}

View file

@ -47,9 +47,6 @@
#include "../../../inc/MarlinConfigPre.h"
#define UBL_Z_OFFSET_MIN -3.0
#define UBL_Z_OFFSET_MAX 3.0
class BedLevelTools {
public:
#if ENABLED(USE_GRID_MESHVIEWER)

View file

@ -31,6 +31,10 @@
#if ENABLED(DWIN_LCD_PROUI)
#include "dwin.h"
#include "menus.h"
#include "dwin_popup.h"
#include "../../utf8.h"
#include "../../marlinui.h"
#include "../../../MarlinCore.h"
@ -105,10 +109,6 @@
#include "../../../feature/tmc_util.h"
#endif
#include "dwin.h"
#include "menus.h"
#include "dwin_popup.h"
#if HAS_GCODE_PREVIEW
#include "gcode_preview.h"
#endif
@ -268,7 +268,7 @@ Menu *stepsMenu = nullptr;
#endif
#if HAS_MESH
Menu *meshMenu = nullptr;
#if ENABLED(MESH_EDIT_MENU)
#if ENABLED(PROUI_MESH_EDIT)
Menu *editMeshMenu = nullptr;
#endif
#endif
@ -847,7 +847,7 @@ void updateVariable() {
bool DWIN_lcd_sd_status = false;
#if ENABLED(MEDIASORT_MENU_ITEM)
#if ENABLED(PROUI_MEDIASORT)
void setMediaSort() {
toggleCheckboxLine(hmiData.mediaSort);
card.setSortOn(hmiData.mediaSort ? TERN(SDSORT_REVERSE, AS_REV, AS_FWD) : AS_OFF);
@ -985,10 +985,9 @@ void drawPrintFileMenu() {
if (card.isMounted()) {
if (SET_MENU(fileMenu, MSG_MEDIA_MENU, nr_sd_menu_items() + 1)) {
BACK_ITEM(gotoMainMenu);
for (uint8_t i = 0; i < nr_sd_menu_items(); ++i) {
for (uint8_t i = 0; i < nr_sd_menu_items(); ++i)
menuItemAdd(onDrawFileName, onClickSDItem);
}
}
updateMenu(fileMenu);
TERN_(DASH_REDRAW, dwinRedrawDash());
}
@ -1022,7 +1021,6 @@ void hmiSDCardUpdate() {
*/
void dwinDrawDashboard() {
dwinDrawRectangle(1, hmiData.colorBackground, 0, STATUS_Y + 21, DWIN_WIDTH, DWIN_HEIGHT - 1);
dwinDrawRectangle(1, hmiData.colorSplitLine, 0, 449, DWIN_WIDTH, 451);
@ -1124,7 +1122,7 @@ void hmiMainMenu() {
if (hmiData.mediaAutoMount) {
card.mount();
safe_delay(800);
};
}
drawPrintFileMenu();
break;
case PAGE_PREPARE: drawPrepareMenu(); break;
@ -1759,7 +1757,7 @@ void dwinSetDataDefaults() {
#if ALL(LCD_BED_TRAMMING, HAS_BED_PROBE)
hmiData.fullManualTramming = DISABLED(BED_TRAMMING_USE_PROBE);
#endif
#if ENABLED(MEDIASORT_MENU_ITEM)
#if ENABLED(PROUI_MEDIASORT)
hmiData.mediaSort = true;
card.setSortOn(TERN(SDSORT_REVERSE, AS_REV, AS_FWD));
#endif
@ -2710,7 +2708,7 @@ void onDrawGetColorItem(MenuItem* menuitem, int8_t line) {
dwinDrawRectangle(0, hmiData.colorHighlight, ICOX + 1, MBASE(line) - 1 + 1, ICOX + 18, MBASE(line) - 1 + 18);
dwinDrawRectangle(1, color, ICOX + 2, MBASE(line) - 1 + 2, ICOX + 17, MBASE(line) - 1 + 17);
DWINUI::drawString(LBLX, MBASE(line) - 1, menuitem->caption);
drawMenuIntValue(hmiData.colorBackground, line, 4, hmiValue.Color[i]);
drawMenuIntValue(hmiData.colorBackground, line, 4, hmiValue.color[i]);
dwinDrawHLine(hmiData.colorSplitLine, 16, MYPOS(line + 1), 240);
}
@ -2976,10 +2974,6 @@ void onDrawAcc(MenuItem* menuitem, int8_t line) {
#endif
#if HAS_ONESTEP_LEVELING
void onDrawManualTramming(MenuItem* menuitem, int8_t line) { onDrawChkbMenu(menuitem, line, hmiData.fullManualTramming); }
#endif
// Menu Creation and Drawing functions ======================================================
frame_rect_t selrect(frame_rect_t) {
@ -3130,7 +3124,7 @@ void drawAdvancedSettingsMenu() {
#if HAS_GCODE_PREVIEW
EDIT_ITEM(ICON_File, MSG_HAS_PREVIEW, onDrawChkbMenu, setPreview, &hmiData.enablePreview);
#endif
#if ENABLED(MEDIASORT_MENU_ITEM)
#if ENABLED(PROUI_MEDIASORT)
EDIT_ITEM(ICON_File, MSG_MEDIA_SORT, onDrawChkbMenu, setMediaSort, &hmiData.mediaSort);
#endif
EDIT_ITEM(ICON_File, MSG_MEDIA_UPDATE, onDrawChkbMenu, setMediaAutoMount, &hmiData.mediaAutoMount);
@ -3323,16 +3317,16 @@ void drawTuneMenu() {
#if HAS_FILAMENT_SENSOR
EDIT_ITEM(ICON_Runout, MSG_RUNOUT_ENABLE, onDrawChkbMenu, setRunoutEnable, &runout.enabled);
#endif
#if ENABLED(PLR_TUNE_ITEM)
#if ENABLED(PROUI_ITEM_PLR)
EDIT_ITEM(ICON_Pwrlossr, MSG_OUTAGE_RECOVERY, onDrawChkbMenu, setPwrLossr, &recovery.enabled);
#endif
#if ENABLED(FWRETRACT)
MENU_ITEM(ICON_FWRetract, MSG_FWRETRACT, onDrawSubMenu, drawFWRetractMenu);
#endif
#if ENABLED(JD_TUNE_ITEM)
#if ENABLED(PROUI_ITEM_JD)
EDIT_ITEM(ICON_JDmm, MSG_JUNCTION_DEVIATION, onDrawPFloat3Menu, setJDmm, &planner.junction_deviation_mm);
#endif
#if ENABLED(ADVK_TUNE_ITEM)
#if ENABLED(PROUI_ITEM_ADVK)
EDIT_ITEM(ICON_MaxAccelerated, MSG_ADVANCE_K, onDrawPFloat3Menu, setLA_K, &planner.extruder_advance_K[0]);
#endif
#if HAS_LOCKSCREEN
@ -3669,24 +3663,24 @@ void drawStepsMenu() {
void selColor() {
menuData.intPtr = (int16_t*)static_cast<MenuItemPtr*>(currentMenu->selectedItem())->value;
hmiValue.Color[0] = GetRColor(*menuData.intPtr); // Red
hmiValue.Color[1] = GetGColor(*menuData.intPtr); // Green
hmiValue.Color[2] = GetBColor(*menuData.intPtr); // Blue
hmiValue.color.r = GetRColor(*menuData.intPtr); // Red
hmiValue.color.g = GetGColor(*menuData.intPtr); // Green
hmiValue.color.b = GetBColor(*menuData.intPtr); // Blue
drawGetColorMenu();
}
void liveRGBColor() {
hmiValue.Color[currentMenu->line() - 2] = menuData.value;
uint16_t color = RGB(hmiValue.Color[0], hmiValue.Color[1], hmiValue.Color[2]);
hmiValue.color[currentMenu->line() - 2] = menuData.value;
const uint16_t color = RGB(hmiValue.color.r, hmiValue.color.g, hmiValue.color.b);
dwinDrawRectangle(1, color, 20, 315, DWIN_WIDTH - 20, 335);
}
void setRGBColor() {
const uint8_t color = static_cast<MenuItem*>(currentMenu->selectedItem())->icon;
setIntOnClick(0, (color == 1) ? 63 : 31, hmiValue.Color[color], nullptr, liveRGBColor);
setIntOnClick(0, (color == 1) ? 63 : 31, hmiValue.color[color], nullptr, liveRGBColor);
}
void dwinApplyColor() {
*menuData.intPtr = RGB(hmiValue.Color[0], hmiValue.Color[1], hmiValue.Color[2]);
*menuData.intPtr = RGB(hmiValue.color.r, hmiValue.color.g, hmiValue.color.b);
DWINUI::setColors(hmiData.colorText, hmiData.colorBackground, hmiData.colorStatusBg);
drawSelectColorsMenu();
hash_changed = true;
@ -3952,16 +3946,13 @@ void drawStepsMenu() {
void setBedLevT() { setPIntOnClick(MIN_BEDTEMP, MAX_BEDTEMP); }
#endif
#if ENABLED(MESH_EDIT_MENU)
#define Z_OFFSET_MIN -3
#define Z_OFFSET_MAX 3
void LiveEditMesh() { ((MenuItemPtr*)editZValueItem)->value = &bedlevel.z_values[hmiValue.select ? bedLevelTools.mesh_x : menuData.value][hmiValue.select ? menuData.value : bedLevelTools.mesh_y]; editZValueItem->redraw(); }
#if ENABLED(PROUI_MESH_EDIT)
void liveEditMesh() { ((MenuItemPtr*)editZValueItem)->value = &bedlevel.z_values[hmiValue.select ? bedLevelTools.mesh_x : menuData.value][hmiValue.select ? menuData.value : bedLevelTools.mesh_y]; editZValueItem->redraw(); }
void applyEditMeshX() { bedLevelTools.mesh_x = menuData.value; }
void applyEditMeshY() { bedLevelTools.mesh_y = menuData.value; }
void ResetMesh() { bedLevelTools.meshReset(); LCD_MESSAGE(MSG_MESH_RESET); }
void setEditMeshX() { hmiValue.select = 0; setIntOnClick(0, GRID_MAX_POINTS_X - 1, bedLevelTools.mesh_x, applyEditMeshX, LiveEditMesh); }
void setEditMeshY() { hmiValue.select = 1; setIntOnClick(0, GRID_MAX_POINTS_Y - 1, bedLevelTools.mesh_y, applyEditMeshY, LiveEditMesh); }
void resetMesh() { bedLevelTools.meshReset(); LCD_MESSAGE(MSG_MESH_RESET); }
void setEditMeshX() { hmiValue.select = 0; setIntOnClick(0, GRID_MAX_POINTS_X - 1, bedLevelTools.mesh_x, applyEditMeshX, liveEditMesh); }
void setEditMeshY() { hmiValue.select = 1; setIntOnClick(0, GRID_MAX_POINTS_Y - 1, bedLevelTools.mesh_y, applyEditMeshY, liveEditMesh); }
void setEditZValue() { setPFloatOnClick(Z_OFFSET_MIN, Z_OFFSET_MAX, 3); }
#endif
@ -4029,8 +4020,8 @@ void drawStepsMenu() {
MENU_ITEM(ICON_UBLTiltGrid, MSG_UBL_TILT_MESH, onDrawMenuItem, ublMeshTilt);
MENU_ITEM(ICON_UBLSmartFill, MSG_UBL_SMART_FILLIN, onDrawMenuItem, ublSmartFillMesh);
#endif
#if ENABLED(MESH_EDIT_MENU)
MENU_ITEM(ICON_MeshReset, MSG_MESH_RESET, onDrawMenuItem, ResetMesh);
#if ENABLED(PROUI_MESH_EDIT)
MENU_ITEM(ICON_MeshReset, MSG_MESH_RESET, onDrawMenuItem, resetMesh);
MENU_ITEM(ICON_MeshEdit, MSG_EDIT_MESH, onDrawSubMenu, drawEditMeshMenu);
#endif
MENU_ITEM(ICON_MeshViewer, MSG_MESH_VIEW, onDrawSubMenu, dwinMeshViewer);
@ -4038,7 +4029,7 @@ void drawStepsMenu() {
updateMenu(meshMenu);
}
#if ENABLED(MESH_EDIT_MENU)
#if ENABLED(PROUI_MESH_EDIT)
void drawEditMeshMenu() {
if (!leveling_is_valid()) { LCD_MESSAGE(MSG_UBL_MESH_INVALID); return; }
set_bed_leveling_enabled(false);

View file

@ -134,9 +134,12 @@ typedef struct {
#if ENABLED(BAUD_RATE_GCODE)
bool baud115K = false;
#endif
#if ALL(LCD_BED_TRAMMING, HAS_BED_PROBE)
bool fullManualTramming = false;
#endif
#if ENABLED(PROUI_MEDIASORT)
bool mediaSort = true;
#endif
bool mediaAutoMount = ENABLED(HAS_SD_EXTENDER);
#if ALL(INDIVIDUAL_AXIS_HOMING_SUBMENU, MESH_BED_LEVELING)
uint8_t zAfterHoming = DEF_Z_AFTER_HOMING;
@ -144,15 +147,32 @@ typedef struct {
#if ALL(LED_CONTROL_MENU, HAS_COLOR_LEDS)
LEDColor ledColor = defColorLeds;
#endif
#if ENABLED(ADAPTIVE_STEP_SMOOTHING)
bool adaptiveStepSmoothing = true;
#endif
#if HAS_GCODE_PREVIEW
bool enablePreview = true;
#endif
} hmi_data_t;
extern hmi_data_t hmiData;
static constexpr size_t eeprom_data_size = sizeof(hmi_data_t);
typedef struct {
int8_t Color[3]; // Color components
int8_t r, g, b;
void set(int8_t _r, int8_t _g, int8_t _b) { r = _r; g = _g; b = _b; }
int8_t& operator[](const int i) {
switch (i) {
default:
case 0: return r;
case 1: return g;
case 2: return b;
}
}
} rgb_t;
typedef struct {
rgb_t color; // Color
#if ANY(PROUI_PID_TUNE, MPCTEMP)
tempcontrol_t tempControl = AUTOTUNE_DONE;
#endif
@ -336,7 +356,7 @@ void drawStepsMenu();
#endif
#if HAS_MESH
void drawMeshSetMenu();
#if ENABLED(MESH_EDIT_MENU)
#if ENABLED(PROUI_MESH_EDIT)
void drawEditMeshMenu();
#endif
#endif

View file

@ -28,6 +28,16 @@
* Date: 2022/08/08
*/
#include "../../../inc/MarlinConfigPre.h"
#if HAS_MESH
#define PROUI_MESH_EDIT // Add a menu to edit mesh points
#if ENABLED(PROUI_MESH_EDIT)
#define Z_OFFSET_MIN -3.0 // (mm)
#define Z_OFFSET_MAX 3.0 // (mm)
#endif
#endif
#if defined(__STM32F1__) || defined(STM32F1)
#define DASH_REDRAW 1
#endif
@ -78,3 +88,26 @@
#define DEF_BEDPIDT TERN(PREHEAT_1_TEMP_BED, PREHEAT_1_TEMP_HOTEND, 60)
#define DEF_PIDCYCLES 5
/**
* ProUI internal feature flags
*/
#if ALL(SDCARD_SORT_ALPHA, SDSORT_GCODE)
#define PROUI_MEDIASORT // Enable option to sort G-code files
#endif
#if ENABLED(POWER_LOSS_RECOVERY)
#define PROUI_ITEM_PLR // Tune > Power-loss Recovery
#endif
#if ENABLED(HAS_JUNCTION_DEVIATION)
#define PROUI_ITEM_JD // Tune > Junction Deviation
#endif
#if ENABLED(LIN_ADVANCE)
#define PROUI_ITEM_ADVK // Tune > Linear Advance
#endif
#if ANY(PROUI_PID_TUNE, MPC_AUTOTUNE) && DISABLED(DISABLE_TUNING_GRAPH)
#define PROUI_TUNING_GRAPH 1
#endif
#define HAS_GCODE_PREVIEW 1 // Preview G-code model thumbnail
#define HAS_CUSTOM_COLORS 1 // Change display colors
#define HAS_ESDIAG 1 // View End-stop/Runout switch continuity
#define HAS_LOCKSCREEN 1 // Simple lockscreen
#define HAS_SD_EXTENDER 1 // Enable to support SD card extender cables

View file

@ -41,10 +41,10 @@ popupDrawFunc_t popupDraw = nullptr;
popupClickFunc_t popupClick = nullptr;
popupChangeFunc_t popupChange = nullptr;
uint16_t HighlightYPos = 280;
uint16_t highlightY = 280;
void drawSelectHighlight(const bool sel, const uint16_t ypos) {
HighlightYPos = ypos;
highlightY = ypos;
hmiFlag.select_flag = sel;
const uint16_t c1 = sel ? hmiData.colorHighlight : hmiData.colorPopupBg,
c2 = sel ? hmiData.colorPopupBg : hmiData.colorHighlight;
@ -86,7 +86,7 @@ void hmiPopup() {
EncoderState encoder_diffState = get_encoder_state();
if (encoder_diffState == ENCODER_DIFF_CW || encoder_diffState == ENCODER_DIFF_CCW) {
const bool change = encoder_diffState != ENCODER_DIFF_CW;
if (popupChange) popupChange(change); else drawSelectHighlight(change, HighlightYPos);
if (popupChange) popupChange(change); else drawSelectHighlight(change, highlightY);
dwinUpdateLCD();
}
}

View file

@ -195,15 +195,18 @@
#define UNITFDIGITS 1
#define MINUNITMULT POW(10, UNITFDIGITS)
constexpr uint8_t TITLE_HEIGHT = 30, // Title bar height
MLINE = 53, // Menu line height
TROWS = (STATUS_Y - TITLE_HEIGHT) / MLINE, // Total rows
MROWS = TROWS - 1, // Other-than-Back
ICOX = 26, // Menu item icon X position
LBLX = 55, // Menu item label X position
VALX = 210, // Menu item value X position
MENU_CHR_W = 8, MENU_CHR_H = 16, // Menu font 8x16
STAT_CHR_W = 10;
/**
* @brief Menu Line Spacing
*/
constexpr uint8_t TITLE_HEIGHT = 30, //< Title bar height
MLINE = 53, //< Menu line height
TROWS = (STATUS_Y - TITLE_HEIGHT) / MLINE, //< Total rows
MROWS = TROWS - 1, //< Other-than-Back
ICOX = 26, //< Menu item icon X position
LBLX = 55, //< Menu item label X position
VALX = 210, //< Menu item value X position
MENU_CHR_W = 8, MENU_CHR_H = 16, //< Menu font 8x16
STAT_CHR_W = 10; //< Menu Stats character width
// Menuitem Y position
#define MYPOS(L) (TITLE_HEIGHT + MLINE * (L))

View file

@ -29,11 +29,13 @@
#include "../../../inc/MarlinConfigPre.h"
#if ALL(DWIN_LCD_PROUI, HAS_ESDIAG)
#if ENABLED(DWIN_LCD_PROUI)
#include "dwin_defines.h"
#if HAS_ESDIAG
#include "endstop_diag.h"
#include "../../../core/types.h"
#include "../../marlinui.h"
#include "dwin.h"
#include "dwin_popup.h"
@ -87,4 +89,5 @@ void ESDiag::update() {
dwinUpdateLCD();
}
#endif // DWIN_LCD_PROUI && HAS_ESDIAG
#endif // HAS_ESDIAG
#endif // DWIN_LCD_PROUI

View file

@ -29,11 +29,14 @@
#include "../../../inc/MarlinConfigPre.h"
#if ALL(DWIN_LCD_PROUI, HAS_GCODE_PREVIEW)
#if ENABLED(DWIN_LCD_PROUI)
#include "dwin_defines.h"
#if HAS_GCODE_PREVIEW
#include "gcode_preview.h"
#include "../../../core/types.h"
#include "../../marlinui.h"
#include "../../../sd/cardreader.h"
#include "../../../MarlinCore.h" // for wait_for_user
@ -226,4 +229,5 @@ void Preview::show() {
dwinIconShow(xpos, ypos, 0x00);
}
#endif // DWIN_LCD_PROUI && HAS_GCODE_PREVIEW
#endif // HAS_GCODE_PREVIEW
#endif // DWIN_LCD_PROUI

View file

@ -29,10 +29,12 @@
#include "../../../inc/MarlinConfigPre.h"
#if ALL(DWIN_LCD_PROUI, HAS_LOCKSCREEN)
#if ENABLED(DWIN_LCD_PROUI)
#include "dwin_defines.h"
#include "dwinui.h"
#if HAS_LOCKSCREEN
#include "dwin.h"
#include "lockscreen.h"
@ -72,4 +74,5 @@ void LockScreen::onEncoder(EncoderState encoder_diffState) {
dwinUpdateLCD();
}
#endif // DWIN_LCD_PROUI && HAS_LOCKSCREEN
#endif // HAS_LOCKSCREEN
#endif // DWIN_LCD_PROUI

View file

@ -29,10 +29,13 @@
#include "../../../inc/MarlinConfig.h"
#if ALL(DWIN_LCD_PROUI, PROUI_TUNING_GRAPH)
#if ENABLED(DWIN_LCD_PROUI)
#include "dwin_defines.h"
#if PROUI_TUNING_GRAPH
#include "dwin.h"
#include "../../../core/types.h"
#include "../../marlinui.h"
#include "plot.h"
@ -75,4 +78,5 @@ void Plot::update(const_float_t value) {
#endif
}
#endif // DWIN_LCD_PROUI && PROUI_TUNING_GRAPH
#endif // PROUI_TUNING_GRAPH
#endif // DWIN_LCD_PROUI