Browse Source

💄 MarlinUI+DOGM leveled bed bitmaps (#23539)

Taylor Talkington 3 years ago
parent
commit
3315ff8856
2 changed files with 40 additions and 1 deletions
  1. 29 0
      Marlin/src/lcd/dogm/status/bed.h
  2. 11 1
      Marlin/src/lcd/dogm/status_screen_DOGM.cpp

+ 29 - 0
Marlin/src/lcd/dogm/status/bed.h

@@ -42,6 +42,18 @@
     B00000011,B11111111,B11111111
   };
 
+  #if HAS_LEVELING
+    const unsigned char status_bed_leveled_bmp[] PROGMEM = {
+      B11111111,B11111111,B11001110,
+      B01000000,B00100000,B00100100,
+      B00100000,B00010000,B00010000,
+      B00011111,B11111111,B11111000,
+      B00001000,B00000100,B00000100,
+      B00100100,B00000010,B00000010,
+      B01110011,B11111111,B11111111
+    };
+  #endif
+
   const unsigned char status_bed_on_bmp[] PROGMEM = {
     B00000010,B00100010,B00000000,
     B00000100,B01000100,B00000000,
@@ -57,6 +69,23 @@
     B00000011,B11111111,B11111111
   };
 
+  #if HAS_LEVELING
+    const unsigned char status_bed_leveled_on_bmp[] PROGMEM = {
+      B00000010,B00100010,B00000000,
+      B00000100,B01000100,B00000000,
+      B00000100,B01000100,B00000000,
+      B00000010,B00100010,B00000000,
+      B00000001,B00010001,B00000000,
+      B11111111,B11111111,B11001110,
+      B01000000,B10101000,B10100100,
+      B00100001,B00010001,B00010000,
+      B00011111,B11111111,B11111000,
+      B00001000,B00000100,B00000100,
+      B00100100,B00000010,B00000010,
+      B01110011,B11111111,B11111111
+    };
+  #endif
+
 #else
 
   #define STATUS_BED_WIDTH  21

+ 11 - 1
Marlin/src/lcd/dogm/status_screen_DOGM.cpp

@@ -49,6 +49,10 @@
   #include "../../module/planner.h"
 #endif
 
+#if HAS_LEVELING
+  #include "../../module/planner.h"
+#endif
+
 #if HAS_CUTTER
   #include "../../feature/spindle_laser.h"
 #endif
@@ -602,7 +606,13 @@ void MarlinUI::draw_status_screen() {
 
   #if DO_DRAW_BED && DISABLED(STATUS_COMBINE_HEATERS)
     #if ANIM_BED
-      #define BED_BITMAP(S) ((S) ? status_bed_on_bmp : status_bed_bmp)
+      #if BOTH(HAS_LEVELING, STATUS_ALT_BED_BITMAP)
+        #define BED_BITMAP(S) ((S) \
+          ? (planner.leveling_active ? status_bed_leveled_on_bmp : status_bed_on_bmp) \
+          : (planner.leveling_active ? status_bed_leveled_bmp : status_bed_bmp))
+      #else
+        #define BED_BITMAP(S) ((S) ? status_bed_on_bmp : status_bed_bmp)
+      #endif
     #else
       #define BED_BITMAP(S) status_bed_bmp
     #endif