diff --git a/apps/gui/scrollbar.c b/apps/gui/scrollbar.c index b9038d902b..e2e70fd9fb 100644 --- a/apps/gui/scrollbar.c +++ b/apps/gui/scrollbar.c @@ -241,4 +241,24 @@ void gui_bitmap_scrollbar_draw(struct screen * screen, struct bitmap bm, int x, #endif } } + +void show_busy_slider(struct screen *s, int x, int y, int width, int height) +{ + static int start = 0, dir = 1; + gui_scrollbar_draw(s, x, y, width, height, 100, + start, start+20, HORIZONTAL); +#if NB_SCREENS > 1 + if (s->screen_type == SCREEN_MAIN) + { +#endif + start += (dir*2); + if (start > 79) + dir = -1; + else if (start < 1) + dir = 1; +#if NB_SCREENS > 1 + } +#endif +} + #endif /* HAVE_LCD_BITMAP */ diff --git a/apps/gui/scrollbar.h b/apps/gui/scrollbar.h index 40279a1a9d..9e60730de0 100644 --- a/apps/gui/scrollbar.h +++ b/apps/gui/scrollbar.h @@ -55,5 +55,6 @@ extern void gui_bitmap_scrollbar_draw(struct screen * screen, struct bitmap bm, int width, int height, int items, int min_shown, int max_shown, unsigned flags); +extern void show_busy_slider(struct screen *s, int x, int y, int width, int height); #endif /* HAVE_LCD_BITMAP */ #endif /* _GUI_SCROLLBAR_H_ */ diff --git a/apps/onplay.c b/apps/onplay.c index ea73dbbada..f09913e312 100644 --- a/apps/onplay.c +++ b/apps/onplay.c @@ -487,8 +487,13 @@ static int remove_dir(char* dirname, int len) } else { /* remove a file */ +#ifdef HAVE_LCD_BITMAP FOR_NB_SCREENS(i) - screens[i].puts_scroll(0,2,entry->d_name); + { + show_busy_slider(&screens[i], 2, 3*screens[i].char_height, + LCD_WIDTH-4, screens[i].char_height); + } +#endif result = remove(dirname); } #ifdef HAVE_LCD_BITMAP @@ -661,6 +666,21 @@ static bool clipboard_copy(void) return clipboard_clip(true); } +#ifdef HAVE_LCD_BITMAP +static inline void draw_slider(void) +{ + int i; + FOR_NB_SCREENS(i) + { + show_busy_slider(&screens[i], 2, LCD_HEIGHT/4, + LCD_WIDTH-4, screens[i].char_height); + screens[i].update(); + } +} +#else +#define draw_slider() +#endif + /* Paste a file to a new directory. Will overwrite always. */ static bool clipboard_pastefile(const char *src, const char *target, bool copy) { @@ -721,6 +741,7 @@ static bool clipboard_pastefile(const char *src, const char *target, bool copy) } bytesread -= byteswritten; + draw_slider(); } }