tizen 2.4 release
[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 spinner_example.c -o spinner_example `pkg-config --cflags --libs elementary`
9  * @endverbatim
10  */
11
12 #include <Elementary.h>
13
14 static void
15 _changed_cb(void *data, Evas_Object *obj, void *event_info)
16 {
17    printf("Value changed to %0.f\n", elm_spinner_value_get(obj));
18 }
19
20 static void
21 _delay_changed_cb(void *data, Evas_Object *obj, void *event_info)
22 {
23    printf("Value delay changed to %0.f\n", elm_spinner_value_get(obj));
24 }
25
26 EAPI_MAIN int
27 elm_main(int argc, char **argv)
28 {
29    Evas_Object *win, *bx, *sp;
30
31    elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
32
33    win = elm_win_util_standard_add("spinner", "Spinner Example");
34    elm_win_autodel_set(win, EINA_TRUE);
35
36    bx = elm_box_add(win);
37    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
38    elm_win_resize_object_add(win, bx);
39    evas_object_show(bx);
40
41    /* default */
42    sp = elm_spinner_add(win);
43    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
44    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
45    elm_box_pack_end(bx, sp);
46    evas_object_show(sp);
47
48    /* format */
49    sp = elm_spinner_add(win);
50    elm_spinner_label_format_set(sp, "Percentage %%%1.2f something");
51    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
52    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
53    elm_box_pack_end(bx, sp);
54    evas_object_show(sp);
55
56    /* min max, step and wrap */
57    sp = elm_spinner_add(win);
58    elm_spinner_label_format_set(sp, "%1.1f units");
59    elm_spinner_step_set(sp, 1.5);
60    elm_spinner_wrap_set(sp, EINA_TRUE);
61    elm_spinner_min_max_set(sp, -50.0, 250.0);
62    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
63    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
64    elm_box_pack_end(bx, sp);
65    evas_object_show(sp);
66
67    /* vertical */
68    sp = elm_spinner_add(win);
69    elm_object_style_set(sp, "vertical");
70    elm_spinner_interval_set(sp, 0.2);
71    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
72    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
73    elm_box_pack_end(bx, sp);
74    evas_object_show(sp);
75
76    /* disabled edition */
77    sp = elm_spinner_add(win);
78    elm_spinner_editable_set(sp, EINA_FALSE);
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    /* special values */
85    sp = elm_spinner_add(win);
86    elm_spinner_editable_set(sp, EINA_FALSE);
87    elm_spinner_min_max_set(sp, 1, 12);
88    elm_spinner_special_value_add(sp, 1, "January");
89    elm_spinner_special_value_add(sp, 2, "February");
90    elm_spinner_special_value_add(sp, 3, "March");
91    elm_spinner_special_value_add(sp, 4, "April");
92    elm_spinner_special_value_add(sp, 5, "May");
93    elm_spinner_special_value_add(sp, 6, "June");
94    elm_spinner_special_value_add(sp, 7, "July");
95    elm_spinner_special_value_add(sp, 8, "August");
96    elm_spinner_special_value_add(sp, 9, "September");
97    elm_spinner_special_value_add(sp, 10, "October");
98    elm_spinner_special_value_add(sp, 11, "November");
99    elm_spinner_special_value_add(sp, 12, "December");
100    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
101    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
102    elm_box_pack_end(bx, sp);
103    evas_object_show(sp);
104
105    sp = elm_spinner_add(win);
106    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5);
107    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
108    elm_box_pack_end(bx, sp);
109    evas_object_show(sp);
110    elm_spinner_editable_set(sp, EINA_TRUE);
111    evas_object_smart_callback_add(sp, "changed", _changed_cb, NULL);
112    evas_object_smart_callback_add(sp, "delay,changed", _delay_changed_cb, NULL);
113
114    evas_object_show(win);
115
116    elm_run();
117
118    return 0;
119 }
120 ELM_MAIN()