summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/gui/bitmap/list-skinned.c6
-rw-r--r--apps/gui/list.h1
-rw-r--r--apps/gui/skin_engine/skin_tokens.c5
-rw-r--r--lib/skin_parser/tag_table.c1
-rw-r--r--lib/skin_parser/tag_table.h1
5 files changed, 14 insertions, 0 deletions
diff --git a/apps/gui/bitmap/list-skinned.c b/apps/gui/bitmap/list-skinned.c
index 5f53784ccc..208b2df681 100644
--- a/apps/gui/bitmap/list-skinned.c
+++ b/apps/gui/bitmap/list-skinned.c
@@ -82,6 +82,12 @@ static int offset_to_item(int offset, bool wrap)
82 item = item % current_list->nb_items; 82 item = item % current_list->nb_items;
83 return item; 83 return item;
84} 84}
85
86int skinlist_get_item_number()
87{
88 return current_drawing_line;
89}
90
85const char* skinlist_get_item_text(int offset, bool wrap, char* buf, size_t buf_size) 91const char* skinlist_get_item_text(int offset, bool wrap, char* buf, size_t buf_size)
86{ 92{
87 int item = offset_to_item(offset, wrap); 93 int item = offset_to_item(offset, wrap);
diff --git a/apps/gui/list.h b/apps/gui/list.h
index 7c64987abb..d40cfe9966 100644
--- a/apps/gui/list.h
+++ b/apps/gui/list.h
@@ -190,6 +190,7 @@ bool skinlist_is_selected_item(void);
190void skinlist_set_cfg(enum screen_type screen, 190void skinlist_set_cfg(enum screen_type screen,
191 struct listitem_viewport_cfg *cfg); 191 struct listitem_viewport_cfg *cfg);
192const char* skinlist_get_item_text(int offset, bool wrap, char* buf, size_t buf_size); 192const char* skinlist_get_item_text(int offset, bool wrap, char* buf, size_t buf_size);
193int skinlist_get_item_number(void);
193enum themable_icons skinlist_get_item_icon(int offset, bool wrap); 194enum themable_icons skinlist_get_item_icon(int offset, bool wrap);
194bool skinlist_needs_scrollbar(enum screen_type screen); 195bool skinlist_needs_scrollbar(enum screen_type screen);
195void skinlist_get_scrollbar(int* nb_item, int* first_shown, int* last_shown); 196void skinlist_get_scrollbar(int* nb_item, int* first_shown, int* last_shown);
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c
index fa697b18e9..7bf588080d 100644
--- a/apps/gui/skin_engine/skin_tokens.c
+++ b/apps/gui/skin_engine/skin_tokens.c
@@ -932,6 +932,11 @@ const char *get_token_value(struct gui_wps *gwps,
932 struct listitem *li = (struct listitem *)token->value.data; 932 struct listitem *li = (struct listitem *)token->value.data;
933 return skinlist_get_item_text(li->offset, li->wrap, buf, buf_size); 933 return skinlist_get_item_text(li->offset, li->wrap, buf, buf_size);
934 } 934 }
935 case SKIN_TOKEN_LIST_ITEM_NUMBER:
936 if (intval)
937 *intval = skinlist_get_item_number();
938 snprintf(buf, buf_size, "%d",skinlist_get_item_number());
939 return buf;
935 case SKIN_TOKEN_LIST_ITEM_IS_SELECTED: 940 case SKIN_TOKEN_LIST_ITEM_IS_SELECTED:
936 return skinlist_is_selected_item()?"s":""; 941 return skinlist_is_selected_item()?"s":"";
937 case SKIN_TOKEN_LIST_ITEM_ICON: 942 case SKIN_TOKEN_LIST_ITEM_ICON:
diff --git a/lib/skin_parser/tag_table.c b/lib/skin_parser/tag_table.c
index aa18dd4cca..dda5074d9a 100644
--- a/lib/skin_parser/tag_table.c
+++ b/lib/skin_parser/tag_table.c
@@ -189,6 +189,7 @@ static const struct tag_info legal_tags[] =
189 { SKIN_TOKEN_VIEWPORT_CUSTOMLIST, "Vp" , "IC", SKIN_REFRESH_DYNAMIC|NOBREAK }, 189 { SKIN_TOKEN_VIEWPORT_CUSTOMLIST, "Vp" , "IC", SKIN_REFRESH_DYNAMIC|NOBREAK },
190 { SKIN_TOKEN_LIST_TITLE_TEXT, "Lt" , "", SKIN_REFRESH_DYNAMIC }, 190 { SKIN_TOKEN_LIST_TITLE_TEXT, "Lt" , "", SKIN_REFRESH_DYNAMIC },
191 { SKIN_TOKEN_LIST_ITEM_TEXT, "LT", "|IS", SKIN_REFRESH_DYNAMIC }, 191 { SKIN_TOKEN_LIST_ITEM_TEXT, "LT", "|IS", SKIN_REFRESH_DYNAMIC },
192 { SKIN_TOKEN_LIST_ITEM_NUMBER, "LN", "", SKIN_REFRESH_DYNAMIC },
192 { SKIN_TOKEN_LIST_TITLE_ICON, "Li" , "", SKIN_REFRESH_DYNAMIC }, 193 { SKIN_TOKEN_LIST_TITLE_ICON, "Li" , "", SKIN_REFRESH_DYNAMIC },
193 { SKIN_TOKEN_LIST_ITEM_ICON, "LI", "|IS", SKIN_REFRESH_DYNAMIC }, 194 { SKIN_TOKEN_LIST_ITEM_ICON, "LI", "|IS", SKIN_REFRESH_DYNAMIC },
194 { SKIN_TOKEN_LIST_ITEM_CFG, "Lb" , "Sii|S", SKIN_REFRESH_STATIC }, 195 { SKIN_TOKEN_LIST_ITEM_CFG, "Lb" , "Sii|S", SKIN_REFRESH_STATIC },
diff --git a/lib/skin_parser/tag_table.h b/lib/skin_parser/tag_table.h
index 82ee4757be..58c3869ea6 100644
--- a/lib/skin_parser/tag_table.h
+++ b/lib/skin_parser/tag_table.h
@@ -216,6 +216,7 @@ enum skin_token_type {
216 SKIN_TOKEN_LIST_SELECTED_ITEM_CFG, 216 SKIN_TOKEN_LIST_SELECTED_ITEM_CFG,
217 SKIN_TOKEN_LIST_ITEM_IS_SELECTED, 217 SKIN_TOKEN_LIST_ITEM_IS_SELECTED,
218 SKIN_TOKEN_LIST_ITEM_TEXT, 218 SKIN_TOKEN_LIST_ITEM_TEXT,
219 SKIN_TOKEN_LIST_ITEM_NUMBER,
219 SKIN_TOKEN_LIST_ITEM_ICON, 220 SKIN_TOKEN_LIST_ITEM_ICON,
220 SKIN_TOKEN_LIST_NEEDS_SCROLLBAR, 221 SKIN_TOKEN_LIST_NEEDS_SCROLLBAR,
221 SKIN_TOKEN_LIST_SCROLLBAR, 222 SKIN_TOKEN_LIST_SCROLLBAR,