summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine/skin_tokens.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2011-09-11 10:44:17 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2011-09-11 10:44:17 +0000
commit3d0317a273a99f277d88c491181ba220db9dd2b0 (patch)
tree53f10f49995065ec24aa5656d5c01dd76b8f88e1 /apps/gui/skin_engine/skin_tokens.c
parent93a600fdab817ccfc2c8f9301d9190aed3552ad6 (diff)
downloadrockbox-3d0317a273a99f277d88c491181ba220db9dd2b0.tar.gz
rockbox-3d0317a273a99f277d88c491181ba220db9dd2b0.zip
Rework how the skin gets the list item text to save some ram. Also allow the %LI and %LT tags to take 2 optional parameters to get a different items text/icon:
%LT(offset, nowrap) - get the text for the "being drawn"+offset item (offset being + or -). if the second param is "nowrap" (Without quotes) the text will be blank if the item would need to wrap. Same for the icon e.g: %LT(-1) %LT << %LT(1, nowrap) will display: Four Five << Six (or nothing if Five is the last item) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30502 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/skin_engine/skin_tokens.c')
-rw-r--r--apps/gui/skin_engine/skin_tokens.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c
index 371db46017..a4f0814945 100644
--- a/apps/gui/skin_engine/skin_tokens.c
+++ b/apps/gui/skin_engine/skin_tokens.c
@@ -922,14 +922,21 @@ const char *get_token_value(struct gui_wps *gwps,
922 snprintf(buf, buf_size, "%d",sb_get_icon(gwps->display->screen_type)); 922 snprintf(buf, buf_size, "%d",sb_get_icon(gwps->display->screen_type));
923 return buf; 923 return buf;
924 case SKIN_TOKEN_LIST_ITEM_TEXT: 924 case SKIN_TOKEN_LIST_ITEM_TEXT:
925 return skinlist_get_item_text(); 925 {
926 struct listitem *li = (struct listitem *)token->value.data;
927 return skinlist_get_item_text(li->offset, li->wrap, buf, buf_size);
928 }
926 case SKIN_TOKEN_LIST_ITEM_IS_SELECTED: 929 case SKIN_TOKEN_LIST_ITEM_IS_SELECTED:
927 return skinlist_is_selected_item()?"s":""; 930 return skinlist_is_selected_item()?"s":"";
928 case SKIN_TOKEN_LIST_ITEM_ICON: 931 case SKIN_TOKEN_LIST_ITEM_ICON:
932 {
933 struct listitem *li = (struct listitem *)token->value.data;
934 int icon = skinlist_get_item_icon(li->offset, li->wrap);
929 if (intval) 935 if (intval)
930 *intval = skinlist_get_item_icon(); 936 *intval = icon;
931 snprintf(buf, buf_size, "%d",skinlist_get_item_icon()); 937 snprintf(buf, buf_size, "%d", icon);
932 return buf; 938 return buf;
939 }
933 case SKIN_TOKEN_LIST_NEEDS_SCROLLBAR: 940 case SKIN_TOKEN_LIST_NEEDS_SCROLLBAR:
934 return skinlist_needs_scrollbar(gwps->display->screen_type) ? "s" : ""; 941 return skinlist_needs_scrollbar(gwps->display->screen_type) ? "s" : "";
935#endif 942#endif