Merge "[popup] opensource mergie (r69790)"
[framework/uifw/elementary.git] / src / bin / test_flipselector.c
1 #include <Elementary.h>
2 #ifdef HAVE_CONFIG_H
3 # include "elementary_config.h"
4 #endif
5 #ifndef ELM_LIB_QUICKLAUNCH
6
7 void
8 _sel_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
9 {
10    Elm_Object_Item *it;
11
12    it = event_info;
13    printf("label of selected item is: %s\n", elm_object_item_text_get(it));
14 }
15
16 void
17 _unsel_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
18 {
19    Elm_Object_Item *it;
20    Evas_Object *fp = data;
21    it = elm_flipselector_selected_item_get(fp);
22    elm_flipselector_item_selected_set(it, EINA_FALSE);
23 }
24
25 void
26 _last_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
27 {
28    Elm_Object_Item *it;
29    Evas_Object *fp = data;
30    it = elm_flipselector_last_item_get(fp);
31    elm_flipselector_item_selected_set(it, EINA_TRUE);
32 }
33
34 void
35 _third_from_end_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
36 {
37    Elm_Object_Item *it;
38    Evas_Object *fp = data;
39    it = elm_flipselector_last_item_get(fp);
40    it = elm_flipselector_item_prev_get(it);
41    it = elm_flipselector_item_prev_get(it);
42    elm_flipselector_item_selected_set(it, EINA_TRUE);
43 }
44
45 void
46 _underflow_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
47 {
48    printf("underflow!\n");
49 }
50
51 void
52 _overflow_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
53 {
54    printf("overflow!\n");
55 }
56
57 void
58 slider_change_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
59 {
60     Evas_Object *fl = (Evas_Object *)data;
61
62     double val = elm_slider_value_get(obj);
63     elm_flipselector_first_interval_set(fl, val);
64 }
65
66 void
67 flip_next_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
68 {
69    Evas_Object *fp = data;
70    elm_flipselector_flip_next(fp);
71 }
72
73 void
74 flip_prev_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
75 {
76    Evas_Object *fp = data;
77    elm_flipselector_flip_prev(fp);
78 }
79
80 void
81 test_flipselector(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
82 {
83    char buf[8];
84    unsigned int i;
85    Evas_Object *win, *bg, *bx, *fp, *bt, *bx2, *sl;
86    static const char *lbl[] = {
87      "Elementary",
88      "Evas",
89      "Eina",
90      "Edje",
91      "Eet",
92      "Ecore",
93      "Efreet",
94      "Edbus"
95    };
96
97    win = elm_win_add(NULL, "flipselector", ELM_WIN_BASIC);
98    elm_win_title_set(win, "Flip Selector");
99    elm_win_autodel_set(win, EINA_TRUE);
100
101    bg = elm_bg_add(win);
102    elm_win_resize_object_add(win, bg);
103    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
104    evas_object_show(bg);
105
106    bx = elm_box_add(win);
107    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
108    elm_win_resize_object_add(win, bx);
109    evas_object_show(bx);
110
111    fp = elm_flipselector_add(win);
112    evas_object_size_hint_weight_set(fp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
113    evas_object_smart_callback_add(fp, "selected", _sel_cb, NULL);
114    evas_object_smart_callback_add(fp, "underflowed", _overflow_cb, NULL);
115    evas_object_smart_callback_add(fp, "overflowed", _underflow_cb, NULL);
116    for (i = 0; i < sizeof(lbl)/sizeof(char *); i++)
117      elm_flipselector_item_append(fp, lbl[i], NULL, NULL);
118    elm_box_pack_end(bx, fp);
119    evas_object_show(fp);
120
121    bx2 = elm_box_add(win);
122    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
123    elm_box_horizontal_set(bx2, EINA_TRUE);
124    elm_box_pack_end(bx, bx2);
125    evas_object_show(bx2);
126
127    fp = elm_flipselector_add(win);
128    evas_object_smart_callback_add(fp, "underflowed", _overflow_cb, NULL);
129    evas_object_smart_callback_add(fp, "overflowed", _underflow_cb, NULL);
130    evas_object_size_hint_weight_set(fp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
131    for (i = 1990; i <= 2099; i++)
132      {
133         snprintf(buf, 8, "%d", i);
134         elm_flipselector_item_append(fp, buf, _sel_cb, NULL);
135      }
136
137    bt = elm_button_add(win);
138    elm_object_text_set(bt, "Flip Prev");
139    evas_object_smart_callback_add(bt, "clicked", flip_prev_cb, fp);
140
141    elm_box_pack_end(bx2, bt);
142    evas_object_show(bt);
143
144    elm_box_pack_end(bx2, fp);
145    evas_object_show(fp);
146
147    bt = elm_button_add(win);
148    elm_object_text_set(bt, "Flip Next");
149    evas_object_smart_callback_add(bt, "clicked", flip_next_cb, fp);
150    elm_box_pack_end(bx2, bt);
151    evas_object_show(bt);
152
153    sl = elm_slider_add(win);
154    elm_object_text_set(sl, "Flip Iterval:");
155    elm_slider_unit_format_set(sl, "%1.2f");
156    elm_slider_min_max_set(sl, 0, 3.0);
157    elm_slider_value_set(sl, 0.85);
158    evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, EVAS_HINT_FILL);
159    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
160    elm_box_pack_end(bx, sl);
161    evas_object_show(sl);
162    evas_object_smart_callback_add(sl, "changed", slider_change_cb, fp);
163
164    bt = elm_button_add(win);
165    elm_object_text_set(bt, "Select Last");
166    evas_object_smart_callback_add(bt, "clicked", _last_cb, fp);
167    elm_box_pack_end(bx, bt);
168    evas_object_show(bt);
169
170    bt = elm_button_add(win);
171    elm_object_text_set(bt, "Select 2097");
172    evas_object_smart_callback_add(bt, "clicked", _third_from_end_cb, fp);
173    elm_box_pack_end(bx, bt);
174    evas_object_show(bt);
175
176    bt = elm_button_add(win);
177    elm_object_text_set(bt, "Unselect year");
178    evas_object_smart_callback_add(bt, "clicked", _unsel_cb, fp);
179    elm_box_pack_end(bx, bt);
180    evas_object_show(bt);
181
182    evas_object_show(win);
183 }
184 #endif