summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2010-03-02 08:24:50 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2010-03-02 08:24:50 +0000
commit34f51ccb04e99443cd970248550aa0e902ae298a (patch)
tree2c493bc5b4e97a6e112ec57311e891aec77bdaa7 /apps
parent8c8703038be3f9bbb80742816045e18d3aa8c465 (diff)
downloadrockbox-34f51ccb04e99443cd970248550aa0e902ae298a.zip
rockbox-34f51ccb04e99443cd970248550aa0e902ae298a.tar.gz
rockbox-34f51ccb04e99443cd970248550aa0e902ae298a.tar.bz2
rockbox-34f51ccb04e99443cd970248550aa0e902ae298a.tar.xz
* Make the user font count more sane
* font 2-9 in the skins will always be user fonts in the skins * init the skinfonts array so it doesnt think id 'x' is used already * make the parser work with FONT_UI untill the very end, even on remote fonts git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24989 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/gui/skin_engine/skin_fonts.h1
-rw-r--r--apps/gui/skin_engine/skin_parser.c33
2 files changed, 17 insertions, 17 deletions
diff --git a/apps/gui/skin_engine/skin_fonts.h b/apps/gui/skin_engine/skin_fonts.h
index 0a847ee..0950838 100644
--- a/apps/gui/skin_engine/skin_fonts.h
+++ b/apps/gui/skin_engine/skin_fonts.h
@@ -32,7 +32,6 @@
#ifndef _SKINFONTS_H_
#define _SKINFONTS_H_
-#define MAXUSERFONTS (MAXFONTS - SYSTEMFONTCOUNT)
void skin_font_init(void);
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c
index 13e2df5..1ebfee2 100644
--- a/apps/gui/skin_engine/skin_parser.c
+++ b/apps/gui/skin_engine/skin_parser.c
@@ -935,14 +935,6 @@ static int parse_viewport(const char *wps_bufptr,
else
vp->flags &= ~VP_FLAG_ALIGN_RIGHT; /* ignore right-to-left languages */
- /* increment because font==2 and FONT_UI_REMOTE is ambiguous */
- if (vp->font > FONT_UI)
- vp->font++;
-#ifdef HAVE_REMOTE_LCD
- if (vp->font == FONT_UI && curr_screen == SCREEN_REMOTE)
- vp->font = FONT_UI_REMOTE;
-#endif
-
struct skin_token_list *list = new_skin_token_list_item(NULL, skin_vp);
if (!list)
return WPS_ERROR_INVALID_PARAM;
@@ -2082,6 +2074,7 @@ static bool skin_load_fonts(struct wps_data *data)
/* don't spit out after the first failue to aid debugging */
bool success = true;
struct skin_token_list *vp_list;
+ int font_id;
/* walk though each viewport and assign its font */
for(vp_list = data->viewports; vp_list; vp_list = vp_list->next)
{
@@ -2091,20 +2084,21 @@ static bool skin_load_fonts(struct wps_data *data)
struct viewport *vp = &skin_vp->vp;
- if (vp->font < SYSTEMFONTCOUNT)
+ if (vp->font <= FONT_UI)
{ /* the usual case -> built-in fonts */
+#ifdef HAVE_REMOTE_LCD
+ if (vp->font == FONT_UI)
+ vp->font += curr_screen;
+#endif
continue;
}
-
- /* decrement, because font has been incremented in viewport parsing
- * due to the FONT_UI_REMOTE ambiguity */
- int skin_font_id = vp->font-1;
+ font_id = vp->font;
/* now find the corresponding skin_font */
- struct skin_font *font = &skinfonts[skin_font_id-FONT_FIRSTUSERFONT];
+ struct skin_font *font = &skinfonts[font_id-FONT_FIRSTUSERFONT];
if (!font)
{
- DEBUGF("Could not find font %d\n", skin_font_id);
+ DEBUGF("Could not find font %d\n", font_id);
success = false;
continue;
}
@@ -2121,7 +2115,7 @@ static bool skin_load_fonts(struct wps_data *data)
if (font->id < 0)
{
DEBUGF("Unable to load font %d: '%s.fnt'\n",
- skin_font_id, font->name);
+ font_id, font->name);
success = false;
continue;
}
@@ -2154,6 +2148,12 @@ bool skin_data_load(enum screen_type screen, struct wps_data *wps_data,
old_aa.width = wps_data->albumart->width;
}
#endif
+ int i;
+ for (i=0;i<MAXUSERFONTS;i++)
+ {
+ skinfonts[i].id = -1;
+ skinfonts[i].name = NULL;
+ }
skin_data_reset(wps_data);
curr_screen = screen;
@@ -2175,6 +2175,7 @@ bool skin_data_load(enum screen_type screen, struct wps_data *wps_data,
curr_vp->lines = NULL;
viewport_set_defaults(&curr_vp->vp, screen);
+ curr_vp->vp.font = FONT_UI;
curr_line = NULL;
if (!skin_start_new_line(curr_vp, 0))