From: cnook <kimcinoo@gmail.com>
[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;
61         fl = (Evas_Object *)data;
62
63     double val = elm_slider_value_get(obj);
64     elm_flipselector_interval_set(fl, val);
65 }
66
67 void
68 flip_next_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
69 {
70    Evas_Object *fp = data;
71    elm_flipselector_flip_next(fp);
72 }
73
74 void
75 flip_prev_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
76 {
77    Evas_Object *fp = data;
78    elm_flipselector_flip_prev(fp);
79 }
80
81 void
82 test_flipselector(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
83 {
84    char buf[8];
85    unsigned int i;
86    Evas_Object *win, *bg, *bx, *fp, *bt, *bx2, *sl;
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_add(NULL, "flipselector", ELM_WIN_BASIC);
99    elm_win_title_set(win, "Flip Selector");
100    elm_win_autodel_set(win, EINA_TRUE);
101
102    bg = elm_bg_add(win);
103    elm_win_resize_object_add(win, bg);
104    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
105    evas_object_show(bg);
106
107    bx = elm_box_add(win);
108    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
109    elm_win_resize_object_add(win, bx);
110    evas_object_show(bx);
111
112    fp = elm_flipselector_add(win);
113    evas_object_size_hint_weight_set(fp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
114    evas_object_smart_callback_add(fp, "selected", _sel_cb, NULL);
115    evas_object_smart_callback_add(fp, "underflowed", _overflow_cb, NULL);
116    evas_object_smart_callback_add(fp, "overflowed", _underflow_cb, NULL);
117    for (i = 0; i < sizeof(lbl)/sizeof(char *); i++)
118      elm_flipselector_item_append(fp, lbl[i], NULL, NULL);
119    elm_box_pack_end(bx, fp);
120    evas_object_show(fp);
121
122    bx2 = elm_box_add(win);
123    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
124    elm_box_horizontal_set(bx2, EINA_TRUE);
125    elm_box_pack_end(bx, bx2);
126    evas_object_show(bx2);
127
128    fp = elm_flipselector_add(win);
129    evas_object_smart_callback_add(fp, "underflowed", _overflow_cb, NULL);
130    evas_object_smart_callback_add(fp, "overflowed", _underflow_cb, NULL);
131    evas_object_size_hint_weight_set(fp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
132    for (i = 1990; i <= 2099; i++)
133      {
134         snprintf(buf, 8, "%d", i);
135         elm_flipselector_item_append(fp, buf, _sel_cb, NULL);
136      }
137
138    bt = elm_button_add(win);
139    elm_object_text_set(bt, "Flip Prev");
140    evas_object_smart_callback_add(bt, "clicked", flip_prev_cb, fp);
141
142    elm_box_pack_end(bx2, bt);
143    evas_object_show(bt);
144
145    elm_box_pack_end(bx2, fp);
146    evas_object_show(fp);
147
148    bt = elm_button_add(win);
149    elm_object_text_set(bt, "Flip Next");
150    evas_object_smart_callback_add(bt, "clicked", flip_next_cb, fp);
151    elm_box_pack_end(bx2, bt);
152    evas_object_show(bt);
153
154    sl = elm_slider_add(win);
155    elm_object_text_set(sl, "Flip Iterval:");
156    elm_slider_unit_format_set(sl, "%1.2f");
157    elm_slider_min_max_set(sl, 0, 3.0);
158    elm_slider_value_set(sl, 0.85);
159    evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, EVAS_HINT_FILL);
160    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
161    elm_box_pack_end(bx, sl);
162    evas_object_show(sl);
163    evas_object_smart_callback_add(sl, "changed", slider_change_cb, fp);
164
165    bt = elm_button_add(win);
166    elm_object_text_set(bt, "Select Last");
167    evas_object_smart_callback_add(bt, "clicked", _last_cb, fp);
168    elm_box_pack_end(bx, bt);
169    evas_object_show(bt);
170
171    bt = elm_button_add(win);
172    elm_object_text_set(bt, "Select 2097");
173    evas_object_smart_callback_add(bt, "clicked", _third_from_end_cb, fp);
174    elm_box_pack_end(bx, bt);
175    evas_object_show(bt);
176
177    bt = elm_button_add(win);
178    elm_object_text_set(bt, "Unselect year");
179    evas_object_smart_callback_add(bt, "clicked", _unsel_cb, fp);
180    elm_box_pack_end(bx, bt);
181    evas_object_show(bt);
182
183    evas_object_show(win);
184 }
185 #endif