summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-04-10 17:36:55 +0000
committerJens Arnold <amiconn@rockbox.org>2005-04-10 17:36:55 +0000
commitcef15c6efc2a0720a8b9b27cea036fc6ac82c829 (patch)
tree0d0471293e7d14b39a56084c7876f749d15248cf /apps
parent06068b451d80a5949b080d756e082126245da180 (diff)
downloadrockbox-cef15c6efc2a0720a8b9b27cea036fc6ac82c829.tar.gz
rockbox-cef15c6efc2a0720a8b9b27cea036fc6ac82c829.tar.bz2
rockbox-cef15c6efc2a0720a8b9b27cea036fc6ac82c829.zip
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
Diffstat (limited to 'apps')
-rw-r--r--apps/menu.c12
-rw-r--r--apps/menu.h1
-rw-r--r--apps/recorder/radio.c2
3 files changed, 14 insertions, 1 deletions
diff --git a/apps/menu.c b/apps/menu.c
index e483ad7136..68b9d0dbe7 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -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;
+}
+
diff --git a/apps/menu.h b/apps/menu.h
index 1171f0efc5..046153b654 100644
--- a/apps/menu.h
+++ b/apps/menu.h
@@ -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__ */
diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c
index 10a513f01f..59dd9dc37f 100644
--- a/apps/recorder/radio.c
+++ b/apps/recorder/radio.c
@@ -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)