2 * Simple Elementary's <b>slider widget</b> example, illustrating its
5 * See stdout/stderr for output. Compile with:
8 * gcc -g slider_example.c -o slider_example `pkg-config --cflags --libs elementary`
12 #include <Elementary.h>
23 _changed_cb(void *data, Evas_Object *obj, void *event_info)
25 double val = elm_slider_value_get(obj);
26 printf("Changed to %1.2f\n", val);
30 _delay_changed_cb(void *data, Evas_Object *obj, void *event_info)
32 double val = elm_slider_value_get(obj);
33 printf("Delay changed to %1.2f\n", val);
37 _indicator_format(double val)
39 char *indicator = malloc(sizeof(char) * 32);
40 snprintf(indicator, 32, "%1.2f u", val);
45 _indicator_free(char *str)
51 elm_main(int argc, char **argv)
53 Evas_Object *win, *bg, *bx, *sl, *ic;
55 win = elm_win_add(NULL, "slider", ELM_WIN_BASIC);
56 elm_win_title_set(win, "Slider Example");
57 evas_object_smart_callback_add(win, "delete,request", _on_done, NULL);
60 elm_win_resize_object_add(win, bg);
61 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
64 bx = elm_box_add(win);
65 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
66 elm_win_resize_object_add(win, bx);
70 sl = elm_slider_add(win);
71 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
72 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
73 elm_box_pack_end(bx, sl);
76 /* with icon, end and label */
77 sl = elm_slider_add(win);
78 elm_object_text_set(sl, "Counter");
80 ic = elm_icon_add(win);
81 elm_icon_standard_set(ic, "home");
82 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
83 elm_object_part_content_set(sl, "icon", ic);
85 ic = elm_icon_add(win);
86 elm_icon_standard_set(ic, "folder");
87 elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE);
88 elm_object_part_content_set(sl, "end", ic);
90 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
91 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
92 elm_box_pack_end(bx, sl);
95 /* value set and span size */
96 sl = elm_slider_add(win);
97 elm_slider_value_set(sl, 1);
98 elm_slider_span_size_set(sl, 200);
99 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
100 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
101 elm_box_pack_end(bx, sl);
102 evas_object_show(sl);
104 /* with unit label and min - max */
105 sl = elm_slider_add(win);
106 elm_slider_unit_format_set(sl, "%1.0f units");
107 elm_slider_min_max_set(sl, 0, 100);
108 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
109 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
110 elm_box_pack_end(bx, sl);
111 evas_object_show(sl);
113 /* with indicator label and inverted */
114 sl = elm_slider_add(win);
115 elm_slider_indicator_format_set(sl, "%1.2f");
116 elm_slider_inverted_set(sl, EINA_TRUE);
117 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
118 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
119 elm_box_pack_end(bx, sl);
120 evas_object_show(sl);
122 /* vertical with indicator format func */
123 sl = elm_slider_add(win);
124 elm_slider_horizontal_set(sl, EINA_FALSE);
125 elm_slider_indicator_format_function_set(sl, _indicator_format,
127 evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL);
128 evas_object_size_hint_weight_set(sl, 0, EVAS_HINT_EXPAND);
129 elm_box_pack_end(bx, sl);
130 evas_object_show(sl);
133 sl = elm_slider_add(win);
134 elm_slider_unit_format_set(sl, "%1.3f units");
135 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
136 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
137 elm_box_pack_end(bx, sl);
138 evas_object_show(sl);
139 evas_object_smart_callback_add(sl, "changed", _changed_cb, NULL);
140 evas_object_smart_callback_add(sl, "delay,changed", _delay_changed_cb, NULL);
142 evas_object_show(win);