package upload
[framework/uifw/elementary.git] / src / bin / test_flipselector.c
1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
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, *bx, *fp, *bt, *bx2, *sl;
86    Elm_Object_Item *it, *edje_it = NULL;
87    static const char *lbl[] = {
88         "Elementary",
89         "Evas",
90         "Eina",
91         "Edje",
92         "Eet",
93         "Ecore",
94         "Efreet",
95         "Edbus"
96    };
97
98    win = elm_win_util_standard_add("flipselector", "Flip Selector");
99    elm_win_autodel_set(win, EINA_TRUE);
100
101    bx = elm_box_add(win);
102    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
103    elm_win_resize_object_add(win, bx);
104    evas_object_show(bx);
105
106    fp = elm_flipselector_add(win);
107    evas_object_size_hint_weight_set(fp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
108    evas_object_smart_callback_add(fp, "selected", _sel_cb, NULL);
109    evas_object_smart_callback_add(fp, "underflowed", _overflow_cb, NULL);
110    evas_object_smart_callback_add(fp, "overflowed", _underflow_cb, NULL);
111    for (i = 0; i < sizeof(lbl)/sizeof(char *); i++)
112      {
113         it = elm_flipselector_item_append(fp, lbl[i], NULL, NULL);
114         if (i == 3) edje_it = it;
115      }
116    elm_flipselector_item_selected_set(edje_it, EINA_TRUE);
117    elm_box_pack_end(bx, fp);
118    evas_object_show(fp);
119
120    bx2 = elm_box_add(win);
121    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
122    elm_box_horizontal_set(bx2, EINA_TRUE);
123    elm_box_pack_end(bx, bx2);
124    evas_object_show(bx2);
125
126    fp = elm_flipselector_add(win);
127    evas_object_smart_callback_add(fp, "underflowed", _overflow_cb, NULL);
128    evas_object_smart_callback_add(fp, "overflowed", _underflow_cb, NULL);
129    evas_object_size_hint_weight_set(fp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
130    for (i = 1990; i <= 2099; i++)
131      {
132         snprintf(buf, 8, "%u", i);
133         elm_flipselector_item_append(fp, buf, _sel_cb, NULL);
134      }
135
136    bt = elm_button_add(win);
137    elm_object_text_set(bt, "Flip Prev");
138    evas_object_smart_callback_add(bt, "clicked", flip_prev_cb, fp);
139
140    elm_box_pack_end(bx2, bt);
141    evas_object_show(bt);
142
143    elm_box_pack_end(bx2, fp);
144    evas_object_show(fp);
145
146    bt = elm_button_add(win);
147    elm_object_text_set(bt, "Flip Next");
148    evas_object_smart_callback_add(bt, "clicked", flip_next_cb, fp);
149    elm_box_pack_end(bx2, bt);
150    evas_object_show(bt);
151
152    sl = elm_slider_add(win);
153    elm_object_text_set(sl, "Flip Iterval:");
154    elm_slider_unit_format_set(sl, "%1.2f");
155    elm_slider_min_max_set(sl, 0, 3.0);
156    elm_slider_value_set(sl, 0.85);
157    evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, EVAS_HINT_FILL);
158    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
159    elm_box_pack_end(bx, sl);
160    evas_object_show(sl);
161    evas_object_smart_callback_add(sl, "changed", slider_change_cb, fp);
162
163    bt = elm_button_add(win);
164    elm_object_text_set(bt, "Select Last");
165    evas_object_smart_callback_add(bt, "clicked", _last_cb, fp);
166    elm_box_pack_end(bx, bt);
167    evas_object_show(bt);
168
169    bt = elm_button_add(win);
170    elm_object_text_set(bt, "Select 2097");
171    evas_object_smart_callback_add(bt, "clicked", _third_from_end_cb, fp);
172    elm_box_pack_end(bx, bt);
173    evas_object_show(bt);
174
175    bt = elm_button_add(win);
176    elm_object_text_set(bt, "Unselect year");
177    evas_object_smart_callback_add(bt, "clicked", _unsel_cb, fp);
178    elm_box_pack_end(bx, bt);
179    evas_object_show(bt);
180
181    evas_object_show(win);
182 }
183 #endif