summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine/skin_render.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2011-03-27 08:01:58 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2011-03-27 08:01:58 +0000
commit87aa86cedd27445e51b0ad38dbc7cf2bdaa42364 (patch)
tree09d19881a5a48bbd3979877bfd08e5a109e6fa56 /apps/gui/skin_engine/skin_render.c
parent969381322d080a636d961a2e4505a9d88f04147d (diff)
downloadrockbox-87aa86cedd27445e51b0ad38dbc7cf2bdaa42364.tar.gz
rockbox-87aa86cedd27445e51b0ad38dbc7cf2bdaa42364.zip
Skin variables for touchscreen targets (origional implementation by Jens Theeß)
%vs(name, [set|inc|dec], value [,max]) - name is the id, set sets the value, inc increments by value, dec decrements by value %vg(name) - get the current value %vl(name [,timeout]) - 'has it changed in [timeout]'? values start at 1 and are all reset to 1 on skin load git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29655 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/skin_engine/skin_render.c')
-rw-r--r--apps/gui/skin_engine/skin_render.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c
index 9fa940dba2..3037a955c7 100644
--- a/apps/gui/skin_engine/skin_render.c
+++ b/apps/gui/skin_engine/skin_render.c
@@ -229,6 +229,30 @@ static bool do_non_text_tags(struct gui_wps *gwps, struct skin_draw_info *info,
229 break; 229 break;
230 230
231#endif /* HAVE_LCD_BITMAP */ 231#endif /* HAVE_LCD_BITMAP */
232#ifdef HAVE_SKIN_VARIABLES
233 case SKIN_TOKEN_VAR_SET:
234 if (do_refresh)
235 {
236 struct skin_var_changer *data = token->value.data;
237 if (data->direct)
238 data->var->value = data->newval;
239 else
240 {
241 data->var->value += data->newval;
242 if (data->max)
243 {
244 if (data->var->value > data->max)
245 data->var->value = 1;
246 else if (data->var->value < 1)
247 data->var->value = data->max;
248 }
249 }
250 if (data->var->value < 1)
251 data->var->value = 1;
252 data->var->last_changed = current_tick;
253 }
254 break;
255#endif
232 default: 256 default:
233 return false; 257 return false;
234 } 258 }