From f19f3efb078b2947638f6f7a7f209de44daf78b3 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Tue, 8 Nov 2011 10:09:33 +0000 Subject: Redo r30826 (and hopefully not reintroduce font issues) which cleans up the font API. FONT_UI is deprecated, use screens[screen].getuifont() instead (and .setuifont() to set it after a font has been loaded) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30932 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/skin_parser.c | 12 +++++++----- apps/gui/skin_engine/skin_render.c | 2 +- apps/gui/statusbar-skinned.c | 2 +- apps/gui/usb_screen.c | 4 ++-- apps/gui/viewport.c | 2 +- 5 files changed, 12 insertions(+), 10 deletions(-) (limited to 'apps/gui') diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index 1557783a7c..d207a1fb3e 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c @@ -246,10 +246,12 @@ static int parse_statusbar_tags(struct skin_element* element, viewport_set_fullscreen(&default_vp->vp, curr_screen); } #ifdef HAVE_REMOTE_LCD - /* viewport_set_defaults() sets the font to FONT_UI+curr_screen. - * This parser requires font 1 to always be the UI font, - * so force it back to FONT_UI and handle the screen number at the end */ - default_vp->vp.font = FONT_UI; + /* This parser requires viewports which will use the settings font to + * have font == 1, but the above viewport_set() calls set font to + * the current real font id. So force 1 here it will be set correctly + * at the end + */ + default_vp->vp.font = 1; #endif } return 0; @@ -1645,7 +1647,7 @@ static bool skin_load_fonts(struct wps_data *data) font_id = skin_vp->parsed_fontid; if (font_id == 1) { /* the usual case -> built-in fonts */ - vp->font = global_status.font_id[curr_screen]; + vp->font = screens[curr_screen].getuifont(); continue; } else if (font_id <= 0) diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c index 369bd46be5..4d41a6f9b7 100644 --- a/apps/gui/skin_engine/skin_render.c +++ b/apps/gui/skin_engine/skin_render.c @@ -658,7 +658,7 @@ void skin_render_viewport(struct skin_element* viewport, struct gui_wps *gwps, /* fix font ID's */ if (skin_viewport->parsed_fontid == 1) - skin_viewport->vp.font = global_status.font_id[display->screen_type]; + skin_viewport->vp.font = display->getuifont(); #endif while (line) diff --git a/apps/gui/statusbar-skinned.c b/apps/gui/statusbar-skinned.c index 7850e7cc27..f79672c0d9 100644 --- a/apps/gui/statusbar-skinned.c +++ b/apps/gui/statusbar-skinned.c @@ -128,7 +128,7 @@ struct viewport *sb_skin_get_info_vp(enum screen_type screen) if (!vp) return NULL; if (vp->parsed_fontid == 1) - vp->vp.font = global_status.font_id[screen]; + vp->vp.font = screens[screen].getuifont(); return &vp->vp; } diff --git a/apps/gui/usb_screen.c b/apps/gui/usb_screen.c index 06770b1b94..2b7d47209b 100644 --- a/apps/gui/usb_screen.c +++ b/apps/gui/usb_screen.c @@ -265,8 +265,8 @@ void gui_usb_screen_run(bool early_usb) #ifdef HAVE_LCD_BITMAP FOR_NB_SCREENS(i) { - font_unload(global_status.font_id[i]); - global_status.font_id[i] = -1; + font_unload(screens[i].getuifont()); + screens[i].setuifont(FONT_SYSFIXED); } skin_unload_all(); #endif diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c index 33ffed79f3..940f7f9cfa 100644 --- a/apps/gui/viewport.c +++ b/apps/gui/viewport.c @@ -319,7 +319,7 @@ void viewport_set_fullscreen(struct viewport *vp, #ifndef __PCTOOL__ set_default_align_flags(vp); #endif - vp->font = global_status.font_id[screen]; + vp->font = screens[screen].getuifont(); vp->line_height = 0; /* calculate from font height */ vp->drawmode = DRMODE_SOLID; #if LCD_DEPTH > 1 -- cgit v1.2.3