tizen 2.4 release
[framework/uifw/elementary.git] / src / bin / test_slider.c
1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
5
6 void
7 _delay_change_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
8 {
9     printf("delay,changed! slider value : %d\n", (int)round(elm_slider_value_get(obj)));
10 }
11
12 void
13 _change_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
14 {
15     double val = elm_slider_value_get(obj);
16     elm_slider_value_set(data, val);
17 }
18
19 void
20 _change_print_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
21 {
22    double val = elm_slider_value_get(obj);
23    printf("change to %3.3f\n", val);
24 }
25
26 void
27 _bt_0(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
28 {
29    elm_slider_value_set(data, 0.0);
30 }
31
32 void
33 _bt_1(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
34 {
35    elm_slider_value_set(data, 1.0);
36 }
37
38 void
39 _bt_p1(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
40 {
41    elm_slider_value_set(data, elm_slider_value_get(data) + 0.1);
42 }
43
44 void
45 _bt_m1(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
46 {
47    elm_slider_value_set(data, elm_slider_value_get(data) - 0.1);
48 }
49
50 static double
51 _step_size_calculate(double min, double max)
52 {
53    double step = 0.0;
54    int steps = 0;
55
56    steps = max - min;
57    if (steps) step = (1.0 / steps);
58    return step;
59 }
60
61 void
62 test_slider(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
63 {
64    Evas_Object *win, *fr, *bx, *sl, *ic, *sl1, *bx2, *bt;
65    double step;
66    char buf[PATH_MAX];
67
68    win = elm_win_util_standard_add("slider", "Slider");
69    elm_win_autodel_set(win, EINA_TRUE);
70
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");
75    evas_object_show(fr);
76
77    bx = elm_box_add(fr);
78    elm_object_content_set(fr, bx);
79    evas_object_show(bx);
80
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);
86    evas_object_show(ic);
87
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);
99    evas_object_show(sl);
100
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);
113
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);
127
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);
133
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);
145
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);
152
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);
169
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);
176
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);
192
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);
208
209    // horizontal box
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);
216
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);
223
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);
238
239    evas_object_smart_callback_add(sl1, "changed", _change_cb, sl);
240
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);
247
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);
263
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);
278
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);
285
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);
291
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);
297
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);
303
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);
309
310    evas_object_show(win);
311 }