summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/bookmark.c4
-rw-r--r--apps/cuesheet.c2
-rw-r--r--apps/enc_config.c4
-rw-r--r--apps/gui/list.c19
-rw-r--r--apps/gui/list.h3
-rw-r--r--apps/gui/option_select.c3
-rw-r--r--apps/gui/viewport.c8
-rw-r--r--apps/gui/viewport.h3
-rw-r--r--apps/menu.c114
-rw-r--r--apps/menu.h3
-rw-r--r--apps/menus/eq_menu.c2
-rw-r--r--apps/menus/recording_menu.c2
-rw-r--r--apps/onplay.c2
-rw-r--r--apps/playlist_catalog.c2
-rw-r--r--apps/playlist_viewer.c9
-rw-r--r--apps/plugin.c3
-rw-r--r--apps/plugin.h12
-rw-r--r--apps/plugins/chessbox/chessbox.c4
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.c2
-rw-r--r--apps/plugins/chopper.c2
-rw-r--r--apps/plugins/clock/clock_menu.c10
-rw-r--r--apps/plugins/dice.c2
-rw-r--r--apps/plugins/disktidy.c2
-rw-r--r--apps/plugins/lib/oldmenuapi.c2
-rw-r--r--apps/plugins/lib/playback_control.c2
-rw-r--r--apps/plugins/minesweeper.c2
-rw-r--r--apps/plugins/pictureflow.c4
-rw-r--r--apps/plugins/properties.c2
-rw-r--r--apps/plugins/random_folder_advance_config.c2
-rw-r--r--apps/plugins/shortcuts/shortcuts_view.c2
-rw-r--r--apps/plugins/snake.c2
-rw-r--r--apps/plugins/sokoban.c2
-rw-r--r--apps/plugins/star.c18
-rw-r--r--apps/plugins/superdom.c18
-rw-r--r--apps/plugins/test_codec.c2
-rw-r--r--apps/plugins/text_editor.c8
-rw-r--r--apps/plugins/vu_meter.c2
-rw-r--r--apps/plugins/wavrecord.c2
-rw-r--r--apps/plugins/wormlet.c2
-rw-r--r--apps/plugins/xobox.c2
-rw-r--r--apps/recorder/radio.c6
-rw-r--r--apps/root_menu.c8
-rw-r--r--apps/screens.c4
-rw-r--r--apps/tree.c2
44 files changed, 201 insertions, 110 deletions
diff --git a/apps/bookmark.c b/apps/bookmark.c
index 1cebcd7..1a7d581 100644
--- a/apps/bookmark.c
+++ b/apps/bookmark.c
@@ -664,7 +664,7 @@ static char* select_bookmark(const char* bookmark_file_name, bool show_dont_resu
bookmarks->start = 0;
bookmarks->show_playlist_name
= strcmp(bookmark_file_name, RECENT_BOOKMARK_FILE) == 0;
- gui_synclist_init(&list, &get_bookmark_info, (void*) bookmarks, false, 2);
+ gui_synclist_init(&list, &get_bookmark_info, (void*) bookmarks, false, 2, NULL);
gui_synclist_set_title(&list, str(LANG_BOOKMARK_SELECT_BOOKMARK),
Icon_Bookmark);
gui_syncstatusbar_draw(&statusbars, true);
@@ -738,7 +738,7 @@ static char* select_bookmark(const char* bookmark_file_name, bool show_dont_resu
{
ACTION_STD_OK, ACTION_BMS_DELETE
};
- int selection = do_menu(&menu_items, NULL);
+ int selection = do_menu(&menu_items, NULL, NULL, false);
refresh = true;
diff --git a/apps/cuesheet.c b/apps/cuesheet.c
index cac6448..9c23d81 100644
--- a/apps/cuesheet.c
+++ b/apps/cuesheet.c
@@ -292,7 +292,7 @@ void browse_cuesheet(struct cuesheet *cue)
struct mp3entry *id3 = audio_current_track();
snprintf(title, MAX_PATH, "%s: %s", cue->performer, cue->title);
- gui_synclist_init(&lists, list_get_name_cb, cue, false, 2);
+ gui_synclist_init(&lists, list_get_name_cb, cue, false, 2, NULL);
gui_synclist_set_nb_items(&lists, 2*cue->track_count);
gui_synclist_set_title(&lists, title, 0);
diff --git a/apps/enc_config.c b/apps/enc_config.c
index c916b29..3412e96 100644
--- a/apps/enc_config.c
+++ b/apps/enc_config.c
@@ -396,7 +396,7 @@ bool enc_config_menu(struct encoder_config *cfg)
{
menu_callback_data.cfg = &cfg;
menu_callback_data.global = false;
- return do_menu(enc_data[cfg->rec_format].menu, NULL)
+ return do_menu(enc_data[cfg->rec_format].menu, NULL, NULL, false)
== MENU_ATTACHED_USB;
}
else
@@ -454,7 +454,7 @@ bool enc_global_config_menu(void)
{
menu_callback_data.cfg = &cfg;
menu_callback_data.global = true;
- return do_menu(enc_data[cfg.rec_format].menu, NULL)
+ return do_menu(enc_data[cfg.rec_format].menu, NULL, NULL, false)
== MENU_ATTACHED_USB;
}
else
diff --git a/apps/gui/list.c b/apps/gui/list.c
index 86de0ae..1f0f0ff 100644
--- a/apps/gui/list.c
+++ b/apps/gui/list.c
@@ -107,12 +107,14 @@ bool list_display_title(struct gui_synclist *list, struct viewport *vp)
* - data : extra data passed to the list callback
* - scroll_all :
* - selected_size :
+ * - parent : the parent viewports to use. NULL means the full screen minus
+ * statusbar if enabled. NOTE: new screens should NOT set this to NULL.
*/
void gui_synclist_init(struct gui_synclist * gui_list,
list_get_name callback_get_item_name,
void * data,
bool scroll_all,
- int selected_size
+ int selected_size, struct viewport list_parent[NB_SCREENS]
)
{
int i;
@@ -128,7 +130,18 @@ void gui_synclist_init(struct gui_synclist * gui_list,
#ifdef HAVE_LCD_BITMAP
gui_list->offset_position[i] = 0;
#endif
- gui_list->parent[i] = &parent[i];
+ if (list_parent)
+ gui_list->parent[i] = &list_parent[i];
+ else
+ {
+ gui_list->parent[i] = &parent[i];
+ gui_list->parent[i]->y = global_settings.statusbar?STATUSBAR_HEIGHT:0;
+ gui_list->parent[i]->height = screens[i].height - gui_list->parent[i]->y;
+#ifdef HAS_BUTTONBAR
+ if (screens[i].has_buttonbar)
+ gui_list->parent[i]->height -= BUTTONBAR_HEIGHT;
+#endif
+ }
}
gui_list->limit_scroll = false;
gui_list->data=data;
@@ -811,7 +824,7 @@ bool simplelist_show_list(struct simplelist_info *info)
else
getname = simplelist_static_getname;
gui_synclist_init(&lists, getname, info->callback_data,
- info->scroll_all, info->selection_size);
+ info->scroll_all, info->selection_size, NULL);
if (info->title)
gui_synclist_set_title(&lists, info->title, NOICON);
if (info->get_icon)
diff --git a/apps/gui/list.h b/apps/gui/list.h
index 48dd736..12f8817 100644
--- a/apps/gui/list.h
+++ b/apps/gui/list.h
@@ -142,7 +142,8 @@ extern void gui_synclist_init(
list_get_name callback_get_item_name,
void * data,
bool scroll_all,
- int selected_size
+ int selected_size,
+ struct viewport parent[NB_SCREENS] /* NOTE: new screens should NOT set this to NULL */
);
extern void gui_synclist_set_nb_items(struct gui_synclist * lists, int nb_items);
extern void gui_synclist_set_icon_callback(struct gui_synclist * lists, list_get_icon icon_callback);
diff --git a/apps/gui/option_select.c b/apps/gui/option_select.c
index d9c594b..412a82d 100644
--- a/apps/gui/option_select.c
+++ b/apps/gui/option_select.c
@@ -373,7 +373,7 @@ bool option_screen(struct settings_list *setting,
}
else return false; /* only int/bools can go here */
gui_synclist_init(&lists, value_setting_get_name_cb,
- (void*)setting, false, 1);
+ (void*)setting, false, 1, NULL);
if (setting->lang_id == -1)
title = (char*)setting->cfg_vals;
else
@@ -460,6 +460,7 @@ bool option_screen(struct settings_list *setting,
gui_synclist_draw(&lists);
/* talk the item */
gui_synclist_speak_item(&lists);
+ gui_syncstatusbar_draw(&statusbars, false);
while (!done)
{
if (list_do_action(CONTEXT_LIST, TIMEOUT_BLOCK,
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index 8f26451..8a2e6bb 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -45,15 +45,13 @@ int viewport_get_nb_lines(struct viewport *vp)
void viewport_set_defaults(struct viewport *vp, enum screen_type screen)
{
+ vp->xmargin = 0;
+ vp->ymargin = 0;
vp->x = 0;
vp->width = screens[screen].width;
vp->y = global_settings.statusbar?STATUSBAR_HEIGHT:0;
- vp->height = screens[screen].height - vp->y
-#ifdef HAS_BUTTONBAR
- - (screens[screen].has_buttonbar?BUTTONBAR_HEIGHT:0)
-#endif
- ;
+ vp->height = screens[screen].height - vp->y;
#ifdef HAVE_LCD_BITMAP
vp->drawmode = DRMODE_SOLID;
vp->font = FONT_UI; /* default to UI to discourage SYSFONT use */
diff --git a/apps/gui/viewport.h b/apps/gui/viewport.h
index 93059a4..1917b7b 100644
--- a/apps/gui/viewport.h
+++ b/apps/gui/viewport.h
@@ -21,9 +21,6 @@
#include "config.h"
#include "lcd.h"
#include "font.h"
-#include "sprintf.h"
-#include "string.h"
-#include "settings.h"
#include "kernel.h"
#include "system.h"
#include "misc.h"
diff --git a/apps/menu.c b/apps/menu.c
index 2c2e4ab..d970ac8 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -50,6 +50,7 @@
#include "bookmark.h"
#include "gwps-common.h" /* for fade() */
#include "audio.h"
+#include "viewport.h"
#ifdef HAVE_LCD_BITMAP
#include "icons.h"
@@ -164,7 +165,8 @@ static int menu_get_icon(int selected_item, void * data)
#endif
static void init_menu_lists(const struct menu_item_ex *menu,
- struct gui_synclist *lists, int selected, bool callback)
+ struct gui_synclist *lists, int selected, bool callback,
+ struct viewport parent[NB_SCREENS])
{
int i, count = MENU_GET_COUNT(menu->flags);
int type = (menu->flags&MENU_TYPE_MASK);
@@ -197,7 +199,7 @@ static void init_menu_lists(const struct menu_item_ex *menu,
}
current_submenus_menu = (struct menu_item_ex *)menu;
- gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1);
+ gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1, parent);
#ifdef HAVE_LCD_BITMAP
if (menu->callback_and_desc->icon_id == Icon_NOICON)
icon = Icon_Submenu_Entered;
@@ -275,6 +277,29 @@ static int talk_menu_item(int selected_item, void *data)
}
return 0;
}
+/* this is used to reload the default menu viewports when the
+ theme changes. nothing happens if the menu is using a supplied parent vp */
+void init_default_menu_viewports(struct viewport parent[NB_SCREENS], bool hide_bars)
+{
+ int i;
+ FOR_NB_SCREENS(i)
+ {
+ viewport_set_defaults(&parent[i], i);
+ /* viewport_set_defaults() fixes the vp for the bars, so resize */
+ if (hide_bars)
+ {
+ if (global_settings.statusbar)
+ {
+ parent[i].y -= STATUSBAR_HEIGHT;
+ parent[i].height += STATUSBAR_HEIGHT;
+ }
+ }
+ }
+#ifdef HAS_BUTTONBAR
+ if (!hide_bars)
+ parent[0].height -= BUTTONBAR_HEIGHT;
+#endif
+}
bool do_setting_from_menu(const struct menu_item_ex *temp)
{
@@ -318,42 +343,71 @@ bool do_setting_from_menu(const struct menu_item_ex *temp)
}
/* display a menu */
-int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
+int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
+ struct viewport parent[NB_SCREENS], bool hide_bars)
{
int selected = start_selected? *start_selected : 0;
int action;
struct gui_synclist lists;
const struct menu_item_ex *temp, *menu;
- int ret = 0;
+ int ret = 0, i;
bool redraw_lists;
-#ifdef HAS_BUTTONBAR
- struct gui_buttonbar buttonbar;
-#endif
-
+
const struct menu_item_ex *menu_stack[MAX_MENUS];
int menu_stack_selected_item[MAX_MENUS];
int stack_top = 0;
bool in_stringlist, done = false;
- menu_callback_type menu_callback = NULL;
- if (start_menu == NULL)
- menu = &main_menu_;
- else menu = start_menu;
+
+ struct viewport *vps, menu_vp[NB_SCREENS]; /* menu_vp will hopefully be phased out */
#ifdef HAS_BUTTONBAR
+ struct gui_buttonbar buttonbar;
gui_buttonbar_init(&buttonbar);
gui_buttonbar_set_display(&buttonbar, &(screens[SCREEN_MAIN]) );
gui_buttonbar_set(&buttonbar, "<<<", "", "");
- gui_buttonbar_draw(&buttonbar);
#endif
- init_menu_lists(menu,&lists,selected,true);
+
+ menu_callback_type menu_callback = NULL;
+ if (start_menu == NULL)
+ menu = &main_menu_;
+ else menu = start_menu;
+
+ if (parent)
+ {
+ vps = parent;
+ /* if hide_bars == true we assume the viewport is correctly sized */
+ }
+ else
+ {
+ vps = menu_vp;
+ init_default_menu_viewports(vps, hide_bars);
+ }
+ FOR_NB_SCREENS(i)
+ {
+ screens[i].set_viewport(&vps[i]);
+ screens[i].clear_viewport();
+ screens[i].set_viewport(NULL);
+ }
+ init_menu_lists(menu, &lists, selected, true, vps);
in_stringlist = ((menu->flags&MENU_TYPE_MASK) == MT_RETURN_ID);
/* load the callback, and only reload it if menu changes */
get_menu_callback(menu, &menu_callback);
+
+#ifdef HAS_BUTTONBAR
+ if (!hide_bars)
+ {
+ gui_buttonbar_set(&buttonbar, "<<<", "", "");
+ gui_buttonbar_draw(&buttonbar);
+ }
+#endif
while (!done)
{
redraw_lists = false;
- gui_syncstatusbar_draw(&statusbars, true);
+ if (!hide_bars)
+ {
+ gui_syncstatusbar_draw(&statusbars, true);
+ }
action = get_action(CONTEXT_MAINMENU,
list_do_action_timeout(&lists, HZ));
/* HZ so the status bar redraws corectly */
@@ -430,7 +484,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
done = true;
else
init_menu_lists(menu, &lists,
- menu_stack_selected_item[stack_top], false);
+ menu_stack_selected_item[stack_top], false, vps);
/* new menu, so reload the callback */
get_menu_callback(menu, &menu_callback);
}
@@ -444,8 +498,11 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
{
int type;
#ifdef HAS_BUTTONBAR
- gui_buttonbar_unset(&buttonbar);
- gui_buttonbar_draw(&buttonbar);
+ if (!hide_bars)
+ {
+ gui_buttonbar_unset(&buttonbar);
+ gui_buttonbar_draw(&buttonbar);
+ }
#endif
selected = get_menu_selection(gui_synclist_get_sel_pos(&lists), menu);
temp = menu->submenus[selected];
@@ -471,7 +528,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
menu_stack[stack_top] = menu;
menu_stack_selected_item[stack_top] = selected;
stack_top++;
- init_menu_lists(temp, &lists, 0, true);
+ init_menu_lists(temp, &lists, 0, true, vps);
redraw_lists = false; /* above does the redraw */
menu = temp;
}
@@ -491,8 +548,9 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
if (temp->flags&MENU_HAS_DESC &&
temp->callback_and_desc->desc == ID2P(LANG_LANGUAGE))
{
- init_menu_lists(menu, &lists, selected, true);
+ init_menu_lists(menu, &lists, selected, true, vps);
}
+ init_default_menu_viewports(menu_vp, hide_bars);
if (temp->flags&MENU_FUNC_CHECK_RETVAL)
{
@@ -509,7 +567,8 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
{
if (do_setting_from_menu(temp))
{
- init_menu_lists(menu, &lists, selected, true);
+ init_default_menu_viewports(menu_vp, hide_bars);
+ init_menu_lists(menu, &lists, selected, true,vps);
redraw_lists = false; /* above does the redraw */
}
break;
@@ -526,7 +585,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
menu_stack_selected_item[stack_top] = selected;
stack_top++;
menu = temp;
- init_menu_lists(menu,&lists,0,false);
+ init_menu_lists(menu,&lists,0,false, vps);
redraw_lists = false; /* above does the redraw */
in_stringlist = true;
}
@@ -542,7 +601,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
menu_callback(ACTION_EXIT_MENUITEM,temp);
}
if (current_submenus_menu != menu)
- init_menu_lists(menu,&lists,selected,true);
+ init_menu_lists(menu,&lists,selected,true,vps);
/* callback was changed, so reload the menu's callback */
get_menu_callback(menu, &menu_callback);
if ((menu->flags&MENU_EXITAFTERTHISMENU) &&
@@ -552,8 +611,11 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
break;
}
#ifdef HAS_BUTTONBAR
- gui_buttonbar_set(&buttonbar, "<<<", "", "");
- gui_buttonbar_draw(&buttonbar);
+ if (!hide_bars)
+ {
+ gui_buttonbar_set(&buttonbar, "<<<", "", "");
+ gui_buttonbar_draw(&buttonbar);
+ }
#endif
}
else if(default_event_handler(action) == SYS_USB_CONNECTED)
@@ -575,7 +637,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected)
if (stack_top > 0)
{
menu = menu_stack[0];
- init_menu_lists(menu,&lists,menu_stack_selected_item[0],true);
+ init_menu_lists(menu,&lists,menu_stack_selected_item[0],true, vps);
}
*start_selected = get_menu_selection(
gui_synclist_get_sel_pos(&lists), menu);
diff --git a/apps/menu.h b/apps/menu.h
index d3f7099..1b4ffd5 100644
--- a/apps/menu.h
+++ b/apps/menu.h
@@ -117,7 +117,8 @@ bool do_setting_from_menu(const struct menu_item_ex *temp);
This is always set, even if the menu was cancelled.
If NULL it is ignored and the firs item starts selected
*/
-int do_menu(const struct menu_item_ex *menu, int *start_selected);
+int do_menu(const struct menu_item_ex *menu, int *start_selected,
+ struct viewport parent[NB_SCREENS], bool hide_bars);
/* In all the following macros the argument names are as follows:
- name: The name for the variable (so it can be used in a MAKE_MENU()
diff --git a/apps/menus/eq_menu.c b/apps/menus/eq_menu.c
index 2337b32..9b8c2e3 100644
--- a/apps/menus/eq_menu.c
+++ b/apps/menus/eq_menu.c
@@ -199,7 +199,7 @@ int do_center_band_menu(void* param)
menu.flags = MT_MENU|(3<<MENU_COUNT_SHIFT)|MENU_HAS_DESC;
menu.submenus = band_items[band-1];
menu.callback_and_desc = &cb_and_desc;
- do_menu(&menu, NULL);
+ do_menu(&menu, NULL, NULL, false);
return 0;
}
MAKE_MENU(band_0_menu, ID2P(LANG_EQUALIZER_BAND_LOW_SHELF), NULL,
diff --git a/apps/menus/recording_menu.c b/apps/menus/recording_menu.c
index 13368bd..9d7379a 100644
--- a/apps/menus/recording_menu.c
+++ b/apps/menus/recording_menu.c
@@ -901,7 +901,7 @@ bool recording_menu(bool no_source)
{
bool retval;
no_source_in_menu = no_source;
- retval = do_menu(&recording_settings_menu, NULL) == MENU_ATTACHED_USB;
+ retval = do_menu(&recording_settings_menu, NULL, NULL, false) == MENU_ATTACHED_USB;
no_source_in_menu = false; /* always fall back to the default */
return retval;
};
diff --git a/apps/onplay.c b/apps/onplay.c
index 439220c..ac772ac 100644
--- a/apps/onplay.c
+++ b/apps/onplay.c
@@ -1197,7 +1197,7 @@ int onplay(char* file, int attr, int from)
menu = &wps_onplay_menu;
else
menu = &tree_onplay_menu;
- switch (do_menu(menu, NULL))
+ switch (do_menu(menu, NULL, NULL, false))
{
case GO_TO_WPS:
return ONPLAY_START_PLAY;
diff --git a/apps/playlist_catalog.c b/apps/playlist_catalog.c
index c68371a..af65353 100644
--- a/apps/playlist_catalog.c
+++ b/apps/playlist_catalog.c
@@ -234,7 +234,7 @@ static int display_playlists(char* playlist, bool view)
playlist = temp_buf;
gui_synclist_init(&playlist_lists, playlist_callback_name, playlists,
- false, 1);
+ false, 1, NULL);
gui_synclist_set_nb_items(&playlist_lists, num_playlists);
gui_synclist_draw(&playlist_lists);
diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c
index db9c974..c34957b 100644
--- a/apps/playlist_viewer.c
+++ b/apps/playlist_viewer.c
@@ -438,7 +438,7 @@ static int onplay_menu(int index)
ID2P(LANG_CATALOG_ADD_TO), ID2P(LANG_CATALOG_ADD_TO_NEW));
bool current = (current_track->index == viewer.current_playing_track);
- result = do_menu(&menu_items, NULL);
+ result = do_menu(&menu_items, NULL, NULL, false);
if (result == MENU_ATTACHED_USB)
{
ret = -1;
@@ -505,7 +505,7 @@ MAKE_MENU(viewer_settings_menu, ID2P(LANG_PLAYLISTVIEWER_SETTINGS),
&show_icons, &show_indices, &track_display, &save_playlist_item);
static bool viewer_menu(void)
{
- return do_menu(&viewer_settings_menu, NULL) == MENU_ATTACHED_USB;
+ return do_menu(&viewer_settings_menu, NULL, NULL, false) == MENU_ATTACHED_USB;
}
/* Save playlist to disk */
@@ -589,7 +589,8 @@ bool playlist_viewer_ex(char* filename)
if (!playlist_viewer_init(&viewer, filename, false))
goto exit;
- gui_synclist_init(&playlist_lists, playlist_callback_name, &viewer, false, 1);
+ gui_synclist_init(&playlist_lists, playlist_callback_name,
+ &viewer, false, 1, NULL);
gui_synclist_set_icon_callback(&playlist_lists,
global_settings.playlist_viewer_icons?
&playlist_callback_icons:NULL);
@@ -798,7 +799,7 @@ bool search_playlist(void)
}
backlight_on();
gui_synclist_init(&playlist_lists, playlist_search_callback_name,
- found_indicies, false, 1);
+ found_indicies, false, 1, NULL);
gui_synclist_set_icon_callback(&playlist_lists, NULL);
gui_synclist_set_nb_items(&playlist_lists, found_indicies_count);
gui_synclist_select_item(&playlist_lists, 0);
diff --git a/apps/plugin.c b/apps/plugin.c
index db9bd25..b703713 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -193,7 +193,8 @@ static const struct plugin_api rockbox_api = {
lcd_remote_bitmap_part,
lcd_remote_bitmap,
#endif
-
+ viewport_set_defaults,
+
/* list */
gui_synclist_init,
gui_synclist_set_nb_items,
diff --git a/apps/plugin.h b/apps/plugin.h
index 1283751..66ed5fd 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -80,6 +80,7 @@
#include "color_picker.h"
#include "buffering.h"
#include "tagcache.h"
+#include "viewport.h"
#ifdef HAVE_ALBUMART
#include "albumart.h"
@@ -119,12 +120,12 @@
#define PLUGIN_MAGIC 0x526F634B /* RocK */
/* increase this every time the api struct changes */
-#define PLUGIN_API_VERSION 102
+#define PLUGIN_API_VERSION 103
/* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any
new function which are "waiting" at the end of the function table) */
-#define PLUGIN_MIN_API_VERSION 102
+#define PLUGIN_MIN_API_VERSION 103
/* plugin return codes */
enum plugin_status {
@@ -285,10 +286,12 @@ struct plugin_api {
void (*lcd_remote_bitmap)(const fb_remote_data *src, int x, int y, int width,
int height);
#endif
+ void (*viewport_set_defaults)(struct viewport *vp, enum screen_type screen);
/* list */
void (*gui_synclist_init)(struct gui_synclist * lists,
list_get_name callback_get_item_name,void * data,
- bool scroll_all,int selected_size);
+ bool scroll_all,int selected_size,
+ struct viewport parent[NB_SCREENS]);
void (*gui_synclist_set_nb_items)(struct gui_synclist * lists, int nb_items);
void (*gui_synclist_set_icon_callback)(struct gui_synclist * lists, list_get_icon icon_callback);
int (*gui_synclist_get_nb_items)(struct gui_synclist * lists);
@@ -555,7 +558,8 @@ struct plugin_api {
#endif
/* menu */
- int (*do_menu)(const struct menu_item_ex *menu, int *start_selected);
+ int (*do_menu)(const struct menu_item_ex *menu, int *start_selected,
+ struct viewport parent[NB_SCREENS], bool hide_bars);
/* scroll bar */
struct gui_syncstatusbar *statusbars;
diff --git a/apps/plugins/chessbox/chessbox.c b/apps/plugins/chessbox/chessbox.c
index 920def8..4129a3c 100644
--- a/apps/plugins/chessbox/chessbox.c
+++ b/apps/plugins/chessbox/chessbox.c
@@ -393,7 +393,7 @@ static int cb_menu_viewer(void)
while(!menu_quit)
{
- switch(rb->do_menu(&menu, &selection))
+ switch(rb->do_menu(&menu, &selection, NULL, false))
{
case 0:
menu_quit = true;
@@ -595,7 +595,7 @@ static int cb_menu(void)
while(!menu_quit)
{
- switch(rb->do_menu(&menu, &selection))
+ switch(rb->do_menu(&menu, &selection, NULL, false))
{
case 0:
menu_quit = true;
diff --git a/apps/plugins/chessbox/chessbox_pgn.c b/apps/plugins/chessbox/chessbox_pgn.c
index b3e71de..6d18986 100644
--- a/apps/plugins/chessbox/chessbox_pgn.c
+++ b/apps/plugins/chessbox/chessbox_pgn.c
@@ -628,7 +628,7 @@ struct pgn_game_node* pgn_show_game_list(struct plugin_api* api,
}
- rb->gui_synclist_init(&games_list, &get_game_text, first_game, false, 1);
+ rb->gui_synclist_init(&games_list, &get_game_text, first_game, false, 1, NULL);
rb->gui_synclist_set_title(&games_list, "Games", NOICON);
rb->gui_synclist_set_icon_callback(&games_list, NULL);
rb->gui_synclist_set_nb_items(&games_list, i);
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index f359023..71f62f4 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -684,7 +684,7 @@ static int chopMenu(int menunum)
rb->lcd_clear_display();
while (!menu_quit) {
- switch(rb->do_menu(&menu, &result))
+ switch(rb->do_menu(&menu, &result, NULL, false))
{
case 0: /* Start New Game */
menu_quit=true;
diff --git a/apps/plugins/clock/clock_menu.c b/apps/plugins/clock/clock_menu.c
index 4cbf46a..a515e87 100644
--- a/apps/plugins/clock/clock_menu.c
+++ b/apps/plugins/clock/clock_menu.c
@@ -57,7 +57,7 @@ static const struct opt_items hour_format_text[] = {
bool menu_mode_selector(void){
MENUITEM_STRINGLIST(menu,"Mode Selector",NULL, "Analog",
"Digital", "Binary");
- if(rb->do_menu(&menu, &clock_settings.mode) >=0)
+ if(rb->do_menu(&menu, &clock_settings.mode, NULL, false) >=0)
return(true);
return(false);
}
@@ -73,7 +73,7 @@ void menu_analog_settings(void)
"Show Second Hand","Show Border");
while(result>=0){
- result=rb->do_menu(&menu, &selection);
+ result=rb->do_menu(&menu, &selection, NULL, false);
switch(result){
case 0:
rb->set_option("Show Date", &clock_settings.analog.show_date,
@@ -103,7 +103,7 @@ void menu_digital_settings(void){
"Blinking Colon");
while(result>=0){
- result=rb->do_menu(&menu, &selection);
+ result=rb->do_menu(&menu, &selection, NULL, false);
switch(result){
case 0:
rb->set_option("Show Seconds",
@@ -148,7 +148,7 @@ void menu_general_settings(void){
"Idle Poweroff (temporary)");
while(result>=0){
- result=rb->do_menu(&menu, &selection);
+ result=rb->do_menu(&menu, &selection, NULL, false);
switch(result){
case 0:
rb->set_option("Hour format",
@@ -211,7 +211,7 @@ bool main_menu(void){
"Mode Settings","General Settings","Quit");
while(!done){
- switch(rb->do_menu(&menu, &selection)){
+ switch(rb->do_menu(&menu, &selection, NULL, false)){
case 0:
done = true;
break;
diff --git a/apps/plugins/dice.c b/apps/plugins/dice.c
index 84bd310..7688d91 100644
--- a/apps/plugins/dice.c
+++ b/apps/plugins/dice.c
@@ -177,7 +177,7 @@ bool dice_menu(struct dices * dice) {
while (!menu_quit) {
- switch(rb->do_menu(&menu, &selection)){
+ switch(rb->do_menu(&menu, &selection, NULL, false)){
case 0:
menu_quit = true;
result = true;
diff --git a/apps/plugins/disktidy.c b/apps/plugins/disktidy.c
index b32dce2..c06afea 100644
--- a/apps/plugins/disktidy.c
+++ b/apps/plugins/disktidy.c
@@ -369,7 +369,7 @@ int tidy_lcd_menu(void)
while (!menu_quit)
{
- switch(rb->do_menu(&menu, &selection))
+ switch(rb->do_menu(&menu, &selection, NULL, false))
{
case 0:
diff --git a/apps/plugins/lib/oldmenuapi.c b/apps/plugins/lib/oldmenuapi.c
index 07681a0..c21e55f 100644
--- a/apps/plugins/lib/oldmenuapi.c
+++ b/apps/plugins/lib/oldmenuapi.c
@@ -74,7 +74,7 @@ int menu_init(struct plugin_api *api, const struct menu_item* mitems,
return -1;
menus[menu].items = (struct menu_item*)mitems; /* de-const */
rb->gui_synclist_init(&(menus[menu].synclist),
- &menu_get_itemname, &menus[menu], false, 1);
+ &menu_get_itemname, &menus[menu], false, 1, NULL);
rb->gui_synclist_set_icon_callback(&(menus[menu].synclist), NULL);
rb->gui_synclist_set_nb_items(&(menus[menu].synclist), count);
menus[menu].callback = callback;
diff --git a/apps/plugins/lib/playback_control.c b/apps/plugins/lib/playback_control.c
index bc8f1c7..2bed02e 100644
--- a/apps/plugins/lib/playback_control.c
+++ b/apps/plugins/lib/playback_control.c
@@ -111,5 +111,5 @@ void playback_control_init(struct plugin_api* newapi)
bool playback_control(struct plugin_api* newapi)
{
api = newapi;
- return api->do_menu(&playback_control_menu, NULL) == MENU_ATTACHED_USB;
+ return api->do_menu(&playback_control_menu, NULL, NULL, false) == MENU_ATTACHED_USB;
}
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index 0f3de2f..5066844 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -498,7 +498,7 @@ enum minesweeper_status menu( void )
while( !menu_quit )
{
- switch( rb->do_menu( &menu, &selection ) )
+ switch( rb->do_menu( &menu, &selection, NULL, false ) )
{
case 0:
result = MINESWEEPER_WIN; /* start playing */
diff --git a/apps/plugins/pictureflow.c b/apps/plugins/pictureflow.c
index 6e88138..02f0522 100644
--- a/apps/plugins/pictureflow.c
+++ b/apps/plugins/pictureflow.c
@@ -1541,7 +1541,7 @@ int settings_menu(void) {
"Rebuild cache");
do {
- selection=rb->do_menu(&settings_menu,&selection);
+ selection=rb->do_menu(&settings_menu,&selection, NULL, false);
switch(selection) {
case 0:
rb->set_bool("Show FPS", &show_fps);
@@ -1604,7 +1604,7 @@ int main_menu(void)
"Settings", "Return", "Quit");
while (1) {
- switch (rb->do_menu(&main_menu,&selection)) {
+ switch (rb->do_menu(&main_menu,&selection, NULL, false)) {
case 0:
result = settings_menu();
if ( result != 0 ) return result;
diff --git a/apps/plugins/properties.c b/apps/plugins/properties.c
index 0811b00..8b1f6ee 100644
--- a/apps/plugins/properties.c
+++ b/apps/plugins/properties.c
@@ -305,7 +305,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file)
prev_show_statusbar = rb->global_settings->statusbar;
rb->global_settings->statusbar = false;
- rb->gui_synclist_init(&properties_lists, &get_props, file, false, 1);
+ rb->gui_synclist_init(&properties_lists, &get_props, file, false, 1, NULL);
rb->gui_synclist_set_title(&properties_lists, its_a_dir ?
"Directory properties" :
"File properties", NOICON);
diff --git a/apps/plugins/random_folder_advance_config.c b/apps/plugins/random_folder_advance_config.c
index 656daea..af41507 100644
--- a/apps/plugins/random_folder_advance_config.c
+++ b/apps/plugins/random_folder_advance_config.c
@@ -278,7 +278,7 @@ void edit_list(void)
list = (struct file_format *)buffer;
dirs_count = list->count;
- rb->gui_synclist_init(&lists,list_get_name_cb,0, false, 1);
+ rb->gui_synclist_init(&lists,list_get_name_cb,0, false, 1, NULL);
rb->gui_synclist_set_icon_callback(&lists,NULL);
rb->gui_synclist_set_nb_items(&lists,list->count);
rb->gui_synclist_limit_scroll(&lists,true);
diff --git a/apps/plugins/shortcuts/shortcuts_view.c b/apps/plugins/shortcuts/shortcuts_view.c
index 4ef1bbc..503db56 100644
--- a/apps/plugins/shortcuts/shortcuts_view.c
+++ b/apps/plugins/shortcuts/shortcuts_view.c
@@ -117,7 +117,7 @@ bool list_sc(bool is_editable)
/* Setup the GUI list object, draw it to the screen,
* and then handle the user input to it */
- rb->gui_synclist_init(&gui_sc, &build_sc_list, &sc_file, false, 1);
+ rb->gui_synclist_init(&gui_sc, &build_sc_list, &sc_file, false, 1, NULL);
rb->gui_synclist_set_title(&gui_sc,
(is_editable?"Shortcuts (editable)":"Shortcuts (sealed)"), NOICON);
rb->gui_synclist_set_nb_items(&gui_sc, sc_file.entry_cnt);
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 51d5f5a..fffb70c 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -396,7 +396,7 @@ void game_init(void) {
"Quit");
while (!menu_quit) {
- switch(rb->do_menu(&menu, &selection))
+ switch(rb->do_menu(&menu, &selection, NULL, false))
{
case 0:
menu_quit = true; /* start playing */
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index d4e33f1..8b1fe50 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -1173,7 +1173,7 @@ static int sokoban_menu(void)
do {
menu_quit = true;
- selection = rb->do_menu(&menu, &start_selected);
+ selection = rb->do_menu(&menu, &start_selected, NULL, false);
switch (selection) {
case 0: /* Resume */
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index efa8d4e..c2546d2 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -951,16 +951,28 @@ static int star_menu(void)
{
int selection, level=1;
bool menu_quit = false;
-
+ struct viewport vp[NB_SCREENS];
/* get the size of char */
rb->lcd_getstringsize("a", &char_width, &char_height);
MENUITEM_STRINGLIST(menu,"Star Menu",NULL,"Play","Choose Level",
"Information","Keys","Quit");
-
+ FOR_NB_SCREENS(selection)
+ {
+ rb->viewport_set_defaults(&vp[selection], selection);
+ /* we are hiding the statusbar so fix the height also */
+ vp->y = 0; vp->height = rb->screens[selection]->height;
+#if LCD_DEPTH > 1
+ if (rb->screens[selection]->depth > 1)
+ {
+ vp->bg_pattern = LCD_BLACK;
+ vp->fg_pattern = LCD_WHITE;
+ }
+#endif
+ }
while(!menu_quit)
{
- switch(rb->do_menu(&menu, &selection))
+ switch(rb->do_menu(&menu, &selection, vp, true))
{
case 0:
menu_quit = true;
diff --git a/apps/plugins/superdom.c b/apps/plugins/superdom.c
index e3f35f9..c047ed4 100644
--- a/apps/plugins/superdom.c
+++ b/apps/plugins/superdom.c
@@ -493,7 +493,7 @@ int settings_menu_function(void) {
"Human starting farms","Human starting factories",
"Starting cash","Starting food","Moves per turn");
settings_menu:
- selection=rb->do_menu(&settings_menu,&selection);
+ selection=rb->do_menu(&settings_menu,&selection, NULL, false);
switch(selection) {
case 0:
rb->set_int("Computer starting farms", "", UNIT_INT,
@@ -557,7 +557,7 @@ int do_help(void) {
"Each tile has a strength, calculated by the ownership",
"of adjacent tiles, and the type and number of troops",
"on them.");
- rb->do_menu(&help_menu,&selection);
+ rb->do_menu(&help_menu,&selection, NULL, false);
switch(selection) {
case MENU_ATTACHED_USB:
return PLUGIN_USB_CONNECTED;
@@ -573,7 +573,7 @@ int menu(void) {
"Play Super Domination","Settings","Help","Quit");
while(1) {
- selection=rb->do_menu(&main_menu,&selection);
+ selection=rb->do_menu(&main_menu,&selection, NULL, false);
switch(selection) {
case 0:
return 0; /* start playing */
@@ -651,7 +651,7 @@ int ingame_menu(void) {
MENUITEM_STRINGLIST(ingame_menu,"Super Domination Menu",NULL,
"Return to game","Save Game", "Quit");
- selection=rb->do_menu(&ingame_menu,&selection);
+ selection=rb->do_menu(&ingame_menu,&selection, NULL, false);
switch(selection) {
case 0:
return 0;
@@ -864,7 +864,7 @@ int buy_resources_menu(void) {
"Finish buying", "Game menu");
resources_menu:
- selection=rb->do_menu(&res_menu,&selection);
+ selection=rb->do_menu(&res_menu,&selection, NULL, false);
switch(selection) {
case 0:
nummen = 0;
@@ -1059,7 +1059,7 @@ int move_unit(void) {
MENUITEM_STRINGLIST(move_unit_menu, "Move unit", NULL, "Move men",
"Move tank", "Move plane");
- selection=rb->do_menu(&move_unit_menu,&selection);
+ selection=rb->do_menu(&move_unit_menu,&selection, NULL, false);
switch(selection) {
case 0:
rb->splash(HZ, "Select where to move troops from");
@@ -1173,7 +1173,7 @@ int movement_menu(void) {
"Check map", "Finish moving", "Game menu");
while(!menu_quit) {
- selection=rb->do_menu(&move_menu,&selection);
+ selection=rb->do_menu(&move_menu,&selection, NULL, false);
switch(selection) {
case 0:
if(humanres.moves) {
@@ -1281,7 +1281,7 @@ int production_menu(void) {
"Withdraw money", "Finish turn", "Game menu");
while(1) {
- selection=rb->do_menu(&prod_menu,&selection);
+ selection=rb->do_menu(&prod_menu,&selection, NULL, false);
switch(selection) {
case 0:
tempmenu = buy_resources_menu();
@@ -1523,7 +1523,7 @@ int war_menu(void) {
humanres.moves = superdom_settings.movesperturn;
while(humanres.moves) {
- selection=rb->do_menu(&wartime_menu,&selection);
+ selection=rb->do_menu(&wartime_menu,&selection, NULL, false);
switch(selection) {
case 0:
if(select_square() == PLUGIN_USB_CONNECTED)
diff --git a/apps/plugins/test_codec.c b/apps/plugins/test_codec.c
index 28e3d18..642c1c3 100644
--- a/apps/plugins/test_codec.c
+++ b/apps/plugins/test_codec.c
@@ -715,7 +715,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
rb->lcd_clear_display();
- result=rb->do_menu(&menu,&selection);
+ result=rb->do_menu(&menu,&selection, NULL, false);
scandir = 0;
diff --git a/apps/plugins/text_editor.c b/apps/plugins/text_editor.c
index 780516e..75bbccf 100644
--- a/apps/plugins/text_editor.c
+++ b/apps/plugins/text_editor.c
@@ -202,7 +202,7 @@ void save_changes(int overwrite)
void setup_lists(struct gui_synclist *lists, int sel)
{
- rb->gui_synclist_init(lists,list_get_name_cb,0, false, 1);
+ rb->gui_synclist_init(lists,list_get_name_cb,0, false, 1, NULL);
rb->gui_synclist_set_icon_callback(lists,NULL);
rb->gui_synclist_set_nb_items(lists,line_count);
rb->gui_synclist_limit_scroll(lists,true);
@@ -222,7 +222,7 @@ int do_item_menu(int cur_sel, char* copy_buffer)
"Insert Above", "Insert Below",
"Concat To Above", "Save");
- switch (rb->do_menu(&menu, NULL))
+ switch (rb->do_menu(&menu, NULL, NULL, false))
{
case 0: /* cut */
rb->strcpy(copy_buffer,&buffer[do_action(ACTION_GET,0,cur_sel)]);
@@ -400,7 +400,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
{
MENUITEM_STRINGLIST(menu, "Edit What?", NULL,
"Extension", "Color",);
- switch (rb->do_menu(&menu, NULL))
+ switch (rb->do_menu(&menu, NULL, NULL, false))
{
case 0:
edit_text = true;
@@ -468,7 +468,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
"Show Playback Menu", "Save Changes",
"Save As...", "Save and Exit",
"Ignore Changes and Exit");
- switch (rb->do_menu(&menu, NULL))
+ switch (rb->do_menu(&menu, NULL, NULL, false))
{
case 0:
break;
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 97ad12d..f711182 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -401,7 +401,7 @@ static bool vu_meter_menu(void)
};
while (!menu_quit) {
- switch(rb->do_menu(&menu, &selection))
+ switch(rb->do_menu(&menu, &selection, NULL, false))
{
case 0:
rb->set_option("Meter Type", &vumeter_settings.meter_type, INT,
diff --git a/apps/plugins/wavrecord.c b/apps/plugins/wavrecord.c
index b509212..f6969ff 100644
--- a/apps/plugins/wavrecord.c
+++ b/apps/plugins/wavrecord.c
@@ -3716,7 +3716,7 @@ static int recording_menu(void)
while (!done)
{
- switch (rb->do_menu(&menu, &menupos))
+ switch (rb->do_menu(&menu, &menupos, NULL, false))
{
case 0: /* Set sample rate */
rb->set_option("Sample rate", &reccfg.samplerate, INT, freqs, 9, NULL);
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 68b31a1..8b752bf 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -2599,7 +2599,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
rb->button_clear_queue();
while (!menu_quit) {
- switch(rb->do_menu(&menu, &result))
+ switch(rb->do_menu(&menu, &result, NULL, false))
{
case 0:
rb->lcd_setfont(FONT_SYSFIXED);
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index 743dd41..879d0e6 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -851,7 +851,7 @@ static int game_menu (void)
rb->lcd_set_background(LCD_WHITE);
#endif
for (;;) {
- rb->do_menu(&menu,&selection);
+ rb->do_menu(&menu,&selection, NULL, false);
if (selection==1)
rb->set_int ("Speed", "", UNIT_INT, &speed, NULL, 1, 1, 10, NULL);
else if (selection==2)
diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c
index 0e43cc6..593cab3 100644
--- a/apps/recorder/radio.c
+++ b/apps/recorder/radio.c
@@ -1331,7 +1331,7 @@ static int handle_radio_presets(void)
str(LANG_FM_BUTTONBAR_ACTION));
gui_buttonbar_draw(&buttonbar);
#endif
- gui_synclist_init(&lists, presets_get_name, NULL, false, 1);
+ gui_synclist_init(&lists, presets_get_name, NULL, false, 1, NULL);
gui_synclist_set_title(&lists, str(LANG_PRESET), NOICON);
gui_synclist_set_icon_callback(&lists, NULL);
if(global_settings.talk_file)
@@ -1364,7 +1364,7 @@ static int handle_radio_presets(void)
case ACTION_F3:
case ACTION_STD_CONTEXT:
selected_preset = gui_synclist_get_sel_pos(&lists);
- do_menu(&handle_radio_preset_menu, NULL);
+ do_menu(&handle_radio_preset_menu, NULL, NULL, false);
gui_synclist_speak_item(&lists);
break;
default:
@@ -1583,7 +1583,7 @@ MAKE_MENU(radio_settings_menu, ID2P(LANG_FM_MENU), NULL,
/* main menu of the radio screen */
static bool radio_menu(void)
{
- return do_menu(&radio_settings_menu, NULL) == MENU_ATTACHED_USB;
+ return do_menu(&radio_settings_menu, NULL, NULL, false) == MENU_ATTACHED_USB;
}
#endif
diff --git a/apps/root_menu.c b/apps/root_menu.c
index abf3269..ae7f92f 100644
--- a/apps/root_menu.c
+++ b/apps/root_menu.c
@@ -221,7 +221,7 @@ static int browser(void* param)
static int menu(void* param)
{
(void)param;
- return do_menu(NULL, 0);
+ return do_menu(NULL, 0, NULL, false);
}
#ifdef HAVE_RECORDING
@@ -292,7 +292,7 @@ static int plugins_menu(void* param)
int selection = 0, current = 0;
while (retval == GO_TO_PREVIOUS)
{
- selection = do_menu(&plugins_menu_items, &current);
+ selection = do_menu(&plugins_menu_items, &current, NULL, false);
switch (selection)
{
case 0:
@@ -483,7 +483,7 @@ static int load_context_screen(int selection)
}
if (context_menu)
- return do_menu(context_menu, NULL);
+ return do_menu(context_menu, NULL, NULL, false);
else
return GO_TO_PREVIOUS;
}
@@ -540,7 +540,7 @@ void root_menu(void)
case GO_TO_ROOT:
if (last_screen != GO_TO_ROOT)
selected = get_selection(last_screen);
- next_screen = do_menu(&root_menu_, &selected);
+ next_screen = do_menu(&root_menu_, &selected, NULL, false);
if (next_screen != GO_TO_PREVIOUS)
last_screen = GO_TO_ROOT;
break;
diff --git a/apps/screens.c b/apps/screens.c
index 6654be4..8d6ebfe 100644
--- a/apps/screens.c
+++ b/apps/screens.c
@@ -1223,7 +1223,7 @@ bool browse_id3(void)
struct mp3entry* id3 = audio_current_track();
int key;
- gui_synclist_init(&id3_lists, &id3_get_info, id3, true, 2);
+ gui_synclist_init(&id3_lists, &id3_get_info, id3, true, 2, NULL);
gui_synclist_set_nb_items(&id3_lists,
sizeof(id3_headers)/sizeof(id3_headers[0])*2);
gui_synclist_draw(&id3_lists);
@@ -1275,7 +1275,7 @@ bool view_runtime(void)
struct gui_synclist lists;
int action;
- gui_synclist_init(&lists, runtime_get_data, NULL, false, 2);
+ gui_synclist_init(&lists, runtime_get_data, NULL, false, 2, NULL);
#if !defined(HAVE_LCD_CHARCELLS)
gui_synclist_set_title(&lists, str(LANG_RUNNING_TIME), NOICON);
#else
diff --git a/apps/tree.c b/apps/tree.c
index ec70cb3..fc263a0 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -307,7 +307,7 @@ void tree_gui_init(void)
/* since archos only have one screen, no need to create more than that */
gui_buttonbar_set_display(&tree_buttonbar, &(screens[SCREEN_MAIN]) );
#endif
- gui_synclist_init(&tree_lists, &tree_get_filename, &tc, false, 1);
+ gui_synclist_init(&tree_lists, &tree_get_filename, &tc, false, 1, NULL);
gui_synclist_set_voice_callback(&tree_lists, tree_voice_cb);
gui_synclist_set_icon_callback(&tree_lists, &tree_get_fileicon);
#ifdef HAVE_LCD_COLOR