From 6d7900e3300a90f9a75a76793427723da0ff73bb Mon Sep 17 00:00:00 2001 From: Magnus Holmgren Date: Thu, 12 Aug 2010 10:01:46 +0000 Subject: When using the tag argument in %%xd(): 1) clear the image first, so that images with transparency can be used; 2) allow things like battery level or volume, where a value is limited to the number of sub-images. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27786 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/skin_render.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c index 912763c2c1..d48dd6b5b8 100644 --- a/apps/gui/skin_engine/skin_render.c +++ b/apps/gui/skin_engine/skin_render.c @@ -157,21 +157,24 @@ static bool do_non_text_tags(struct gui_wps *gwps, struct skin_draw_info *info, { char buf[16]; const char *out; - int a = TOKEN_VALUE_ONLY; + int a = img->num_subimages; out = get_token_value(gwps, id->token, buf, sizeof(buf), &a); + /* NOTE: get_token_value() returns values starting at 1! */ if (a == -1) a = (out && *out) ? 1 : 2; a--; a += id->offset; + + /* Clear the image, as in conditionals */ + clear_image_pos(gwps, img); + /* If the token returned a value which is higher than - * the amount of subimages clear the image. */ - if (a<0 || a >= img->num_subimages) + * the amount of subimages, don't draw it. */ + if (a >= 0 && a < img->num_subimages) { - clear_image_pos(gwps, img); - } - else img->display = a; + } } } break; -- cgit v1.2.3