2 * Simple Elementary's <b>slider widget</b> example, illustrating its
5 * See stdout/stderr for output. Compile with:
8 * gcc -g `pkg-config --cflags --libs elementary` slider_example.c -o slider_example
12 #include <Elementary.h>
14 # include "elementary_config.h"
20 _on_done(void *data __UNUSED__,
21 Evas_Object *obj __UNUSED__,
22 void *event_info __UNUSED__)
28 _changed_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
30 double val = elm_slider_value_get(obj);
31 printf("Changed to %1.2f\n", val);
35 _delay_changed_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
37 double val = elm_slider_value_get(obj);
38 printf("Delay changed to %1.2f\n", val);
42 _indicator_format(double val)
44 char *indicator = malloc(sizeof(char) * 32);
45 snprintf(indicator, 32, "%1.2f u", val);
50 _indicator_free(char *str)
56 elm_main(int argc __UNUSED__, char **argv __UNUSED__)
58 Evas_Object *win, *bg, *bx, *sl, *ic;
60 win = elm_win_add(NULL, "slider", ELM_WIN_BASIC);
61 elm_win_title_set(win, "Slider Example");
62 evas_object_smart_callback_add(win, "delete,request", _on_done, NULL);
65 elm_win_resize_object_add(win, bg);
66 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
69 bx = elm_box_add(win);
70 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
71 elm_win_resize_object_add(win, bx);
75 sl = elm_slider_add(win);
76 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
77 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
78 elm_box_pack_end(bx, sl);
81 /* with icon, end and label */
82 sl = elm_slider_add(win);
83 elm_object_text_set(sl, "Counter");
85 ic = elm_icon_add(win);
86 elm_icon_standard_set(ic, "home");
88 elm_icon_scale_set(ic, EINA_FALSE, EINA_FALSE);
90 elm_icon_resizable_set(ic, EINA_FALSE, EINA_FALSE);
91 >>>>>>> remotes/origin/upstream
92 elm_object_part_content_set(sl, "icon", ic);
94 ic = elm_icon_add(win);
95 elm_icon_standard_set(ic, "folder");
97 elm_icon_scale_set(ic, EINA_FALSE, EINA_FALSE);
99 elm_icon_resizable_set(ic, EINA_FALSE, EINA_FALSE);
100 >>>>>>> remotes/origin/upstream
101 elm_object_part_content_set(sl, "end", ic);
103 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
104 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
105 elm_box_pack_end(bx, sl);
106 evas_object_show(sl);
108 /* value set and span size */
109 sl = elm_slider_add(win);
110 elm_slider_value_set(sl, 1);
111 elm_slider_span_size_set(sl, 200);
112 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
113 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
114 elm_box_pack_end(bx, sl);
115 evas_object_show(sl);
117 /* with unit label and min - max */
118 sl = elm_slider_add(win);
119 elm_slider_unit_format_set(sl, "%1.0f units");
120 elm_slider_min_max_set(sl, 0, 100);
121 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
122 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
123 elm_box_pack_end(bx, sl);
124 evas_object_show(sl);
126 /* with indicator label and inverted */
127 sl = elm_slider_add(win);
128 elm_slider_indicator_format_set(sl, "%1.2f");
129 elm_slider_inverted_set(sl, EINA_TRUE);
130 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
131 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
132 elm_box_pack_end(bx, sl);
133 evas_object_show(sl);
135 /* vertical with indicator format func */
136 sl = elm_slider_add(win);
137 elm_slider_horizontal_set(sl, EINA_FALSE);
138 elm_slider_indicator_format_function_set(sl, _indicator_format,
140 evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL);
141 evas_object_size_hint_weight_set(sl, 0, EVAS_HINT_EXPAND);
142 elm_box_pack_end(bx, sl);
143 evas_object_show(sl);
146 sl = elm_slider_add(win);
147 elm_slider_unit_format_set(sl, "%1.3f units");
148 evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
149 evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
150 elm_box_pack_end(bx, sl);
151 evas_object_show(sl);
152 evas_object_smart_callback_add(sl, "changed", _changed_cb, NULL);
153 evas_object_smart_callback_add(sl, "delay,changed", _delay_changed_cb, NULL);
155 evas_object_show(win);