Browse Source

🎨 MarlinUI for E3V2 tweaks

Scott Lahteine 4 years ago
parent
commit
521fda0235

+ 2
- 8
Marlin/src/lcd/e3v2/creality/dwin.cpp View File

579
 }
579
 }
580
 
580
 
581
 void DWIN_Draw_Signed_Float(uint8_t size, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
581
 void DWIN_Draw_Signed_Float(uint8_t size, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
582
-  if (value < 0) {
583
-    DWIN_Draw_String(true, size, Color_White, bColor, x - 8, y, F("-"));
584
-    DWIN_Draw_FloatValue(true, true, 0, size, Color_White, bColor, iNum, fNum, x, y, -value);
585
-  }
586
-  else {
587
-    DWIN_Draw_String(true, size, Color_White, bColor, x - 8, y, F(" "));
588
-    DWIN_Draw_FloatValue(true, true, 0, size, Color_White, bColor, iNum, fNum, x, y, value);
589
-  }
582
+  DWIN_Draw_String(true, size, Color_White, bColor, x - 8, y, value < 0 ? F("-") : F(" "));
583
+  DWIN_Draw_FloatValue(true, true, 0, size, Color_White, bColor, iNum, fNum, x, y, value < 0 ? -value : value);
590
 }
584
 }
591
 
585
 
592
 void Draw_Edit_Integer3(const uint8_t row, const uint16_t value, const bool active=false) {
586
 void Draw_Edit_Integer3(const uint8_t row, const uint16_t value, const bool active=false) {

+ 0
- 1
Marlin/src/lcd/e3v2/marlinui/dwin_lcd.h View File

67
 
67
 
68
 #define DWIN_FONT_MENU  font10x20
68
 #define DWIN_FONT_MENU  font10x20
69
 #define DWIN_FONT_STAT  font14x28
69
 #define DWIN_FONT_STAT  font14x28
70
-#define DWIN_FONT_HEAD  font10x20
71
 #define DWIN_FONT_ALERT font14x28
70
 #define DWIN_FONT_ALERT font14x28
72
 
71
 
73
 // Color
72
 // Color

+ 5
- 5
Marlin/src/lcd/e3v2/marlinui/dwin_string.cpp View File

47
  *   ~ displays  '1'....'11' for indexes 0 - 10
47
  *   ~ displays  '1'....'11' for indexes 0 - 10
48
  *   * displays 'E1'...'E11' for indexes 0 - 10 (By default. Uses LCD_FIRST_TOOL)
48
  *   * displays 'E1'...'E11' for indexes 0 - 10 (By default. Uses LCD_FIRST_TOOL)
49
  */
49
  */
50
-void DWIN_String::add(uint8_t *string, int8_t index, uint8_t *itemString) {
50
+void DWIN_String::add(uint8_t *string, const int8_t index, uint8_t *itemString/*=nullptr*/) {
51
   wchar_t wchar;
51
   wchar_t wchar;
52
 
52
 
53
   while (*string) {
53
   while (*string) {
127
   if (str[1]) add_character(str[1]);
127
   if (str[1]) add_character(str[1]);
128
 }
128
 }
129
 
129
 
130
-void DWIN_String::add_character(uint8_t character) {
130
+void DWIN_String::add_character(const uint8_t character) {
131
   if (len < MAX_STRING_LENGTH) {
131
   if (len < MAX_STRING_LENGTH) {
132
     data[len] = character;
132
     data[len] = character;
133
     len++;
133
     len++;
135
   }
135
   }
136
 }
136
 }
137
 
137
 
138
-void DWIN_String::rtrim(uint8_t character) {
138
+void DWIN_String::rtrim(const uint8_t character) {
139
   while (len) {
139
   while (len) {
140
     if (data[len - 1] == 0x20 || data[len - 1] == character) {
140
     if (data[len - 1] == 0x20 || data[len - 1] == character) {
141
       len--;
141
       len--;
147
   }
147
   }
148
 }
148
 }
149
 
149
 
150
-void DWIN_String::ltrim(uint8_t character) {
150
+void DWIN_String::ltrim(const uint8_t character) {
151
   uint16_t i, j;
151
   uint16_t i, j;
152
   for (i = 0; (i < len) && (data[i] == 0x20 || data[i] == character); i++) {
152
   for (i = 0; (i < len) && (data[i] == 0x20 || data[i] == character); i++) {
153
     //span -= glyph(data[i])->DWidth;
153
     //span -= glyph(data[i])->DWidth;
158
   eol();
158
   eol();
159
 }
159
 }
160
 
160
 
161
-void DWIN_String::trim(uint8_t character) {
161
+void DWIN_String::trim(const uint8_t character) {
162
   rtrim(character);
162
   rtrim(character);
163
   ltrim(character);
163
   ltrim(character);
164
 }
164
 }

+ 10
- 10
Marlin/src/lcd/e3v2/marlinui/dwin_string.h View File

46
     static uint16_t span;   // in pixels
46
     static uint16_t span;   // in pixels
47
     static uint8_t len;  // in characters
47
     static uint8_t len;  // in characters
48
 
48
 
49
-    static void add_character(uint8_t character);
49
+    static void add_character(const uint8_t character);
50
     static void eol() { data[len] = 0x00; }
50
     static void eol() { data[len] = 0x00; }
51
 
51
 
52
   public:
52
   public:
62
     //static void add(uint8_t character) { add_character(character); eol(); }
62
     //static void add(uint8_t character) { add_character(character); eol(); }
63
     static void add(wchar_t character);
63
     static void add(wchar_t character);
64
     static void add(uint8_t *string, uint8_t max_len=MAX_STRING_LENGTH);
64
     static void add(uint8_t *string, uint8_t max_len=MAX_STRING_LENGTH);
65
-    static void add(uint8_t *string, int8_t index, uint8_t *itemString=nullptr);
65
+    static void add(uint8_t *string, const int8_t index, uint8_t *itemString=nullptr);
66
     static void set(uint8_t *string)   { set(); add(string); }
66
     static void set(uint8_t *string)   { set(); add(string); }
67
     static void set(wchar_t character) { set(); add(character); }
67
     static void set(wchar_t character) { set(); add(character); }
68
     static void set(uint8_t *string, int8_t index, const char *itemString=nullptr) { set(); add(string, index, (uint8_t *)itemString); }
68
     static void set(uint8_t *string, int8_t index, const char *itemString=nullptr) { set(); add(string, index, (uint8_t *)itemString); }
71
     static inline void set(const char *string, int8_t index, const char *itemString=nullptr) { set((uint8_t *)string, index, itemString); }
71
     static inline void set(const char *string, int8_t index, const char *itemString=nullptr) { set((uint8_t *)string, index, itemString); }
72
     static inline void add(const char *string) { add((uint8_t *)string); }
72
     static inline void add(const char *string) { add((uint8_t *)string); }
73
 
73
 
74
-    static void trim(uint8_t character=0x20);
75
-    static void rtrim(uint8_t character=0x20);
76
-    static void ltrim(uint8_t character=0x20);
74
+    static void trim(const uint8_t character=0x20);
75
+    static void rtrim(const uint8_t character=0x20);
76
+    static void ltrim(const uint8_t character=0x20);
77
 
77
 
78
     static void truncate(uint8_t maxlen) { if (len > maxlen) { len = maxlen; eol(); } }
78
     static void truncate(uint8_t maxlen) { if (len > maxlen) { len = maxlen; eol(); } }
79
 
79
 
80
-    static uint8_t length() { return len; }
81
-    static uint16_t width() { return span; }
82
-    static uint8_t *string() { return data; }
80
+    static inline uint8_t length() { return len; }
81
+    static inline uint16_t width() { return span; }
82
+    static inline uint8_t *string() { return data; }
83
     static uint16_t center(uint16_t width) { return span > width ? 0 : (width - span) / 2; }
83
     static uint16_t center(uint16_t width) { return span > width ? 0 : (width - span) / 2; }
84
 };
84
 };
85
 
85
 
86
 int dwin_charmap_compare(dwin_charmap_t *v1, dwin_charmap_t *v2);
86
 int dwin_charmap_compare(dwin_charmap_t *v1, dwin_charmap_t *v2);
87
-int pf_bsearch_cb_comp_dwinmap_pgm(void *userdata, size_t idx, void * data_pin);
87
+int pf_bsearch_cb_comp_dwinmap_pgm(void *userdata, size_t idx, void *data_pin);
88
 
88
 
89
 extern DWIN_String dwin_string;
89
 extern DWIN_String dwin_string;
90
 
90
 
664
   #endif
664
   #endif
665
 };
665
 };
666
 
666
 
667
-// the plain ASCII replacement for various char
667
+// ASCII replacement for various characters
668
 const dwin_charmap_t g_dwin_charmap_common[] PROGMEM = {
668
 const dwin_charmap_t g_dwin_charmap_common[] PROGMEM = {
669
   {IV('¡'), 'i', 0}, // A1
669
   {IV('¡'), 'i', 0}, // A1
670
   {IV('¢'), 'c', 0}, // A2
670
   {IV('¢'), 'c', 0}, // A2

+ 7
- 9
Marlin/src/lcd/e3v2/marlinui/lcdprint_dwin.cpp View File

46
 void lcd_moveto_xy(const lcd_uint_t x, const lcd_uint_t y) { cursor.x = x; cursor.y = y; }
46
 void lcd_moveto_xy(const lcd_uint_t x, const lcd_uint_t y) { cursor.x = x; cursor.y = y; }
47
 
47
 
48
 void lcd_moveto(const lcd_uint_t col, const lcd_uint_t row) {
48
 void lcd_moveto(const lcd_uint_t col, const lcd_uint_t row) {
49
-  cursor.x = col * dwin_font.width;
50
-  cursor.y = (row * (dwin_font.height + EXTRA_ROW_HEIGHT)) + (EXTRA_ROW_HEIGHT / 2);
49
+  lcd_moveto_xy(col * dwin_font.width, row * (dwin_font.height + EXTRA_ROW_HEIGHT) + EXTRA_ROW_HEIGHT / 2);
51
 }
50
 }
52
 
51
 
53
-inline void lcd_advance_cursor() { cursor.x += dwin_font.width; }
52
+inline void lcd_advance_cursor(const uint8_t len=1) { cursor.x += len * dwin_font.width; }
54
 
53
 
55
 void lcd_put_int(const int i) {
54
 void lcd_put_int(const int i) {
56
   // TODO: Draw an int at the cursor position, advance the cursor
55
   // TODO: Draw an int at the cursor position, advance the cursor
58
 
57
 
59
 int lcd_put_dwin_string() {
58
 int lcd_put_dwin_string() {
60
   DWIN_Draw_String(dwin_font.solid, dwin_font.index, dwin_font.fg, dwin_font.bg, cursor.x, cursor.y, (char*)dwin_string.string());
59
   DWIN_Draw_String(dwin_font.solid, dwin_font.index, dwin_font.fg, dwin_font.bg, cursor.x, cursor.y, (char*)dwin_string.string());
61
-  cursor.x += dwin_string.length() * dwin_font.width;
60
+  lcd_advance_cursor(dwin_string.length());
62
   return dwin_string.length();
61
   return dwin_string.length();
63
 }
62
 }
64
 
63
 
65
 // return < 0 on error
64
 // return < 0 on error
66
 // return the advanced cols
65
 // return the advanced cols
67
 int lcd_put_wchar_max(wchar_t c, pixel_len_t max_length) {
66
 int lcd_put_wchar_max(wchar_t c, pixel_len_t max_length) {
68
-  dwin_string.set();
69
-  dwin_string.add(c);
67
+  dwin_string.set(c);
70
   dwin_string.truncate(max_length);
68
   dwin_string.truncate(max_length);
71
   // Draw the char(s) at the cursor and advance the cursor
69
   // Draw the char(s) at the cursor and advance the cursor
72
   DWIN_Draw_String(dwin_font.solid, dwin_font.index, dwin_font.fg, dwin_font.bg, cursor.x, cursor.y, (char*)dwin_string.string());
70
   DWIN_Draw_String(dwin_font.solid, dwin_font.index, dwin_font.fg, dwin_font.bg, cursor.x, cursor.y, (char*)dwin_string.string());
73
-  cursor.x += dwin_string.length() * dwin_font.width;
71
+  lcd_advance_cursor(dwin_string.length());
74
   return dwin_string.length();
72
   return dwin_string.length();
75
 }
73
 }
76
 
74
 
95
     dwin_string.add(ch);
93
     dwin_string.add(ch);
96
   }
94
   }
97
   DWIN_Draw_String(dwin_font.solid, dwin_font.index, dwin_font.fg, dwin_font.bg, cursor.x, cursor.y, (char*)dwin_string.string());
95
   DWIN_Draw_String(dwin_font.solid, dwin_font.index, dwin_font.fg, dwin_font.bg, cursor.x, cursor.y, (char*)dwin_string.string());
98
-  cursor.x += dwin_string.length() * dwin_font.width;
96
+  lcd_advance_cursor(dwin_string.length());
99
   return dwin_string.length();
97
   return dwin_string.length();
100
 }
98
 }
101
 
99
 
112
   dwin_string.add((uint8_t*)pstr, ind, (uint8_t*)inStr);
110
   dwin_string.add((uint8_t*)pstr, ind, (uint8_t*)inStr);
113
   dwin_string.truncate(maxlen);
111
   dwin_string.truncate(maxlen);
114
   DWIN_Draw_String(dwin_font.solid, dwin_font.index, dwin_font.fg, dwin_font.bg, cursor.x, cursor.y, (char*)dwin_string.string());
112
   DWIN_Draw_String(dwin_font.solid, dwin_font.index, dwin_font.fg, dwin_font.bg, cursor.x, cursor.y, (char*)dwin_string.string());
115
-  cursor.x += dwin_string.length() * dwin_font.width;
113
+  lcd_advance_cursor(dwin_string.length());
116
   return dwin_string.length();
114
   return dwin_string.length();
117
 }
115
 }
118
 
116
 

Loading…
Cancel
Save