diff options
| author | Jonathan Gordon <rockbox@jdgordon.info> | 2010-05-05 13:48:50 +0000 |
|---|---|---|
| committer | Jonathan Gordon <rockbox@jdgordon.info> | 2010-05-05 13:48:50 +0000 |
| commit | efd1f4e49facbcdcbb11dbf6a8ead3843df586d3 (patch) | |
| tree | 1247db65aa3b5eb15814b01d3becd8dbe98d2eb0 /apps/gui/skin_engine/skin_parser.c | |
| parent | 268f7c42f0d7128a4c88cb1c9b64b663dd266bf6 (diff) | |
| download | rockbox-efd1f4e49facbcdcbb11dbf6a8ead3843df586d3.zip rockbox-efd1f4e49facbcdcbb11dbf6a8ead3843df586d3.tar.gz rockbox-efd1f4e49facbcdcbb11dbf6a8ead3843df586d3.tar.bz2 rockbox-efd1f4e49facbcdcbb11dbf6a8ead3843df586d3.tar.xz | |
Make it possible to move the UI viewport using conditional viewports.
%Vi|<label>|<Usual %Vi params>| <- specify the possible viewports to use
%VI<label> <- make the UI viewport use the %Vi definition with the <label> label.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25826 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/skin_engine/skin_parser.c')
| -rw-r--r-- | apps/gui/skin_engine/skin_parser.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index 6ea0180..78ec26e 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c @@ -370,6 +370,8 @@ static const struct wps_tag all_tags[] = { { WPS_VIEWPORT_ENABLE, "Vd", WPS_REFRESH_DYNAMIC, parse_viewport_display }, + { WPS_TOKEN_UIVIEWPORT_ENABLE, "VI", WPS_REFRESH_STATIC, + parse_viewport_display }, #ifdef HAVE_LCD_BITMAP { WPS_VIEWPORT_CUSTOMLIST, "Vp", WPS_REFRESH_STATIC, parse_playlistview }, { WPS_TOKEN_LIST_TITLE_TEXT, "Lt", WPS_REFRESH_DYNAMIC, NULL }, @@ -915,9 +917,25 @@ static int parse_viewport(const char *wps_bufptr, if (*ptr == 'i') { - skin_vp->label = VP_INFO_LABEL; - skin_vp->hidden_flags = VP_NEVER_VISIBLE; - ++ptr; + if (*(ptr+1) == '|') + { + char label = *(ptr+2); + if (label >= 'a' && label <= 'z') + { + skin_vp->hidden_flags = VP_NEVER_VISIBLE; + skin_vp->label = VP_INFO_LABEL|label; + ptr += 3; + } + else + { + skin_vp->label = VP_INFO_LABEL|VP_DEFAULT_LABEL; + skin_vp->hidden_flags = VP_NEVER_VISIBLE; + ++ptr; + } + } + else + return WPS_ERROR_INVALID_PARAM; /* malformed token: e.g. %Cl7 */ + } else if (*ptr == 'l') { |