FM preset menu: Set cursor to the current preset on enter. Added a generic function to the menu system which allows for setting the position.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6264 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jens Arnold 2005-04-10 17:36:55 +00:00
parent 06068b451d
commit cef15c6efc
3 changed files with 14 additions and 1 deletions

View file

@ -166,7 +166,7 @@ void menu_draw(int m)
#endif
/* Adjust cursor pos if it's below the screen */
if (menus[m].cursor - menus[m].top >= menu_lines)
menus[m].top++;
menus[m].top = menus[m].cursor - (menu_lines - 1);
/* Adjust cursor pos if it's above the screen */
if(menus[m].cursor < menus[m].top)
@ -508,3 +508,13 @@ bool menu_movedown(int menu)
return true;
}
/*
* Allows to set the cursor position. Doesn't redraw by itself.
*/
void menu_set_cursor(int menu, int position)
{
menus[menu].cursor = position;
}

View file

@ -90,5 +90,6 @@ bool menu_moveup(int menu);
bool menu_movedown(int menu);
void menu_draw(int menu);
void menu_insert(int menu, int position, char *desc, bool (*function) (void));
void menu_set_cursor(int menu, int position);
#endif /* End __MENU_H__ */

View file

@ -817,6 +817,8 @@ bool handle_radio_presets(void)
str(LANG_FM_BUTTONBAR_ADD),
str(LANG_FM_BUTTONBAR_EXIT),
str(LANG_FM_BUTTONBAR_ACTION));
if (curr_preset >= 0)
menu_set_cursor(preset_menu, curr_preset);
result = menu_show(preset_menu);
menu_exit(preset_menu);
if (result == MENU_SELECTED_EXIT)