summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine/skin_touchsupport.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/skin_engine/skin_touchsupport.c')
-rw-r--r--apps/gui/skin_engine/skin_touchsupport.c42
1 files changed, 40 insertions, 2 deletions
diff --git a/apps/gui/skin_engine/skin_touchsupport.c b/apps/gui/skin_engine/skin_touchsupport.c
index 3206579adf..110e97f997 100644
--- a/apps/gui/skin_engine/skin_touchsupport.c
+++ b/apps/gui/skin_engine/skin_touchsupport.c
@@ -27,6 +27,7 @@
27#include "misc.h" 27#include "misc.h"
28#include "option_select.h" 28#include "option_select.h"
29#include "sound.h" 29#include "sound.h"
30#include "settings_list.h"
30 31
31 32
32/** Disarms all touchregions. */ 33/** Disarms all touchregions. */
@@ -129,8 +130,45 @@ int skin_get_touchaction(struct wps_data *data, int* edge_offset,
129 case ACTION_SETTINGS_INC: 130 case ACTION_SETTINGS_INC:
130 case ACTION_SETTINGS_DEC: 131 case ACTION_SETTINGS_DEC:
131 { 132 {
132 const struct settings_list *setting = temp->data; 133 const struct settings_list *setting =
133 option_select_next_val(setting, returncode == ACTION_SETTINGS_DEC, true); 134 temp->setting_data.setting;
135 option_select_next_val(setting,
136 returncode == ACTION_SETTINGS_DEC,
137 true);
138 returncode = ACTION_REDRAW;
139 }
140 break;
141 case ACTION_SETTINGS_SET:
142 {
143 struct touchsetting *data = &temp->setting_data;
144 const struct settings_list *s = data->setting;
145 void (*f)(int) = NULL;
146 switch (s->flags&F_T_MASK)
147 {
148 case F_T_CUSTOM:
149 s->custom_setting
150 ->load_from_cfg(s->setting, data->value.text);
151 break;
152 case F_T_INT:
153 case F_T_UINT:
154 *(int*)s->setting = data->value.number;
155 if (s->flags&F_CHOICE_SETTING)
156 f = s->choice_setting->option_callback;
157 else if (s->flags&F_TABLE_SETTING)
158 f = s->table_setting->option_callback;
159 else
160 f = s->int_setting->option_callback;
161
162 if (f)
163 f(data->value.number);
164 break;
165 case F_T_BOOL:
166 *(bool*)s->setting = data->value.number ? true : false;
167 if (s->bool_setting->option_callback)
168 s->bool_setting
169 ->option_callback(data->value.number ? true : false);
170 break;
171 }
134 returncode = ACTION_REDRAW; 172 returncode = ACTION_REDRAW;
135 } 173 }
136 break; 174 break;