2 # include "elementary_config.h"
4 #include <Elementary.h>
7 _delay_change_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
9 printf("delay,changed! slider value : %d\n", (int)round(elm_slider_value_get(obj)));
13 _change_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
15 double val = elm_slider_value_get(obj);
16 elm_slider_value_set(data, val);
20 _change_print_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
22 double val = elm_slider_value_get(obj);
23 printf("change to %3.3f\n", val);
27 _bt_0(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
29 elm_slider_value_set(data, 0.0);
33 _bt_1(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
35 elm_slider_value_set(data, 1.0);
39 _bt_p1(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
41 elm_slider_value_set(data, elm_slider_value_get(data) + 0.1);
45 _bt_m1(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
47 elm_slider_value_set(data, elm_slider_value_get(data) - 0.1);
51 _step_size_calculate(double min, double max)
57 if (steps) step = (1.0 / steps);
62 test_slider(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
64 Evas_Object *win, *fr, *bx, *sl, *ic, *sl1, *bx2, *bt;
68 win = elm_win_util_standard_add("slider", "Slider");
69 elm_win_autodel_set(win, EINA_TRUE);
71 fr = elm_frame_add(win);
72 evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
73 elm_win_resize_object_add(win, fr);
74 elm_object_style_set(fr, "pad_large");
78 elm_object_content_set(fr, bx);
81 // disabled horizontal slider
82 ic = elm_icon_add(bx);
83 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
84 elm_image_file_set(ic, buf, NULL);
85 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
88 sl = elm_slider_add(bx);
89 elm_object_text_set(sl, "Disabled");
90 elm_object_part_content_set(sl, "icon", ic);
91 elm_slider_unit_format_set(sl, "%1.1f units");
92 elm_slider_span_size_set(sl, 120);
93 elm_slider_min_max_set(sl, 50, 150);
94 elm_slider_value_set(sl, 80);
95 elm_object_disabled_set(sl, EINA_TRUE);
96 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
97 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
98 elm_box_pack_end(bx, sl);
101 sl = elm_slider_add(bx);
102 elm_slider_unit_format_set(sl, "%1.0f units");
103 elm_slider_indicator_format_set(sl, "%1.0f");
104 elm_slider_span_size_set(sl, 120);
105 elm_slider_min_max_set(sl, 0, 9);
106 elm_object_text_set(sl, "Manual step");
107 step = _step_size_calculate(0, 9);
108 elm_slider_step_set(sl, step);
109 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
110 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
111 elm_box_pack_end(bx, sl);
112 evas_object_show(sl);
114 sl = elm_slider_add(bx);
115 elm_slider_unit_format_set(sl, "%1.0f units");
116 elm_slider_indicator_format_set(sl, "%1.0f");
117 elm_slider_span_size_set(sl, 120);
118 elm_slider_min_max_set(sl, 0, 100);
119 elm_object_text_set(sl, "Show Indicator on Focus: ");
120 step = _step_size_calculate(0, 9);
121 elm_slider_step_set(sl, step);
122 elm_slider_indicator_show_on_focus_set(sl, EINA_TRUE);
123 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
124 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
125 elm_box_pack_end(bx, sl);
126 evas_object_show(sl);
128 // normal horizontal slider
129 ic = elm_icon_add(bx);
130 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
131 elm_image_file_set(ic, buf, NULL);
132 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
134 sl1 = sl = elm_slider_add(bx);
135 elm_object_text_set(sl, "Horizontal");
136 elm_object_part_content_set(sl, "icon", ic);
137 elm_slider_unit_format_set(sl, "%1.1f units");
138 elm_slider_indicator_format_set(sl, "%1.1f");
139 elm_slider_span_size_set(sl, 120);
140 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
141 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
142 elm_box_pack_end(bx, sl);
143 evas_object_show(ic);
144 evas_object_show(sl);
146 // horizontally inverted slider
147 ic = elm_icon_add(bx);
148 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
149 elm_image_file_set(ic, buf, NULL);
150 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
151 evas_object_show(ic);
153 sl = elm_slider_add(bx);
154 elm_object_text_set(sl, "Horizontal inverted");
155 elm_object_part_content_set(sl, "end", ic);
156 elm_slider_unit_format_set(sl, "%3.0f units");
157 elm_slider_span_size_set(sl, 80);
158 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
159 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
160 elm_slider_indicator_format_set(sl, "%3.0f");
161 elm_slider_min_max_set(sl, 50, 150);
162 elm_slider_value_set(sl, 80);
163 elm_slider_inverted_set(sl, EINA_TRUE);
164 evas_object_size_hint_align_set(sl, 0.5, 0.5);
165 evas_object_size_hint_weight_set(sl, 0.0, 0.0);
166 evas_object_smart_callback_add(sl, "delay,changed", _delay_change_cb, NULL);
167 elm_box_pack_end(bx, sl);
168 evas_object_show(sl);
170 // disabled horizontally inverted slider
171 ic = elm_icon_add(bx);
172 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
173 elm_image_file_set(ic, buf, NULL);
174 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
175 evas_object_show(ic);
177 sl = elm_slider_add(bx);
178 elm_object_text_set(sl, "Disabled inverted");
179 elm_object_part_content_set(sl, "end", ic);
180 elm_slider_span_size_set(sl, 80);
181 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
182 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
183 elm_slider_indicator_format_set(sl, "%3.0f");
184 elm_slider_min_max_set(sl, 50, 150);
185 elm_slider_value_set(sl, 80);
186 elm_slider_inverted_set(sl, EINA_TRUE);
187 elm_object_disabled_set(sl, EINA_TRUE);
188 evas_object_size_hint_align_set(sl, 0.5, 0.5);
189 evas_object_size_hint_weight_set(sl, 0.0, 0.0);
190 elm_box_pack_end(bx, sl);
191 evas_object_show(sl);
193 // scale doubled slider
194 sl = elm_slider_add(bx);
195 elm_slider_indicator_show_set(sl, EINA_FALSE);
196 elm_object_text_set(sl, "Scale doubled");
197 elm_slider_unit_format_set(sl, "%3.0f units");
198 elm_slider_span_size_set(sl, 40);
199 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
200 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0);
201 elm_slider_indicator_format_set(sl, "%3.0f");
202 elm_slider_min_max_set(sl, 50, 150);
203 elm_slider_value_set(sl, 80);
204 elm_slider_inverted_set(sl, EINA_TRUE);
205 elm_object_scale_set(sl, 2.0);
206 elm_box_pack_end(bx, sl);
207 evas_object_show(sl);
210 bx2 = elm_box_add(bx);
211 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
212 evas_object_size_hint_align_set(bx2, 0.5, EVAS_HINT_FILL);
213 elm_box_horizontal_set(bx2, EINA_TRUE);
214 elm_box_pack_end(bx, bx2);
215 evas_object_show(bx2);
217 // vertical inverted slider
218 ic = elm_icon_add(bx2);
219 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
220 elm_image_file_set(ic, buf, NULL);
221 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
222 evas_object_show(ic);
224 sl = elm_slider_add(bx2);
225 elm_object_part_content_set(sl, "icon", ic);
226 elm_object_text_set(sl, "Vertical inverted");
227 elm_slider_inverted_set(sl, EINA_TRUE);
228 elm_slider_unit_format_set(sl, "%1.1f units");
229 elm_slider_span_size_set(sl, 60);
230 evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL);
231 evas_object_size_hint_weight_set(sl, 0.0, EVAS_HINT_EXPAND);
232 elm_slider_indicator_format_set(sl, "%1.1f");
233 elm_slider_value_set(sl, 0.2);
234 elm_object_scale_set(sl, 1.0);
235 elm_slider_horizontal_set(sl, EINA_FALSE);
236 elm_box_pack_end(bx2, sl);
237 evas_object_show(sl);
239 evas_object_smart_callback_add(sl1, "changed", _change_cb, sl);
241 // disabled vertical slider
242 ic = elm_icon_add(bx2);
243 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
244 elm_image_file_set(ic, buf, NULL);
245 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
246 evas_object_show(ic);
248 sl = elm_slider_add(bx2);
249 elm_object_part_content_set(sl, "icon", ic);
250 elm_object_text_set(sl, "Disabled vertical");
251 elm_slider_inverted_set(sl, EINA_TRUE);
252 elm_slider_unit_format_set(sl, "%1.1f units");
253 elm_slider_span_size_set(sl, 100);
254 evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL);
255 evas_object_size_hint_weight_set(sl, 0.0, EVAS_HINT_EXPAND);
256 elm_slider_indicator_format_set(sl, "%1.1f");
257 elm_slider_value_set(sl, 0.2);
258 elm_object_scale_set(sl, 1.0);
259 elm_slider_horizontal_set(sl, EINA_FALSE);
260 elm_object_disabled_set(sl, EINA_TRUE);
261 elm_box_pack_end(bx2, sl);
262 evas_object_show(sl);
264 // normal vertical slider
265 sl = elm_slider_add(bx2);
266 elm_object_text_set(sl, "Vertical");
267 elm_slider_unit_format_set(sl, "%1.1f units");
268 elm_slider_span_size_set(sl, 60);
269 evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL);
270 evas_object_size_hint_weight_set(sl, 0.0, EVAS_HINT_EXPAND);
271 elm_slider_indicator_show_set(sl, EINA_FALSE);
272 elm_slider_value_set(sl, 0.2);
273 elm_object_scale_set(sl, 1.0);
274 elm_slider_horizontal_set(sl, EINA_FALSE);
275 evas_object_smart_callback_add(sl, "changed", _change_print_cb, sl);
276 elm_box_pack_end(bx2, sl);
277 evas_object_show(sl);
279 // box for bottom buttons
280 bx2 = elm_box_add(win);
281 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
282 elm_box_horizontal_set(bx2, EINA_TRUE);
283 elm_box_pack_end(bx, bx2);
284 evas_object_show(bx2);
286 bt = elm_button_add(win);
287 elm_object_text_set(bt, "0");
288 evas_object_smart_callback_add(bt, "clicked", _bt_0, sl);
289 evas_object_show(bt);
290 elm_box_pack_end(bx2, bt);
292 bt = elm_button_add(win);
293 elm_object_text_set(bt, "1");
294 evas_object_smart_callback_add(bt, "clicked", _bt_1, sl);
295 evas_object_show(bt);
296 elm_box_pack_end(bx2, bt);
298 bt = elm_button_add(win);
299 elm_object_text_set(bt, "+0.1");
300 evas_object_smart_callback_add(bt, "clicked", _bt_p1, sl);
301 evas_object_show(bt);
302 elm_box_pack_end(bx2, bt);
304 bt = elm_button_add(win);
305 elm_object_text_set(bt, "-0.1");
306 evas_object_smart_callback_add(bt, "clicked", _bt_m1, sl);
307 evas_object_show(bt);
308 elm_box_pack_end(bx2, bt);
310 evas_object_show(win);