Browse Source

For status scrolling, pad a short message

pull/1/head
Scott Lahteine 8 years ago
parent
commit
4296a8b74e
  1. 34
      Marlin/ultralcd.cpp

34
Marlin/ultralcd.cpp

@ -4154,24 +4154,28 @@ void lcd_update() {
} // ELAPSED(ms, next_lcd_update_ms) } // ELAPSED(ms, next_lcd_update_ms)
} }
#if DISABLED(STATUS_MESSAGE_SCROLLING) void pad_message_string() {
uint8_t i = 0, j = 0;
void set_utf_strlen(char* s, uint8_t n) { char c;
uint8_t i = 0, j = 0; while ((c = lcd_status_message[i]) && j < LCD_WIDTH) {
while (s[i] && (j < n)) { if (PRINTABLE(c)) j++;
if (PRINTABLE(s[i])) j++; i++;
i++;
}
while (j++ < n) s[i++] = ' ';
s[i] = '\0';
} }
if (true
#endif // !STATUS_MESSAGE_SCROLLING #if ENABLED(STATUS_MESSAGE_SCROLLING)
&& j < LCD_WIDTH
#endif
) {
// pad with spaces to fill up the line
while (j++ < LCD_WIDTH) lcd_status_message[i++] = ' ';
// chop off at the edge
lcd_status_message[i] = '\0';
}
}
void lcd_finishstatus(bool persist=false) { void lcd_finishstatus(bool persist=false) {
#if DISABLED(STATUS_MESSAGE_SCROLLING)
set_utf_strlen(lcd_status_message, LCD_WIDTH); pad_message_string();
#endif
#if !(ENABLED(LCD_PROGRESS_BAR) && (PROGRESS_MSG_EXPIRE > 0)) #if !(ENABLED(LCD_PROGRESS_BAR) && (PROGRESS_MSG_EXPIRE > 0))
UNUSED(persist); UNUSED(persist);

Loading…
Cancel
Save