forked from len0rd/rockbox
Added iriver remote keys support to the option selection in the menus, corrected a silly c'n'p error
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7750 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
c34d04618a
commit
80c0f99a1a
3 changed files with 46 additions and 9 deletions
|
@ -42,7 +42,7 @@ void gui_select_init_numeric(struct gui_select * select,
|
|||
select->validated=false;
|
||||
select->title=title;
|
||||
select->min_value=min_value;
|
||||
select->max_value=max_value;
|
||||
select->max_value=max_value+1;
|
||||
select->option=init_value;
|
||||
select->step=step;
|
||||
select->extra_string=unit;
|
||||
|
@ -66,19 +66,27 @@ void gui_select_init_items(struct gui_select * select,
|
|||
select->formatter=NULL;
|
||||
select->items=items;
|
||||
}
|
||||
//FIXME: si step>1, mettre d'abord au plus grand, ensuite passerau plus petit
|
||||
|
||||
void gui_select_next(struct gui_select * select)
|
||||
{
|
||||
select->option+=select->step;
|
||||
if(select->option >= select->max_value)
|
||||
if(select->option + select->step >= select->max_value)
|
||||
if(select->option==select->max_value-1)
|
||||
select->option=select->min_value;
|
||||
else
|
||||
select->option=select->max_value-1;
|
||||
else
|
||||
select->option+=select->step;
|
||||
}
|
||||
|
||||
void gui_select_prev(struct gui_select * select)
|
||||
{
|
||||
select->option-=select->step;
|
||||
if(select->option < select->min_value)
|
||||
if(select->option - select->step < select->min_value)
|
||||
if(select->option==select->min_value)
|
||||
select->option=select->max_value-1;
|
||||
else
|
||||
select->option=select->min_value;
|
||||
else
|
||||
select->option-=select->step;
|
||||
}
|
||||
|
||||
void gui_select_draw(struct gui_select * select, struct screen * display)
|
||||
|
@ -119,22 +127,44 @@ bool gui_syncselect_do_button(struct gui_select * select, int button)
|
|||
{
|
||||
case SELECT_INC :
|
||||
case SELECT_INC | BUTTON_REPEAT :
|
||||
#ifdef SELECT_RC_INC
|
||||
case SELECT_RC_INC :
|
||||
case SELECT_RC_INC | BUTTON_REPEAT :
|
||||
#endif
|
||||
gui_select_next(select);
|
||||
moved=true;
|
||||
break;
|
||||
case SELECT_DEC :
|
||||
case SELECT_DEC | BUTTON_REPEAT :
|
||||
#ifdef SELECT_RC_DEC
|
||||
case SELECT_RC_DEC :
|
||||
case SELECT_RC_DEC | BUTTON_REPEAT :
|
||||
#endif
|
||||
gui_select_prev(select);
|
||||
moved=true;
|
||||
break;
|
||||
case SELECT_OK :
|
||||
#ifdef SELECT_RC_OK
|
||||
case SELECT_RC_OK :
|
||||
#endif
|
||||
#ifdef SELECT_RC_OK2
|
||||
case SELECT_RC_OK2 :
|
||||
#endif
|
||||
#ifdef SELECT_OK2
|
||||
case SELECT_OK2 :
|
||||
#endif
|
||||
gui_select_validate(select);
|
||||
break;
|
||||
case SELECT_CANCEL :
|
||||
#ifdef SELECT_CANCEL2
|
||||
case SELECT_CANCEL2 :
|
||||
#endif
|
||||
#ifdef SELECT_RC_CANCEL
|
||||
case SELECT_RC_CANCEL :
|
||||
#endif
|
||||
#ifdef SELECT_RC_CANCEL2
|
||||
case SELECT_RC_CANCEL2 :
|
||||
#endif
|
||||
gui_select_cancel(select);
|
||||
gui_syncselect_draw(select);
|
||||
sleep(HZ/2);
|
||||
|
|
|
@ -32,6 +32,13 @@
|
|||
#define SELECT_CANCEL BUTTON_OFF
|
||||
#define SELECT_CANCEL2 BUTTON_MODE
|
||||
|
||||
#define SELECT_RC_INC BUTTON_RC_FF
|
||||
#define SELECT_RC_DEC BUTTON_RC_REW
|
||||
#define SELECT_RC_OK BUTTON_RC_ON
|
||||
#define SELECT_RC_OK2 BUTTON_RC_MENU
|
||||
#define SELECT_RC_CANCEL BUTTON_RC_STOP
|
||||
#define SELECT_RC_CANCEL2 BUTTON_RC_MODE
|
||||
|
||||
#elif CONFIG_KEYPAD == RECORDER_PAD
|
||||
#define SELECT_INC BUTTON_UP
|
||||
#define SELECT_DEC BUTTON_DOWN
|
||||
|
|
|
@ -1401,9 +1401,9 @@ bool set_int(const char* string,
|
|||
if(gui_syncselect_do_button(&select, button))
|
||||
{
|
||||
*variable=gui_select_get_selected(&select);
|
||||
gui_syncselect_draw(&select);
|
||||
if (global_settings.talk_menu)
|
||||
{
|
||||
gui_syncselect_draw(&select);
|
||||
if (voice_unit < UNIT_LAST)
|
||||
{ /* use the available unit definition */
|
||||
talk_value(*variable, voice_unit, false);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue