Merge branch 'master' into svn_merge
[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    elm_box_padding_set(bx, 10, 10);
79    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
80    evas_object_show(bx);
81
82    bt = elm_button_add(win);
83    elm_object_text_set(bt, "Button 1");
84    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
85    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
86    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
87    elm_box_pack_end(bx, bt);
88    evas_object_show(bt);
89
90    bt = elm_button_add(win);
91    elm_object_text_set(bt, "Button 2");
92    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
93    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
94    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
95    elm_box_pack_end(bx, bt);
96    evas_object_show(bt);
97
98    bt = elm_button_add(win);
99    elm_object_text_set(bt, "Button 3");
100    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
101    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
102    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
103    elm_box_pack_end(bx, bt);
104    evas_object_show(bt);
105
106    bt = elm_button_add(win);
107    elm_object_text_set(bt, "Button 4");
108    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
109    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
110    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
111    elm_box_pack_end(bx, bt);
112    evas_object_show(bt);
113
114    bt = elm_button_add(win);
115    elm_object_text_set(bt, "Button 5");
116    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
117    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
118    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
119    elm_box_pack_end(bx, bt);
120    evas_object_show(bt);
121
122    evas_object_show(win);
123 }
124
125 void
126 test_box_horiz(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
127 {
128    Evas_Object *win, *bg, *bx, *ic;
129    char buf[PATH_MAX];
130
131    win = elm_win_add(NULL, "box-horiz", ELM_WIN_BASIC);
132    elm_win_title_set(win, "Box Horiz");
133    elm_win_autodel_set(win, 1);
134
135    bg = elm_bg_add(win);
136    elm_win_resize_object_add(win, bg);
137    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
138    evas_object_show(bg);
139
140    bx = elm_box_add(win);
141    elm_box_horizontal_set(bx, EINA_TRUE);
142    elm_win_resize_object_add(win, bx);
143    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
144    evas_object_show(bx);
145
146    ic = elm_icon_add(win);
147    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
148    elm_icon_file_set(ic, buf, NULL);
149    elm_icon_scale_set(ic, 0, 0);
150    evas_object_size_hint_align_set(ic, 0.5, 0.5);
151    elm_box_pack_end(bx, ic);
152    evas_object_show(ic);
153
154    ic = elm_icon_add(win);
155    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
156    elm_icon_file_set(ic, buf, NULL);
157    elm_icon_scale_set(ic, 0, 0);
158    evas_object_size_hint_align_set(ic, 0.5, 0.0);
159    elm_box_pack_end(bx, ic);
160    evas_object_show(ic);
161
162    ic = elm_icon_add(win);
163    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
164    elm_icon_file_set(ic, buf, NULL);
165    elm_icon_scale_set(ic, 0, 0);
166    evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_EXPAND);
167    elm_box_pack_end(bx, ic);
168    evas_object_show(ic);
169
170    evas_object_show(win);
171 }
172
173 typedef struct
174 {
175    Eina_List *transitions;
176    Evas_Object *box;
177    Evas_Object_Box_Layout last_layout;
178 } Transitions_Data;
179
180 static void
181 _test_box_transition_change(void *data)
182 {
183    Transitions_Data *tdata = data;
184    Elm_Box_Transition *layout_data;
185    Evas_Object_Box_Layout next_layout;
186
187    if (!data) return;
188    next_layout = eina_list_data_get(tdata->transitions);
189    layout_data = elm_box_transition_new(2.0, tdata->last_layout,
190                                         NULL, NULL, next_layout, NULL, NULL,
191                                         _test_box_transition_change, tdata);
192    elm_box_layout_set(tdata->box, elm_box_layout_transition, layout_data, elm_box_transition_free);
193    tdata->last_layout = next_layout;
194
195    tdata->transitions = eina_list_demote_list(tdata->transitions, tdata->transitions);
196 }
197
198 static void
199 _win_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
200 {
201    Transitions_Data *tdata = data;
202    if (!data) return;
203    free(tdata);
204 }
205
206 void
207 test_box_transition(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
208 {
209    Evas_Object *win, *bg, *bx, *bt;
210    Transitions_Data *tdata;
211
212    win = elm_win_add(NULL, "box-transition", ELM_WIN_BASIC);
213    elm_win_title_set(win, "Box Transition");
214    elm_win_autodel_set(win, 1);
215
216    bg = elm_bg_add(win);
217    elm_win_resize_object_add(win, bg);
218    evas_object_size_hint_weight_set(bg, 1.0, 1.0);
219    evas_object_show(bg);
220
221    bx = elm_box_add(win);
222    elm_win_resize_object_add(win, bx);
223    evas_object_size_hint_weight_set(bx, 1.0, 1.0);
224
225    evas_object_show(bx);
226
227    bt = elm_button_add(win);
228    elm_object_text_set(bt, "Button 1");
229    evas_object_size_hint_weight_set(bt, 1.0, 1.0);
230    evas_object_size_hint_align_set(bt, -1.0, -1.0);
231    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
232    elm_box_pack_end(bx, bt);
233    evas_object_resize(bt, 100, 100);
234    evas_object_show(bt);
235
236    bt = elm_button_add(win);
237    elm_object_text_set(bt, "Button 2");
238    evas_object_size_hint_weight_set(bt, 1.0, 1.0);
239    evas_object_size_hint_align_set(bt, -1.0, -1.0);
240    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
241    elm_box_pack_end(bx, bt);
242    evas_object_resize(bt, 100, 100);
243    evas_object_show(bt);
244
245    bt = elm_button_add(win);
246    elm_object_text_set(bt, "Button 3");
247    evas_object_size_hint_weight_set(bt, 1.0, 1.0);
248    evas_object_size_hint_align_set(bt, -1.0, -1.0);
249    evas_object_smart_callback_add(bt, "clicked", _del_cb, bx);
250    elm_box_pack_end(bx, bt);
251    evas_object_resize(bt, 100, 100);
252    evas_object_show(bt);
253
254    tdata = calloc(1, sizeof(Transitions_Data));
255    tdata->box = bx;
256    tdata->last_layout = evas_object_box_layout_horizontal;
257    tdata->transitions = eina_list_append(tdata->transitions,
258          evas_object_box_layout_vertical);
259    tdata->transitions = eina_list_append(tdata->transitions,
260          evas_object_box_layout_horizontal);
261    tdata->transitions = eina_list_append(tdata->transitions,
262          evas_object_box_layout_stack);
263    tdata->transitions = eina_list_append(tdata->transitions,
264          evas_object_box_layout_homogeneous_vertical);
265    tdata->transitions = eina_list_append(tdata->transitions,
266          evas_object_box_layout_homogeneous_horizontal);
267    tdata->transitions = eina_list_append(tdata->transitions,
268          evas_object_box_layout_flow_vertical);
269    tdata->transitions = eina_list_append(tdata->transitions,
270          evas_object_box_layout_flow_horizontal);
271    tdata->transitions = eina_list_append(tdata->transitions,
272          evas_object_box_layout_stack);
273
274    evas_object_resize(win, 300, 300);
275    evas_object_resize(bx, 300, 300);
276    evas_object_smart_callback_add(win, "delete,request", _win_del, tdata);
277    evas_object_show(win);
278    elm_box_layout_set(bx, evas_object_box_layout_horizontal, NULL, NULL);
279    _test_box_transition_change(tdata);
280 }
281 #endif