summaryrefslogtreecommitdiff
path: root/apps/menus/theme_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/menus/theme_menu.c')
-rw-r--r--apps/menus/theme_menu.c78
1 files changed, 77 insertions, 1 deletions
diff --git a/apps/menus/theme_menu.c b/apps/menus/theme_menu.c
index 983eca9445..b483a7ef11 100644
--- a/apps/menus/theme_menu.c
+++ b/apps/menus/theme_menu.c
@@ -246,9 +246,85 @@ static struct browse_folder_info themes = {THEME_DIR, SHOW_CFG};
246 246
247int browse_folder(void *param) 247int browse_folder(void *param)
248{ 248{
249 const char *ext, *setting;
250 int lang_id = -1;
251 char selected[MAX_FILENAME+10];
249 const struct browse_folder_info *info = 252 const struct browse_folder_info *info =
250 (const struct browse_folder_info*)param; 253 (const struct browse_folder_info*)param;
251 return rockbox_browse(info->dir, info->show_options); 254 struct browse_context browse;
255 browse_context_init(&browse, info->show_options, 0,
256 NULL, NOICON, info->dir, NULL);
257
258 /* if we are in a special settings folder, center the current setting */
259 switch(info->show_options)
260 {
261 case SHOW_LNG:
262 ext = "lng";
263 if (global_settings.lang_file[0])
264 setting = global_settings.lang_file;
265 else
266 setting = "english";
267 lang_id = LANG_LANGUAGE;
268 break;
269 case SHOW_WPS:
270 ext = "wps";
271 setting = global_settings.wps_file;
272 lang_id = LANG_WHILE_PLAYING;
273 break;
274#ifdef HAVE_LCD_BITMAP
275 case SHOW_FONT:
276 ext = "fnt";
277 setting = global_settings.font_file;
278 lang_id = LANG_CUSTOM_FONT;
279 break;
280 case SHOW_SBS:
281 ext = "sbs";
282 setting = global_settings.sbs_file;
283 lang_id = LANG_BASE_SKIN;
284 break;
285#if CONFIG_TUNER
286 case SHOW_FMS:
287 ext = "fms";
288 setting = global_settings.fms_file;
289 lang_id = LANG_RADIOSCREEN;
290 break;
291#endif /* CONFIG_TUNER */
292#endif
293#ifdef HAVE_REMOTE_LCD
294 case SHOW_RWPS:
295 ext = "rwps";
296 setting = global_settings.rwps_file;
297 lang_id = LANG_REMOTE_WHILE_PLAYING;
298 break;
299 case SHOW_RSBS:
300 ext = "rsbs";
301 setting = global_settings.rsbs_file;
302 lang_id = LANG_REMOTE_BASE_SKIN;
303 break;
304#if CONFIG_TUNER
305 case SHOW_RFMS:
306 ext = "rfms";
307 setting = global_settings.rfms_file;
308 lang_id = LANG_REMOTE_RADIOSCREEN;
309 break;
310#endif /* CONFIG_TUNER */
311#endif
312 default:
313 ext = setting = NULL;
314 break;
315 }
316
317 /* If we've found a file to center on, do it */
318 if (setting)
319 {
320 /* if setting != NULL, ext is initialized */
321 snprintf(selected, sizeof(selected), "%s.%s", setting, ext);
322 browse.selected = selected;
323 browse.icon = Icon_Questionmark;
324 browse.title = str(lang_id);
325 }
326
327 return rockbox_browse(&browse);
252} 328}
253 329
254#ifdef HAVE_LCD_BITMAP 330#ifdef HAVE_LCD_BITMAP