1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Shachar Liberman 2006-08-12 13:40:49 +00:00
parent 54ec1f5f6d
commit f53779d2f4
6 changed files with 47 additions and 17 deletions

View file

@ -651,7 +651,9 @@ unsigned gui_synclist_do_button(struct gui_synclist * lists, unsigned button)
#ifdef LIST_PGRIGHT #ifdef LIST_PGRIGHT
case LIST_PGRIGHT: case LIST_PGRIGHT:
#if !(LIST_PGRIGHT & BUTTON_REPEAT)
case LIST_PGRIGHT | BUTTON_REPEAT: case LIST_PGRIGHT | BUTTON_REPEAT:
#endif
#ifdef LIST_RC_PGRIGHT #ifdef LIST_RC_PGRIGHT
case LIST_RC_PGRIGHT: case LIST_RC_PGRIGHT:
case LIST_RC_PGRIGHT | BUTTON_REPEAT: case LIST_RC_PGRIGHT | BUTTON_REPEAT:
@ -663,7 +665,9 @@ unsigned gui_synclist_do_button(struct gui_synclist * lists, unsigned button)
#ifdef LIST_PGLEFT #ifdef LIST_PGLEFT
case LIST_PGLEFT: case LIST_PGLEFT:
#if !(LIST_PGLEFT & BUTTON_REPEAT)
case LIST_PGLEFT | BUTTON_REPEAT: case LIST_PGLEFT | BUTTON_REPEAT:
#endif
#ifdef LIST_RC_PGLEFT #ifdef LIST_RC_PGLEFT
case LIST_RC_PGLEFT: case LIST_RC_PGLEFT:
case LIST_RC_PGLEFT | BUTTON_REPEAT: case LIST_RC_PGLEFT | BUTTON_REPEAT:

View file

@ -33,8 +33,8 @@
#define LIST_PREV BUTTON_UP #define LIST_PREV BUTTON_UP
#define LIST_PGUP (BUTTON_ON | BUTTON_UP) #define LIST_PGUP (BUTTON_ON | BUTTON_UP)
#define LIST_PGDN (BUTTON_ON | BUTTON_DOWN) #define LIST_PGDN (BUTTON_ON | BUTTON_DOWN)
#define LIST_PGRIGHT (BUTTON_ON | BUTTON_RIGHT) #define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
#define LIST_PGLEFT (BUTTON_ON | BUTTON_LEFT) #define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
#ifdef CONFIG_REMOTE_KEYPAD #ifdef CONFIG_REMOTE_KEYPAD
#define LIST_RC_NEXT BUTTON_RC_FF #define LIST_RC_NEXT BUTTON_RC_FF
@ -50,8 +50,8 @@
#define LIST_PREV BUTTON_UP #define LIST_PREV BUTTON_UP
#define LIST_PGUP (BUTTON_ON | BUTTON_UP) #define LIST_PGUP (BUTTON_ON | BUTTON_UP)
#define LIST_PGDN (BUTTON_ON | BUTTON_DOWN) #define LIST_PGDN (BUTTON_ON | BUTTON_DOWN)
#define LIST_PGRIGHT (BUTTON_ON | BUTTON_RIGHT) #define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
#define LIST_PGLEFT (BUTTON_ON | BUTTON_LEFT) #define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
#define LIST_RC_NEXT BUTTON_RC_RIGHT #define LIST_RC_NEXT BUTTON_RC_RIGHT
#define LIST_RC_PREV BUTTON_RC_LEFT #define LIST_RC_PREV BUTTON_RC_LEFT
@ -72,30 +72,40 @@
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
#define LIST_NEXT BUTTON_SCROLL_FWD #define LIST_NEXT BUTTON_SCROLL_FWD
#define LIST_PREV BUTTON_SCROLL_BACK #define LIST_PREV BUTTON_SCROLL_BACK
#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
#define LIST_NEXT BUTTON_DOWN #define LIST_NEXT BUTTON_DOWN
#define LIST_PREV BUTTON_UP #define LIST_PREV BUTTON_UP
//#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_)
//#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_) Todo: define those
#elif CONFIG_KEYPAD == GMINI100_PAD #elif CONFIG_KEYPAD == GMINI100_PAD
#define LIST_NEXT BUTTON_DOWN #define LIST_NEXT BUTTON_DOWN
#define LIST_PREV BUTTON_UP #define LIST_PREV BUTTON_UP
#define LIST_PGUP (BUTTON_ON | BUTTON_UP) #define LIST_PGUP (BUTTON_ON | BUTTON_UP)
#define LIST_PGDN (BUTTON_ON | BUTTON_DOWN) #define LIST_PGDN (BUTTON_ON | BUTTON_DOWN)
#define LIST_PGRIGHT (BUTTON_ON | BUTTON_RIGHT) #define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
#define LIST_PGLEFT (BUTTON_ON | BUTTON_LEFT) #define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
#elif CONFIG_KEYPAD == IAUDIO_X5_PAD #elif CONFIG_KEYPAD == IAUDIO_X5_PAD
#define LIST_NEXT BUTTON_DOWN #define LIST_NEXT BUTTON_DOWN
#define LIST_PREV BUTTON_UP #define LIST_PREV BUTTON_UP
#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
#elif CONFIG_KEYPAD == GIGABEAT_PAD #elif CONFIG_KEYPAD == GIGABEAT_PAD
#define LIST_NEXT BUTTON_DOWN #define LIST_NEXT BUTTON_DOWN
#define LIST_PREV BUTTON_UP #define LIST_PREV BUTTON_UP
#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
#elif CONFIG_KEYPAD == IRIVER_H10_PAD #elif CONFIG_KEYPAD == IRIVER_H10_PAD
#define LIST_NEXT BUTTON_SCROLL_DOWN #define LIST_NEXT BUTTON_SCROLL_DOWN
#define LIST_PREV BUTTON_SCROLL_UP #define LIST_PREV BUTTON_SCROLL_UP
#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT)
#endif #endif

View file

@ -124,6 +124,7 @@ int menu_show(int m)
#endif #endif
bool exit = false; bool exit = false;
int key; int key;
unsigned lastbutton = 0;
gui_synclist_draw(&(menus[m].synclist)); gui_synclist_draw(&(menus[m].synclist));
gui_syncstatusbar_draw(&statusbars, true); gui_syncstatusbar_draw(&statusbars, true);
@ -143,7 +144,9 @@ int menu_show(int m)
if(gui_synclist_do_button(&(menus[m].synclist), key)) if(gui_synclist_do_button(&(menus[m].synclist), key))
menu_talk_selected(m); menu_talk_selected(m);
switch( key ) { switch( key ) {
case MENU_ENTER: case MENU_ENTER | BUTTON_REL:
if (lastbutton != MENU_ENTER)
break;
#ifdef MENU_ENTER2 #ifdef MENU_ENTER2
case MENU_ENTER2: case MENU_ENTER2:
#endif #endif
@ -156,12 +159,18 @@ int menu_show(int m)
return gui_synclist_get_sel_pos(&(menus[m].synclist)); return gui_synclist_get_sel_pos(&(menus[m].synclist));
case MENU_EXIT: case MENU_EXIT | BUTTON_REL:
if (lastbutton != MENU_EXIT)
break;
#ifdef MENU_EXIT2 #ifdef MENU_EXIT2
case MENU_EXIT2: case MENU_EXIT2:
#endif #endif
#ifdef MENU_EXIT_MENU #ifdef MENU_EXIT_MENU
case MENU_EXIT_MENU: case MENU_EXIT_MENU | BUTTON_REL:
/* This is important for the Ondio's */
if ((key == (MENU_EXIT_MENU | BUTTON_REL)) &&
(lastbutton != MENU_EXIT_MENU))
break;
#endif #endif
#ifdef MENU_RC_EXIT #ifdef MENU_RC_EXIT
case MENU_RC_EXIT: case MENU_RC_EXIT:
@ -178,6 +187,8 @@ int menu_show(int m)
break; break;
} }
gui_syncstatusbar_draw(&statusbars, false); gui_syncstatusbar_draw(&statusbars, false);
if ( key )
lastbutton = key;
} }
return MENU_SELECTED_EXIT; return MENU_SELECTED_EXIT;
} }

View file

@ -677,7 +677,9 @@ bool playlist_viewer_ex(char* filename)
} }
switch (button) switch (button)
{ {
case TREE_EXIT: case TREE_EXIT | BUTTON_REL:
if (lastbutton != TREE_EXIT)
break;
#ifdef TREE_RC_EXIT #ifdef TREE_RC_EXIT
case TREE_RC_EXIT: case TREE_RC_EXIT:
#endif #endif
@ -688,8 +690,9 @@ bool playlist_viewer_ex(char* filename)
break; break;
#ifdef TREE_ENTER #ifdef TREE_ENTER
case TREE_ENTER: case TREE_ENTER | BUTTON_REL:
case TREE_ENTER | BUTTON_REPEAT: if (lastbutton != TREE_ENTER)
break;
#endif #endif
#ifdef TREE_RC_RUN #ifdef TREE_RC_RUN
case TREE_RC_RUN: case TREE_RC_RUN:

View file

@ -587,8 +587,9 @@ static bool dirbrowse(void)
switch ( button ) { switch ( button ) {
#ifdef TREE_ENTER #ifdef TREE_ENTER
case TREE_ENTER: case TREE_ENTER | BUTTON_REL:
case TREE_ENTER | BUTTON_REPEAT: if (lastbutton != TREE_ENTER)
break;
#endif #endif
#ifdef TREE_RC_RUN #ifdef TREE_RC_RUN
case TREE_RC_RUN: case TREE_RC_RUN:
@ -617,8 +618,9 @@ static bool dirbrowse(void)
restore = true; restore = true;
break; break;
case TREE_EXIT: case TREE_EXIT | BUTTON_REL:
case TREE_EXIT | BUTTON_REPEAT: if (lastbutton != TREE_EXIT)
break;
#ifdef TREE_RC_EXIT #ifdef TREE_RC_EXIT
case TREE_RC_EXIT: case TREE_RC_EXIT:
#endif #endif

View file

@ -222,4 +222,4 @@ Emanuel Zephir
Alexander Levin Alexander Levin
Barry Wardell Barry Wardell
Lars van de Klomp Lars van de Klomp
philippe Miossec Philippe Miossec