Add SCROLL_LONG_FILENAMES option

This commit is contained in:
Scott Lahteine
2017-10-18 22:15:33 -05:00
parent 9e5cbf0198
commit 783ddf9691
37 changed files with 204 additions and 45 deletions

View File

@@ -76,12 +76,16 @@ int16_t lcd_preheat_hotend_temp[2], lcd_preheat_bed_temp[2], lcd_preheat_fan_spe
#endif
#endif
uint8_t lcd_status_message_level;
uint8_t lcd_status_update_delay = 1, // First update one loop delayed
lcd_status_message_level; // Higher level overrides lower
char lcd_status_message[3 * (LCD_WIDTH) + 1] = WELCOME_MSG; // worst case is kana with up to 3*LCD_WIDTH+1
#if ENABLED(STATUS_MESSAGE_SCROLLING)
uint8_t status_scroll_pos = 0;
#endif
#if ENABLED(SCROLL_LONG_FILENAMES)
uint8_t filename_scroll_pos, filename_scroll_max, filename_scroll_hash;
#endif
#if ENABLED(LCD_SET_PROGRESS_MANUALLY)
uint8_t progress_bar_percent;
@@ -4665,7 +4669,6 @@ void lcd_update() {
// We arrive here every ~100ms when idling often enough.
// Instead of tracking the changes simply redraw the Info Screen ~1 time a second.
static int8_t lcd_status_update_delay = 1; // first update one loop delayed
if (
#if ENABLED(ULTIPANEL)
currentScreen == lcd_status_screen &&
@@ -4681,6 +4684,17 @@ void lcd_update() {
lcdDrawUpdate = LCDVIEW_REDRAW_NOW;
}
#if ENABLED(SCROLL_LONG_FILENAMES)
// If scrolling of long file names is enabled and we are in the sd card menu,
// cause a refresh to occur until all the text has scrolled into view.
if (currentScreen == lcd_sdcard_menu && filename_scroll_pos < filename_scroll_max && !lcd_status_update_delay--) {
lcd_status_update_delay = 6;
lcdDrawUpdate = LCDVIEW_REDRAW_NOW;
filename_scroll_pos++;
return_to_status_ms = ms + LCD_TIMEOUT_TO_STATUS;
}
#endif
// then we want to use 1/2 of the time only.
uint16_t bbr2 = planner.block_buffer_runtime() >> 1;
@@ -4765,7 +4779,7 @@ void lcd_update() {
} // ELAPSED(ms, next_lcd_update_ms)
}
void pad_message_string() {
inline void pad_message_string() {
uint8_t i = 0, j = 0;
char c;
while ((c = lcd_status_message[i]) && j < LCD_WIDTH) {