summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorShachar Liberman <lshachar@hotmail.com>2006-08-12 13:40:49 +0000
committerShachar Liberman <lshachar@hotmail.com>2006-08-12 13:40:49 +0000
commitf53779d2f41fc2bcfff5196a279e2192992880e2 (patch)
tree1864b3fad8203705f2d07f16ed61e0c13d3c10a9 /apps
parent54ec1f5f6db24ab90046b7cbab371c99e239f67e (diff)
downloadrockbox-f53779d2f41fc2bcfff5196a279e2192992880e2.tar.gz
rockbox-f53779d2f41fc2bcfff5196a279e2192992880e2.zip
Committing FS#5182 - One button hold for Horizontal screen scrolling.
=>hold RIGHT or LEFT button on a GUI based list to scroll horizontally. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10545 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/gui/list.c4
-rw-r--r--apps/gui/list.h22
-rw-r--r--apps/menu.c17
-rw-r--r--apps/playlist_viewer.c9
-rw-r--r--apps/tree.c10
5 files changed, 46 insertions, 16 deletions
diff --git a/apps/gui/list.c b/apps/gui/list.c
index 67c0f3055d..ebb915e0bc 100644
--- a/apps/gui/list.c
+++ b/apps/gui/list.c
@@ -651,7 +651,9 @@ unsigned gui_synclist_do_button(struct gui_synclist * lists, unsigned button)
651 651
652#ifdef LIST_PGRIGHT 652#ifdef LIST_PGRIGHT
653 case LIST_PGRIGHT: 653 case LIST_PGRIGHT:
654#if !(LIST_PGRIGHT & BUTTON_REPEAT)
654 case LIST_PGRIGHT | BUTTON_REPEAT: 655 case LIST_PGRIGHT | BUTTON_REPEAT:
656#endif
655#ifdef LIST_RC_PGRIGHT 657#ifdef LIST_RC_PGRIGHT
656 case LIST_RC_PGRIGHT: 658 case LIST_RC_PGRIGHT:
657 case LIST_RC_PGRIGHT | BUTTON_REPEAT: 659 case LIST_RC_PGRIGHT | BUTTON_REPEAT:
@@ -663,7 +665,9 @@ unsigned gui_synclist_do_button(struct gui_synclist * lists, unsigned button)
663 665
664#ifdef LIST_PGLEFT 666#ifdef LIST_PGLEFT
665 case LIST_PGLEFT: 667 case LIST_PGLEFT:
668#if !(LIST_PGLEFT & BUTTON_REPEAT)
666 case LIST_PGLEFT | BUTTON_REPEAT: 669 case LIST_PGLEFT | BUTTON_REPEAT:
670#endif
667#ifdef LIST_RC_PGLEFT 671#ifdef LIST_RC_PGLEFT
668 case LIST_RC_PGLEFT: 672 case LIST_RC_PGLEFT:
669 case LIST_RC_PGLEFT | BUTTON_REPEAT: 673 case LIST_RC_PGLEFT | BUTTON_REPEAT:
diff --git a/apps/gui/list.h b/apps/gui/list.h
index b898e14f37..f0a6d3f32c 100644
--- a/apps/gui/list.h
+++ b/apps/gui/list.h
@@ -33,8 +33,8 @@
33#define LIST_PREV BUTTON_UP 33#define LIST_PREV BUTTON_UP
34#define LIST_PGUP (BUTTON_ON | BUTTON_UP) 34#define LIST_PGUP (BUTTON_ON | BUTTON_UP)
35#define LIST_PGDN (BUTTON_ON | BUTTON_DOWN) 35#define LIST_PGDN (BUTTON_ON | BUTTON_DOWN)
36#define LIST_PGRIGHT (BUTTON_ON | BUTTON_RIGHT) 36#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
37#define LIST_PGLEFT (BUTTON_ON | BUTTON_LEFT) 37#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
38 38
39#ifdef CONFIG_REMOTE_KEYPAD 39#ifdef CONFIG_REMOTE_KEYPAD
40#define LIST_RC_NEXT BUTTON_RC_FF 40#define LIST_RC_NEXT BUTTON_RC_FF
@@ -50,8 +50,8 @@
50#define LIST_PREV BUTTON_UP 50#define LIST_PREV BUTTON_UP
51#define LIST_PGUP (BUTTON_ON | BUTTON_UP) 51#define LIST_PGUP (BUTTON_ON | BUTTON_UP)
52#define LIST_PGDN (BUTTON_ON | BUTTON_DOWN) 52#define LIST_PGDN (BUTTON_ON | BUTTON_DOWN)
53#define LIST_PGRIGHT (BUTTON_ON | BUTTON_RIGHT) 53#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
54#define LIST_PGLEFT (BUTTON_ON | BUTTON_LEFT) 54#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
55 55
56#define LIST_RC_NEXT BUTTON_RC_RIGHT 56#define LIST_RC_NEXT BUTTON_RC_RIGHT
57#define LIST_RC_PREV BUTTON_RC_LEFT 57#define LIST_RC_PREV BUTTON_RC_LEFT
@@ -72,30 +72,40 @@
72#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) 72#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
73#define LIST_NEXT BUTTON_SCROLL_FWD 73#define LIST_NEXT BUTTON_SCROLL_FWD
74#define LIST_PREV BUTTON_SCROLL_BACK 74#define LIST_PREV BUTTON_SCROLL_BACK
75#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
76#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
75 77
76#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD 78#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
77#define LIST_NEXT BUTTON_DOWN 79#define LIST_NEXT BUTTON_DOWN
78#define LIST_PREV BUTTON_UP 80#define LIST_PREV BUTTON_UP
81//#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_)
82//#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_) Todo: define those
79 83
80#elif CONFIG_KEYPAD == GMINI100_PAD 84#elif CONFIG_KEYPAD == GMINI100_PAD
81#define LIST_NEXT BUTTON_DOWN 85#define LIST_NEXT BUTTON_DOWN
82#define LIST_PREV BUTTON_UP 86#define LIST_PREV BUTTON_UP
83#define LIST_PGUP (BUTTON_ON | BUTTON_UP) 87#define LIST_PGUP (BUTTON_ON | BUTTON_UP)
84#define LIST_PGDN (BUTTON_ON | BUTTON_DOWN) 88#define LIST_PGDN (BUTTON_ON | BUTTON_DOWN)
85#define LIST_PGRIGHT (BUTTON_ON | BUTTON_RIGHT) 89#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
86#define LIST_PGLEFT (BUTTON_ON | BUTTON_LEFT) 90#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
87 91
88#elif CONFIG_KEYPAD == IAUDIO_X5_PAD 92#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
89#define LIST_NEXT BUTTON_DOWN 93#define LIST_NEXT BUTTON_DOWN
90#define LIST_PREV BUTTON_UP 94#define LIST_PREV BUTTON_UP
95#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
96#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
91 97
92#elif CONFIG_KEYPAD == GIGABEAT_PAD 98#elif CONFIG_KEYPAD == GIGABEAT_PAD
93#define LIST_NEXT BUTTON_DOWN 99#define LIST_NEXT BUTTON_DOWN
94#define LIST_PREV BUTTON_UP 100#define LIST_PREV BUTTON_UP
101#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
102#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
95 103
96#elif CONFIG_KEYPAD == IRIVER_H10_PAD 104#elif CONFIG_KEYPAD == IRIVER_H10_PAD
97#define LIST_NEXT BUTTON_SCROLL_DOWN 105#define LIST_NEXT BUTTON_SCROLL_DOWN
98#define LIST_PREV BUTTON_SCROLL_UP 106#define LIST_PREV BUTTON_SCROLL_UP
107#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
108#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
99 109
100#endif 110#endif
101 111
diff --git a/apps/menu.c b/apps/menu.c
index f67c0633c6..a1c70824ce 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -124,6 +124,7 @@ int menu_show(int m)
124#endif 124#endif
125 bool exit = false; 125 bool exit = false;
126 int key; 126 int key;
127 unsigned lastbutton = 0;
127 128
128 gui_synclist_draw(&(menus[m].synclist)); 129 gui_synclist_draw(&(menus[m].synclist));
129 gui_syncstatusbar_draw(&statusbars, true); 130 gui_syncstatusbar_draw(&statusbars, true);
@@ -143,7 +144,9 @@ int menu_show(int m)
143 if(gui_synclist_do_button(&(menus[m].synclist), key)) 144 if(gui_synclist_do_button(&(menus[m].synclist), key))
144 menu_talk_selected(m); 145 menu_talk_selected(m);
145 switch( key ) { 146 switch( key ) {
146 case MENU_ENTER: 147 case MENU_ENTER | BUTTON_REL:
148 if (lastbutton != MENU_ENTER)
149 break;
147#ifdef MENU_ENTER2 150#ifdef MENU_ENTER2
148 case MENU_ENTER2: 151 case MENU_ENTER2:
149#endif 152#endif
@@ -156,12 +159,18 @@ int menu_show(int m)
156 return gui_synclist_get_sel_pos(&(menus[m].synclist)); 159 return gui_synclist_get_sel_pos(&(menus[m].synclist));
157 160
158 161
159 case MENU_EXIT: 162 case MENU_EXIT | BUTTON_REL:
163 if (lastbutton != MENU_EXIT)
164 break;
160#ifdef MENU_EXIT2 165#ifdef MENU_EXIT2
161 case MENU_EXIT2: 166 case MENU_EXIT2:
162#endif 167#endif
163#ifdef MENU_EXIT_MENU 168#ifdef MENU_EXIT_MENU
164 case MENU_EXIT_MENU: 169 case MENU_EXIT_MENU | BUTTON_REL:
170 /* This is important for the Ondio's */
171 if ((key == (MENU_EXIT_MENU | BUTTON_REL)) &&
172 (lastbutton != MENU_EXIT_MENU))
173 break;
165#endif 174#endif
166#ifdef MENU_RC_EXIT 175#ifdef MENU_RC_EXIT
167 case MENU_RC_EXIT: 176 case MENU_RC_EXIT:
@@ -178,6 +187,8 @@ int menu_show(int m)
178 break; 187 break;
179 } 188 }
180 gui_syncstatusbar_draw(&statusbars, false); 189 gui_syncstatusbar_draw(&statusbars, false);
190 if ( key )
191 lastbutton = key;
181 } 192 }
182 return MENU_SELECTED_EXIT; 193 return MENU_SELECTED_EXIT;
183} 194}
diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c
index 6c21cc4a99..46482cb7fa 100644
--- a/apps/playlist_viewer.c
+++ b/apps/playlist_viewer.c
@@ -677,7 +677,9 @@ bool playlist_viewer_ex(char* filename)
677 } 677 }
678 switch (button) 678 switch (button)
679 { 679 {
680 case TREE_EXIT: 680 case TREE_EXIT | BUTTON_REL:
681 if (lastbutton != TREE_EXIT)
682 break;
681#ifdef TREE_RC_EXIT 683#ifdef TREE_RC_EXIT
682 case TREE_RC_EXIT: 684 case TREE_RC_EXIT:
683#endif 685#endif
@@ -688,8 +690,9 @@ bool playlist_viewer_ex(char* filename)
688 break; 690 break;
689 691
690#ifdef TREE_ENTER 692#ifdef TREE_ENTER
691 case TREE_ENTER: 693 case TREE_ENTER | BUTTON_REL:
692 case TREE_ENTER | BUTTON_REPEAT: 694 if (lastbutton != TREE_ENTER)
695 break;
693#endif 696#endif
694#ifdef TREE_RC_RUN 697#ifdef TREE_RC_RUN
695 case TREE_RC_RUN: 698 case TREE_RC_RUN:
diff --git a/apps/tree.c b/apps/tree.c
index 0dd03779a5..ac0e44c7f1 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -587,8 +587,9 @@ static bool dirbrowse(void)
587 587
588 switch ( button ) { 588 switch ( button ) {
589#ifdef TREE_ENTER 589#ifdef TREE_ENTER
590 case TREE_ENTER: 590 case TREE_ENTER | BUTTON_REL:
591 case TREE_ENTER | BUTTON_REPEAT: 591 if (lastbutton != TREE_ENTER)
592 break;
592#endif 593#endif
593#ifdef TREE_RC_RUN 594#ifdef TREE_RC_RUN
594 case TREE_RC_RUN: 595 case TREE_RC_RUN:
@@ -617,8 +618,9 @@ static bool dirbrowse(void)
617 restore = true; 618 restore = true;
618 break; 619 break;
619 620
620 case TREE_EXIT: 621 case TREE_EXIT | BUTTON_REL:
621 case TREE_EXIT | BUTTON_REPEAT: 622 if (lastbutton != TREE_EXIT)
623 break;
622#ifdef TREE_RC_EXIT 624#ifdef TREE_RC_EXIT
623 case TREE_RC_EXIT: 625 case TREE_RC_EXIT:
624#endif 626#endif