summaryrefslogtreecommitdiff
path: root/apps/gui/bitmap/list.c
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-09-23 00:37:33 +0000
committerThomas Martitz <kugel@rockbox.org>2010-09-23 00:37:33 +0000
commitf060cd5428c7a1959bd4bf6c5a22266b836004b1 (patch)
treea6782c28a614aca2f9b6e182374ac574222a3214 /apps/gui/bitmap/list.c
parente5d43300affb49cd355c2bb38edeec5b16a89388 (diff)
downloadrockbox-f060cd5428c7a1959bd4bf6c5a22266b836004b1.tar.gz
rockbox-f060cd5428c7a1959bd4bf6c5a22266b836004b1.zip
Don't actually reimplement an existing feature for hiding the selection marker
during scrolling. However, the existing one is part of the list api, so it shouldn't be overridden blindly internally, so do the decision in a different but equivalent way. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28147 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/bitmap/list.c')
-rw-r--r--apps/gui/bitmap/list.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c
index d892bff22b..1af2dfc8ae 100644
--- a/apps/gui/bitmap/list.c
+++ b/apps/gui/bitmap/list.c
@@ -47,6 +47,14 @@
47/* these are static to make scrolling work */ 47/* these are static to make scrolling work */
48static struct viewport list_text[NB_SCREENS], title_text[NB_SCREENS]; 48static struct viewport list_text[NB_SCREENS], title_text[NB_SCREENS];
49 49
50#ifdef HAVE_TOUCHSCREEN
51static enum {
52 SCROLL_NONE, /* no scrolling */
53 SCROLL_BAR, /* scroll by using the scrollbar */
54 SCROLL_SWIPE, /* scroll by wiping over the screen */
55} scroll_mode;
56#endif
57
50int gui_list_get_item_offset(struct gui_synclist * gui_list, int item_width, 58int gui_list_get_item_offset(struct gui_synclist * gui_list, int item_width,
51 int text_pos, struct screen * display, 59 int text_pos, struct screen * display,
52 struct viewport *vp); 60 struct viewport *vp);
@@ -232,7 +240,12 @@ void list_draw(struct screen *display, struct gui_synclist *list)
232 } 240 }
233#endif 241#endif
234 /* draw the selected line */ 242 /* draw the selected line */
235 if(!list->hide_selection && i >= list->selected_item 243 if(
244#ifdef HAVE_TOUCHSCREEN
245 /* don't draw it during scrolling */
246 scroll_mode == SCROLL_NONE &&
247#endif
248 i >= list->selected_item
236 && i < list->selected_item + list->selected_size 249 && i < list->selected_item + list->selected_size
237 && list->show_selection_marker) 250 && list->show_selection_marker)
238 {/* The selected item must be displayed scrolling */ 251 {/* The selected item must be displayed scrolling */
@@ -311,11 +324,6 @@ void list_draw(struct screen *display, struct gui_synclist *list)
311 324
312#if defined(HAVE_TOUCHSCREEN) 325#if defined(HAVE_TOUCHSCREEN)
313/* This needs to be fixed if we ever get more than 1 touchscreen on a target. */ 326/* This needs to be fixed if we ever get more than 1 touchscreen on a target. */
314static enum {
315 SCROLL_NONE, /* no scrolling */
316 SCROLL_BAR, /* scroll by using the scrollbar */
317 SCROLL_SWIPE, /* scroll by wiping over the screen */
318} scroll_mode;
319 327
320static bool released = false; 328static bool released = false;
321 329
@@ -390,10 +398,7 @@ unsigned gui_synclist_do_touchscreen(struct gui_synclist * gui_list)
390 int line, list_width = list_text_vp->width; 398 int line, list_width = list_text_vp->width;
391 399
392 released = (button&BUTTON_REL) != 0; 400 released = (button&BUTTON_REL) != 0;
393 gui_list->hide_selection = (scroll_mode != SCROLL_NONE);
394
395 401
396
397 if (global_settings.scrollbar == SCROLLBAR_RIGHT) 402 if (global_settings.scrollbar == SCROLLBAR_RIGHT)
398 list_width += SCROLLBAR_WIDTH; 403 list_width += SCROLLBAR_WIDTH;
399 404
@@ -511,8 +516,6 @@ unsigned gui_synclist_do_touchscreen(struct gui_synclist * gui_list)
511 { 516 {
512 scroll_mode = SCROLL_NONE; 517 scroll_mode = SCROLL_NONE;
513 redraw = true; 518 redraw = true;
514 /* don't draw the selection during scrolling */
515 gui_list->hide_selection = false;
516 } 519 }
517 520
518 /* select current item */ 521 /* select current item */