For status scrolling, pad a short message
This commit is contained in:
parent
4a96433b7e
commit
4296a8b74e
1 changed files with 19 additions and 15 deletions
|
@ -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…
Reference in a new issue