[JungWooHyun] doing merge job ~
[framework/uifw/elementary.git] / src / examples / spinner_example.c
1 /**
2  * Simple Elementary's <b>spinner widget</b> example, illustrating its
3  * usage and API.
4  *
5  * See stdout/stderr for output. Compile with:
6  *
7  * @verbatim
8  * gcc -g `pkg-config --cflags --libs elementary` spinner_example.c -o spinner_example
9  * @endverbatim
10  */
11
12 #include <Elementary.h>
13 #ifdef HAVE_CONFIG_H
14 # include "elementary_config.h"
15 #else
16 # define __UNUSED__
17 #endif
18
19 static void
20 _on_done(void *data __UNUSED__,
21         Evas_Object *obj __UNUSED__,
22         void *event_info __UNUSED__)
23 {
24    elm_exit();
25 }
26
27 static void
28 _changed_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
29 {
30    printf("Value changed to %0.f\n", elm_spinner_value_get(obj));
31 }
32
33 static void
34 _delay_changed_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
35 {
36    printf("Value delay changed to %0.f\n", elm_spinner_value_get(obj));
37 }
38
39 int
40 elm_main(int argc __UNUSED__, char **argv __UNUSED__)
41 {
42    Evas_Object *win, *bg, *bx, *sp;
43
44    win = elm_win_add(NULL, "spinner", ELM_WIN_BASIC);
45    elm_win_title_set(win, "Spinner Example");
46    evas_object_smart_callback_add(win, "delete,request", _on_done, NULL);
47
48    bg = elm_bg_add(win);
49    elm_win_resize_object_add(win, bg);
50    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
51    evas_object_show(bg);
52
53    bx = elm_box_add(win);
54    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
55    elm_win_resize_object_add(win, bx);
56    evas_object_show(bx);
57
58    /* default */
59    sp = elm_spinner_add(win);
60    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
61    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
62    elm_box_pack_end(bx, sp);
63    evas_object_show(sp);
64
65    /* format */
66    sp = elm_spinner_add(win);
67    elm_spinner_label_format_set(sp, "Percentage %%%1.2f something");
68    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
69    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
70    elm_box_pack_end(bx, sp);
71    evas_object_show(sp);
72
73    /* min max, step and wrap */
74    sp = elm_spinner_add(win);
75    elm_spinner_label_format_set(sp, "%1.1f units");
76    elm_spinner_step_set(sp, 1.5);
77    elm_spinner_wrap_set(sp, EINA_TRUE);
78    elm_spinner_min_max_set(sp, -50.0, 250.0);
79    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
80    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
81    elm_box_pack_end(bx, sp);
82    evas_object_show(sp);
83
84    /* vertical */
85    sp = elm_spinner_add(win);
86    elm_object_style_set(sp, "vertical");
87    elm_spinner_interval_set(sp, 0.2);
88    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
89    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
90    elm_box_pack_end(bx, sp);
91    evas_object_show(sp);
92
93    /* disabled edition */
94    sp = elm_spinner_add(win);
95    elm_spinner_editable_set(sp, EINA_FALSE);
96    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
97    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
98    elm_box_pack_end(bx, sp);
99    evas_object_show(sp);
100
101    /* special values */
102    sp = elm_spinner_add(win);
103    elm_spinner_editable_set(sp, EINA_FALSE);
104    elm_spinner_min_max_set(sp, 1, 12);
105    elm_spinner_special_value_add(sp, 1, "January");
106    elm_spinner_special_value_add(sp, 2, "February");
107    elm_spinner_special_value_add(sp, 3, "March");
108    elm_spinner_special_value_add(sp, 4, "April");
109    elm_spinner_special_value_add(sp, 5, "May");
110    elm_spinner_special_value_add(sp, 6, "June");
111    elm_spinner_special_value_add(sp, 7, "July");
112    elm_spinner_special_value_add(sp, 8, "August");
113    elm_spinner_special_value_add(sp, 9, "September");
114    elm_spinner_special_value_add(sp, 10, "October");
115    elm_spinner_special_value_add(sp, 11, "November");
116    elm_spinner_special_value_add(sp, 12, "December");
117    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
118    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
119    elm_box_pack_end(bx, sp);
120    evas_object_show(sp);
121
122    sp = elm_spinner_add(win);
123    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
124    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
125    elm_box_pack_end(bx, sp);
126    evas_object_show(sp);
127    evas_object_smart_callback_add(sp, "changed", _changed_cb, NULL);
128    evas_object_smart_callback_add(sp, "delay,changed", _delay_changed_cb, NULL);
129
130    evas_object_show(win);
131
132    elm_run();
133    return 0;
134 }
135 ELM_MAIN()