diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2012-02-28 22:05:28 +1100 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2012-02-28 23:51:01 +1100 |
commit | 34031cba5bddcc29dee0f61b3ea6ee1529014181 (patch) | |
tree | fed3c7dc82c2711f505dc5e51a9c4ce71470c606 | |
parent | 0807fe8d3634010a8a8303e5b0a7abb2bd28a937 (diff) | |
download | rockbox-34031cba5bddcc29dee0f61b3ea6ee1529014181.tar.gz rockbox-34031cba5bddcc29dee0f61b3ea6ee1529014181.zip |
skin_engine: Clean up %x() handling - beware theme issues
Internally remove some hacks around how %x() is handled.
%x() inside the default viewport will no longer work if
other viewports are used, so if you are using viewports and
%x() make sure it is in a viewport!
Change-Id: I8ecab805d55fc0f8476ff0516cba38e23400aa20
-rw-r--r-- | apps/gui/skin_engine/skin_display.c | 9 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_parser.c | 4 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_render.c | 7 | ||||
-rw-r--r-- | apps/gui/skin_engine/wps_internals.h | 1 | ||||
-rw-r--r-- | lib/skin_parser/tag_table.c | 2 | ||||
-rw-r--r-- | wps/cabbiev2.112x64x1.wps | 1 | ||||
-rw-r--r-- | wps/cabbiev2.128x64x1.wps | 3 |
7 files changed, 12 insertions, 15 deletions
diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c index 0613f986b3..0b3ba65751 100644 --- a/apps/gui/skin_engine/skin_display.c +++ b/apps/gui/skin_engine/skin_display.c | |||
@@ -298,10 +298,7 @@ void wps_draw_image(struct gui_wps *gwps, struct gui_img *img, int subimage) | |||
298 | { | 298 | { |
299 | struct screen *display = gwps->display; | 299 | struct screen *display = gwps->display; |
300 | img->bm.data = core_get_data(img->buflib_handle); | 300 | img->bm.data = core_get_data(img->buflib_handle); |
301 | if(img->always_display) | 301 | display->set_drawmode(DRMODE_SOLID); |
302 | display->set_drawmode(DRMODE_FG); | ||
303 | else | ||
304 | display->set_drawmode(DRMODE_SOLID); | ||
305 | 302 | ||
306 | display->bmp_part(&img->bm, 0, img->subimage_height * subimage, | 303 | display->bmp_part(&img->bm, 0, img->subimage_height * subimage, |
307 | img->x, img->y, img->bm.width, img->subimage_height); | 304 | img->x, img->y, img->bm.width, img->subimage_height); |
@@ -331,10 +328,6 @@ void wps_display_images(struct gui_wps *gwps, struct viewport* vp) | |||
331 | { | 328 | { |
332 | wps_draw_image(gwps, img, img->display); | 329 | wps_draw_image(gwps, img, img->display); |
333 | } | 330 | } |
334 | else if (img->always_display && SKINOFFSETTOPTR(get_skin_buffer(data), img->vp) == vp) | ||
335 | { | ||
336 | wps_draw_image(gwps, img, 0); | ||
337 | } | ||
338 | } | 331 | } |
339 | list = SKINOFFSETTOPTR(get_skin_buffer(data), list->next); | 332 | list = SKINOFFSETTOPTR(get_skin_buffer(data), list->next); |
340 | } | 333 | } |
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index 0fe8789bcb..3b83d9e199 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c | |||
@@ -415,7 +415,6 @@ static int parse_image_load(struct skin_element *element, | |||
415 | img->x = x; | 415 | img->x = x; |
416 | img->y = y; | 416 | img->y = y; |
417 | img->num_subimages = 1; | 417 | img->num_subimages = 1; |
418 | img->always_display = false; | ||
419 | img->display = -1; | 418 | img->display = -1; |
420 | img->using_preloaded_icons = false; | 419 | img->using_preloaded_icons = false; |
421 | img->buflib_handle = -1; | 420 | img->buflib_handle = -1; |
@@ -425,7 +424,7 @@ static int parse_image_load(struct skin_element *element, | |||
425 | 424 | ||
426 | if (token->type == SKIN_TOKEN_IMAGE_DISPLAY) | 425 | if (token->type == SKIN_TOKEN_IMAGE_DISPLAY) |
427 | { | 426 | { |
428 | img->always_display = true; | 427 | token->value.data = PTRTOSKINOFFSET(skin_buffer, img); |
429 | } | 428 | } |
430 | else if (element->params_count == 5) | 429 | else if (element->params_count == 5) |
431 | { | 430 | { |
@@ -1000,7 +999,6 @@ static int parse_progressbar_tag(struct skin_element* element, | |||
1000 | img->x = 0; | 999 | img->x = 0; |
1001 | img->y = 0; | 1000 | img->y = 0; |
1002 | img->num_subimages = 1; | 1001 | img->num_subimages = 1; |
1003 | img->always_display = false; | ||
1004 | img->display = -1; | 1002 | img->display = -1; |
1005 | img->using_preloaded_icons = false; | 1003 | img->using_preloaded_icons = false; |
1006 | img->buflib_handle = -1; | 1004 | img->buflib_handle = -1; |
diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c index ee42dfa5a7..f86b161eab 100644 --- a/apps/gui/skin_engine/skin_render.c +++ b/apps/gui/skin_engine/skin_render.c | |||
@@ -198,6 +198,13 @@ static bool do_non_text_tags(struct gui_wps *gwps, struct skin_draw_info *info, | |||
198 | #endif | 198 | #endif |
199 | break; | 199 | break; |
200 | #ifdef HAVE_LCD_BITMAP | 200 | #ifdef HAVE_LCD_BITMAP |
201 | case SKIN_TOKEN_IMAGE_DISPLAY: | ||
202 | { | ||
203 | struct gui_img *img = SKINOFFSETTOPTR(skin_buffer, token->value.data); | ||
204 | if (img && img->loaded && do_refresh) | ||
205 | img->display = 0; | ||
206 | } | ||
207 | break; | ||
201 | case SKIN_TOKEN_IMAGE_DISPLAY_LISTICON: | 208 | case SKIN_TOKEN_IMAGE_DISPLAY_LISTICON: |
202 | case SKIN_TOKEN_IMAGE_PRELOAD_DISPLAY: | 209 | case SKIN_TOKEN_IMAGE_PRELOAD_DISPLAY: |
203 | { | 210 | { |
diff --git a/apps/gui/skin_engine/wps_internals.h b/apps/gui/skin_engine/wps_internals.h index 1ea5dbf467..3b1d7cf054 100644 --- a/apps/gui/skin_engine/wps_internals.h +++ b/apps/gui/skin_engine/wps_internals.h | |||
@@ -80,7 +80,6 @@ struct gui_img { | |||
80 | int buflib_handle; | 80 | int buflib_handle; |
81 | OFFSETTYPE(char*) label; | 81 | OFFSETTYPE(char*) label; |
82 | bool loaded; /* load state */ | 82 | bool loaded; /* load state */ |
83 | bool always_display; /* not using the preload/display mechanism */ | ||
84 | int display; | 83 | int display; |
85 | bool using_preloaded_icons; /* using the icon system instead of a bmp */ | 84 | bool using_preloaded_icons; /* using the icon system instead of a bmp */ |
86 | }; | 85 | }; |
diff --git a/lib/skin_parser/tag_table.c b/lib/skin_parser/tag_table.c index a44b2ef251..e4b8bb1bf9 100644 --- a/lib/skin_parser/tag_table.c +++ b/lib/skin_parser/tag_table.c | |||
@@ -178,7 +178,7 @@ static const struct tag_info legal_tags[] = | |||
178 | 178 | ||
179 | { SKIN_TOKEN_IMAGE_PRELOAD, "xl", "SFII|I", 0|NOBREAK }, | 179 | { SKIN_TOKEN_IMAGE_PRELOAD, "xl", "SFII|I", 0|NOBREAK }, |
180 | { SKIN_TOKEN_IMAGE_PRELOAD_DISPLAY, "xd", "S|[IT]I", 0 }, | 180 | { SKIN_TOKEN_IMAGE_PRELOAD_DISPLAY, "xd", "S|[IT]I", 0 }, |
181 | { SKIN_TOKEN_IMAGE_DISPLAY, "x", "SFII", 0|NOBREAK }, | 181 | { SKIN_TOKEN_IMAGE_DISPLAY, "x", "SFII", SKIN_REFRESH_STATIC|NOBREAK }, |
182 | 182 | ||
183 | { SKIN_TOKEN_LOAD_FONT, "Fl" , "IF|I", 0|NOBREAK }, | 183 | { SKIN_TOKEN_LOAD_FONT, "Fl" , "IF|I", 0|NOBREAK }, |
184 | { SKIN_TOKEN_ALBUMART_LOAD, "Cl" , "IIII|ss", 0|NOBREAK }, | 184 | { SKIN_TOKEN_ALBUMART_LOAD, "Cl" , "IIII|ss", 0|NOBREAK }, |
diff --git a/wps/cabbiev2.112x64x1.wps b/wps/cabbiev2.112x64x1.wps index 3c56df1be1..cfefac890d 100644 --- a/wps/cabbiev2.112x64x1.wps +++ b/wps/cabbiev2.112x64x1.wps | |||
@@ -5,6 +5,7 @@ | |||
5 | %wd | 5 | %wd |
6 | # | 6 | # |
7 | # Load Backdrop | 7 | # Load Backdrop |
8 | %V(0,0,-,-,-) | ||
8 | %x(z,wpsbackdrop-112x64x1.bmp,0,0) | 9 | %x(z,wpsbackdrop-112x64x1.bmp,0,0) |
9 | # | 10 | # |
10 | # Preload Images | 11 | # Preload Images |
diff --git a/wps/cabbiev2.128x64x1.wps b/wps/cabbiev2.128x64x1.wps index 71c80aa728..23da53f4d3 100644 --- a/wps/cabbiev2.128x64x1.wps +++ b/wps/cabbiev2.128x64x1.wps | |||
@@ -11,12 +11,11 @@ | |||
11 | %xl(D,shuffle-128x64x1.bmp,0,1) | 11 | %xl(D,shuffle-128x64x1.bmp,0,1) |
12 | %xl(E,repeat-128x64x1.bmp,0,0,4) | 12 | %xl(E,repeat-128x64x1.bmp,0,0,4) |
13 | %xl(F,playmode-128x64x1.bmp,0,0,5) | 13 | %xl(F,playmode-128x64x1.bmp,0,0,5) |
14 | %x(a,pbbackground-128x64x1.bmp,1,0) | ||
15 | %xl(b,bar-128x64x1.bmp,2,0) | 14 | %xl(b,bar-128x64x1.bmp,2,0) |
16 | # | 15 | # |
17 | # Progress Bar | 16 | # Progress Bar |
18 | %V(0,0,128,6,1) | 17 | %V(0,0,128,6,1) |
19 | #%xd(a) | 18 | %x(a,pbbackground-128x64x1.bmp,1,0) |
20 | %pb(2,1,123,4,pb-128x64x1.bmp) | 19 | %pb(2,1,123,4,pb-128x64x1.bmp) |
21 | # | 20 | # |
22 | # Separator Bar | 21 | # Separator Bar |