summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/gui/scrollbar.c20
-rw-r--r--apps/gui/scrollbar.h1
-rw-r--r--apps/onplay.c23
3 files changed, 43 insertions, 1 deletions
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,
241#endif 241#endif
242 } 242 }
243} 243}
244
245void show_busy_slider(struct screen *s, int x, int y, int width, int height)
246{
247 static int start = 0, dir = 1;
248 gui_scrollbar_draw(s, x, y, width, height, 100,
249 start, start+20, HORIZONTAL);
250#if NB_SCREENS > 1
251 if (s->screen_type == SCREEN_MAIN)
252 {
253#endif
254 start += (dir*2);
255 if (start > 79)
256 dir = -1;
257 else if (start < 1)
258 dir = 1;
259#if NB_SCREENS > 1
260 }
261#endif
262}
263
244#endif /* HAVE_LCD_BITMAP */ 264#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,
55 int width, int height, int items, 55 int width, int height, int items,
56 int min_shown, int max_shown, 56 int min_shown, int max_shown,
57 unsigned flags); 57 unsigned flags);
58extern void show_busy_slider(struct screen *s, int x, int y, int width, int height);
58#endif /* HAVE_LCD_BITMAP */ 59#endif /* HAVE_LCD_BITMAP */
59#endif /* _GUI_SCROLLBAR_H_ */ 60#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)
487 } 487 }
488 else 488 else
489 { /* remove a file */ 489 { /* remove a file */
490#ifdef HAVE_LCD_BITMAP
490 FOR_NB_SCREENS(i) 491 FOR_NB_SCREENS(i)
491 screens[i].puts_scroll(0,2,entry->d_name); 492 {
493 show_busy_slider(&screens[i], 2, 3*screens[i].char_height,
494 LCD_WIDTH-4, screens[i].char_height);
495 }
496#endif
492 result = remove(dirname); 497 result = remove(dirname);
493 } 498 }
494#ifdef HAVE_LCD_BITMAP 499#ifdef HAVE_LCD_BITMAP
@@ -661,6 +666,21 @@ static bool clipboard_copy(void)
661 return clipboard_clip(true); 666 return clipboard_clip(true);
662} 667}
663 668
669#ifdef HAVE_LCD_BITMAP
670static inline void draw_slider(void)
671{
672 int i;
673 FOR_NB_SCREENS(i)
674 {
675 show_busy_slider(&screens[i], 2, LCD_HEIGHT/4,
676 LCD_WIDTH-4, screens[i].char_height);
677 screens[i].update();
678 }
679}
680#else
681#define draw_slider()
682#endif
683
664/* Paste a file to a new directory. Will overwrite always. */ 684/* Paste a file to a new directory. Will overwrite always. */
665static bool clipboard_pastefile(const char *src, const char *target, bool copy) 685static bool clipboard_pastefile(const char *src, const char *target, bool copy)
666{ 686{
@@ -721,6 +741,7 @@ static bool clipboard_pastefile(const char *src, const char *target, bool copy)
721 } 741 }
722 742
723 bytesread -= byteswritten; 743 bytesread -= byteswritten;
744 draw_slider();
724 } 745 }
725 } 746 }
726 747