tizen 2.4 release
[framework/uifw/elementary.git] / src / bin / test_flip.c
1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
5
6 void
7 my_fl_1(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
8 {
9    Evas_Object *fl = data;
10    elm_flip_go(fl, ELM_FLIP_ROTATE_Y_CENTER_AXIS);
11 }
12
13 void
14 my_fl_2(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
15 {
16    Evas_Object *fl = data;
17    elm_flip_go(fl, ELM_FLIP_ROTATE_X_CENTER_AXIS);
18 }
19
20 void
21 my_fl_3(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
22 {
23    Evas_Object *fl = data;
24    elm_flip_go(fl, ELM_FLIP_ROTATE_XZ_CENTER_AXIS);
25 }
26
27 void
28 my_fl_4(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
29 {
30    Evas_Object *fl = data;
31    elm_flip_go(fl, ELM_FLIP_ROTATE_YZ_CENTER_AXIS);
32 }
33
34 void
35 my_fl_5(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
36 {
37    Evas_Object *fl = data;
38    elm_flip_go(fl, ELM_FLIP_CUBE_LEFT);
39 }
40
41 void
42 my_fl_6(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
43 {
44    Evas_Object *fl = data;
45    elm_flip_go(fl, ELM_FLIP_CUBE_RIGHT);
46 }
47
48 void
49 my_fl_7(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
50 {
51    Evas_Object *fl = data;
52    elm_flip_go(fl, ELM_FLIP_CUBE_UP);
53 }
54
55 void
56 my_fl_8(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
57 {
58    Evas_Object *fl = data;
59    elm_flip_go(fl, ELM_FLIP_CUBE_DOWN);
60 }
61
62 void
63 my_fl_front(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
64 {
65    Evas_Object *fl = data;
66    elm_flip_go_to(fl, EINA_TRUE, ELM_FLIP_ROTATE_X_CENTER_AXIS);
67 }
68
69 void
70 my_fl_back(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
71 {
72    Evas_Object *fl = data;
73    elm_flip_go_to(fl, EINA_FALSE, ELM_FLIP_ROTATE_X_CENTER_AXIS);
74 }
75
76 void
77 test_flip(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
78 {
79    Evas_Object *win, *bx, *bx2, *fl, *o, *bt, *ly;
80    char buf[PATH_MAX];
81
82    win = elm_win_util_standard_add("flip", "Flip");
83    elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
84    elm_win_autodel_set(win, EINA_TRUE);
85
86    bx = elm_box_add(win);
87    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
88    elm_win_resize_object_add(win, bx);
89    evas_object_show(bx);
90
91    fl = elm_flip_add(win);
92    evas_object_size_hint_align_set(fl, EVAS_HINT_FILL, EVAS_HINT_FILL);
93    evas_object_size_hint_weight_set(fl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
94    elm_box_pack_end(bx, fl);
95
96    o = elm_bg_add(win);
97    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
98    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
99    snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_01.jpg");
100    elm_bg_file_set(o, buf, NULL);
101    elm_object_part_content_set(fl, "front", o);
102    evas_object_show(o);
103
104    ly = elm_layout_add(win);
105    snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
106    elm_layout_file_set(ly, buf, "layout");
107    evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
108    evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
109    elm_object_part_content_set(fl, "back", ly);
110    evas_object_show(ly);
111
112    bt = elm_button_add(ly);
113    elm_object_text_set(bt, "Button 1");
114    elm_object_part_content_set(ly, "element1", bt);
115
116    bt = elm_button_add(ly);
117    elm_object_text_set(bt, "Button 2");
118    elm_object_part_content_set(ly, "element2", bt);
119
120    bt = elm_button_add(ly);
121    elm_object_text_set(bt, "Button 3");
122    elm_object_part_content_set(ly, "element3", bt);
123
124    evas_object_show(fl);
125
126    bx2 = elm_box_add(win);
127    elm_box_horizontal_set(bx2, EINA_TRUE);
128    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
129    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
130
131    bt = elm_button_add(win);
132    elm_object_text_set(bt, "1");
133    evas_object_smart_callback_add(bt, "clicked", my_fl_1, fl);
134    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
135    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
136    elm_box_pack_end(bx2, bt);
137    evas_object_show(bt);
138
139    bt = elm_button_add(win);
140    elm_object_text_set(bt, "2");
141    evas_object_smart_callback_add(bt, "clicked", my_fl_2, fl);
142    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
143    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
144    elm_box_pack_end(bx2, bt);
145    evas_object_show(bt);
146
147    bt = elm_button_add(win);
148    elm_object_text_set(bt, "3");
149    evas_object_smart_callback_add(bt, "clicked", my_fl_3, fl);
150    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
151    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
152    elm_box_pack_end(bx2, bt);
153    evas_object_show(bt);
154
155    bt = elm_button_add(win);
156    elm_object_text_set(bt, "4");
157    evas_object_smart_callback_add(bt, "clicked", my_fl_4, fl);
158    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
159    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
160    elm_box_pack_end(bx2, bt);
161    evas_object_show(bt);
162
163    elm_box_pack_end(bx, bx2);
164    evas_object_show(bx2);
165
166    bx2 = elm_box_add(win);
167    elm_box_horizontal_set(bx2, EINA_TRUE);
168    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
169    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
170
171    bt = elm_button_add(win);
172    elm_object_text_set(bt, "5");
173    evas_object_smart_callback_add(bt, "clicked", my_fl_5, fl);
174    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
175    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
176    elm_box_pack_end(bx2, bt);
177    evas_object_show(bt);
178
179    bt = elm_button_add(win);
180    elm_object_text_set(bt, "6");
181    evas_object_smart_callback_add(bt, "clicked", my_fl_6, fl);
182    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
183    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
184    elm_box_pack_end(bx2, bt);
185    evas_object_show(bt);
186
187    bt = elm_button_add(win);
188    elm_object_text_set(bt, "7");
189    evas_object_smart_callback_add(bt, "clicked", my_fl_7, fl);
190    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
191    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
192    elm_box_pack_end(bx2, bt);
193    evas_object_show(bt);
194
195    bt = elm_button_add(win);
196    elm_object_text_set(bt, "8");
197    evas_object_smart_callback_add(bt, "clicked", my_fl_8, fl);
198    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
199    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
200    elm_box_pack_end(bx2, bt);
201    evas_object_show(bt);
202
203    elm_box_pack_end(bx, bx2);
204    evas_object_show(bx2);
205
206    evas_object_resize(win, 320, 480);
207    evas_object_show(win);
208 }
209
210 void
211 test_flip2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
212 {
213    Evas_Object *win, *bg, *bx, *bx2, *fl, *o, *bt, *tb, *li, *en;
214    char buf[PATH_MAX];
215
216    win = elm_win_add(NULL, "flip2", ELM_WIN_BASIC);
217    elm_win_title_set(win, "Flip 2");
218    elm_win_autodel_set(win, EINA_TRUE);
219
220    bg = elm_bg_add(win);
221    snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_01.jpg");
222    elm_bg_file_set(bg, buf, NULL);
223    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
224    elm_win_resize_object_add(win, bg);
225    evas_object_show(bg);
226
227    bx = elm_box_add(win);
228    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
229    elm_win_resize_object_add(win, bx);
230    evas_object_show(bx);
231
232    fl = elm_flip_add(win);
233    evas_object_size_hint_align_set(fl, EVAS_HINT_FILL, EVAS_HINT_FILL);
234    evas_object_size_hint_weight_set(fl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
235    elm_box_pack_end(bx, fl);
236
237    o = elm_box_add(win);
238    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
239    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
240
241    tb = elm_toolbar_add(win);
242    elm_toolbar_homogeneous_set(tb, EINA_FALSE);
243    evas_object_size_hint_weight_set(tb, 0.0, 0.0);
244    evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, 0.0);
245
246    elm_toolbar_item_append(tb, "arrow_left", "Hello", NULL, NULL);
247    elm_toolbar_item_append(tb, "arrow_right", "Out", NULL, NULL);
248    elm_toolbar_item_append(tb, "home", "There", NULL, NULL);
249    elm_toolbar_item_append(tb, "refresh", "World", NULL, NULL);
250
251    elm_box_pack_end(o, tb);
252    evas_object_show(tb);
253
254    li = elm_list_add(win);
255    evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
256    evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
257
258    elm_list_item_append(li, "This is a list", NULL, NULL,  NULL, NULL);
259    elm_list_item_append(li, "Second item", NULL, NULL,  NULL, NULL);
260    elm_list_item_append(li, "3rd", NULL, NULL,  NULL, NULL);
261    elm_list_item_append(li, "Fourth", NULL, NULL,  NULL, NULL);
262    elm_list_item_append(li, "Number five is alive!", NULL, NULL,  NULL, NULL);
263    elm_list_item_append(li, "The quick brown fox jumps over the lazy dog", NULL, NULL,  NULL, NULL);
264    elm_list_item_append(li, "Booyah", NULL, NULL,  NULL, NULL);
265    elm_list_item_append(li, "And another item", NULL, NULL,  NULL, NULL);
266    elm_list_item_append(li, "More of them", NULL, NULL,  NULL, NULL);
267    elm_list_item_append(li, "Get with it", NULL, NULL,  NULL, NULL);
268
269    elm_list_go(li);
270
271    elm_box_pack_end(o, li);
272    evas_object_show(li);
273
274    elm_object_part_content_set(fl, "front", o);
275    evas_object_show(o);
276
277    en = elm_entry_add(win);
278    elm_entry_scrollable_set(en, EINA_TRUE);
279    elm_entry_line_wrap_set(en, ELM_WRAP_NONE);
280    snprintf(buf, sizeof(buf),
281             "This is an entry widget in this window that<br/>"
282             "uses markup <b>like this</> for styling and<br/>"
283             "formatting <em>like this</>, as well as<br/>"
284             "<a href=X><link>links in the text</></a>, so enter text<br/>"
285             "in here to edit it. By the way, links are<br/>"
286             "called <a href=anc-02>Anchors</a> so you will need<br/>"
287             "to refer to them this way.<br/>"
288             "<br/>"
289
290             "Also you can stick in items with (relsize + ascent): "
291             "<item relsize=16x16 vsize=ascent href=emoticon/evil-laugh></item>"
292             " (full) "
293             "<item relsize=16x16 vsize=full href=emoticon/guilty-smile></item>"
294             " (to the left)<br/>"
295
296             "Also (size + ascent): "
297             "<item size=16x16 vsize=ascent href=emoticon/haha></item>"
298             " (full) "
299             "<item size=16x16 vsize=full href=emoticon/happy-panting></item>"
300             " (before this)<br/>"
301
302             "And as well (absize + ascent): "
303             "<item absize=64x64 vsize=ascent href=emoticon/knowing-grin></item>"
304             " (full) "
305             "<item absize=64x64 vsize=full href=emoticon/not-impressed></item>"
306             " or even paths to image files on disk too like: "
307             "<item absize=96x128 vsize=full href=file://%s/images/sky_01.jpg></item>"
308             " ... end."
309             , elm_app_data_dir_get()
310            );
311    elm_object_text_set(en, buf);
312    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
313    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
314
315    elm_object_part_content_set(fl, "back", en);
316    evas_object_show(en);
317
318    evas_object_show(fl);
319
320    bx2 = elm_box_add(win);
321    elm_box_horizontal_set(bx2, EINA_TRUE);
322    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
323    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
324
325    bt = elm_button_add(win);
326    elm_object_text_set(bt, "1");
327    evas_object_smart_callback_add(bt, "clicked", my_fl_1, fl);
328    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
329    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
330    elm_box_pack_end(bx2, bt);
331    evas_object_show(bt);
332
333    bt = elm_button_add(win);
334    elm_object_text_set(bt, "2");
335    evas_object_smart_callback_add(bt, "clicked", my_fl_2, fl);
336    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
337    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
338    elm_box_pack_end(bx2, bt);
339    evas_object_show(bt);
340
341    bt = elm_button_add(win);
342    elm_object_text_set(bt, "3");
343    evas_object_smart_callback_add(bt, "clicked", my_fl_3, fl);
344    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
345    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
346    elm_box_pack_end(bx2, bt);
347    evas_object_show(bt);
348
349    bt = elm_button_add(win);
350    elm_object_text_set(bt, "4");
351    evas_object_smart_callback_add(bt, "clicked", my_fl_4, fl);
352    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
353    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
354    elm_box_pack_end(bx2, bt);
355    evas_object_show(bt);
356
357    bt = elm_button_add(win);
358    elm_object_text_set(bt, "5");
359    evas_object_smart_callback_add(bt, "clicked", my_fl_5, fl);
360    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
361    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
362    elm_box_pack_end(bx2, bt);
363    evas_object_show(bt);
364
365    bt = elm_button_add(win);
366    elm_object_text_set(bt, "6");
367    evas_object_smart_callback_add(bt, "clicked", my_fl_6, fl);
368    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
369    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
370    elm_box_pack_end(bx2, bt);
371    evas_object_show(bt);
372
373    elm_box_pack_end(bx, bx2);
374    evas_object_show(bx2);
375
376    evas_object_resize(win, 320, 480);
377    evas_object_show(win);
378 }
379
380 void
381 test_flip3(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
382 {
383    Evas_Object *win, *bx, *bx2, *fl, *fl_f, *fl_b, *o, *bt, *fr;
384    char buf[PATH_MAX];
385
386    win = elm_win_util_standard_add("flip3", "Flip Flip");
387    elm_win_autodel_set(win, EINA_TRUE);
388
389    bx = elm_box_add(win);
390    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
391    elm_win_resize_object_add(win, bx);
392    evas_object_show(bx);
393
394    fl = elm_flip_add(win);
395    evas_object_size_hint_align_set(fl, EVAS_HINT_FILL, EVAS_HINT_FILL);
396    evas_object_size_hint_weight_set(fl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
397    elm_box_pack_end(bx, fl);
398    evas_object_show(fl);
399
400    fr = elm_frame_add(win);
401    elm_object_text_set(fr, "Front");
402    evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
403    evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
404    elm_object_part_content_set(fl, "front", fr);
405    evas_object_show(fr);
406
407    fl_f = elm_flip_add(win);
408    evas_object_size_hint_align_set(fl_f, EVAS_HINT_FILL, EVAS_HINT_FILL);
409    evas_object_size_hint_weight_set(fl_f, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
410    elm_object_content_set(fr, fl_f);
411    evas_object_show(fl_f);
412
413    o = elm_bg_add(win);
414    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
415    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
416    snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_01.jpg");
417    elm_bg_file_set(o, buf, NULL);
418    elm_object_part_content_set(fl_f, "front", o);
419    evas_object_show(o);
420
421    o = elm_bg_add(win);
422    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
423    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
424    snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_02.jpg");
425    elm_bg_file_set(o, buf, NULL);
426    elm_object_part_content_set(fl_f, "back", o);
427    evas_object_show(o);
428
429    fr = elm_frame_add(win);
430    elm_object_text_set(fr, "Back");
431    evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
432    evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
433    elm_object_part_content_set(fl, "back", fr);
434    evas_object_show(fr);
435
436    fl_b = elm_flip_add(win);
437    evas_object_size_hint_align_set(fl_b, EVAS_HINT_FILL, EVAS_HINT_FILL);
438    evas_object_size_hint_weight_set(fl_b, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
439    elm_object_content_set(fr, fl_b);
440    evas_object_show(fl_b);
441
442    o = elm_bg_add(win);
443    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
444    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
445    snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_03.jpg");
446    elm_bg_file_set(o, buf, NULL);
447    elm_object_part_content_set(fl_b, "front", o);
448    evas_object_show(o);
449
450    o = elm_bg_add(win);
451    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
452    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
453    snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_04.jpg");
454    elm_bg_file_set(o, buf, NULL);
455    elm_object_part_content_set(fl_b, "back", o);
456    evas_object_show(o);
457
458    bx2 = elm_box_add(win);
459    elm_box_horizontal_set(bx2, EINA_TRUE);
460    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
461    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
462
463    bt = elm_button_add(win);
464    elm_object_text_set(bt, "Main Flip");
465    evas_object_smart_callback_add(bt, "clicked", my_fl_6, fl);
466    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
467    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
468    elm_box_pack_end(bx2, bt);
469    evas_object_show(bt);
470
471    bt = elm_button_add(win);
472    elm_object_text_set(bt, "Front Flip");
473    evas_object_smart_callback_add(bt, "clicked", my_fl_6, fl_f);
474    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
475    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
476    elm_box_pack_end(bx2, bt);
477    evas_object_show(bt);
478
479    bt = elm_button_add(win);
480    elm_object_text_set(bt, "Back Flip");
481    evas_object_smart_callback_add(bt, "clicked", my_fl_6, fl_b);
482    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
483    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
484    elm_box_pack_end(bx2, bt);
485    evas_object_show(bt);
486
487    elm_box_pack_end(bx, bx2);
488    evas_object_show(bx2);
489
490    evas_object_resize(win, 320, 480);
491    evas_object_show(win);
492 }
493
494 static void
495 my_fl_go(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
496 {
497    Evas_Object *win = data;
498
499    Evas_Object *rdg = evas_object_data_get(win, "rdg");
500    Evas_Object *rd = elm_radio_selected_object_get(rdg);
501    Evas_Object *fl = evas_object_data_get(win, "fl");
502
503    const char *text = elm_object_text_get(rd);
504    if (!text) return;
505
506    if (!strcmp(text, "Rotate"))
507      elm_flip_go(fl, ELM_FLIP_ROTATE_Y_CENTER_AXIS);
508    else if (!strcmp(text, "Cube"))
509      elm_flip_go(fl, ELM_FLIP_CUBE_RIGHT);
510    else if (!strcmp(text, "Page"))
511      elm_flip_go(fl, ELM_FLIP_PAGE_RIGHT);
512 }
513
514 static void
515 my_fl_ch(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
516 {
517    Evas_Object *win = data;
518    Evas_Object *fl = evas_object_data_get(win, "fl");
519    Evas_Object *rdg = evas_object_data_get(win, "rdg");
520    elm_flip_interaction_set(fl, elm_radio_value_get(rdg));
521 }
522
523 void
524 test_flip_interactive(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
525                       void *event_info EINA_UNUSED)
526 {
527    Evas_Object *win, *bx, *fl, *im, *li, *bt, *rd, *rdg;
528    char buf[PATH_MAX];
529
530    win = elm_win_util_standard_add("flip-interactive", "Flip Interactive");
531    elm_win_autodel_set(win, EINA_TRUE);
532
533    bx = elm_box_add(win);
534    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
535    elm_win_resize_object_add(win, bx);
536    evas_object_show(bx);
537
538    fl = elm_flip_add(win);
539    evas_object_size_hint_align_set(fl, EVAS_HINT_FILL, EVAS_HINT_FILL);
540    evas_object_size_hint_weight_set(fl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
541    elm_box_pack_end(bx, fl);
542    evas_object_data_set(win, "fl", fl);
543
544    elm_flip_interaction_set(fl, ELM_FLIP_INTERACTION_NONE);
545    elm_flip_interaction_direction_enabled_set(fl, ELM_FLIP_DIRECTION_UP, EINA_TRUE);
546    elm_flip_interaction_direction_enabled_set(fl, ELM_FLIP_DIRECTION_DOWN, EINA_TRUE);
547    elm_flip_interaction_direction_enabled_set(fl, ELM_FLIP_DIRECTION_LEFT, EINA_TRUE);
548    elm_flip_interaction_direction_enabled_set(fl, ELM_FLIP_DIRECTION_RIGHT, EINA_TRUE);
549    elm_flip_interaction_direction_hitsize_set(fl, ELM_FLIP_DIRECTION_UP, 0.25);
550    elm_flip_interaction_direction_hitsize_set(fl, ELM_FLIP_DIRECTION_DOWN, 0.25);
551    elm_flip_interaction_direction_hitsize_set(fl, ELM_FLIP_DIRECTION_LEFT, 0.25);
552    elm_flip_interaction_direction_hitsize_set(fl, ELM_FLIP_DIRECTION_RIGHT, 0.25);
553    evas_object_show(fl);
554
555    im = evas_object_image_filled_add(evas_object_evas_get(win));
556    evas_object_size_hint_weight_set(im, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
557    snprintf(buf, sizeof(buf), "%s/images/%s",
558             elm_app_data_dir_get(), "twofish.jpg");
559    evas_object_image_file_set(im, buf, NULL);
560    elm_object_part_content_set(fl, "front", im);
561    evas_object_show(im);
562
563 #if 0
564    im = evas_object_image_filled_add(evas_object_evas_get(win));
565    evas_object_size_hint_weight_set(im, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
566    snprintf(buf, sizeof(buf), "%s/images/%s",
567             elm_app_data_dir_get(), "sky_04.jpg");
568    evas_object_image_file_set(im, buf, NULL);
569    elm_object_part_content_set(fl, "back", im);
570    evas_object_show(im);
571 #else
572    li = elm_list_add(win);
573    evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
574    elm_list_item_append(li, "Item 0", NULL, NULL, NULL, NULL);
575    elm_list_item_append(li, "Item 1", NULL, NULL, NULL, NULL);
576    elm_list_item_append(li, "Item 2", NULL, NULL, NULL, NULL);
577    elm_list_item_append(li, "Item 3 (Which is very long just for testing purposes)", NULL, NULL, NULL, NULL);
578    elm_list_go(li);
579    elm_object_part_content_set(fl, "back", li);
580    evas_object_show(li);
581 #endif
582
583    rd = elm_radio_add(win);
584    evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, EVAS_HINT_FILL);
585    evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
586    elm_radio_state_value_set(rd, ELM_FLIP_INTERACTION_NONE);
587    elm_object_text_set(rd, "None");
588    elm_box_pack_end(bx, rd);
589    evas_object_show(rd);
590    evas_object_smart_callback_add(rd, "changed", my_fl_ch, win);
591    rdg = rd;
592    evas_object_data_set(win, "rdg", rdg);
593
594    rd = elm_radio_add(win);
595    evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, EVAS_HINT_FILL);
596    evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
597    elm_radio_state_value_set(rd, ELM_FLIP_INTERACTION_ROTATE);
598    elm_object_text_set(rd, "Rotate");
599    elm_radio_group_add(rd, rdg);
600    elm_box_pack_end(bx, rd);
601    evas_object_show(rd);
602    evas_object_smart_callback_add(rd, "changed", my_fl_ch, win);
603
604    rd = elm_radio_add(win);
605    evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, EVAS_HINT_FILL);
606    evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
607    elm_radio_state_value_set(rd, ELM_FLIP_INTERACTION_CUBE);
608    elm_object_text_set(rd, "Cube");
609    elm_radio_group_add(rd, rdg);
610    elm_box_pack_end(bx, rd);
611    evas_object_show(rd);
612    evas_object_smart_callback_add(rd, "changed", my_fl_ch, win);
613
614    rd = elm_radio_add(win);
615    evas_object_size_hint_align_set(rd, EVAS_HINT_FILL, EVAS_HINT_FILL);
616    evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0);
617    elm_radio_state_value_set(rd, ELM_FLIP_INTERACTION_PAGE);
618    elm_object_text_set(rd, "Page");
619    elm_radio_group_add(rd, rdg);
620    elm_box_pack_end(bx, rd);
621    evas_object_show(rd);
622    evas_object_smart_callback_add(rd, "changed", my_fl_ch, win);
623
624    bt = elm_button_add(win);
625    elm_object_text_set(bt, "Flip Go");
626    evas_object_smart_callback_add(bt, "clicked", my_fl_go, win);
627    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
628    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
629    elm_box_pack_end(bx, bt);
630    evas_object_show(bt);
631
632    evas_object_resize(win, 320, 480);
633    evas_object_show(win);
634 }
635
636 void
637 test_flip_to(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
638 {
639    Evas_Object *win, *bx, *bx2, *fl, *o, *bt, *ly;
640    char buf[PATH_MAX];
641
642    win = elm_win_util_standard_add("flip-to", "Flip To");
643    elm_win_autodel_set(win, EINA_TRUE);
644
645    bx = elm_box_add(win);
646    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
647    elm_win_resize_object_add(win, bx);
648    evas_object_show(bx);
649
650    fl = elm_flip_add(win);
651    evas_object_size_hint_align_set(fl, EVAS_HINT_FILL, EVAS_HINT_FILL);
652    evas_object_size_hint_weight_set(fl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
653    elm_box_pack_end(bx, fl);
654
655    o = elm_bg_add(win);
656    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
657    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
658    snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_01.jpg");
659    elm_bg_file_set(o, buf, NULL);
660    elm_object_part_content_set(fl, "front", o);
661    evas_object_show(o);
662
663    ly = elm_layout_add(win);
664    snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
665    elm_layout_file_set(ly, buf, "layout");
666    evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
667    evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
668    elm_object_part_content_set(fl, "back", ly);
669    evas_object_show(ly);
670
671    bt = elm_button_add(ly);
672    elm_object_text_set(bt, "Button 1");
673    elm_object_part_content_set(ly, "element1", bt);
674
675    bt = elm_button_add(ly);
676    elm_object_text_set(bt, "Button 2");
677    elm_object_part_content_set(ly, "element2", bt);
678
679    bt = elm_button_add(ly);
680    elm_object_text_set(bt, "Button 3");
681    elm_object_part_content_set(ly, "element3", bt);
682
683    evas_object_show(fl);
684
685    bx2 = elm_box_add(win);
686    elm_box_horizontal_set(bx2, EINA_TRUE);
687    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
688    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
689
690    bt = elm_button_add(win);
691    elm_object_text_set(bt, "Show Front");
692    evas_object_smart_callback_add(bt, "clicked", my_fl_front, fl);
693    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
694    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
695    elm_box_pack_end(bx2, bt);
696    evas_object_show(bt);
697
698    bt = elm_button_add(win);
699    elm_object_text_set(bt, "Show Back");
700    evas_object_smart_callback_add(bt, "clicked", my_fl_back, fl);
701    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
702    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
703    elm_box_pack_end(bx2, bt);
704    evas_object_show(bt);
705
706    elm_box_pack_end(bx, bx2);
707    evas_object_show(bx2);
708
709    evas_object_resize(win, 320, 480);
710    evas_object_show(win);
711 }