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:
parent
54ec1f5f6d
commit
f53779d2f4
6 changed files with 47 additions and 17 deletions
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
17
apps/menu.c
17
apps/menu.c
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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:
|
||||||
|
|
10
apps/tree.c
10
apps/tree.c
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue