elementary/transit - don't be over the alpha value.
[framework/uifw/elementary.git] / src / bin / test_transit.c
1 #include <Elementary.h>
2 #ifdef HAVE_CONFIG_H
3 # include "elementary_config.h"
4 #endif
5 #ifndef ELM_LIB_QUICKLAUNCH
6
7 typedef struct _Custom_Effect Custom_Effect;
8
9 struct _Custom_Effect
10 {
11    struct _size
12      {
13         Evas_Coord w, h;
14      } from, to;
15 };
16
17 static void
18 _custom_op(Elm_Transit_Effect *effect, Elm_Transit *transit, double progress)
19 {
20    if (!effect) return;
21    Evas_Coord w, h;
22    Evas_Object *obj;
23    const Eina_List *elist;
24
25    Custom_Effect *custom_effect = effect;
26    const Eina_List *objs = elm_transit_objects_get(transit);
27
28    if (progress < 0.5)
29      {
30         h = custom_effect->from.h + (custom_effect->to.h * progress * 2);
31         w = custom_effect->from.w;
32      }
33    else
34      {
35         h = custom_effect->from.h + custom_effect->to.h;
36         w = custom_effect->from.w + \
37             (custom_effect->to.w * (progress - 0.5) * 2);
38      }
39
40    EINA_LIST_FOREACH(objs, elist, obj)
41       evas_object_resize(obj, w, h);
42 }
43
44 static Elm_Transit_Effect *
45 _custom_context_new(Evas_Coord from_w, Evas_Coord from_h, Evas_Coord to_w, Evas_Coord to_h)
46 {
47    Custom_Effect *custom_effect;
48
49    custom_effect = calloc(1, sizeof(Custom_Effect));
50    if (!custom_effect) return NULL;
51
52    custom_effect->from.w = from_w;
53    custom_effect->from.h = from_h;
54    custom_effect->to.w = to_w - from_w;
55    custom_effect->to.h = to_h - from_h;
56
57    return custom_effect;
58 }
59
60 static void
61 _custom_context_free(Elm_Transit_Effect *effect, Elm_Transit *transit __UNUSED__)
62 {
63    Custom_Effect *custom_effect = effect;
64    free(custom_effect);
65 }
66
67 static void
68 _transit_rotation_translation_color(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
69 {
70    Elm_Transit *trans;
71
72    trans = elm_transit_add();
73    elm_transit_object_add(trans, obj);
74    elm_transit_auto_reverse_set(trans, EINA_TRUE);
75    elm_transit_repeat_times_set(trans, 2);
76
77    /* Translation Effect */
78    elm_transit_effect_translation_add(trans, -70.0, -150.0, 70.0, 150.0);
79
80    /* Color Effect */
81    elm_transit_effect_color_add(trans, 100, 255, 100, 255, 50, 30, 50, 50);
82
83    /* Rotation Effect */
84    elm_transit_effect_rotation_add(trans, 0.0, 135.0);
85
86    elm_transit_duration_set(trans, 5.0);
87    elm_transit_go(trans);
88 }
89
90 static void
91 _transit_wipe(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
92 {
93    Elm_Transit *trans;
94
95    trans = elm_transit_add();
96    elm_transit_object_add(trans, obj);
97    elm_transit_auto_reverse_set(trans, EINA_TRUE);
98
99    elm_transit_effect_wipe_add(trans,
100                                ELM_TRANSIT_EFFECT_WIPE_TYPE_HIDE,
101                                ELM_TRANSIT_EFFECT_WIPE_DIR_RIGHT);
102
103    elm_transit_duration_set(trans, 5.0);
104    elm_transit_go(trans);
105 }
106
107 static void
108 _transit_del_cb(void *data, Elm_Transit *transit __UNUSED__)
109 {
110    evas_object_freeze_events_set(data, EINA_FALSE);
111 }
112
113 static void
114 _transit_image_animation(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
115 {
116    Eina_List *images = NULL;
117    char buf[PATH_MAX];
118    Elm_Transit *trans;
119    Evas_Object *ic = data;
120
121    snprintf(buf, sizeof(buf), "%s/images/icon_19.png", elm_app_data_dir_get());
122    images = eina_list_append(images, eina_stringshare_add(buf));
123
124    snprintf(buf, sizeof(buf), "%s/images/icon_00.png", elm_app_data_dir_get());
125    images = eina_list_append(images, eina_stringshare_add(buf));
126
127    snprintf(buf, sizeof(buf), "%s/images/icon_11.png", elm_app_data_dir_get());
128    images = eina_list_append(images, eina_stringshare_add(buf));
129
130    snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
131    images = eina_list_append(images, eina_stringshare_add(buf));
132
133    trans = elm_transit_add();
134    elm_transit_del_cb_set(trans, _transit_del_cb, obj);
135    elm_transit_object_add(trans, ic);
136    elm_transit_effect_image_animation_add(trans, images);
137    elm_transit_duration_set(trans, 5.0);
138    elm_transit_go(trans);
139
140    evas_object_freeze_events_set(obj, EINA_TRUE);
141 }
142
143 static void
144 _transit_resizing(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
145 {
146    Elm_Transit *trans;
147
148    trans = elm_transit_add();
149    elm_transit_object_add(trans, obj);
150
151    elm_transit_effect_resizing_add(trans, 100, 50, 300, 150);
152
153    elm_transit_duration_set(trans, 5.0);
154    elm_transit_go(trans);
155 }
156
157 static void
158 _transit_flip(void *data, Evas_Object *obj, void *event_info __UNUSED__)
159 {
160    Elm_Transit *trans;
161    Evas_Object *obj2 = data;
162
163    trans = elm_transit_add();
164    elm_transit_object_add(trans, obj);
165    elm_transit_object_add(trans, obj2);
166
167    elm_transit_effect_flip_add(trans, ELM_TRANSIT_EFFECT_FLIP_AXIS_X, EINA_TRUE);
168
169    elm_transit_duration_set(trans, 5.0);
170    elm_transit_go(trans);
171 }
172
173 static void
174 _transit_zoom(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
175 {
176    Elm_Transit *trans;
177
178    trans = elm_transit_add();
179    elm_transit_object_add(trans, obj);
180
181    elm_transit_effect_zoom_add(trans, 1.0, 3.0);
182
183    elm_transit_duration_set(trans, 5.0);
184    elm_transit_go(trans);
185 }
186
187 static void
188 _transit_blend(void *data, Evas_Object *obj, void *event_info __UNUSED__)
189 {
190    Elm_Transit *trans;
191    Evas_Object *obj2 = data;
192
193    trans = elm_transit_add();
194    elm_transit_object_add(trans, obj);
195    elm_transit_object_add(trans, obj2);
196
197    elm_transit_effect_blend_add(trans);
198
199    elm_transit_duration_set(trans, 5.0);
200    elm_transit_go(trans);
201 }
202
203 static void
204 _transit_fade(void *data, Evas_Object *obj, void *event_info __UNUSED__)
205 {
206    Elm_Transit *trans;
207    Evas_Object *obj2 = data;
208
209    trans = elm_transit_add();
210    elm_transit_object_add(trans, obj);
211    elm_transit_object_add(trans, obj2);
212
213    elm_transit_effect_fade_add(trans);
214
215    elm_transit_duration_set(trans, 5.0);
216    elm_transit_go(trans);
217 }
218
219 static void
220 _transit_resizable_flip(void *data, Evas_Object *obj, void *event_info __UNUSED__)
221 {
222    Elm_Transit *trans;
223    Evas_Object *obj2 = data;
224
225    trans = elm_transit_add();
226    elm_transit_object_add(trans, obj);
227    elm_transit_object_add(trans, obj2);
228
229    elm_transit_effect_resizable_flip_add(trans, ELM_TRANSIT_EFFECT_FLIP_AXIS_Y, EINA_TRUE);
230
231    elm_transit_duration_set(trans, 5.0);
232    elm_transit_go(trans);
233 }
234
235 /* Translation, Rotation, Color, Wipe, ImagemAnimation Effect */
236 void
237 test_transit(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
238 {
239    Evas_Object *win, *bg, *bx, *bt, *ic;
240    char buf[PATH_MAX];
241
242    win = elm_win_add(NULL, "transit", ELM_WIN_BASIC);
243    elm_win_title_set(win, "Transit");
244    elm_win_autodel_set(win, EINA_TRUE);
245
246    bg = elm_bg_add(win);
247    elm_win_resize_object_add(win, bg);
248    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
249    evas_object_show(bg);
250
251    bx = elm_box_add(win);
252    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
253    elm_win_resize_object_add(win, bx);
254    evas_object_size_hint_min_set(bx, 318, 318);
255    evas_object_show(bx);
256
257    ic = elm_icon_add(win);
258    snprintf(buf, sizeof(buf), "%s/images/icon_11.png", elm_app_data_dir_get());
259    elm_icon_file_set(ic, buf, NULL);
260    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
261
262    bt = elm_button_add(win);
263    elm_object_text_set(bt, "ImageAnimation Effect");
264    elm_object_part_content_set(bt, "icon", ic);
265    elm_box_pack_end(bx, bt);
266    evas_object_show(bt);
267    evas_object_show(ic);
268    evas_object_smart_callback_add(bt, "clicked", _transit_image_animation, ic);
269
270    bt = elm_button_add(win);
271    elm_object_text_set(bt, "Color, Rotation and Translation");
272    elm_box_pack_end(bx, bt);
273    evas_object_show(bt);
274    evas_object_smart_callback_add(bt, "clicked",
275                                   _transit_rotation_translation_color, NULL);
276
277    bt = elm_button_add(win);
278    elm_object_text_set(bt, "Wipe Effect");
279    elm_box_pack_end(bx, bt);
280    evas_object_show(bt);
281    evas_object_smart_callback_add(bt, "clicked", _transit_wipe, NULL);
282
283    evas_object_show(win);
284 }
285
286 /* Resizing Effect */
287 void
288 test_transit2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
289 {
290    Evas_Object *win, *bg, *bt;
291
292    win = elm_win_add(NULL, "transit2", ELM_WIN_BASIC);
293    elm_win_title_set(win, "Transit 2");
294    elm_win_autodel_set(win, EINA_TRUE);
295
296    bg = elm_bg_add(win);
297    elm_win_resize_object_add(win, bg);
298    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
299    evas_object_show(bg);
300
301    bt = elm_button_add(win);
302    elm_object_text_set(bt, "Resizing Effect");
303    evas_object_show(bt);
304    evas_object_move(bt, 50, 100);
305    evas_object_resize(bt, 100, 50);
306    evas_object_smart_callback_add(bt, "clicked", _transit_resizing, NULL);
307
308    evas_object_resize(win, 400, 400);
309    evas_object_show(win);
310 }
311
312 /* Flip Effect */
313 void
314 test_transit3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
315 {
316    Evas_Object *win, *bg, *bt, *bt2;
317
318    win = elm_win_add(NULL, "transit3", ELM_WIN_BASIC);
319    elm_win_title_set(win, "Transit 3");
320    elm_win_autodel_set(win, EINA_TRUE);
321
322    bg = elm_bg_add(win);
323    elm_win_resize_object_add(win, bg);
324    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
325    evas_object_show(bg);
326
327    bt = elm_button_add(win);
328    elm_object_text_set(bt, "Front Button - Flip Effect");
329    evas_object_show(bt);
330    evas_object_move(bt, 50, 50);
331    evas_object_resize(bt, 200, 200);
332
333    bt2 = elm_button_add(win);
334    elm_object_text_set(bt2, "Back Button - Flip Effect");
335    evas_object_move(bt2, 50, 50);
336    evas_object_resize(bt2, 200, 200);
337
338    evas_object_resize(win, 300, 300);
339    evas_object_show(win);
340
341    evas_object_smart_callback_add(bt, "clicked", _transit_flip, bt2);
342    evas_object_smart_callback_add(bt2, "clicked", _transit_flip, bt);
343 }
344
345 /* Zoom Effect */
346 void
347 test_transit4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
348 {
349    Evas_Object *win, *bg, *bt;
350
351    win = elm_win_add(NULL, "transit4", ELM_WIN_BASIC);
352    elm_win_title_set(win, "Transit 4");
353    elm_win_autodel_set(win, EINA_TRUE);
354
355    bg = elm_bg_add(win);
356    elm_win_resize_object_add(win, bg);
357    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
358    evas_object_show(bg);
359
360    bt = elm_button_add(win);
361    elm_object_text_set(bt, "Zoom Effect");
362    evas_object_resize(bt, 100, 50);
363    evas_object_move(bt, 100, 125);
364    evas_object_show(bt);
365
366    evas_object_smart_callback_add(bt, "clicked", _transit_zoom, NULL);
367
368    evas_object_resize(win, 300, 300);
369    evas_object_show(win);
370 }
371
372 /* Blend Effect */
373 void
374 test_transit5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
375 {
376    Evas_Object *win, *bg, *bt, *bt2, *ic;
377    char buf[PATH_MAX];
378
379    win = elm_win_add(NULL, "transit5", ELM_WIN_BASIC);
380    elm_win_title_set(win, "Transit 5");
381    elm_win_autodel_set(win, EINA_TRUE);
382
383    bg = elm_bg_add(win);
384    elm_win_resize_object_add(win, bg);
385    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
386    evas_object_show(bg);
387
388    ic = elm_icon_add(win);
389    snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", elm_app_data_dir_get());
390    elm_icon_file_set(ic, buf, NULL);
391    evas_object_size_hint_max_set(ic, 50, 50);
392
393    bt = elm_button_add(win);
394    elm_object_part_content_set(bt, "icon", ic);
395    elm_object_text_set(bt, "Before Button - Blend Effect");
396    evas_object_move(bt, 25, 125);
397    evas_object_resize(bt, 250, 50);
398    evas_object_show(bt);
399
400    ic = elm_icon_add(win);
401    snprintf(buf, sizeof(buf), "%s/images/rock_02.jpg", elm_app_data_dir_get());
402    elm_icon_file_set(ic, buf, NULL);
403    evas_object_size_hint_max_set(ic, 50, 50);
404
405    bt2 = elm_button_add(win);
406    elm_object_part_content_set(bt2, "icon", ic);
407    elm_object_text_set(bt2, "After Button - Blend Effect");
408    evas_object_move(bt2, 25, 125);
409    evas_object_resize(bt2, 250, 50);
410
411    evas_object_resize(win, 300, 300);
412    evas_object_show(win);
413
414    evas_object_smart_callback_add(bt, "clicked", _transit_blend, bt2);
415    evas_object_smart_callback_add(bt2, "clicked", _transit_blend, bt);
416 }
417
418 /* Fade Effect */
419 void
420 test_transit6(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
421 {
422    Evas_Object *win, *bg, *bt, *bt2, *ic;
423    char buf[PATH_MAX];
424
425    win = elm_win_add(NULL, "transit6", ELM_WIN_BASIC);
426    elm_win_title_set(win, "Transit 6");
427    elm_win_autodel_set(win, EINA_TRUE);
428
429    bg = elm_bg_add(win);
430    elm_win_resize_object_add(win, bg);
431    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
432    evas_object_show(bg);
433
434    ic = elm_icon_add(win);
435    snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", elm_app_data_dir_get());
436    elm_icon_file_set(ic, buf, NULL);
437    evas_object_size_hint_max_set(ic, 50, 50);
438
439    bt = elm_button_add(win);
440    elm_object_part_content_set(bt, "icon", ic);
441    elm_object_text_set(bt, "Before Button - Fade Effect");
442    evas_object_move(bt, 25, 125);
443    evas_object_resize(bt, 250, 50);
444    evas_object_show(bt);
445
446    ic = elm_icon_add(win);
447    snprintf(buf, sizeof(buf), "%s/images/rock_02.jpg", elm_app_data_dir_get());
448    elm_icon_file_set(ic, buf, NULL);
449    evas_object_size_hint_max_set(ic, 50, 50);
450
451    bt2 = elm_button_add(win);
452    elm_object_part_content_set(bt2, "icon", ic);
453    elm_object_text_set(bt2, "After Button - Fade Effect");
454    evas_object_move(bt2, 25, 125);
455    evas_object_resize(bt2, 250, 50);
456
457    evas_object_resize(win, 300, 300);
458    evas_object_show(win);
459
460    evas_object_smart_callback_add(bt, "clicked", _transit_fade, bt2);
461    evas_object_smart_callback_add(bt2, "clicked", _transit_fade, bt);
462 }
463
464 /* Resizable Flip Effect */
465 void
466 test_transit7(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
467 {
468    Evas_Object *win, *bg, *bt, *bt2;
469
470    win = elm_win_add(NULL, "transit7", ELM_WIN_BASIC);
471    elm_win_title_set(win, "Transit 7");
472    elm_win_autodel_set(win, EINA_TRUE);
473
474    bg = elm_bg_add(win);
475    elm_win_resize_object_add(win, bg);
476    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
477    evas_object_show(bg);
478
479    bt = elm_button_add(win);
480    elm_object_text_set(bt, "Front Button - Resizable Flip Effect");
481    evas_object_show(bt);
482    evas_object_move(bt, 50, 100);
483    evas_object_resize(bt, 250, 30);
484
485    bt2 = elm_button_add(win);
486    elm_object_text_set(bt2, "Back Button - Resizable Flip Effect");
487    evas_object_move(bt2, 50, 100);
488    evas_object_resize(bt2, 300, 200);
489
490    evas_object_resize(win, 400, 400);
491    evas_object_show(win);
492
493    evas_object_smart_callback_add(bt, "clicked", _transit_resizable_flip, bt2);
494    evas_object_smart_callback_add(bt2, "clicked", _transit_resizable_flip, bt);
495 }
496
497 /* Custom Effect */
498 void
499 test_transit8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
500 {
501    Evas_Object *win, *bg, *bt;
502    Elm_Transit *trans;
503    Elm_Transit_Effect *effect_context;
504
505    win = elm_win_add(NULL, "transit8", ELM_WIN_BASIC);
506    elm_win_title_set(win, "Transit 8");
507    elm_win_autodel_set(win, EINA_TRUE);
508
509    bg = elm_bg_add(win);
510    elm_win_resize_object_add(win, bg);
511    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
512    evas_object_show(bg);
513
514    bt = elm_button_add(win);
515    elm_object_text_set(bt, "Button - Custom Effect");
516    evas_object_show(bt);
517    evas_object_move(bt, 50, 50);
518    evas_object_resize(bt, 150, 150);
519
520    /* Adding Transit */
521    trans = elm_transit_add();
522    elm_transit_auto_reverse_set(trans, EINA_TRUE);
523    elm_transit_tween_mode_set(trans, ELM_TRANSIT_TWEEN_MODE_DECELERATE);
524    effect_context = _custom_context_new(150, 150, 50, 50);
525    elm_transit_object_add(trans, bt);
526    elm_transit_effect_add(trans,
527                           _custom_op, effect_context,
528                           _custom_context_free);
529    elm_transit_duration_set(trans, 5.0);
530    elm_transit_repeat_times_set(trans, -1);
531    elm_transit_go(trans);
532
533    evas_object_resize(win, 400, 400);
534    evas_object_show(win);
535 }
536
537 /* Chain Transit Effect */
538 void
539 test_transit9(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
540 {
541    Evas_Object *win, *bg, *bt, *bt2, *bt3, *bt4;
542    Elm_Transit *trans, *trans2, *trans3, *trans4;
543
544    win = elm_win_add(NULL, "transit9", ELM_WIN_BASIC);
545    elm_win_title_set(win, "Transit 9");
546    elm_win_autodel_set(win, EINA_TRUE);
547
548    bg = elm_bg_add(win);
549    elm_win_resize_object_add(win, bg);
550    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
551    evas_object_show(bg);
552
553    bt = elm_button_add(win);
554    elm_object_text_set(bt, "Chain 1");
555    evas_object_resize(bt, 100, 100);
556    evas_object_move(bt, 0, 0);
557    evas_object_show(bt);
558
559    bt2 = elm_button_add(win);
560    elm_object_text_set(bt2, "Chain 2");
561    evas_object_resize(bt2, 100, 100);
562    evas_object_move(bt2, 300, 0);
563    evas_object_show(bt2);
564
565    bt3 = elm_button_add(win);
566    elm_object_text_set(bt3, "Chain 3");
567    evas_object_resize(bt3, 100, 100);
568    evas_object_move(bt3, 300, 300);
569    evas_object_show(bt3);
570
571    bt4 = elm_button_add(win);
572    elm_object_text_set(bt4, "Chain 4");
573    evas_object_resize(bt4, 100, 100);
574    evas_object_move(bt4, 0, 300);
575    evas_object_show(bt4);
576
577    trans = elm_transit_add();
578    elm_transit_tween_mode_set(trans, ELM_TRANSIT_TWEEN_MODE_ACCELERATE);
579    elm_transit_effect_translation_add(trans, 0, 0, 300, 0);
580    elm_transit_object_add(trans, bt);
581    elm_transit_duration_set(trans, 1);
582    elm_transit_objects_final_state_keep_set(trans, EINA_TRUE);
583    elm_transit_go(trans);
584
585    trans2 = elm_transit_add();
586    elm_transit_tween_mode_set(trans2, ELM_TRANSIT_TWEEN_MODE_ACCELERATE);
587    elm_transit_effect_translation_add(trans2, 0, 0, 0, 300);
588    elm_transit_object_add(trans2, bt2);
589    elm_transit_duration_set(trans2, 1);
590    elm_transit_objects_final_state_keep_set(trans2, EINA_TRUE);
591    elm_transit_chain_transit_add(trans, trans2);
592
593    trans3 = elm_transit_add();
594    elm_transit_tween_mode_set(trans3, ELM_TRANSIT_TWEEN_MODE_ACCELERATE);
595    elm_transit_effect_translation_add(trans3, 0, 0, -300, 0);
596    elm_transit_object_add(trans3, bt3);
597    elm_transit_duration_set(trans3, 1);
598    elm_transit_objects_final_state_keep_set(trans3, EINA_TRUE);
599    elm_transit_chain_transit_add(trans2, trans3);
600
601    trans4 = elm_transit_add();
602    elm_transit_tween_mode_set(trans4, ELM_TRANSIT_TWEEN_MODE_ACCELERATE);
603    elm_transit_effect_translation_add(trans4, 0, 0, 0, -300);
604    elm_transit_object_add(trans4, bt4);
605    elm_transit_duration_set(trans4, 1);
606    elm_transit_objects_final_state_keep_set(trans4, EINA_TRUE);
607    elm_transit_chain_transit_add(trans3, trans4);
608
609    evas_object_resize(win, 400, 400);
610    evas_object_show(win);
611 }
612 #endif