diff options
author | Cedric BAIL <cedric@osg.samsung.com> | 2016-03-23 12:56:14 -0700 |
---|---|---|
committer | Cedric BAIL <cedric@osg.samsung.com> | 2016-03-23 13:24:41 -0700 |
commit | c2a1c49ab2042f559b28e840e54feb8494888e0e (patch) | |
tree | c6eb110b7c479499854eede9d0c3ab0a80c9a11a /src | |
parent | 9340855597e7e465435c69b6278650346688da14 (diff) |
elementary: move all legacy files to their expected new location.
Diffstat (limited to 'src')
1057 files changed, 310913 insertions, 0 deletions
diff --git a/src/bin/elementary/.gitignore b/src/bin/elementary/.gitignore new file mode 100644 index 0000000000..5cbbb5c189 --- /dev/null +++ b/src/bin/elementary/.gitignore | |||
@@ -0,0 +1,7 @@ | |||
1 | /elementary_config | ||
2 | /elementary_quicklaunch | ||
3 | /elementary_run | ||
4 | /elementary_test | ||
5 | /elementary_codegen | ||
6 | /elementary_testql | ||
7 | /elm_prefs_cc | ||
diff --git a/src/bin/elementary/Makefile.am b/src/bin/elementary/Makefile.am new file mode 100644 index 0000000000..46db673e5d --- /dev/null +++ b/src/bin/elementary/Makefile.am | |||
@@ -0,0 +1,195 @@ | |||
1 | AUTOMAKE_OPTIONS = 1.4 foreign | ||
2 | |||
3 | MAINTAINERCLEANFILES = Makefile.in | ||
4 | |||
5 | AM_CPPFLAGS = \ | ||
6 | -I$(top_srcdir) \ | ||
7 | -I$(top_srcdir)/src/lib \ | ||
8 | -I$(top_builddir)/src/lib \ | ||
9 | -I$(top_srcdir)/src/bin \ | ||
10 | -DPACKAGE_BIN_DIR=\"$(bindir)\" \ | ||
11 | -DPACKAGE_LIB_DIR=\"$(libdir)\" \ | ||
12 | -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ | ||
13 | @ELEMENTARY_CFLAGS@ | ||
14 | |||
15 | bin_PROGRAMS = \ | ||
16 | @ELEMENTARY_TEST_PRG@ \ | ||
17 | @ELEMENTARY_CONFIG_PRG@ \ | ||
18 | @ELEMENTARY_CODEGEN_PRG@ \ | ||
19 | @ELM_PREFS_CC_PRG@ | ||
20 | |||
21 | if BUILD_QUICKLAUNCH | ||
22 | bin_PROGRAMS += elementary_quicklaunch elementary_run | ||
23 | endif | ||
24 | |||
25 | EXTRA_PROGRAMS = elementary_test elementary_config elementary_codegen elm_prefs_cc | ||
26 | |||
27 | elementary_test_SOURCES = \ | ||
28 | test.c \ | ||
29 | test_explode.c \ | ||
30 | test_explode.h \ | ||
31 | test_3d.c \ | ||
32 | test_access.c \ | ||
33 | test_actionslider.c \ | ||
34 | test_anim.c \ | ||
35 | test_application_server.c \ | ||
36 | test_bg.c \ | ||
37 | test_box.c \ | ||
38 | test_bubble.c \ | ||
39 | test_button.c \ | ||
40 | test_calendar.c \ | ||
41 | test_check.c \ | ||
42 | test_clock.c \ | ||
43 | test_cnp.c \ | ||
44 | test_colorselector.c \ | ||
45 | test_colorclass.c \ | ||
46 | test_combobox.c \ | ||
47 | test_config.c \ | ||
48 | test_conform.c \ | ||
49 | test_conform_indicator.c \ | ||
50 | test_ctxpopup.c \ | ||
51 | test_cursor.c \ | ||
52 | test_datetime.c \ | ||
53 | test_dayselector.c \ | ||
54 | test_disable.c \ | ||
55 | test_diskselector.c \ | ||
56 | test_dnd.c \ | ||
57 | test_eio.c \ | ||
58 | test_entry.c \ | ||
59 | test_entry_anchor.c \ | ||
60 | test_entry_anchor2.c \ | ||
61 | test_external.c \ | ||
62 | test_fileselector_button.c \ | ||
63 | test_fileselector.c \ | ||
64 | test_fileselector_entry.c \ | ||
65 | test_flip.c \ | ||
66 | test_flip_page.c \ | ||
67 | test_flipselector.c \ | ||
68 | test_floating.c \ | ||
69 | test_focus.c \ | ||
70 | test_focus_custom_chain.c \ | ||
71 | test_focus_policy.c \ | ||
72 | test_focus_style.c \ | ||
73 | test_gengrid.c \ | ||
74 | test_genlist.c \ | ||
75 | test_gesture_layer.c \ | ||
76 | test_gesture_layer2.c \ | ||
77 | test_gesture_layer3.c \ | ||
78 | test_glview_simple.c \ | ||
79 | test_glview.c \ | ||
80 | test_glview_manygears.c \ | ||
81 | test_grid.c \ | ||
82 | test_hover.c \ | ||
83 | test_hoversel.c \ | ||
84 | test_icon.c \ | ||
85 | test_icon_desktops.c \ | ||
86 | test_icon_animated.c \ | ||
87 | test_image.c \ | ||
88 | test_index.c \ | ||
89 | test_inwin.c \ | ||
90 | test_label.c \ | ||
91 | test_launcher.c \ | ||
92 | test_layout.c \ | ||
93 | test_list.c \ | ||
94 | test_map.c \ | ||
95 | test_main_menu.c \ | ||
96 | test_menu.c \ | ||
97 | test_multi.c \ | ||
98 | test_multibuttonentry.c \ | ||
99 | test_naviframe.c \ | ||
100 | test_naviframe_complex.c \ | ||
101 | test_notify.c \ | ||
102 | test_panel.c \ | ||
103 | test_panes.c \ | ||
104 | test_photo.c \ | ||
105 | test_photocam.c \ | ||
106 | test_popup.c \ | ||
107 | test_prefs.c \ | ||
108 | test_progressbar.c \ | ||
109 | test_radio.c \ | ||
110 | test_scaling.c \ | ||
111 | test_scroller.c \ | ||
112 | test_segment_control.c \ | ||
113 | test_separator.c \ | ||
114 | test_slider.c \ | ||
115 | test_slideshow.c \ | ||
116 | test_spinner.c \ | ||
117 | test_store.c \ | ||
118 | test_sys_notify.c \ | ||
119 | test_systray.c \ | ||
120 | test_task_switcher.c \ | ||
121 | test_table.c \ | ||
122 | test_thumb.c \ | ||
123 | test_toolbar.c \ | ||
124 | test_tooltip.c \ | ||
125 | test_transit.c \ | ||
126 | test_transit_bezier.c \ | ||
127 | test_video.c \ | ||
128 | test_weather.c \ | ||
129 | test_web.c \ | ||
130 | test_win_inline.c \ | ||
131 | test_win_keygrab.c \ | ||
132 | test_win_socket.c \ | ||
133 | test_win_plug.c \ | ||
134 | test_win_state.c \ | ||
135 | test_win_wm_rotation.c \ | ||
136 | test_win_dialog.c \ | ||
137 | test.h | ||
138 | |||
139 | elementary_test_LDADD = $(top_builddir)/src/lib/libelementary.la \ | ||
140 | @ELEMENTARY_LIBS@ | ||
141 | elementary_test_CFLAGS = | ||
142 | elementary_test_LDFLAGS = | ||
143 | |||
144 | elementary_config_SOURCES = \ | ||
145 | config.c | ||
146 | |||
147 | elementary_config_LDADD = $(top_builddir)/src/lib/libelementary.la \ | ||
148 | @ELEMENTARY_LIBS@ | ||
149 | elementary_config_LDFLAGS = | ||
150 | |||
151 | elementary_codegen_SOURCES = \ | ||
152 | elementary_codegen.c | ||
153 | |||
154 | elementary_codegen_LDADD = \ | ||
155 | $(top_builddir)/src/lib/libelementary.la \ | ||
156 | @ELEMENTARY_LIBS@ | ||
157 | elementary_codegen_LDFLAGS = | ||
158 | |||
159 | noinst_HEADERS = \ | ||
160 | elm_prefs_cc.h | ||
161 | |||
162 | elm_prefs_cc_SOURCES = \ | ||
163 | elm_prefs_cc.c \ | ||
164 | elm_prefs_cc_mem.c \ | ||
165 | elm_prefs_cc_out.c \ | ||
166 | elm_prefs_cc_parse.c \ | ||
167 | elm_prefs_cc_handlers.c | ||
168 | |||
169 | elm_prefs_cc_LDADD = \ | ||
170 | $(top_builddir)/src/lib/libelementary.la \ | ||
171 | @ELEMENTARY_LIBS@ | ||
172 | |||
173 | if BUILD_QUICKLAUNCH | ||
174 | elementary_quicklaunch_SOURCES = quicklaunch.c | ||
175 | elementary_quicklaunch_LDADD = $(top_builddir)/src/lib/libelementary.la \ | ||
176 | @ELEMENTARY_LIBS@ | ||
177 | elementary_quicklaunch_LDFLAGS = | ||
178 | |||
179 | if BUILD_RUN | ||
180 | elementary_run_CPPFLAGS = -I$(top_srcdir) \ | ||
181 | -I$(top_srcdir)/src/lib \ | ||
182 | -I$(top_builddir)/src/lib \ | ||
183 | -I$(top_srcdir)/src/bin \ | ||
184 | -DPACKAGE_BIN_DIR=\"$(bindir)\" \ | ||
185 | -DPACKAGE_LIB_DIR=\"$(libdir)\" \ | ||
186 | -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" | ||
187 | |||
188 | elementary_run_SOURCES = run.c | ||
189 | elementary_run_LDADD = | ||
190 | elementary_run_LDFLAGS = | ||
191 | endif | ||
192 | endif | ||
193 | |||
194 | EXTRA_DIST = \ | ||
195 | test_factory.c | ||
diff --git a/src/bin/elementary/config.c b/src/bin/elementary/config.c new file mode 100644 index 0000000000..d63bcef157 --- /dev/null +++ b/src/bin/elementary/config.c | |||
@@ -0,0 +1,4115 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include "elementary_config.h" | ||
3 | #endif | ||
4 | #include <Elementary.h> | ||
5 | |||
6 | typedef struct _Theme Theme; | ||
7 | typedef struct _Fonts_Data Fonts_Data; | ||
8 | typedef struct _Elm_Text_Class_Data Elm_Text_Class_Data; | ||
9 | typedef struct _Elm_Font_Size_Data Elm_Font_Size_Data; | ||
10 | |||
11 | struct _Theme | ||
12 | { | ||
13 | const char *label; | ||
14 | const char *name; | ||
15 | const char *path; | ||
16 | Eina_Bool in_search_path; | ||
17 | }; | ||
18 | |||
19 | static const Eina_List *tsel = NULL; | ||
20 | static Eina_List *themes = NULL; | ||
21 | |||
22 | struct _Elm_Text_Class_Data | ||
23 | { | ||
24 | const char *name; | ||
25 | const char *desc; | ||
26 | const char *font; | ||
27 | const char *style; | ||
28 | Evas_Font_Size size; | ||
29 | }; | ||
30 | |||
31 | struct _Elm_Font_Size_Data | ||
32 | { | ||
33 | const char *size_str; | ||
34 | Evas_Font_Size size; | ||
35 | }; | ||
36 | |||
37 | struct _Fonts_Data | ||
38 | { | ||
39 | Eina_List *text_classes; | ||
40 | |||
41 | Eina_Hash *font_hash; | ||
42 | Eina_List *font_px_list; | ||
43 | Eina_List *font_scale_list; | ||
44 | |||
45 | const char *cur_font; | ||
46 | const char *cur_style; | ||
47 | double cur_size; | ||
48 | }; | ||
49 | |||
50 | #define ELM_LIST_DISABLE(list) \ | ||
51 | do \ | ||
52 | { \ | ||
53 | const Eina_List *_l = elm_list_items_get(list); \ | ||
54 | if (_l) \ | ||
55 | { \ | ||
56 | elm_list_item_show(eina_list_data_get(_l));\ | ||
57 | elm_object_disabled_set(list, EINA_TRUE); \ | ||
58 | } \ | ||
59 | } \ | ||
60 | while (0) | ||
61 | |||
62 | #define ELM_LIST_ENABLE(list) \ | ||
63 | do \ | ||
64 | { \ | ||
65 | elm_object_disabled_set(list, EINA_FALSE); \ | ||
66 | } \ | ||
67 | while (0) | ||
68 | |||
69 | #define LABEL_FRAME_ADD(label) \ | ||
70 | do \ | ||
71 | { \ | ||
72 | pd = elm_frame_add(win); \ | ||
73 | evas_object_size_hint_weight_set(pd, EVAS_HINT_EXPAND, 0.0); \ | ||
74 | evas_object_size_hint_align_set(pd, EVAS_HINT_FILL, 0.5); \ | ||
75 | elm_object_style_set(pd, "pad_medium"); \ | ||
76 | elm_box_pack_end(bx, pd); \ | ||
77 | evas_object_show(pd); \ | ||
78 | \ | ||
79 | lb = elm_label_add(win); \ | ||
80 | evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0); \ | ||
81 | evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, 0.5); \ | ||
82 | elm_object_text_set(lb, label); \ | ||
83 | elm_object_content_set(pd, lb); \ | ||
84 | evas_object_show(lb); \ | ||
85 | } \ | ||
86 | while (0) | ||
87 | |||
88 | #define CHECK_ADD(_label, _desc, _cb, _cb_param) \ | ||
89 | ck = elm_check_add(win); \ | ||
90 | elm_object_text_set(ck, _label); \ | ||
91 | elm_object_tooltip_text_set(ck, _desc); \ | ||
92 | evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, 0.0); \ | ||
93 | evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, 0.5); \ | ||
94 | elm_box_pack_end(bx, ck); \ | ||
95 | evas_object_show(ck); \ | ||
96 | evas_object_smart_callback_add(ck, "changed", _cb, _cb_param); | ||
97 | |||
98 | static int quiet = 0; | ||
99 | static int interactive = 1; | ||
100 | |||
101 | static const char *theme_set = NULL; | ||
102 | static const char *finger_size_set = NULL; | ||
103 | static const char *scale_set = NULL; | ||
104 | static const char *web_backend = NULL; | ||
105 | static Fonts_Data fndata = {NULL, NULL, NULL, NULL, NULL, NULL, 0.0}; | ||
106 | static Evas_Object *web_backend_entry = NULL; | ||
107 | |||
108 | static void | ||
109 | _font_styles_list_sel(void *data EINA_UNUSED, | ||
110 | Evas_Object *obj, | ||
111 | void *event_info); | ||
112 | |||
113 | static void | ||
114 | config_exit(void *data EINA_UNUSED, | ||
115 | Evas_Object *obj EINA_UNUSED, | ||
116 | void *event_info EINA_UNUSED) | ||
117 | { | ||
118 | Elm_Text_Class_Data *tc_data; | ||
119 | Elm_Font_Size_Data *sd; | ||
120 | |||
121 | EINA_LIST_FREE(fndata.text_classes, tc_data) | ||
122 | { | ||
123 | eina_stringshare_del(tc_data->name); | ||
124 | eina_stringshare_del(tc_data->desc); | ||
125 | eina_stringshare_del(tc_data->font); | ||
126 | eina_stringshare_del(tc_data->style); | ||
127 | free(tc_data); | ||
128 | } | ||
129 | |||
130 | elm_font_available_hash_del(fndata.font_hash); | ||
131 | fndata.font_hash = NULL; | ||
132 | |||
133 | EINA_LIST_FREE(fndata.font_px_list, sd) | ||
134 | { | ||
135 | eina_stringshare_del(sd->size_str); | ||
136 | free(sd); | ||
137 | } | ||
138 | |||
139 | EINA_LIST_FREE(fndata.font_scale_list, sd) | ||
140 | { | ||
141 | eina_stringshare_del(sd->size_str); | ||
142 | free(sd); | ||
143 | } | ||
144 | |||
145 | if (fndata.cur_font) eina_stringshare_del(fndata.cur_font); | ||
146 | fndata.cur_font = NULL; | ||
147 | |||
148 | if (fndata.cur_style) eina_stringshare_del(fndata.cur_style); | ||
149 | fndata.cur_style = NULL; | ||
150 | |||
151 | elm_config_save(); | ||
152 | elm_exit(); /* exit the program's main loop that runs in elm_run() */ | ||
153 | } | ||
154 | |||
155 | static void | ||
156 | scroll_animation_disable_change(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) | ||
157 | { | ||
158 | Eina_Bool val = elm_check_state_get(obj); | ||
159 | Eina_Bool sb = elm_config_scroll_animation_disable_get(); | ||
160 | |||
161 | if (val == sb) return; | ||
162 | elm_config_scroll_animation_disable_set(val); | ||
163 | elm_config_all_flush(); | ||
164 | } | ||
165 | |||
166 | static void | ||
167 | scroll_accel_factor_change(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) | ||
168 | { | ||
169 | double bf = elm_config_scroll_accel_factor_get(); | ||
170 | double val = elm_slider_value_get(obj); | ||
171 | |||
172 | if (fabs(bf - val) < DBL_EPSILON) return; | ||
173 | elm_config_scroll_accel_factor_set(val); | ||
174 | elm_config_all_flush(); | ||
175 | } | ||
176 | |||
177 | static void | ||
178 | sb_change(void *data EINA_UNUSED, | ||
179 | Evas_Object *obj, | ||
180 | void *event_info EINA_UNUSED) | ||
181 | { | ||
182 | Eina_Bool val = elm_check_state_get(obj); | ||
183 | Eina_Bool sb = elm_config_scroll_bounce_enabled_get(); | ||
184 | |||
185 | if (val == sb) return; | ||
186 | elm_config_scroll_bounce_enabled_set(val); | ||
187 | elm_config_all_flush(); | ||
188 | |||
189 | /*TODO: enable/disable subordinate sliders (make 'em support it 1st)*/ | ||
190 | } | ||
191 | |||
192 | static void | ||
193 | ss_change(void *data EINA_UNUSED, | ||
194 | Evas_Object *obj, | ||
195 | void *event_info EINA_UNUSED) | ||
196 | { | ||
197 | Eina_Bool val = elm_check_state_get(obj); | ||
198 | Eina_Bool ss = elm_config_scroll_thumbscroll_smooth_start_get(); | ||
199 | |||
200 | if (val == ss) return; | ||
201 | elm_config_scroll_thumbscroll_smooth_start_set(val); | ||
202 | elm_config_all_flush(); | ||
203 | } | ||
204 | |||
205 | static void | ||
206 | bf_round(void *data EINA_UNUSED, | ||
207 | Evas_Object *obj, | ||
208 | void *event_info EINA_UNUSED) | ||
209 | { | ||
210 | double val = elm_slider_value_get(obj); | ||
211 | double v; | ||
212 | |||
213 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
214 | if (v != val) elm_slider_value_set(obj, v); | ||
215 | } | ||
216 | |||
217 | static void | ||
218 | bf_change(void *data EINA_UNUSED, | ||
219 | Evas_Object *obj, | ||
220 | void *event_info EINA_UNUSED) | ||
221 | { | ||
222 | double bf = elm_config_scroll_bounce_friction_get(); | ||
223 | double val = elm_slider_value_get(obj); | ||
224 | |||
225 | if (bf == val) return; | ||
226 | elm_config_scroll_bounce_friction_set(val); | ||
227 | elm_config_all_flush(); | ||
228 | } | ||
229 | |||
230 | static void | ||
231 | ps_round(void *data EINA_UNUSED, | ||
232 | Evas_Object *obj, | ||
233 | void *event_info EINA_UNUSED) | ||
234 | { | ||
235 | double val = elm_slider_value_get(obj); | ||
236 | double v; | ||
237 | |||
238 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
239 | if (v != val) elm_slider_value_set(obj, v); | ||
240 | } | ||
241 | |||
242 | static void | ||
243 | ps_change(void *data EINA_UNUSED, | ||
244 | Evas_Object *obj, | ||
245 | void *event_info EINA_UNUSED) | ||
246 | { | ||
247 | double ps = elm_config_scroll_page_scroll_friction_get(); | ||
248 | double val = elm_slider_value_get(obj); | ||
249 | |||
250 | if (ps == val) return; | ||
251 | elm_config_scroll_page_scroll_friction_set(val); | ||
252 | elm_config_all_flush(); | ||
253 | } | ||
254 | |||
255 | static void | ||
256 | bis_round(void *data EINA_UNUSED, | ||
257 | Evas_Object *obj, | ||
258 | void *event_info EINA_UNUSED) | ||
259 | { | ||
260 | double val = elm_slider_value_get(obj); | ||
261 | double v; | ||
262 | |||
263 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
264 | if (v != val) elm_slider_value_set(obj, v); | ||
265 | } | ||
266 | |||
267 | static void | ||
268 | bis_change(void *data EINA_UNUSED, | ||
269 | Evas_Object *obj, | ||
270 | void *event_info EINA_UNUSED) | ||
271 | { | ||
272 | double bis = elm_config_scroll_bring_in_scroll_friction_get(); | ||
273 | double val = elm_slider_value_get(obj); | ||
274 | |||
275 | if (bis == val) return; | ||
276 | elm_config_scroll_bring_in_scroll_friction_set(val); | ||
277 | elm_config_all_flush(); | ||
278 | } | ||
279 | |||
280 | static void | ||
281 | zf_round(void *data EINA_UNUSED, | ||
282 | Evas_Object *obj, | ||
283 | void *event_info EINA_UNUSED) | ||
284 | { | ||
285 | double val = elm_slider_value_get(obj); | ||
286 | double v; | ||
287 | |||
288 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
289 | if (v != val) elm_slider_value_set(obj, v); | ||
290 | } | ||
291 | |||
292 | static void | ||
293 | zf_change(void *data EINA_UNUSED, | ||
294 | Evas_Object *obj, | ||
295 | void *event_info EINA_UNUSED) | ||
296 | { | ||
297 | double zf = elm_config_scroll_zoom_friction_get(); | ||
298 | double val = elm_slider_value_get(obj); | ||
299 | |||
300 | if (zf == val) return; | ||
301 | elm_config_scroll_zoom_friction_set(val); | ||
302 | elm_config_all_flush(); | ||
303 | } | ||
304 | |||
305 | static void | ||
306 | smooth_round(void *data EINA_UNUSED, | ||
307 | Evas_Object *obj, | ||
308 | void *event_info EINA_UNUSED) | ||
309 | { | ||
310 | double val = elm_slider_value_get(obj); | ||
311 | double v; | ||
312 | |||
313 | v = ((double)((int)(val * 100.0))) / 100.0; | ||
314 | if (v != val) elm_slider_value_set(obj, v); | ||
315 | } | ||
316 | |||
317 | static void | ||
318 | smooth_change(void *data EINA_UNUSED, | ||
319 | Evas_Object *obj, | ||
320 | void *event_info EINA_UNUSED) | ||
321 | { | ||
322 | double zf = elm_config_scroll_thumbscroll_smooth_amount_get(); | ||
323 | double val = elm_slider_value_get(obj); | ||
324 | |||
325 | if (zf == val) return; | ||
326 | elm_config_scroll_thumbscroll_smooth_amount_set(val); | ||
327 | elm_config_all_flush(); | ||
328 | } | ||
329 | |||
330 | static void | ||
331 | smooth_win_round(void *data EINA_UNUSED, | ||
332 | Evas_Object *obj, | ||
333 | void *event_info EINA_UNUSED) | ||
334 | { | ||
335 | double val = elm_slider_value_get(obj); | ||
336 | double v; | ||
337 | |||
338 | v = ((double)((int)(val * 100.0))) / 100.0; | ||
339 | if (v != val) elm_slider_value_set(obj, v); | ||
340 | } | ||
341 | |||
342 | static void | ||
343 | smooth_win_change(void *data EINA_UNUSED, | ||
344 | Evas_Object *obj, | ||
345 | void *event_info EINA_UNUSED) | ||
346 | { | ||
347 | double zf = elm_config_scroll_thumbscroll_smooth_time_window_get(); | ||
348 | double val = elm_slider_value_get(obj); | ||
349 | |||
350 | if (zf == val) return; | ||
351 | elm_config_scroll_thumbscroll_smooth_time_window_set(val); | ||
352 | elm_config_all_flush(); | ||
353 | } | ||
354 | |||
355 | static void | ||
356 | ts_change(void *data EINA_UNUSED, | ||
357 | Evas_Object *obj, | ||
358 | void *event_info EINA_UNUSED) | ||
359 | { | ||
360 | Eina_Bool val = elm_check_state_get(obj); | ||
361 | Eina_Bool sb = elm_config_scroll_thumbscroll_enabled_get(); | ||
362 | |||
363 | if (val == sb) return; | ||
364 | elm_config_scroll_thumbscroll_enabled_set(val); | ||
365 | elm_config_all_flush(); | ||
366 | |||
367 | /*TODO: enable/disable subordinate sliders (make 'em support it 1st)*/ | ||
368 | } | ||
369 | |||
370 | static void | ||
371 | tst_round(void *data EINA_UNUSED, | ||
372 | Evas_Object *obj, | ||
373 | void *event_info EINA_UNUSED) | ||
374 | { | ||
375 | double val = elm_slider_value_get(obj); | ||
376 | double v; | ||
377 | |||
378 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
379 | if (v != val) elm_slider_value_set(obj, v); | ||
380 | } | ||
381 | |||
382 | static void | ||
383 | tst_change(void *data EINA_UNUSED, | ||
384 | Evas_Object *obj, | ||
385 | void *event_info EINA_UNUSED) | ||
386 | { | ||
387 | double tst = elm_config_scroll_thumbscroll_threshold_get(); | ||
388 | double val = elm_slider_value_get(obj); | ||
389 | |||
390 | if (tst == val) return; | ||
391 | elm_config_scroll_thumbscroll_threshold_set(val); | ||
392 | elm_config_all_flush(); | ||
393 | } | ||
394 | |||
395 | static void | ||
396 | tsht_round(void *data EINA_UNUSED, | ||
397 | Evas_Object *obj, | ||
398 | void *event_info EINA_UNUSED) | ||
399 | { | ||
400 | double val = elm_slider_value_get(obj); | ||
401 | double v; | ||
402 | |||
403 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
404 | if (v != val) elm_slider_value_set(obj, v); | ||
405 | } | ||
406 | |||
407 | static void | ||
408 | tsht_change(void *data EINA_UNUSED, | ||
409 | Evas_Object *obj, | ||
410 | void *event_info EINA_UNUSED) | ||
411 | { | ||
412 | double tst = elm_config_scroll_thumbscroll_hold_threshold_get(); | ||
413 | double val = elm_slider_value_get(obj); | ||
414 | |||
415 | if (tst == val) return; | ||
416 | elm_config_scroll_thumbscroll_hold_threshold_set(val); | ||
417 | elm_config_all_flush(); | ||
418 | } | ||
419 | |||
420 | static void | ||
421 | tsmt_round(void *data EINA_UNUSED, | ||
422 | Evas_Object *obj, | ||
423 | void *event_info EINA_UNUSED) | ||
424 | { | ||
425 | double val = elm_slider_value_get(obj); | ||
426 | double v; | ||
427 | |||
428 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
429 | if (v != val) elm_slider_value_set(obj, v); | ||
430 | } | ||
431 | |||
432 | static void | ||
433 | tsmt_change(void *data EINA_UNUSED, | ||
434 | Evas_Object *obj, | ||
435 | void *event_info EINA_UNUSED) | ||
436 | { | ||
437 | double tsmt = elm_config_scroll_thumbscroll_momentum_threshold_get(); | ||
438 | double val = elm_slider_value_get(obj); | ||
439 | |||
440 | if (tsmt == val) return; | ||
441 | elm_config_scroll_thumbscroll_momentum_threshold_set(val); | ||
442 | elm_config_all_flush(); | ||
443 | } | ||
444 | |||
445 | static void | ||
446 | tsfdt_round(void *data EINA_UNUSED, | ||
447 | Evas_Object *obj, | ||
448 | void *event_info EINA_UNUSED) | ||
449 | { | ||
450 | double val = elm_slider_value_get(obj); | ||
451 | double v; | ||
452 | |||
453 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
454 | if (v != val) elm_slider_value_set(obj, v); | ||
455 | } | ||
456 | |||
457 | static void | ||
458 | tsfdt_change(void *data EINA_UNUSED, | ||
459 | Evas_Object *obj, | ||
460 | void *event_info EINA_UNUSED) | ||
461 | { | ||
462 | double tsfdt = elm_config_scroll_thumbscroll_flick_distance_tolerance_get(); | ||
463 | double val = elm_slider_value_get(obj); | ||
464 | |||
465 | if (tsfdt == val) return; | ||
466 | elm_config_scroll_thumbscroll_flick_distance_tolerance_set(val); | ||
467 | elm_config_all_flush(); | ||
468 | } | ||
469 | |||
470 | static void | ||
471 | tsf_round(void *data EINA_UNUSED, | ||
472 | Evas_Object *obj, | ||
473 | void *event_info EINA_UNUSED) | ||
474 | { | ||
475 | double val = elm_slider_value_get(obj); | ||
476 | double v; | ||
477 | |||
478 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
479 | if (v != val) elm_slider_value_set(obj, v); | ||
480 | } | ||
481 | |||
482 | static void | ||
483 | tsf_change(void *data EINA_UNUSED, | ||
484 | Evas_Object *obj, | ||
485 | void *event_info EINA_UNUSED) | ||
486 | { | ||
487 | double tsf = elm_config_scroll_thumbscroll_friction_get(); | ||
488 | double val = elm_slider_value_get(obj); | ||
489 | |||
490 | if (tsf == val) return; | ||
491 | elm_config_scroll_thumbscroll_friction_set(val); | ||
492 | elm_config_all_flush(); | ||
493 | } | ||
494 | |||
495 | static void | ||
496 | tsmf_round(void *data EINA_UNUSED, | ||
497 | Evas_Object *obj, | ||
498 | void *event_info EINA_UNUSED) | ||
499 | { | ||
500 | double val = elm_slider_value_get(obj); | ||
501 | double v; | ||
502 | |||
503 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
504 | if (v != val) elm_slider_value_set(obj, v); | ||
505 | } | ||
506 | |||
507 | static void | ||
508 | tsmf_change(void *data EINA_UNUSED, | ||
509 | Evas_Object *obj, | ||
510 | void *event_info EINA_UNUSED) | ||
511 | { | ||
512 | double tsmf = elm_config_scroll_thumbscroll_min_friction_get(); | ||
513 | double val = elm_slider_value_get(obj); | ||
514 | |||
515 | if (tsmf == val) return; | ||
516 | elm_config_scroll_thumbscroll_min_friction_set(val); | ||
517 | elm_config_all_flush(); | ||
518 | } | ||
519 | |||
520 | static void | ||
521 | tsfs_round(void *data EINA_UNUSED, | ||
522 | Evas_Object *obj, | ||
523 | void *event_info EINA_UNUSED) | ||
524 | { | ||
525 | double val = elm_slider_value_get(obj); | ||
526 | double v; | ||
527 | |||
528 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
529 | if (v != val) elm_slider_value_set(obj, v); | ||
530 | } | ||
531 | |||
532 | static void | ||
533 | tsfs_change(void *data EINA_UNUSED, | ||
534 | Evas_Object *obj, | ||
535 | void *event_info EINA_UNUSED) | ||
536 | { | ||
537 | double tsfs = elm_config_scroll_thumbscroll_friction_standard_get(); | ||
538 | double val = elm_slider_value_get(obj); | ||
539 | |||
540 | if (tsfs == val) return; | ||
541 | elm_config_scroll_thumbscroll_friction_standard_set(val); | ||
542 | elm_config_all_flush(); | ||
543 | } | ||
544 | |||
545 | static void | ||
546 | tsbf_round(void *data EINA_UNUSED, | ||
547 | Evas_Object *obj, | ||
548 | void *event_info EINA_UNUSED) | ||
549 | { | ||
550 | double val = elm_slider_value_get(obj); | ||
551 | double v; | ||
552 | |||
553 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
554 | if (v != val) elm_slider_value_set(obj, v); | ||
555 | } | ||
556 | |||
557 | static void | ||
558 | tsbf_change(void *data EINA_UNUSED, | ||
559 | Evas_Object *obj, | ||
560 | void *event_info EINA_UNUSED) | ||
561 | { | ||
562 | double tsbf = elm_config_scroll_thumbscroll_border_friction_get(); | ||
563 | double val = elm_slider_value_get(obj); | ||
564 | |||
565 | if (tsbf == val) return; | ||
566 | elm_config_scroll_thumbscroll_border_friction_set(val); | ||
567 | elm_config_all_flush(); | ||
568 | } | ||
569 | |||
570 | static void | ||
571 | tssf_round(void *data EINA_UNUSED, | ||
572 | Evas_Object *obj, | ||
573 | void *event_info EINA_UNUSED) | ||
574 | { | ||
575 | double val = elm_slider_value_get(obj); | ||
576 | double v; | ||
577 | |||
578 | v = ((double)((int)(val * 20.0))) / 20.0; | ||
579 | if (v != val) elm_slider_value_set(obj, v); | ||
580 | } | ||
581 | |||
582 | static void | ||
583 | tssf_change(void *data EINA_UNUSED, | ||
584 | Evas_Object *obj, | ||
585 | void *event_info EINA_UNUSED) | ||
586 | { | ||
587 | double tssf = elm_config_scroll_thumbscroll_sensitivity_friction_get(); | ||
588 | double val = elm_slider_value_get(obj); | ||
589 | |||
590 | if (tssf == val) return; | ||
591 | elm_config_scroll_thumbscroll_sensitivity_friction_set(val); | ||
592 | elm_config_all_flush(); | ||
593 | } | ||
594 | |||
595 | static void | ||
596 | tsat_round(void *data EINA_UNUSED, | ||
597 | Evas_Object *obj, | ||
598 | void *event_info EINA_UNUSED) | ||
599 | { | ||
600 | double val = elm_slider_value_get(obj); | ||
601 | double v; | ||
602 | |||
603 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
604 | if (v != val) elm_slider_value_set(obj, v); | ||
605 | } | ||
606 | |||
607 | static void | ||
608 | tsat_change(void *data EINA_UNUSED, | ||
609 | Evas_Object *obj, | ||
610 | void *event_info EINA_UNUSED) | ||
611 | { | ||
612 | double tsat = elm_config_scroll_thumbscroll_acceleration_threshold_get(); | ||
613 | double val = elm_slider_value_get(obj); | ||
614 | |||
615 | if (tsat == val) return; | ||
616 | elm_config_scroll_thumbscroll_acceleration_threshold_set(val); | ||
617 | elm_config_all_flush(); | ||
618 | } | ||
619 | |||
620 | static void | ||
621 | tsatl_round(void *data EINA_UNUSED, | ||
622 | Evas_Object *obj, | ||
623 | void *event_info EINA_UNUSED) | ||
624 | { | ||
625 | double val = elm_slider_value_get(obj); | ||
626 | double v; | ||
627 | |||
628 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
629 | if (v != val) elm_slider_value_set(obj, v); | ||
630 | } | ||
631 | |||
632 | static void | ||
633 | tsatl_change(void *data EINA_UNUSED, | ||
634 | Evas_Object *obj, | ||
635 | void *event_info EINA_UNUSED) | ||
636 | { | ||
637 | double tsatl = elm_config_scroll_thumbscroll_acceleration_time_limit_get(); | ||
638 | double val = elm_slider_value_get(obj); | ||
639 | |||
640 | if (tsatl == val) return; | ||
641 | elm_config_scroll_thumbscroll_acceleration_time_limit_set(val); | ||
642 | elm_config_all_flush(); | ||
643 | } | ||
644 | |||
645 | static void | ||
646 | tsaw_round(void *data EINA_UNUSED, | ||
647 | Evas_Object *obj, | ||
648 | void *event_info EINA_UNUSED) | ||
649 | { | ||
650 | double val = elm_slider_value_get(obj); | ||
651 | double v; | ||
652 | |||
653 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
654 | if (v != val) elm_slider_value_set(obj, v); | ||
655 | } | ||
656 | |||
657 | static void | ||
658 | tsaw_change(void *data EINA_UNUSED, | ||
659 | Evas_Object *obj, | ||
660 | void *event_info EINA_UNUSED) | ||
661 | { | ||
662 | double tsaw = elm_config_scroll_thumbscroll_acceleration_weight_get(); | ||
663 | double val = elm_slider_value_get(obj); | ||
664 | |||
665 | if (tsaw == val) return; | ||
666 | elm_config_scroll_thumbscroll_acceleration_weight_set(val); | ||
667 | elm_config_all_flush(); | ||
668 | } | ||
669 | |||
670 | static void | ||
671 | cf_enable(void *data, | ||
672 | Evas_Object *obj, | ||
673 | void *event_info EINA_UNUSED) | ||
674 | { | ||
675 | Eina_Bool cf = elm_config_cache_flush_enabled_get(); | ||
676 | Eina_Bool val = elm_check_state_get(obj); | ||
677 | |||
678 | if (cf == val) return; | ||
679 | elm_object_disabled_set((Evas_Object *)data, !val); | ||
680 | elm_config_cache_flush_enabled_set(val); | ||
681 | elm_config_all_flush(); | ||
682 | } | ||
683 | |||
684 | static void | ||
685 | cf_round(void *data EINA_UNUSED, | ||
686 | Evas_Object *obj, | ||
687 | void *event_info EINA_UNUSED) | ||
688 | { | ||
689 | double val = elm_slider_value_get(obj); | ||
690 | double v; | ||
691 | |||
692 | v = ((double)((int)(val * 5.0))) / 5.0; | ||
693 | if (v != val) elm_slider_value_set(obj, v); | ||
694 | } | ||
695 | |||
696 | static void | ||
697 | cf_change(void *data EINA_UNUSED, | ||
698 | Evas_Object *obj, | ||
699 | void *event_info EINA_UNUSED) | ||
700 | { | ||
701 | double cf = elm_config_cache_flush_interval_get(); | ||
702 | double val = elm_slider_value_get(obj); | ||
703 | |||
704 | if (cf == val) return; | ||
705 | elm_config_cache_flush_interval_set(val); | ||
706 | elm_config_all_flush(); | ||
707 | } | ||
708 | |||
709 | static void | ||
710 | fc_round(void *data EINA_UNUSED, | ||
711 | Evas_Object *obj, | ||
712 | void *event_info EINA_UNUSED) | ||
713 | { | ||
714 | double val = elm_slider_value_get(obj); | ||
715 | double v; | ||
716 | |||
717 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
718 | if (v != val) elm_slider_value_set(obj, v); | ||
719 | } | ||
720 | |||
721 | static void | ||
722 | fc_change(void *data EINA_UNUSED, | ||
723 | Evas_Object *obj, | ||
724 | void *event_info EINA_UNUSED) | ||
725 | { | ||
726 | double font_cache = elm_config_cache_font_cache_size_get(); | ||
727 | double val = elm_slider_value_get(obj); | ||
728 | |||
729 | if (font_cache == val) return; | ||
730 | elm_config_cache_font_cache_size_set(val * 1024); | ||
731 | elm_config_all_flush(); | ||
732 | } | ||
733 | |||
734 | static void | ||
735 | ic_round(void *data EINA_UNUSED, | ||
736 | Evas_Object *obj, | ||
737 | void *event_info EINA_UNUSED) | ||
738 | { | ||
739 | double val = elm_slider_value_get(obj); | ||
740 | double v; | ||
741 | |||
742 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
743 | if (v != val) elm_slider_value_set(obj, v); | ||
744 | } | ||
745 | |||
746 | static void | ||
747 | ic_change(void *data EINA_UNUSED, | ||
748 | Evas_Object *obj, | ||
749 | void *event_info EINA_UNUSED) | ||
750 | { | ||
751 | double image_cache = elm_config_cache_image_cache_size_get(); | ||
752 | double val = elm_slider_value_get(obj); | ||
753 | |||
754 | if (image_cache == val) return; | ||
755 | elm_config_cache_image_cache_size_set(val * 1024); | ||
756 | elm_config_all_flush(); | ||
757 | } | ||
758 | |||
759 | static void | ||
760 | sc_round(void *data EINA_UNUSED, | ||
761 | Evas_Object *obj, | ||
762 | void *event_info EINA_UNUSED) | ||
763 | { | ||
764 | double val = elm_slider_value_get(obj); | ||
765 | double v; | ||
766 | |||
767 | v = ((double)((int)(val * 10.0))) / 10.0; | ||
768 | if (v != val) elm_slider_value_set(obj, v); | ||
769 | } | ||
770 | |||
771 | static void | ||
772 | sc_change(void *data EINA_UNUSED, | ||
773 | Evas_Object *obj, | ||
774 | void *event_info EINA_UNUSED) | ||
775 | { | ||
776 | double scale = elm_config_scale_get(); | ||
777 | double val = elm_slider_value_get(obj); | ||
778 | |||
779 | if (scale == val) return; | ||
780 | elm_config_scale_set(val); | ||
781 | elm_config_all_flush(); | ||
782 | } | ||
783 | |||
784 | static void | ||
785 | fs_round(void *data EINA_UNUSED, | ||
786 | Evas_Object *obj, | ||
787 | void *event_info EINA_UNUSED) | ||
788 | { | ||
789 | double val = elm_slider_value_get(obj); | ||
790 | double v; | ||
791 | |||
792 | v = ((double)((int)(val * 5.0))) / 5.0; | ||
793 | if (v != val) elm_slider_value_set(obj, v); | ||
794 | } | ||
795 | |||
796 | static void | ||
797 | fs_change(void *data EINA_UNUSED, | ||
798 | Evas_Object *obj, | ||
799 | void *event_info EINA_UNUSED) | ||
800 | { | ||
801 | double fs = elm_config_finger_size_get(); | ||
802 | double val = elm_slider_value_get(obj); | ||
803 | |||
804 | if (fs == val) return; | ||
805 | elm_config_finger_size_set(val); | ||
806 | elm_config_all_flush(); | ||
807 | } | ||
808 | |||
809 | static void | ||
810 | efc_round(void *data EINA_UNUSED, | ||
811 | Evas_Object *obj, | ||
812 | void *event_info EINA_UNUSED) | ||
813 | { | ||
814 | double val = elm_slider_value_get(obj); | ||
815 | double v; | ||
816 | |||
817 | v = ((double)((int)(val * 5.0))) / 5.0; | ||
818 | if (v != val) elm_slider_value_set(obj, v); | ||
819 | } | ||
820 | |||
821 | static void | ||
822 | efc_change(void *data EINA_UNUSED, | ||
823 | Evas_Object *obj, | ||
824 | void *event_info EINA_UNUSED) | ||
825 | { | ||
826 | double efc = elm_config_cache_edje_file_cache_size_get(); | ||
827 | double val = elm_slider_value_get(obj); | ||
828 | |||
829 | if (efc == val) return; | ||
830 | elm_config_cache_edje_file_cache_size_set(val); | ||
831 | elm_config_all_flush(); | ||
832 | } | ||
833 | |||
834 | static void | ||
835 | ecc_round(void *data EINA_UNUSED, | ||
836 | Evas_Object *obj, | ||
837 | void *event_info EINA_UNUSED) | ||
838 | { | ||
839 | double val = elm_slider_value_get(obj); | ||
840 | double v; | ||
841 | |||
842 | v = ((double)((int)(val * 5.0))) / 5.0; | ||
843 | if (v != val) elm_slider_value_set(obj, v); | ||
844 | } | ||
845 | |||
846 | static void | ||
847 | ecc_change(void *data EINA_UNUSED, | ||
848 | Evas_Object *obj, | ||
849 | void *event_info EINA_UNUSED) | ||
850 | { | ||
851 | double ecc = elm_config_cache_edje_collection_cache_size_get(); | ||
852 | double val = elm_slider_value_get(obj); | ||
853 | |||
854 | if (ecc == val) return; | ||
855 | elm_config_cache_edje_collection_cache_size_set(val); | ||
856 | elm_config_all_flush(); | ||
857 | } | ||
858 | |||
859 | static void | ||
860 | ac_change(void *data EINA_UNUSED, | ||
861 | Evas_Object *obj, | ||
862 | void *event_info EINA_UNUSED) | ||
863 | { | ||
864 | Eina_Bool val = elm_check_state_get(obj); | ||
865 | Eina_Bool ac = elm_config_access_get(); | ||
866 | |||
867 | if (val == ac) return; | ||
868 | elm_config_access_set(val); | ||
869 | elm_config_all_flush(); | ||
870 | } | ||
871 | |||
872 | static void | ||
873 | sel_change(void *data EINA_UNUSED, | ||
874 | Evas_Object *obj, | ||
875 | void *event_info EINA_UNUSED) | ||
876 | { | ||
877 | Eina_Bool val = elm_check_state_get(obj); | ||
878 | Eina_Bool sel = elm_config_selection_unfocused_clear_get(); | ||
879 | |||
880 | if (val == sel) return; | ||
881 | elm_config_selection_unfocused_clear_set(val); | ||
882 | elm_config_all_flush(); | ||
883 | } | ||
884 | |||
885 | static void | ||
886 | dbg_change(void *data EINA_UNUSED, | ||
887 | Evas_Object *obj, | ||
888 | void *event_info EINA_UNUSED) | ||
889 | { | ||
890 | Eina_Bool val = elm_check_state_get(obj); | ||
891 | Eina_Bool sel = elm_config_clouseau_enabled_get(); | ||
892 | |||
893 | if (val == sel) return; | ||
894 | elm_config_clouseau_enabled_set(val); | ||
895 | elm_config_all_flush(); | ||
896 | } | ||
897 | |||
898 | static void | ||
899 | atspi_change(void *data EINA_UNUSED, | ||
900 | Evas_Object *obj, | ||
901 | void *event_info EINA_UNUSED) | ||
902 | { | ||
903 | Eina_Bool val = elm_check_state_get(obj); | ||
904 | Eina_Bool sel = elm_config_atspi_mode_get(); | ||
905 | |||
906 | if (val == sel) return; | ||
907 | elm_config_atspi_mode_set(val); | ||
908 | elm_config_all_flush(); | ||
909 | } | ||
910 | |||
911 | static void | ||
912 | transition_duration_change(void *data EINA_UNUSED, | ||
913 | Evas_Object *obj, | ||
914 | void *event_info EINA_UNUSED) | ||
915 | { | ||
916 | double val = elm_slider_value_get(obj); | ||
917 | Eina_Bool scale = elm_config_transition_duration_factor_get(); | ||
918 | |||
919 | if (scale == val) return; | ||
920 | elm_config_transition_duration_factor_set(val); | ||
921 | elm_config_all_flush(); | ||
922 | } | ||
923 | |||
924 | static void | ||
925 | _status_basic(Evas_Object *win, | ||
926 | Evas_Object *bx0) | ||
927 | { | ||
928 | Evas_Object *lb, *fr; | ||
929 | |||
930 | fr = elm_frame_add(win); | ||
931 | evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
932 | elm_object_text_set(fr, "Information"); | ||
933 | elm_box_pack_end(bx0, fr); | ||
934 | evas_object_show(fr); | ||
935 | |||
936 | lb = elm_label_add(win); | ||
937 | elm_object_text_set(lb, | ||
938 | "Applying configuration change" | ||
939 | ); | ||
940 | elm_object_content_set(fr, lb); | ||
941 | evas_object_show(lb); | ||
942 | } | ||
943 | |||
944 | static void | ||
945 | _status_config(Evas_Object *win, | ||
946 | Evas_Object *bx0) | ||
947 | { | ||
948 | Evas_Object *lb, *pd, *bx, *fr, *sl, *sp; | ||
949 | |||
950 | fr = elm_frame_add(win); | ||
951 | evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
952 | evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
953 | elm_object_text_set(fr, "Sizing"); | ||
954 | elm_box_pack_end(bx0, fr); | ||
955 | evas_object_show(fr); | ||
956 | |||
957 | bx = elm_box_add(win); | ||
958 | evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0); | ||
959 | evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.5); | ||
960 | |||
961 | LABEL_FRAME_ADD("<hilight>Scale</>"); | ||
962 | |||
963 | sl = elm_slider_add(win); | ||
964 | evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0); | ||
965 | evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5); | ||
966 | elm_slider_span_size_set(sl, 120); | ||
967 | elm_slider_unit_format_set(sl, "%1.2f"); | ||
968 | elm_slider_indicator_format_set(sl, "%1.2f"); | ||
969 | elm_slider_min_max_set(sl, 0.25, 5.0); | ||
970 | elm_slider_value_set(sl, elm_config_scale_get()); | ||
971 | elm_box_pack_end(bx, sl); | ||
972 | evas_object_show(sl); | ||
973 | |||
974 | evas_object_smart_callback_add(sl, "changed", sc_round, NULL); | ||
975 | evas_object_smart_callback_add(sl, "delay,changed", sc_change, NULL); | ||
976 | |||
977 | sp = elm_separator_add(win); | ||
978 | elm_separator_horizontal_set(sp, EINA_TRUE); | ||
979 | evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, 0.0); | ||
980 | evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5); | ||
981 | elm_box_pack_end(bx, sp); | ||
982 | evas_object_show(sp); | ||
983 | |||
984 | LABEL_FRAME_ADD("<hilight>Finger Size</><br/>"); | ||
985 | |||
986 | sl = elm_slider_add(win); | ||
987 | evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0); | ||
988 | evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5); | ||
989 | elm_slider_span_size_set(sl, 120); | ||
990 | elm_slider_unit_format_set(sl, "%1.0f"); | ||
991 | elm_slider_indicator_format_set(sl, "%1.0f"); | ||
992 | elm_slider_min_max_set(sl, 5, 200); | ||
993 | elm_slider_value_set(sl, elm_config_finger_size_get()); | ||
994 | elm_box_pack_end(bx, sl); | ||
995 | evas_object_show(sl); | ||
996 | |||
997 | evas_object_smart_callback_add(sl, "changed", fs_round, NULL); | ||
998 | evas_object_smart_callback_add(sl, "delay,changed", fs_change, NULL); | ||
999 | |||
1000 | // FIXME: add theme selector (basic mode and advanced for fallbacks) | ||
1001 | // FIXME: save config | ||
1002 | // FIXME: profile selector / creator etc. | ||
1003 | elm_object_content_set(fr, bx); | ||
1004 | evas_object_show(bx); | ||
1005 | } | ||
1006 | |||
1007 | static void | ||
1008 | _flip_to(Evas_Object *win, | ||
1009 | const char *name) | ||
1010 | { | ||
1011 | Evas_Object *wid, *naviframe; | ||
1012 | wid = evas_object_data_get(win, name); | ||
1013 | naviframe = evas_object_data_get(win, "naviframe"); | ||
1014 | if (!naviframe) return; | ||
1015 | elm_naviframe_item_simple_promote(naviframe, wid); | ||
1016 | } | ||
1017 | |||
1018 | static void | ||
1019 | _cf_sizing(void *data, | ||
1020 | Evas_Object *obj EINA_UNUSED, | ||
1021 | void *event_info EINA_UNUSED) | ||
1022 | { | ||
1023 | _flip_to(data, "sizing"); | ||
1024 | } | ||
1025 | |||
1026 | static void | ||
1027 | _cf_themes(void *data, | ||
1028 | Evas_Object *obj EINA_UNUSED, | ||
1029 | void *event_info EINA_UNUSED) | ||
1030 | { | ||
1031 | _flip_to(data, "themes"); | ||
1032 | } | ||
1033 | |||
1034 | static void | ||
1035 | _cf_fonts(void *data, | ||
1036 | Evas_Object *obj EINA_UNUSED, | ||
1037 | void *event_info EINA_UNUSED) | ||
1038 | { | ||
1039 | _flip_to(data, "fonts"); | ||
1040 | } | ||
1041 | |||
1042 | static void | ||
1043 | _cf_profiles(void *data, | ||
1044 | Evas_Object *obj EINA_UNUSED, | ||
1045 | void *event_info EINA_UNUSED) | ||
1046 | { | ||
1047 | _flip_to(data, "profiles"); | ||
1048 | } | ||
1049 | |||
1050 | static void | ||
1051 | _cf_scrolling(void *data, | ||
1052 | Evas_Object *obj EINA_UNUSED, | ||
1053 | void *event_info EINA_UNUSED) | ||
1054 | { | ||
1055 | _flip_to(data, "scrolling"); | ||
1056 | } | ||
1057 | |||
1058 | static void | ||
1059 | _cf_rendering(void *data, | ||
1060 | Evas_Object *obj EINA_UNUSED, | ||
1061 | void *event_info EINA_UNUSED) | ||
1062 | { | ||
1063 | _flip_to(data, "rendering"); | ||
1064 | } | ||
1065 | |||
1066 | static void | ||
1067 | _cf_caches(void *data, | ||
1068 | Evas_Object *obj EINA_UNUSED, | ||
1069 | void *event_info EINA_UNUSED) | ||
1070 | { | ||
1071 | _flip_to(data, "caches"); | ||
1072 | } | ||
1073 | |||
1074 | static void | ||
1075 | _cf_audio(void *data, | ||
1076 | Evas_Object *obj EINA_UNUSED, | ||
1077 | void *event_info EINA_UNUSED) | ||
1078 | { | ||
1079 | _flip_to(data,"audio"); | ||
1080 | } | ||
1081 | |||
1082 | static void | ||
1083 | _cf_focus(void *data, | ||
1084 | Evas_Object *obj EINA_UNUSED, | ||
1085 | void *event_info EINA_UNUSED) | ||
1086 | { | ||
1087 | _flip_to(data, "focus"); | ||
1088 | } | ||
1089 | |||
1090 | static void | ||
1091 | _cf_etc(void *data, | ||
1092 | Evas_Object *obj EINA_UNUSED, | ||
1093 | void *event_info EINA_UNUSED) | ||
1094 | { | ||
1095 | _flip_to(data,"etc"); | ||
1096 | } | ||
1097 | |||
1098 | const char * | ||
1099 | _elm_theme_current_get(const char *theme_search_order) | ||
1100 | { | ||
1101 | const char *ret; | ||
1102 | const char *p; | ||
1103 | |||
1104 | if (!theme_search_order) | ||
1105 | return NULL; | ||
1106 | |||
1107 | for (p = theme_search_order;; p++) | ||
1108 | { | ||
1109 | if ((*p == ':') || (!*p)) | ||
1110 | { | ||
1111 | if (p > theme_search_order) | ||
1112 | { | ||
1113 | char *n = malloc(p - theme_search_order + 1); | ||
1114 | if (!n) | ||
1115 | return NULL; | ||
1116 | |||
1117 | strncpy(n, theme_search_order, p - theme_search_order); | ||
1118 | n[p - theme_search_order] = 0; | ||
1119 | ret = eina_stringshare_add(n); | ||
1120 | free(n); | ||
1121 | break; | ||
1122 | } | ||
1123 | } | ||
1124 | } | ||
1125 | |||
1126 | return ret; | ||
1127 | } | ||
1128 | |||
1129 | static void | ||
1130 | _font_overlay_set_all(void *data, | ||
1131 | Evas_Object *obj EINA_UNUSED, | ||
1132 | void *event_info EINA_UNUSED) | ||
1133 | { | ||
1134 | Evas_Object *win, *fclasses; | ||
1135 | Elm_Text_Class_Data *tc_data, *tc; | ||
1136 | Elm_Object_Item *list_it; | ||
1137 | Eina_List *l; | ||
1138 | |||
1139 | win = data; | ||
1140 | |||
1141 | fclasses = evas_object_data_get(win, "font_classes_list"); | ||
1142 | list_it = elm_list_selected_item_get(fclasses); | ||
1143 | if (!list_it) return; | ||
1144 | tc_data = elm_object_item_data_get(list_it); | ||
1145 | if (!tc_data) return; | ||
1146 | |||
1147 | EINA_LIST_FOREACH(fndata.text_classes, l, tc) | ||
1148 | { | ||
1149 | eina_stringshare_replace(&tc->font, tc_data->font); | ||
1150 | eina_stringshare_replace(&tc->style, tc_data->style); | ||
1151 | tc->size = tc_data->size; | ||
1152 | } | ||
1153 | |||
1154 | elm_config_all_flush(); | ||
1155 | } | ||
1156 | |||
1157 | static void | ||
1158 | _font_overlay_reset(void *data, | ||
1159 | Evas_Object *obj EINA_UNUSED, | ||
1160 | void *event_info EINA_UNUSED) | ||
1161 | { | ||
1162 | Evas_Object *win, *fclasses, *fnames, *fstyles, *fsizes; | ||
1163 | Elm_Text_Class_Data *tc_data; | ||
1164 | Elm_Object_Item *list_it; | ||
1165 | |||
1166 | win = data; | ||
1167 | |||
1168 | fclasses = evas_object_data_get(win, "font_classes_list"); | ||
1169 | list_it = elm_list_selected_item_get(fclasses); | ||
1170 | if (!list_it) return; | ||
1171 | tc_data = elm_object_item_data_get(list_it); | ||
1172 | if (!tc_data) return; | ||
1173 | |||
1174 | fnames = evas_object_data_get(win, "font_names_list"); | ||
1175 | fstyles = evas_object_data_get(win, "font_styles_list"); | ||
1176 | fsizes = evas_object_data_get(win, "font_sizes_list"); | ||
1177 | |||
1178 | elm_config_font_overlay_unset(tc_data->name); | ||
1179 | |||
1180 | eina_stringshare_replace(&fndata.cur_font, NULL); | ||
1181 | eina_stringshare_replace(&tc_data->font, NULL); | ||
1182 | eina_stringshare_replace(&fndata.cur_style, NULL); | ||
1183 | eina_stringshare_replace(&tc_data->style, NULL); | ||
1184 | fndata.cur_size = 0.0; | ||
1185 | tc_data->size = 0.0; | ||
1186 | |||
1187 | ELM_LIST_DISABLE(fnames); | ||
1188 | ELM_LIST_DISABLE(fstyles); | ||
1189 | ELM_LIST_DISABLE(fsizes); | ||
1190 | |||
1191 | elm_config_all_flush(); | ||
1192 | } | ||
1193 | |||
1194 | static void | ||
1195 | _font_overlay_reset_all(void *data, | ||
1196 | Evas_Object *obj EINA_UNUSED, | ||
1197 | void *event_info EINA_UNUSED) | ||
1198 | { | ||
1199 | Evas_Object *win, *fclasses, *fnames, *fstyles, *fsizes; | ||
1200 | Elm_Text_Class_Data *tc_data; | ||
1201 | Elm_Object_Item *list_it; | ||
1202 | Eina_List *l; | ||
1203 | |||
1204 | win = data; | ||
1205 | eina_stringshare_replace(&fndata.cur_font, NULL); | ||
1206 | eina_stringshare_replace(&fndata.cur_style, NULL); | ||
1207 | fndata.cur_size = 0.0; | ||
1208 | |||
1209 | EINA_LIST_FOREACH(fndata.text_classes, l, tc_data) | ||
1210 | { | ||
1211 | elm_config_font_overlay_unset(tc_data->name); | ||
1212 | |||
1213 | eina_stringshare_replace(&tc_data->font, NULL); | ||
1214 | eina_stringshare_replace(&tc_data->style, NULL); | ||
1215 | tc_data->size = 0.0; | ||
1216 | } | ||
1217 | |||
1218 | fclasses = evas_object_data_get(win, "font_classes_list"); | ||
1219 | fnames = evas_object_data_get(win, "font_names_list"); | ||
1220 | fstyles = evas_object_data_get(win, "font_styles_list"); | ||
1221 | fsizes = evas_object_data_get(win, "font_sizes_list"); | ||
1222 | |||
1223 | list_it = elm_list_selected_item_get(fclasses); | ||
1224 | if (list_it) elm_list_item_selected_set(list_it, EINA_FALSE); | ||
1225 | |||
1226 | ELM_LIST_DISABLE(fnames); | ||
1227 | ELM_LIST_DISABLE(fstyles); | ||
1228 | ELM_LIST_DISABLE(fsizes); | ||
1229 | |||
1230 | elm_config_all_flush(); | ||
1231 | } | ||
1232 | |||
1233 | static void | ||
1234 | _font_overlay_change(void *data EINA_UNUSED, | ||
1235 | Evas_Object *obj EINA_UNUSED, | ||
1236 | void *event_info EINA_UNUSED) | ||
1237 | { | ||
1238 | Elm_Text_Class_Data *tc_data; | ||
1239 | Eina_List *l; | ||
1240 | |||
1241 | EINA_LIST_FOREACH(fndata.text_classes, l, tc_data) | ||
1242 | { | ||
1243 | if (tc_data->font) | ||
1244 | { | ||
1245 | char *name; | ||
1246 | |||
1247 | name = elm_font_fontconfig_name_get(tc_data->font, | ||
1248 | tc_data->style); | ||
1249 | elm_config_font_overlay_set(tc_data->name, name, | ||
1250 | tc_data->size ? tc_data->size : -100); | ||
1251 | elm_font_fontconfig_name_free(name); | ||
1252 | } | ||
1253 | else | ||
1254 | elm_config_font_overlay_unset(tc_data->name); | ||
1255 | } | ||
1256 | |||
1257 | elm_config_font_overlay_apply(); | ||
1258 | elm_config_all_flush(); | ||
1259 | |||
1260 | /* TODO: apply hinting */ | ||
1261 | } | ||
1262 | |||
1263 | static void | ||
1264 | _config_display_update(Evas_Object *win) | ||
1265 | { | ||
1266 | int flush_interval, font_c, image_c, edje_file_c, edje_col_c, ts_threshould, | ||
1267 | ts_hold_threshold; | ||
1268 | double scale, s_bounce_friction, ts_momentum_threshold, | ||
1269 | ts_flick_distance_tolerance, ts_friction, | ||
1270 | ts_min_friction, ts_friction_standard, ts_border_friction, | ||
1271 | ts_sensitivity_friction, ts_acceleration_threshold, | ||
1272 | ts_acceleration_time_limit, ts_acceleration_weight, page_friction, | ||
1273 | bring_in_friction, zoom_friction, transition_duration, | ||
1274 | smooth_amount, smooth_time_window; | ||
1275 | const char *curr_theme; | ||
1276 | Eina_Bool s_bounce, ts, smooth_start; | ||
1277 | Elm_Theme *th; | ||
1278 | int fs; | ||
1279 | |||
1280 | scale = elm_config_scale_get(); | ||
1281 | fs = elm_config_finger_size_get(); | ||
1282 | flush_interval = elm_config_cache_flush_interval_get(); | ||
1283 | font_c = elm_config_cache_font_cache_size_get(); | ||
1284 | image_c = elm_config_cache_image_cache_size_get(); | ||
1285 | transition_duration = elm_config_transition_duration_factor_get(); | ||
1286 | edje_file_c = elm_config_cache_edje_file_cache_size_get(); | ||
1287 | edje_col_c = elm_config_cache_edje_collection_cache_size_get(); | ||
1288 | |||
1289 | s_bounce = elm_config_scroll_bounce_enabled_get(); | ||
1290 | s_bounce_friction = elm_config_scroll_bounce_friction_get(); | ||
1291 | ts = elm_config_scroll_thumbscroll_enabled_get(); | ||
1292 | ts_threshould = elm_config_scroll_thumbscroll_threshold_get(); | ||
1293 | ts_hold_threshold = elm_config_scroll_thumbscroll_hold_threshold_get(); | ||
1294 | ts_momentum_threshold = elm_config_scroll_thumbscroll_momentum_threshold_get(); | ||
1295 | ts_flick_distance_tolerance = elm_config_scroll_thumbscroll_flick_distance_tolerance_get(); | ||
1296 | ts_friction = elm_config_scroll_thumbscroll_friction_get(); | ||
1297 | ts_min_friction = elm_config_scroll_thumbscroll_min_friction_get(); | ||
1298 | ts_friction_standard = elm_config_scroll_thumbscroll_friction_standard_get(); | ||
1299 | ts_border_friction = elm_config_scroll_thumbscroll_border_friction_get(); | ||
1300 | ts_sensitivity_friction = elm_config_scroll_thumbscroll_sensitivity_friction_get(); | ||
1301 | ts_acceleration_threshold = elm_config_scroll_thumbscroll_acceleration_threshold_get(); | ||
1302 | ts_acceleration_time_limit = elm_config_scroll_thumbscroll_acceleration_time_limit_get(); | ||
1303 | ts_acceleration_weight = elm_config_scroll_thumbscroll_acceleration_weight_get(); | ||
1304 | page_friction = elm_config_scroll_page_scroll_friction_get(); | ||
1305 | bring_in_friction = elm_config_scroll_bring_in_scroll_friction_get(); | ||
1306 | zoom_friction = elm_config_scroll_zoom_friction_get(); | ||
1307 | smooth_start = elm_config_scroll_thumbscroll_smooth_start_get(); | ||
1308 | smooth_amount = elm_config_scroll_thumbscroll_smooth_amount_get(); | ||
1309 | smooth_time_window = elm_config_scroll_thumbscroll_smooth_time_window_get(); | ||
1310 | |||
1311 | /* gotta update root windows' atoms */ | ||
1312 | elm_slider_value_set(evas_object_data_get(win, "scale_slider"), scale); | ||
1313 | elm_slider_value_set(evas_object_data_get(win, "fs_slider"), fs); | ||
1314 | |||
1315 | elm_slider_value_set(evas_object_data_get(win, | ||
1316 | "cache_flush_interval_slider"), | ||
1317 | flush_interval); | ||
1318 | elm_slider_value_set(evas_object_data_get(win, "font_cache_slider"), | ||
1319 | font_c / 1024.0); | ||
1320 | elm_slider_value_set(evas_object_data_get(win, "image_cache_slider"), | ||
1321 | image_c / 1024.0); | ||
1322 | elm_slider_value_set(evas_object_data_get(win, "edje_file_cache_slider"), | ||
1323 | edje_file_c); | ||
1324 | elm_slider_value_set(evas_object_data_get(win, | ||
1325 | "edje_collection_cache_slider"), | ||
1326 | edje_col_c); | ||
1327 | |||
1328 | elm_check_state_set(evas_object_data_get(win, "scroll_bounce_check"), | ||
1329 | s_bounce); | ||
1330 | elm_slider_value_set(evas_object_data_get(win, "bounce_friction_slider"), | ||
1331 | s_bounce_friction); | ||
1332 | elm_check_state_set(evas_object_data_get(win, "thumbscroll_check"), ts); | ||
1333 | elm_slider_value_set(evas_object_data_get(win, | ||
1334 | "ts_threshold_slider"), | ||
1335 | ts_threshould); | ||
1336 | elm_slider_value_set(evas_object_data_get(win, | ||
1337 | "ts_hold_threshold_slider"), | ||
1338 | ts_hold_threshold); | ||
1339 | elm_slider_value_set(evas_object_data_get(win, | ||
1340 | "ts_momentum_threshold_slider"), | ||
1341 | ts_momentum_threshold); | ||
1342 | elm_slider_value_set(evas_object_data_get(win, | ||
1343 | "ts_flick_distance_tolerance_slider"), | ||
1344 | ts_flick_distance_tolerance); | ||
1345 | elm_slider_value_set(evas_object_data_get(win, | ||
1346 | "ts_friction_slider"), | ||
1347 | ts_friction); | ||
1348 | elm_slider_value_set(evas_object_data_get(win, | ||
1349 | "ts_min_friction_slider"), | ||
1350 | ts_min_friction); | ||
1351 | elm_slider_value_set(evas_object_data_get(win, | ||
1352 | "ts_friction_standard_slider"), | ||
1353 | ts_friction_standard); | ||
1354 | elm_slider_value_set(evas_object_data_get(win, "ts_border_friction_slider"), | ||
1355 | ts_border_friction); | ||
1356 | elm_slider_value_set(evas_object_data_get(win, "ts_sensitivity_friction_slider"), | ||
1357 | ts_sensitivity_friction); | ||
1358 | elm_slider_value_set(evas_object_data_get(win, "ts_acceleration_threshold_slider"), | ||
1359 | ts_acceleration_threshold); | ||
1360 | elm_slider_value_set(evas_object_data_get(win, "ts_acceleration_time_limit_slider"), | ||
1361 | ts_acceleration_time_limit); | ||
1362 | elm_slider_value_set(evas_object_data_get(win, "ts_acceleration_weight_slider"), | ||
1363 | ts_acceleration_weight); | ||
1364 | elm_slider_value_set(evas_object_data_get(win, | ||
1365 | "page_scroll_friction_slider"), | ||
1366 | page_friction); | ||
1367 | elm_slider_value_set(evas_object_data_get(win, | ||
1368 | "bring_in_scroll_friction_slider"), | ||
1369 | bring_in_friction); | ||
1370 | elm_slider_value_set(evas_object_data_get(win, | ||
1371 | "zoom_scroll_friction_slider"), | ||
1372 | zoom_friction); | ||
1373 | |||
1374 | elm_check_state_set(evas_object_data_get(win, "scroll_smooth_start"), | ||
1375 | smooth_start); | ||
1376 | elm_slider_value_set(evas_object_data_get(win, | ||
1377 | "scroll_smooth_amount"), | ||
1378 | smooth_amount); | ||
1379 | elm_slider_value_set(evas_object_data_get(win, | ||
1380 | "scroll_smooth_time_window"), | ||
1381 | smooth_time_window); | ||
1382 | |||
1383 | curr_theme = _elm_theme_current_get(elm_theme_get(NULL)); | ||
1384 | |||
1385 | th = elm_theme_new(); | ||
1386 | elm_theme_set(th, curr_theme); | ||
1387 | elm_object_theme_set(evas_object_data_get(win, "theme_preview"), th); | ||
1388 | elm_theme_free(th); | ||
1389 | elm_config_transition_duration_factor_set(transition_duration); | ||
1390 | eina_stringshare_del(curr_theme); | ||
1391 | } | ||
1392 | |||
1393 | static Eina_Bool | ||
1394 | _config_all_changed(void *data, | ||
1395 | int ev_type EINA_UNUSED, | ||
1396 | void *ev EINA_UNUSED) | ||
1397 | { | ||
1398 | Evas_Object *win = data; | ||
1399 | _config_display_update(win); | ||
1400 | return ECORE_CALLBACK_PASS_ON; | ||
1401 | } | ||
1402 | |||
1403 | static void | ||
1404 | _profile_use(void *data, | ||
1405 | Evas_Object *obj EINA_UNUSED, | ||
1406 | void *event_info EINA_UNUSED) | ||
1407 | { | ||
1408 | Evas_Object *li; | ||
1409 | const char *selection; | ||
1410 | const char *profile; | ||
1411 | |||
1412 | li = data; | ||
1413 | selection = elm_object_item_data_get(elm_list_selected_item_get(li)); | ||
1414 | if (!selection) return; | ||
1415 | profile = elm_config_profile_get(); | ||
1416 | |||
1417 | if (!profile) | ||
1418 | { | ||
1419 | fprintf(stderr, "No profile currently set!\n"); /* FIXME: log domain */ | ||
1420 | return; | ||
1421 | } | ||
1422 | |||
1423 | if (!strcmp(profile, selection)) | ||
1424 | return; | ||
1425 | |||
1426 | elm_config_profile_set(selection); /* just here to update info for getters below */ | ||
1427 | |||
1428 | _config_display_update(elm_object_top_widget_get(li)); | ||
1429 | elm_config_all_flush(); | ||
1430 | } | ||
1431 | |||
1432 | static void | ||
1433 | _btn_todo(void *data EINA_UNUSED, | ||
1434 | Evas_Object *obj EINA_UNUSED, | ||
1435 | void *event_info EINA_UNUSED) | ||
1436 | { | ||
1437 | printf("To be done!\n"); | ||
1438 | } | ||
1439 | |||
1440 | static void | ||
1441 | _profile_reset(void *data, | ||
1442 | Evas_Object *obj EINA_UNUSED, | ||
1443 | void *event_info EINA_UNUSED) | ||
1444 | { | ||
1445 | const char *selection; | ||
1446 | const char *pdir; | ||
1447 | Evas_Object *li; | ||
1448 | |||
1449 | li = data; | ||
1450 | selection = elm_object_item_data_get(elm_list_selected_item_get(li)); | ||
1451 | if (!selection) return; | ||
1452 | |||
1453 | elm_config_all_flush(); | ||
1454 | |||
1455 | pdir = elm_config_profile_dir_get(selection, EINA_TRUE); | ||
1456 | if (!pdir) | ||
1457 | return; | ||
1458 | |||
1459 | ecore_file_recursive_rm(pdir); | ||
1460 | elm_config_profile_dir_free(pdir); | ||
1461 | |||
1462 | elm_config_reload(); | ||
1463 | |||
1464 | elm_config_all_flush(); | ||
1465 | _config_display_update(elm_object_top_widget_get(li)); | ||
1466 | } | ||
1467 | |||
1468 | static void | ||
1469 | _theme_use(void *data EINA_UNUSED, | ||
1470 | Evas_Object *obj EINA_UNUSED, | ||
1471 | void *event_info EINA_UNUSED) | ||
1472 | { | ||
1473 | const char *defth; | ||
1474 | Elm_Theme *th; | ||
1475 | Evas_Object *win = elm_object_top_widget_get(obj); | ||
1476 | Evas_Object *sample = evas_object_data_get(win, "theme_preview"); | ||
1477 | |||
1478 | th = elm_object_theme_get(sample); | ||
1479 | defth = elm_theme_get(th); | ||
1480 | elm_theme_set(NULL, defth); | ||
1481 | elm_config_all_flush(); | ||
1482 | } | ||
1483 | |||
1484 | static void | ||
1485 | _theme_sel(void *data EINA_UNUSED, | ||
1486 | Evas_Object *obj, | ||
1487 | void *event_info EINA_UNUSED) | ||
1488 | { | ||
1489 | Evas_Object *win = elm_object_top_widget_get(obj); | ||
1490 | Evas_Object *sample = evas_object_data_get(win, "theme_preview"); | ||
1491 | Elm_Theme *th; | ||
1492 | Elm_Object_Item *list_it; | ||
1493 | Eina_Strbuf *newth; | ||
1494 | Eina_List *l; | ||
1495 | |||
1496 | if (!sample) return; | ||
1497 | tsel = elm_list_selected_items_get(obj); | ||
1498 | newth = eina_strbuf_new(); | ||
1499 | EINA_SAFETY_ON_NULL_RETURN(newth); | ||
1500 | th = elm_theme_new(); | ||
1501 | if (!th) | ||
1502 | { | ||
1503 | eina_strbuf_free(newth); | ||
1504 | return; | ||
1505 | } | ||
1506 | EINA_LIST_REVERSE_FOREACH((Eina_List*)tsel, l, list_it) | ||
1507 | { | ||
1508 | Theme *t = elm_object_item_data_get(list_it); | ||
1509 | if (!t) continue; | ||
1510 | |||
1511 | eina_strbuf_append_printf(newth, "%s:", t->name); | ||
1512 | if ((!l->prev) && strcmp(t->name, "default")) | ||
1513 | /* ensure default theme is always there for fallback */ | ||
1514 | eina_strbuf_append(newth, "default"); | ||
1515 | } | ||
1516 | elm_theme_set(th, eina_strbuf_string_get(newth)); | ||
1517 | eina_strbuf_free(newth); | ||
1518 | elm_object_theme_set(sample, th); | ||
1519 | elm_theme_free(th); | ||
1520 | } | ||
1521 | |||
1522 | /*static void | ||
1523 | _theme_browse(void *data, Evas_Object *obj, void *event_info) | ||
1524 | { | ||
1525 | printf("not implemented\n"); | ||
1526 | }*/ | ||
1527 | |||
1528 | static void | ||
1529 | _status_config_sizing(Evas_Object *win, | ||
1530 | Evas_Object *naviframe) | ||
1531 | { | ||
1532 | Evas_Object *lb, *pd, *bx, *sl, *sp; | ||
1533 | |||
1534 | bx = elm_box_add(win); | ||
1535 | evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0); | ||
1536 | evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.5); | ||
1537 | |||
1538 | LABEL_FRAME_ADD("<hilight>Scale</>"); | ||
1539 | |||
1540 | sl = elm_slider_add(win); | ||
1541 | evas_object_data_set(win, "scale_slider", sl); | ||
1542 | evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0); | ||
1543 | evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5); | ||
1544 | elm_slider_span_size_set(sl, 120); | ||
1545 | elm_slider_unit_format_set(sl, "%1.2f"); | ||
1546 | elm_slider_indicator_format_set(sl, "%1.2f"); | ||
1547 | elm_slider_min_max_set(sl, 0.25, 5.0); | ||
1548 | elm_slider_value_set(sl, elm_config_scale_get()); | ||
1549 | elm_box_pack_end(bx, sl); | ||
1550 | evas_object_show(sl); | ||
1551 | |||
1552 | evas_object_smart_callback_add(sl, "changed", sc_round, NULL); | ||
1553 | evas_object_smart_callback_add(sl, "delay,changed", sc_change, NULL); | ||
1554 | |||
1555 | sp = elm_separator_add(win); | ||
1556 | elm_separator_horizontal_set(sp, EINA_TRUE); | ||
1557 | evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, 0.0); | ||
1558 | evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5); | ||
1559 | elm_box_pack_end(bx, sp); | ||
1560 | evas_object_show(sp); | ||
1561 | |||
1562 | LABEL_FRAME_ADD("<hilight>Finger Size</><br/>"); | ||
1563 | |||
1564 | sl = elm_slider_add(win); | ||
1565 | evas_object_data_set(win, "fs_slider", sl); | ||
1566 | evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0); | ||
1567 | evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5); | ||
1568 | elm_slider_span_size_set(sl, 120); | ||
1569 | elm_slider_unit_format_set(sl, "%1.0f"); | ||
1570 | elm_slider_indicator_format_set(sl, "%1.0f"); | ||
1571 | elm_slider_min_max_set(sl, 5, 200); | ||
1572 | elm_slider_value_set(sl, elm_config_finger_size_get()); | ||
1573 | elm_box_pack_end(bx, sl); | ||
1574 | evas_object_show(sl); | ||
1575 | |||
1576 | evas_object_smart_callback_add(sl, "changed", fs_round, NULL); | ||
1577 | evas_object_smart_callback_add(sl, "delay,changed", fs_change, NULL); | ||
1578 | |||
1579 | evas_object_data_set(win, "sizing", bx); | ||
1580 | |||
1581 | elm_naviframe_item_simple_push(naviframe, bx); | ||
1582 | } | ||
1583 | |||
1584 | #define MUTE_CB(_cb, _chan) \ | ||
1585 | static void \ | ||
1586 | _cb(void *data EINA_UNUSED, \ | ||
1587 | Evas_Object *obj, \ | ||
1588 | void *event_info EINA_UNUSED) \ | ||
1589 | { \ | ||
1590 | Eina_Bool val = elm_check_state_get(obj); \ | ||
1591 | Eina_Bool v = elm_config_audio_mute_get(_chan); \ | ||
1592 | if (val == v) return; \ | ||
1593 | elm_config_audio_mute_set(_chan, val); \ | ||
1594 | elm_config_all_flush(); \ | ||
1595 | } | ||
1596 | |||
1597 | MUTE_CB(mute_effect_change, EDJE_CHANNEL_EFFECT) | ||
1598 | MUTE_CB(mute_background_change, EDJE_CHANNEL_BACKGROUND) | ||
1599 | MUTE_CB(mute_music_change, EDJE_CHANNEL_MUSIC) | ||
1600 | MUTE_CB(mute_foreground_change, EDJE_CHANNEL_FOREGROUND) | ||
1601 | MUTE_CB(mute_interface_change, EDJE_CHANNEL_INTERFACE) | ||
1602 | MUTE_CB(mute_input_change, EDJE_CHANNEL_INPUT) | ||
1603 | MUTE_CB(mute_alert_change, EDJE_CHANNEL_ALERT) | ||
1604 | MUTE_CB(mute_all_change, EDJE_CHANNEL_ALL) | ||
1605 | |||
1606 | static void | ||
1607 | _status_config_audio(Evas_Object *win, | ||
1608 | Evas_Object *naviframe) | ||
1609 | { | ||
1610 | Evas_Object *bx, *ck; | ||
1611 | |||
1612 | bx = elm_box_add(win); | ||
1613 | evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0); | ||
1614 | evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.5); | ||
1615 | |||
1616 | #define MUTE_CHECK(_label, _chan, _cb) \ | ||
1617 | CHECK_ADD(_label, _label, _cb, NULL) \ | ||
1618 | elm_check_state_set(ck, elm_config_audio_mute_get(_chan)); | ||
1619 | |||
1620 | MUTE_CHECK("Mute Effects", EDJE_CHANNEL_EFFECT, mute_effect_change); | ||
1621 | MUTE_CHECK("Mute Background", EDJE_CHANNEL_BACKGROUND, mute_background_change); | ||
1622 | MUTE_CHECK("Mute Music", EDJE_CHANNEL_MUSIC, mute_music_change); | ||
1623 | MUTE_CHECK("Mute Foreground", EDJE_CHANNEL_FOREGROUND, mute_foreground_change); | ||
1624 | MUTE_CHECK("Mute Interface", EDJE_CHANNEL_INTERFACE, mute_interface_change); | ||
1625 | MUTE_CHECK("Mute Input", EDJE_CHANNEL_INPUT, mute_input_change); | ||
1626 | MUTE_CHECK("Mute Alert", EDJE_CHANNEL_ALERT, mute_alert_change); | ||
1627 | MUTE_CHECK("Mute Everything", EDJE_CHANNEL_ALL, mute_all_change); | ||
1628 | |||
1629 | evas_object_data_set(win, "audio", bx); | ||
1630 | |||
1631 | elm_naviframe_item_simple_push(naviframe, bx); | ||
1632 | } | ||
1633 | |||
1634 | static void | ||
1635 | _config_focus_highlight_enabled_cb(void *data EINA_UNUSED, Evas_Object *obj, | ||
1636 | void *event_info EINA_UNUSED) | ||
1637 | { | ||
1638 | Eina_Bool cf = elm_config_focus_highlight_enabled_get(); | ||
1639 | Eina_Bool val = elm_check_state_get(obj); | ||
1640 | |||
1641 | printf("%d %d\n", cf, val); | ||
1642 | if (cf == val) return; | ||
1643 | elm_config_focus_highlight_enabled_set(val); | ||
1644 | elm_config_all_flush(); | ||
1645 | } | ||
1646 | |||
1647 | static void | ||
1648 | _config_focus_highlight_anim_cb(void *data EINA_UNUSED, Evas_Object *obj, | ||
1649 | void *event_info EINA_UNUSED) | ||
1650 | { | ||
1651 | Eina_Bool cf = elm_config_focus_highlight_animate_get(); | ||
1652 | Eina_Bool val = elm_check_state_get(obj); | ||
1653 | |||
1654 | if (cf == val) return; | ||
1655 | elm_config_focus_highlight_animate_set(val); | ||
1656 | elm_config_all_flush(); | ||
1657 | } | ||
1658 | |||
1659 | static void | ||
1660 | _config_focus_highlight_clip_cb(void *data EINA_UNUSED, Evas_Object *obj, | ||
1661 | void *event_info EINA_UNUSED) | ||
1662 | { | ||
1663 | Eina_Bool cf = elm_config_focus_highlight_clip_disabled_get(); | ||
1664 | Eina_Bool val = elm_check_state_get(obj); | ||
1665 | |||
1666 | if (cf == val) return; | ||
1667 | elm_config_focus_highlight_clip_disabled_set(val); | ||
1668 | elm_config_all_flush(); | ||
1669 | } | ||
1670 | |||
1671 | static void | ||
1672 | _config_focus_item_select_on_focus_cb(void *data EINA_UNUSED, Evas_Object *obj, | ||
1673 | void *event_info EINA_UNUSED) | ||
1674 | { | ||
1675 | Eina_Bool cf = elm_config_item_select_on_focus_disabled_get(); | ||
1676 | Eina_Bool val = elm_check_state_get(obj); | ||
1677 | |||
1678 | if (cf == val) return; | ||
1679 | elm_config_item_select_on_focus_disabled_set(val); | ||
1680 | elm_config_all_flush(); | ||
1681 | } | ||
1682 | |||
1683 | static void | ||
1684 | _status_config_focus_autoscroll_changed_cb(void *data EINA_UNUSED, | ||
1685 | Evas_Object *obj, | ||
1686 | void *event_info EINA_UNUSED) | ||
1687 | { | ||
1688 | elm_config_focus_autoscroll_mode_set(elm_radio_value_get(obj)); | ||
1689 | } | ||
1690 | |||
1691 | static void | ||
1692 | _config_focus_auto_show_cb(void *data EINA_UNUSED, Evas_Object *obj, | ||
1693 | void *event_info EINA_UNUSED) | ||
1694 | { | ||
1695 | Eina_Bool cf = elm_config_window_auto_focus_enable_get(); | ||
1696 | Eina_Bool val = elm_check_state_get(obj); | ||
1697 | |||
1698 | if (cf == val) return; | ||
1699 | elm_config_window_auto_focus_enable_set(val); | ||
1700 | elm_config_all_flush(); | ||
1701 | } | ||
1702 | |||
1703 | static void | ||
1704 | _config_focus_auto_animate_cb(void *data EINA_UNUSED, Evas_Object *obj, | ||
1705 | void *event_info EINA_UNUSED) | ||
1706 | { | ||
1707 | Eina_Bool cf = elm_config_window_auto_focus_animate_get(); | ||
1708 | Eina_Bool val = elm_check_state_get(obj); | ||
1709 | |||
1710 | if (cf == val) return; | ||
1711 | elm_config_window_auto_focus_animate_set(val); | ||
1712 | elm_config_all_flush(); | ||
1713 | } | ||
1714 | |||
1715 | static void | ||
1716 | _status_config_focus(Evas_Object *win, | ||
1717 | Evas_Object *naviframe) | ||
1718 | { | ||
1719 | Evas_Object *bx, *ck, *fr; | ||
1720 | |||
1721 | bx = elm_box_add(win); | ||
1722 | |||
1723 | CHECK_ADD("Enable Focus Highlight (only new window)", | ||
1724 | "Set whether enable/disable focus highlight.<br/>" | ||
1725 | "This feature is disabled by default.", | ||
1726 | _config_focus_highlight_enabled_cb, NULL); | ||
1727 | elm_check_state_set(ck, elm_config_focus_highlight_enabled_get()); | ||
1728 | |||
1729 | CHECK_ADD("Enable Focus Highlight Animation (only new window)", | ||
1730 | "Set whether enable/disable focus highlight animation.<br/>" | ||
1731 | "This feature is disabled by default", | ||
1732 | _config_focus_highlight_anim_cb, NULL); | ||
1733 | elm_check_state_set(ck, elm_config_focus_highlight_animate_get()); | ||
1734 | |||
1735 | CHECK_ADD("Disable Focus Highlight clip", | ||
1736 | "Set whether enable/disable focus highlight clip feature.<br/>" | ||
1737 | "If the focus highlight clip is disabled,<br/>" | ||
1738 | "focus highlight object would not be clipped" | ||
1739 | "by the target object's parent", | ||
1740 | _config_focus_highlight_clip_cb, NULL); | ||
1741 | elm_check_state_set(ck, elm_config_focus_highlight_clip_disabled_get()); | ||
1742 | |||
1743 | CHECK_ADD("Disable Item Select on Focus", | ||
1744 | "Set whether item would be selected on item focus.<br/>" | ||
1745 | "This is enabled by default.", | ||
1746 | _config_focus_item_select_on_focus_cb, NULL); | ||
1747 | elm_check_state_set(ck, elm_config_item_select_on_focus_disabled_get()); | ||
1748 | |||
1749 | CHECK_ADD("Enable Automatic focus display", | ||
1750 | "Set whether enable/disable focus highlight automatically.", | ||
1751 | _config_focus_auto_show_cb, NULL); | ||
1752 | elm_check_state_set(ck, elm_config_window_auto_focus_enable_get()); | ||
1753 | CHECK_ADD("Enable Automatic focus animation", | ||
1754 | "Set whether enable/disable focus highlight animation<br/>" | ||
1755 | "automatically when automatic focus shows.", | ||
1756 | _config_focus_auto_animate_cb, NULL); | ||
1757 | elm_check_state_set(ck, elm_config_window_auto_focus_enable_get()); | ||
1758 | |||
1759 | fr = elm_frame_add(bx); | ||
1760 | elm_object_text_set(fr, "Focus Autoscroll Mode"); | ||
1761 | evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0); | ||
1762 | evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, 0.5); | ||
1763 | elm_box_pack_end(bx, fr); | ||
1764 | evas_object_show(fr); | ||
1765 | { | ||
1766 | Evas_Object *bx2, *rdg, *rd; | ||
1767 | bx2 = elm_box_add(fr); | ||
1768 | elm_object_content_set(fr, bx2); | ||
1769 | evas_object_show(bx2); | ||
1770 | |||
1771 | rdg = rd = elm_radio_add(bx2); | ||
1772 | elm_radio_state_value_set(rd, ELM_FOCUS_AUTOSCROLL_MODE_SHOW); | ||
1773 | elm_object_text_set(rd, "ELM_FOCUS_AUTOSCROLL_MODE_SHOW"); | ||
1774 | elm_object_tooltip_text_set(rd, "Directly show the focused region<br/>" | ||
1775 | "or item automatically inside a scroller."); | ||
1776 | evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0); | ||
1777 | evas_object_size_hint_align_set(rd, 0.0, EVAS_HINT_FILL); | ||
1778 | elm_box_pack_end(bx2, rd); | ||
1779 | evas_object_show(rd); | ||
1780 | evas_object_smart_callback_add(rd, "changed", | ||
1781 | _status_config_focus_autoscroll_changed_cb, | ||
1782 | NULL); | ||
1783 | |||
1784 | rd = elm_radio_add(bx2); | ||
1785 | elm_radio_state_value_set(rd, ELM_FOCUS_AUTOSCROLL_MODE_NONE); | ||
1786 | elm_object_text_set(rd, "ELM_FOCUS_AUTOSCROLL_MODE_NONE"); | ||
1787 | elm_object_tooltip_text_set(rd, "Do not show the focused region or<br/>" | ||
1788 | "item automatically inside a scroller."); | ||
1789 | evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0); | ||
1790 | evas_object_size_hint_align_set(rd, 0.0, EVAS_HINT_FILL); | ||
1791 | elm_box_pack_end(bx2, rd); | ||
1792 | elm_radio_group_add(rd, rdg); | ||
1793 | evas_object_show(rd); | ||
1794 | evas_object_smart_callback_add(rd, "changed", | ||
1795 | _status_config_focus_autoscroll_changed_cb, | ||
1796 | NULL); | ||
1797 | |||
1798 | |||
1799 | rd = elm_radio_add(bx2); | ||
1800 | elm_radio_state_value_set(rd, ELM_FOCUS_AUTOSCROLL_MODE_BRING_IN); | ||
1801 | elm_object_text_set(rd, "ELM_FOCUS_AUTOSCROLL_MODE_BRING_IN"); | ||
1802 | elm_object_tooltip_text_set(rd, "Bring in the focused region or item<br/>" | ||
1803 | "automatically which might invole the scrolling."); | ||
1804 | evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0); | ||
1805 | evas_object_size_hint_align_set(rd, 0.0, EVAS_HINT_FILL); | ||
1806 | elm_box_pack_end(bx2, rd); | ||
1807 | elm_radio_group_add(rd, rdg); | ||
1808 | evas_object_show(rd); | ||
1809 | evas_object_smart_callback_add(rd, "changed", | ||
1810 | _status_config_focus_autoscroll_changed_cb, | ||
1811 | NULL); | ||
1812 | |||
1813 | elm_radio_value_set(rdg, elm_config_focus_autoscroll_mode_get()); | ||
1814 | } | ||
1815 | |||
1816 | evas_object_data_set(win, "focus", bx); | ||
1817 | |||
1818 | elm_naviframe_item_simple_push(naviframe, bx); | ||
1819 | } | ||
1820 | |||
1821 | static void | ||
1822 | _status_config_etc(Evas_Object *win, | ||
1823 | Evas_Object *naviframe) | ||
1824 | { | ||
1825 | Evas_Object *bx, *ck, *sl, *fr, *bx2, *fr2, *bx3, *en; | ||
1826 | |||
1827 | bx = elm_box_add(win); | ||
1828 | evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0); | ||
1829 | evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.5); | ||
1830 | |||
1831 | // access | ||
1832 | CHECK_ADD("Enable Access Mode", "Set access mode", ac_change, NULL); | ||
1833 | elm_check_state_set(ck, elm_config_access_get()); | ||
1834 | |||
1835 | // selection | ||
1836 | CHECK_ADD("Enable clear selection when unfocus", "Set selection mode", | ||
1837 | sel_change, NULL); | ||
1838 | elm_check_state_set(ck, elm_config_selection_unfocused_clear_get()); | ||
1839 | |||
1840 | // clouseau | ||
1841 | CHECK_ADD("Enable clouseau", "Set clouseau mode", dbg_change, NULL); | ||
1842 | elm_check_state_set(ck, elm_config_clouseau_enabled_get()); | ||
1843 | |||
1844 | // atspi | ||
1845 | CHECK_ADD("Enable ATSPI support", "Set atspi mode", atspi_change, NULL); | ||
1846 | elm_check_state_set(ck, elm_config_atspi_mode_get()); | ||
1847 | |||
1848 | // transition duration in edje | ||
1849 | fr = elm_frame_add(bx); | ||
1850 | elm_object_text_set(fr, "Edje Transition Duration Factor"); | ||
1851 | evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0); | ||
1852 | evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, 0.5); | ||
1853 | elm_box_pack_end(bx, fr); | ||
1854 | evas_object_show(fr); | ||
1855 | |||
1856 | bx2 = elm_box_add(fr); | ||
1857 | elm_object_content_set(fr, bx2); | ||
1858 | evas_object_show(bx2); | ||
1859 | |||
1860 | sl = elm_slider_add(bx2); | ||
1861 | evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0); | ||
1862 | evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5); | ||
1863 | elm_slider_span_size_set(sl, 120); | ||
1864 | elm_slider_unit_format_set(sl, "%1.1f"); | ||
1865 | elm_slider_indicator_format_set(sl, "%1.1f"); | ||
1866 | elm_slider_min_max_set(sl, 0, 20.0); | ||
1867 | elm_slider_value_set(sl, elm_config_transition_duration_factor_get()); | ||
1868 | elm_box_pack_end(bx2, sl); | ||
1869 | evas_object_show(sl); | ||
1870 | evas_object_smart_callback_add(sl, "changed", sc_round, NULL); | ||
1871 | evas_object_smart_callback_add(sl, "delay,changed", transition_duration_change, NULL); | ||
1872 |