diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2011-03-27 08:01:58 +0000 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2011-03-27 08:01:58 +0000 |
commit | 87aa86cedd27445e51b0ad38dbc7cf2bdaa42364 (patch) | |
tree | 09d19881a5a48bbd3979877bfd08e5a109e6fa56 /apps/gui/skin_engine/skin_render.c | |
parent | 969381322d080a636d961a2e4505a9d88f04147d (diff) | |
download | rockbox-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.c | 24 |
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 | } |