move elementary to trunk base. out of TMP/st.
[framework/uifw/elementary.git] / src / bin / test_box.c
1 #include <Elementary.h>
2 #ifdef HAVE_CONFIG_H
3 # include "elementary_config.h"
4 #endif
5 #ifndef ELM_LIB_QUICKLAUNCH
6 void
7 test_box_vert(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
8 {
9    Evas_Object *win, *bg, *bx, *ic;
10    char buf[PATH_MAX];
11
12    win = elm_win_add(NULL, "box-vert", ELM_WIN_BASIC);
13    elm_win_title_set(win, "Box Vert");
14    elm_win_autodel_set(win, 1);
15
16    bg = elm_bg_add(win);
17    elm_win_resize_object_add(win, bg);
18    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
19    evas_object_show(bg);
20
21    bx = elm_box_add(win);
22    elm_win_resize_object_add(win, bx);
23    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
24    evas_object_show(bx);
25
26    ic = elm_icon_add(win);
27    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
28    elm_icon_file_set(ic, buf, NULL);
29    elm_icon_scale_set(ic, 0, 0);
30    evas_object_size_hint_align_set(ic, 0.5, 0.5);
31    elm_box_pack_end(bx, ic);
32    evas_object_show(ic);
33
34    ic = elm_icon_add(win);
35    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
36    elm_icon_file_set(ic, buf, NULL);
37    elm_icon_scale_set(ic, 0, 0);
38    evas_object_size_hint_align_set(ic, 0.0, 0.5);
39    elm_box_pack_end(bx, ic);
40    evas_object_show(ic);
41
42    ic = elm_icon_add(win);
43    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
44    elm_icon_file_set(ic, buf, NULL);
45    elm_icon_scale_set(ic, 0, 0);
46    evas_object_size_hint_align_set(ic, EVAS_HINT_EXPAND, 0.5);
47    elm_box_pack_end(bx, ic);
48    evas_object_show(ic);
49
50    evas_object_show(win);
51 }
52
53 static void
54 _del_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
55 {
56    elm_box_unpack(data, obj);
57    evas_object_move(obj, 0, 0);
58    evas_object_color_set(obj, 128, 64, 0, 128);
59 //   evas_object_del(obj);
60 }
61
62 void
63 test_box_vert2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
64 {
65    Evas_Object *win, *bg, *bx, *bt;
66
67    win = elm_win_add(NULL, "box-vert2", ELM_WIN_BASIC);
68    elm_win_title_set(win, "Box Vert 2");
69    elm_win_autodel_set(win, 1);
70
71    bg = elm_bg_add(win);
72    elm_win_resize_object_add(win, bg);
73    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
74    evas_object_show(bg);
75
76    bx = elm_box_add(win);
77    elm_win_resize_object_add(win, bx);
78    evas_object_size_hint_weight_set(bx, 0.0, 0.0);
79    evas_object_show(bx);
80
81    bt = elm_button_add(win);
82    elm_button_label_set(bt, "Button 1");
83    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
84    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
85    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
86    elm_box_pack_end(bx, bt);
87    evas_object_show(bt);
88
89    bt = elm_button_add(win);
90    elm_button_label_set(bt, "Button 2");
91    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
92    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
93    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
94    elm_box_pack_end(bx, bt);
95    evas_object_show(bt);
96
97    bt = elm_button_add(win);
98    elm_button_label_set(bt, "Button 3");
99    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
100    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
101    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
102    elm_box_pack_end(bx, bt);
103    evas_object_show(bt);
104
105    bt = elm_button_add(win);
106    elm_button_label_set(bt, "Button 4");
107    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
108    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
109    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
110    elm_box_pack_end(bx, bt);
111    evas_object_show(bt);
112
113    bt = elm_button_add(win);
114    elm_button_label_set(bt, "Button 5");
115    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
116    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
117    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
118    elm_box_pack_end(bx, bt);
119    evas_object_show(bt);
120
121    evas_object_show(win);
122 }
123
124 void
125 test_box_horiz(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
126 {
127    Evas_Object *win, *bg, *bx, *ic;
128    char buf[PATH_MAX];
129
130    win = elm_win_add(NULL, "box-horiz", ELM_WIN_BASIC);
131    elm_win_title_set(win, "Box Horiz");
132    elm_win_autodel_set(win, 1);
133
134    bg = elm_bg_add(win);
135    elm_win_resize_object_add(win, bg);
136    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
137    evas_object_show(bg);
138
139    bx = elm_box_add(win);
140    elm_box_horizontal_set(bx, 1);
141    elm_win_resize_object_add(win, bx);
142    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
143    evas_object_show(bx);
144
145    ic = elm_icon_add(win);
146    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
147    elm_icon_file_set(ic, buf, NULL);
148    elm_icon_scale_set(ic, 0, 0);
149    evas_object_size_hint_align_set(ic, 0.5, 0.5);
150    elm_box_pack_end(bx, ic);
151    evas_object_show(ic);
152
153    ic = elm_icon_add(win);
154    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
155    elm_icon_file_set(ic, buf, NULL);
156    elm_icon_scale_set(ic, 0, 0);
157    evas_object_size_hint_align_set(ic, 0.5, 0.0);
158    elm_box_pack_end(bx, ic);
159    evas_object_show(ic);
160
161    ic = elm_icon_add(win);
162    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
163    elm_icon_file_set(ic, buf, NULL);
164    elm_icon_scale_set(ic, 0, 0);
165    evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_EXPAND);
166    elm_box_pack_end(bx, ic);
167    evas_object_show(ic);
168
169    evas_object_show(win);
170 }
171
172 typedef struct
173 {
174    Eina_List *transitions;
175    Evas_Object *box;
176    Evas_Object_Box_Layout last_layout;
177 } Transitions_Data;
178
179 static void
180 _test_box_transition_change(void *data)
181 {
182    Transitions_Data *tdata = data;
183    Elm_Box_Transition *layout_data;
184    Evas_Object_Box_Layout next_layout;
185
186    if (!data) return;
187    next_layout = eina_list_data_get(tdata->transitions);
188    layout_data = elm_box_transition_new(2.0, tdata->last_layout,
189          NULL, NULL, next_layout, NULL, NULL,
190          _test_box_transition_change, tdata);
191    elm_box_layout_set(tdata->box, elm_box_layout_transition, layout_data, elm_box_transition_free);
192    tdata->last_layout = next_layout;
193
194    tdata->transitions = eina_list_demote_list(tdata->transitions, tdata->transitions);
195 }
196
197 static void
198 _win_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
199 {
200    Transitions_Data *tdata = data;
201    elm_box_layout_set(tdata->box, evas_object_box_layout_horizontal, NULL, NULL);
202    free(data);
203 }
204
205 void
206 test_box_transition(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
207 {
208    Evas_Object *win, *bg, *bx, *bt;
209    Transitions_Data *tdata;
210
211    win = elm_win_add(NULL, "box-transition", ELM_WIN_BASIC);
212    elm_win_title_set(win, "Box Transition");
213    elm_win_autodel_set(win, 1);
214
215    bg = elm_bg_add(win);
216    elm_win_resize_object_add(win, bg);
217    evas_object_size_hint_weight_set(bg, 1.0, 1.0);
218    evas_object_show(bg);
219
220    bx = elm_box_add(win);
221    elm_win_resize_object_add(win, bx);
222    evas_object_size_hint_weight_set(bx, 1.0, 1.0);
223
224    evas_object_show(bx);
225
226    bt = elm_button_add(win);
227    elm_button_label_set(bt, "Button 1");
228    evas_object_size_hint_weight_set(bt, 1.0, 1.0);
229    evas_object_size_hint_align_set(bt, -1.0, -1.0);
230    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
231    elm_box_pack_end(bx, bt);
232    evas_object_resize(bt, 100, 100);
233    evas_object_show(bt);
234
235    bt = elm_button_add(win);
236    elm_button_label_set(bt, "Button 2");
237    evas_object_size_hint_weight_set(bt, 1.0, 1.0);
238    evas_object_size_hint_align_set(bt, -1.0, -1.0);
239    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
240    elm_box_pack_end(bx, bt);
241    evas_object_resize(bt, 100, 100);
242    evas_object_show(bt);
243
244    bt = elm_button_add(win);
245    elm_button_label_set(bt, "Button 3");
246    evas_object_size_hint_weight_set(bt, 1.0, 1.0);
247    evas_object_size_hint_align_set(bt, -1.0, -1.0);
248    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
249    elm_box_pack_end(bx, bt);
250    evas_object_resize(bt, 100, 100);
251    evas_object_show(bt);
252
253    tdata = calloc(1, sizeof(Transitions_Data));
254    tdata->box = bx;
255    tdata->last_layout = evas_object_box_layout_horizontal;
256    tdata->transitions = eina_list_append(tdata->transitions,
257          evas_object_box_layout_vertical);
258    tdata->transitions = eina_list_append(tdata->transitions,
259          evas_object_box_layout_horizontal);
260    tdata->transitions = eina_list_append(tdata->transitions,
261          evas_object_box_layout_stack);
262    tdata->transitions = eina_list_append(tdata->transitions,
263          evas_object_box_layout_homogeneous_vertical);
264    tdata->transitions = eina_list_append(tdata->transitions,
265          evas_object_box_layout_homogeneous_horizontal);
266    tdata->transitions = eina_list_append(tdata->transitions,
267          evas_object_box_layout_flow_vertical);
268    tdata->transitions = eina_list_append(tdata->transitions,
269          evas_object_box_layout_flow_horizontal);
270    tdata->transitions = eina_list_append(tdata->transitions,
271          evas_object_box_layout_stack);
272
273    evas_object_resize(win, 300, 300);
274    evas_object_resize(bx, 300, 300);
275    evas_object_smart_callback_add(win, "delete,request", _win_del, tdata);
276    evas_object_show(win);
277    elm_box_layout_set(bx, evas_object_box_layout_horizontal, NULL, NULL);
278    _test_box_transition_change(tdata);
279 }
280 #endif