diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2019-11-10 19:10:02 +0100 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2019-11-18 14:53:03 +0100 |
commit | d37acfd77b7ca3a5c6fe94ea3ad93d5ad73e055b (patch) | |
tree | 9396cb94c3e839cd8b889906ae9b5f3bf645c305 | |
parent | b525ca1d75f9d3856cf9dbe341bcfcf949a51ff4 (diff) | |
download | efl-d37acfd77b7ca3a5c6fe94ea3ad93d5ad73e055b.tar.gz |
elementary: move away from normal player to the new animation mixin
the mixin can handle the same things as the player. Additionally, the
usage of the mixin simplifies the animation usage alot.
Differential Revision: https://phab.enlightenment.org/D10636
-rw-r--r-- | src/bin/elementary/test_efl_anim_alpha.c | 45 | ||||
-rw-r--r-- | src/bin/elementary/test_efl_anim_group_parallel.c | 48 | ||||
-rw-r--r-- | src/bin/elementary/test_efl_anim_group_sequential.c | 47 | ||||
-rw-r--r-- | src/bin/elementary/test_efl_anim_interpolator.c | 82 | ||||
-rw-r--r-- | src/bin/elementary/test_efl_anim_pause.c | 68 | ||||
-rw-r--r-- | src/bin/elementary/test_efl_anim_repeat.c | 74 | ||||
-rw-r--r-- | src/bin/elementary/test_efl_anim_rotate.c | 73 | ||||
-rw-r--r-- | src/bin/elementary/test_efl_anim_scale.c | 72 | ||||
-rw-r--r-- | src/bin/elementary/test_efl_anim_start_delay.c | 55 | ||||
-rw-r--r-- | src/bin/elementary/test_efl_anim_translate.c | 57 |
10 files changed, 259 insertions, 362 deletions
diff --git a/src/bin/elementary/test_efl_anim_alpha.c b/src/bin/elementary/test_efl_anim_alpha.c index d75733f8c8..b364319279 100644 --- a/src/bin/elementary/test_efl_anim_alpha.c +++ b/src/bin/elementary/test_efl_anim_alpha.c @@ -7,31 +7,38 @@ typedef struct _App_Data { Efl_Canvas_Animation *show_anim; Efl_Canvas_Animation *hide_anim; - Efl_Canvas_Animation_Player *anim_obj; + Elm_Button *button; Eina_Bool is_btn_visible; } App_Data; static void -_anim_started_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) +_anim_changed_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) { - printf("Animation has been started!\n"); -} + Eo *anim = event->info; -static void -_anim_ended_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) -{ - printf("Animation has been ended!\n"); + if (anim) + { + printf("Animation has been started!\n"); + } + else + { + printf("Animation has been ended!\n"); + } } static void _anim_running_cb(void *data EINA_UNUSED, const Efl_Event *event) { - Efl_Canvas_Animation_Player_Event_Running *event_running = event->info; - double progress = event_running->progress; - printf("Animation is running! Current progress(%lf)\n", progress); + double *progress = event->info; + printf("Animation is running! Current progress(%lf)\n", *progress); } +EFL_CALLBACKS_ARRAY_DEFINE(animation_stats_cb, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, _anim_changed_cb }, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, _anim_running_cb }, +) + static void _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { @@ -42,18 +49,17 @@ _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) if (ad->is_btn_visible) { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->show_anim); + efl_canvas_object_animation_start(ad->button, ad->show_anim, 1.0, 0.0); efl_text_set(obj, "Start Alpha Animation from 1.0 to 0.0"); } else { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->hide_anim); + efl_canvas_object_animation_start(ad->button, ad->hide_anim, 1.0, 0.0); efl_text_set(obj, "Start Alpha Animation from 0.0 to 1.0"); } //Let Animation Object start animation - efl_player_playing_set(ad->anim_obj, EINA_TRUE); } static void @@ -81,6 +87,7 @@ test_efl_anim_alpha(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * evas_object_resize(btn, 200, 200); evas_object_move(btn, 100, 50); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Show Animation Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); @@ -97,16 +104,8 @@ test_efl_anim_alpha(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * //Initialize App Data ad->show_anim = show_anim; ad->hide_anim = hide_anim; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, ad); - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); ad->is_btn_visible = EINA_TRUE; + ad->button = btn; //Button to start animation Evas_Object *btn2 = elm_button_add(win); diff --git a/src/bin/elementary/test_efl_anim_group_parallel.c b/src/bin/elementary/test_efl_anim_group_parallel.c index 262286a6fb..ed319e588c 100644 --- a/src/bin/elementary/test_efl_anim_group_parallel.c +++ b/src/bin/elementary/test_efl_anim_group_parallel.c @@ -7,32 +7,38 @@ typedef struct _App_Data { Efl_Canvas_Animation *parallel_show_anim; Efl_Canvas_Animation *parallel_hide_anim; - Efl_Canvas_Animation_Player *anim_obj; + Elm_Button *button; Eina_Bool is_btn_visible; } App_Data; static void -_anim_started_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) +_anim_changed_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) { - printf("Animation has been started!\n"); -} - -static void -_anim_ended_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) -{ - printf("Animation has been ended!\n"); + Eo *anim = event->info; + if (anim) + { + printf("Animation has been started!\n"); + } + else + { + printf("Animation has been ended!\n"); + } } static void _anim_running_cb(void *data EINA_UNUSED, const Efl_Event *event) { - Efl_Canvas_Animation_Player_Event_Running *event_running = event->info; - double progress = event_running->progress; - printf("Animation is running! Current progress(%lf)\n", progress); + double *progress = event->info; + printf("Animation is running! Current progress(%lf)\n", *progress); } +EFL_CALLBACKS_ARRAY_DEFINE(animation_stats_cb, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, _anim_changed_cb }, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, _anim_running_cb }, +) + static void _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { @@ -43,18 +49,16 @@ _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) if (ad->is_btn_visible) { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->parallel_show_anim); + efl_canvas_object_animation_start(ad->button, ad->parallel_show_anim, 1.0, 0.0); efl_text_set(obj, "Start Parallel Group Animation to hide button"); } else { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->parallel_hide_anim); + efl_canvas_object_animation_start(ad->button, ad->parallel_hide_anim, 1.0, 0.0); efl_text_set(obj, "Start Parallel Group Animation to show button"); } - //Let Animation Object start animation - efl_player_playing_set(ad->anim_obj, EINA_TRUE); } static void @@ -82,7 +86,7 @@ test_efl_anim_group_parallel(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSE evas_object_resize(btn, 150, 150); evas_object_move(btn, 125, 100); evas_object_show(btn); - + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Show Animation Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); @@ -133,15 +137,7 @@ test_efl_anim_group_parallel(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSE //Initialize App Data ad->parallel_show_anim = parallel_show_anim; ad->parallel_hide_anim = parallel_hide_anim; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, NULL); - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); + ad->button = btn; ad->is_btn_visible = EINA_TRUE; diff --git a/src/bin/elementary/test_efl_anim_group_sequential.c b/src/bin/elementary/test_efl_anim_group_sequential.c index 4beefb2f55..37b4e53434 100644 --- a/src/bin/elementary/test_efl_anim_group_sequential.c +++ b/src/bin/elementary/test_efl_anim_group_sequential.c @@ -7,31 +7,38 @@ typedef struct _App_Data { Efl_Canvas_Animation *sequential_show_anim; Efl_Canvas_Animation *sequential_hide_anim; - Efl_Canvas_Animation_Player *anim_obj; + Elm_Button *button; Eina_Bool is_btn_visible; } App_Data; static void -_anim_started_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) +_anim_changed_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) { - printf("Animation has been started!\n"); -} + Eo *anim = event->info; -static void -_anim_ended_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) -{ - printf("Animation has been ended!\n"); + if (anim) + { + printf("Animation has been started!\n"); + } + else + { + printf("Animation has been ended!\n"); + } } static void _anim_running_cb(void *data EINA_UNUSED, const Efl_Event *event) { - Efl_Canvas_Animation_Player_Event_Running *event_running = event->info; - double progress = event_running->progress; - printf("Animation is running! Current progress(%lf)\n", progress); + double *progress = event->info; + printf("Animation is running! Current progress(%lf)\n", *progress); } +EFL_CALLBACKS_ARRAY_DEFINE(animation_stats_cb, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, _anim_changed_cb }, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, _anim_running_cb }, +) + static void _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { @@ -42,18 +49,15 @@ _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) if (ad->is_btn_visible) { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->sequential_show_anim); + efl_canvas_object_animation_start(ad->button, ad->sequential_show_anim, 1.0, 0.0); efl_text_set(obj, "Start Sequential Group Animation to hide button"); } else { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->sequential_hide_anim); + efl_canvas_object_animation_start(ad->button, ad->sequential_hide_anim, 1.0, 0.0); efl_text_set(obj, "Start Sequential Group Animation to show button"); } - - //Let Animation Object start animation - efl_player_playing_set(ad->anim_obj, EINA_TRUE); } static void @@ -81,6 +85,7 @@ test_efl_anim_group_sequential(void *data EINA_UNUSED, Evas_Object *obj EINA_UNU evas_object_resize(btn, 150, 150); evas_object_move(btn, 125, 100); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); /* Animations to hide button */ @@ -138,15 +143,7 @@ test_efl_anim_group_sequential(void *data EINA_UNUSED, Evas_Object *obj EINA_UNU //Initialize App Data ad->sequential_show_anim = sequential_show_anim; ad->sequential_hide_anim = sequential_hide_anim; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, NULL); - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); + ad->button = btn; ad->is_btn_visible = EINA_TRUE; diff --git a/src/bin/elementary/test_efl_anim_interpolator.c b/src/bin/elementary/test_efl_anim_interpolator.c index 96c7649373..c5a828ff22 100644 --- a/src/bin/elementary/test_efl_anim_interpolator.c +++ b/src/bin/elementary/test_efl_anim_interpolator.c @@ -13,7 +13,7 @@ typedef struct _App_Data { Efl_Canvas_Animation *anim[INTERP_NUM]; - Efl_Canvas_Animation_Player *anim_obj[INTERP_NUM]; + Efl_Ui_Button *btns[INTERP_NUM]; Evas_Object *btn[INTERP_NUM]; Evas_Object *start_all_btn; @@ -68,46 +68,49 @@ _interpolator_create(int index, Evas_Object *win) } static void -_anim_started_cb(void *data, const Efl_Event *event EINA_UNUSED) +_anim_changed_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) { + Eo *anim = event->info; App_Data *ad = data; - printf("Animation has been started!\n"); - - ad->running_anim_cnt++; -} - -static void -_anim_ended_cb(void *data, const Efl_Event *event) -{ - App_Data *ad = data; - int i; - - printf("Animation has been ended!\n"); + if (anim) + { + printf("Animation has been started!\n"); + ad->running_anim_cnt++; + } + else + { + int i; - ad->running_anim_cnt--; + printf("Animation has been ended!\n"); + ad->running_anim_cnt--; - for (i = 0; i < INTERP_NUM; i++) - { - if (ad->anim_obj[i] == event->object) + for (i = 0; i < INTERP_NUM; i++) { - elm_object_disabled_set(ad->btn[i], EINA_FALSE); - break; + if (ad->btns[i] == event->object) + { + elm_object_disabled_set(ad->btn[i], EINA_FALSE); + break; + } } - } - if (ad->running_anim_cnt == 0) - elm_object_disabled_set(ad->start_all_btn, EINA_FALSE); + if (ad->running_anim_cnt == 0) + elm_object_disabled_set(ad->start_all_btn, EINA_FALSE); + } } static void _anim_running_cb(void *data EINA_UNUSED, const Efl_Event *event) { - Efl_Canvas_Animation_Player_Event_Running *event_running = event->info; - double progress = event_running->progress; - printf("Animation is running! Current progress(%lf)\n", progress); + double *progress = event->info; + printf("Animation is running! Current progress(%lf)\n", *progress); } +EFL_CALLBACKS_ARRAY_DEFINE(animation_stats_cb, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, _anim_changed_cb }, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, _anim_running_cb }, +) + static void _anim_start(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { @@ -116,7 +119,7 @@ _anim_start(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) int index = (uintptr_t)evas_object_data_get(obj, "index"); //Let Animation Object start animation - efl_player_playing_set(ad->anim_obj[index], EINA_TRUE); + efl_canvas_object_animation_start(ad->btns[index], ad->anim[index], 1.0, 0.0); elm_object_disabled_set(obj, EINA_TRUE); elm_object_disabled_set(ad->start_all_btn, EINA_TRUE); @@ -131,7 +134,7 @@ _anim_start_all(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) for (i = 0; i < INTERP_NUM; i++) { //Let Animation Object start animation - efl_player_playing_set(ad->anim_obj[i], EINA_TRUE); + efl_canvas_object_animation_start(ad->btns[i], ad->anim[i], 1.0, 0.0); elm_object_disabled_set(ad->btn[i], EINA_TRUE); } @@ -147,9 +150,7 @@ _win_del_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUS for (i = 0; i < INTERP_NUM; i++) { //Unregister callback called when window deletes - efl_event_callback_del(ad->anim_obj[i], - EFL_ANIMATION_PLAYER_EVENT_ENDED, - _anim_ended_cb, ad); + efl_event_callback_array_del(ad->btns[i], animation_stats_cb(), ad); } free(ad); @@ -211,23 +212,8 @@ test_efl_anim_interpolator(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, ad->anim[i] = anim; //Create Animation Object from Animation - Efl_Canvas_Animation_Player *anim_obj = - efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_animation_set(efl_added, anim), - efl_animation_player_target_set(efl_added, btn)); - ad->anim_obj[i] = anim_obj; - - //Register callback called when animation starts - efl_event_callback_add(anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, - _anim_started_cb, ad); - - //Register callback called when animation ends - efl_event_callback_add(anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, - _anim_ended_cb, ad); - - //Register callback called while animation is executed - efl_event_callback_add(anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, - _anim_running_cb, NULL); + ad->btns[i] = btn; + efl_event_callback_array_add(btn, animation_stats_cb(), ad); } ad->running_anim_cnt = 0; diff --git a/src/bin/elementary/test_efl_anim_pause.c b/src/bin/elementary/test_efl_anim_pause.c index 3730db33cf..92d4b3e308 100644 --- a/src/bin/elementary/test_efl_anim_pause.c +++ b/src/bin/elementary/test_efl_anim_pause.c @@ -7,7 +7,7 @@ typedef struct _App_Data { Efl_Canvas_Animation *show_anim; Efl_Canvas_Animation *hide_anim; - Efl_Canvas_Animation_Player *anim_obj; + Elm_Button *button; Evas_Object *pause_btn; @@ -16,60 +16,54 @@ typedef struct _App_Data } App_Data; static void -_anim_started_cb(void *data, const Efl_Event *event EINA_UNUSED) +_anim_changed_cb(void *data, const Efl_Event *event EINA_UNUSED) { + Eo *anim = event->info; App_Data *ad = data; - printf("Animation has been started!\n"); - - elm_object_disabled_set(ad->pause_btn, EINA_FALSE); -} - -static void -_anim_ended_cb(void *data, const Efl_Event *event EINA_UNUSED) -{ - App_Data *ad = data; - - printf("Animation has been ended!\n"); - - elm_object_disabled_set(ad->pause_btn, EINA_TRUE); + if (anim) + { + printf("Animation has been started!\n"); + elm_object_disabled_set(ad->pause_btn, EINA_FALSE); + } + else + { + printf("Animation has been ended!\n"); + elm_object_disabled_set(ad->pause_btn, EINA_TRUE); + } } static void _anim_running_cb(void *data EINA_UNUSED, const Efl_Event *event) { - Efl_Canvas_Animation_Player_Event_Running *event_running = event->info; - double progress = event_running->progress; - printf("Animation is running! Current progress(%lf)\n", progress); + double *progress = event->info; + printf("Animation is running! Current progress(%lf)\n", *progress); } +EFL_CALLBACKS_ARRAY_DEFINE(animation_stats_cb, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, _anim_changed_cb }, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, _anim_running_cb }, +) + static void _start_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { App_Data *ad = data; - if (ad->anim_obj) - { - ad->is_anim_paused = EINA_FALSE; - elm_object_text_set(ad->pause_btn, "Pause Animation"); - } - ad->is_btn_visible = !(ad->is_btn_visible); if (ad->is_btn_visible) { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->show_anim); + efl_canvas_object_animation_start(ad->button, ad->show_anim, 1.0, 0.0); efl_text_set(obj, "Start Alpha Animation from 1.0 to 0.0"); } else { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->hide_anim); + efl_canvas_object_animation_start(ad->button, ad->hide_anim, 1.0, 0.0); efl_text_set(obj, "Start Alpha Animation from 0.0 to 1.0"); } - //Let Animation Object start animation - efl_player_playing_set(ad->anim_obj, EINA_TRUE); } static void @@ -82,13 +76,13 @@ _pause_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED if (ad->is_anim_paused) { //Pause animation - efl_player_paused_set(ad->anim_obj, EINA_TRUE); + efl_canvas_object_animation_pause_set(ad->button, EINA_TRUE); elm_object_text_set(obj, "Resume Animation"); } else { //Resume animation - efl_player_paused_set(ad->anim_obj, EINA_FALSE); + efl_canvas_object_animation_pause_set(ad->button, EINA_FALSE); elm_object_text_set(obj, "Pause Animation"); } } @@ -118,6 +112,7 @@ test_efl_anim_pause(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * evas_object_resize(btn, 200, 200); evas_object_move(btn, 100, 50); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Show Animation Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); @@ -152,25 +147,14 @@ test_efl_anim_pause(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * //Pause button becomes enabled only if the animation is started elm_object_disabled_set(pause_btn, EINA_TRUE); - //Initialize App Data ad->show_anim = show_anim; ad->hide_anim = hide_anim; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, ad); - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, ad); - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); - + ad->button = btn; ad->pause_btn = pause_btn; ad->is_btn_visible = EINA_TRUE; ad->is_anim_paused = EINA_FALSE; - evas_object_resize(win, 400, 450); evas_object_show(win); } diff --git a/src/bin/elementary/test_efl_anim_repeat.c b/src/bin/elementary/test_efl_anim_repeat.c index 55bf98c748..0f72882207 100644 --- a/src/bin/elementary/test_efl_anim_repeat.c +++ b/src/bin/elementary/test_efl_anim_repeat.c @@ -7,7 +7,7 @@ typedef struct _App_Data { Efl_Canvas_Animation *show_anim; Efl_Canvas_Animation *hide_anim; - Efl_Canvas_Animation_Player *anim_obj; + Elm_Button *button; Evas_Object *start_btn; Evas_Object *repeat_count_spin; @@ -27,46 +27,50 @@ _anim_repeat_mode_get(Evas_Object *spinner) return EFL_CANVAS_ANIMATION_REPEAT_MODE_REVERSE; } -static void -_anim_started_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) -{ - printf("Animation has been started!\n"); -} static void -_anim_ended_cb(void *data, const Efl_Event *event EINA_UNUSED) +_anim_changed_cb(void *data, const Efl_Event *event EINA_UNUSED) { + Eo *anim = event->info; App_Data *ad = data; - printf("Animation has been ended!\n"); - - Efl_Canvas_Animation_Repeat_Mode repeat_mode = _anim_repeat_mode_get(ad->repeat_mode_spin); - if (repeat_mode == EFL_CANVAS_ANIMATION_REPEAT_MODE_REVERSE) + if (anim) + { + printf("Animation has been started!\n"); + } + else { - int repeat_count = elm_spinner_value_get(ad->repeat_count_spin); - if (repeat_count % 2 == 1) + printf("Animation has been ended!\n"); + Efl_Canvas_Animation_Repeat_Mode repeat_mode = _anim_repeat_mode_get(ad->repeat_mode_spin); + if (repeat_mode == EFL_CANVAS_ANIMATION_REPEAT_MODE_REVERSE) { - ad->is_btn_visible = !(ad->is_btn_visible); - - if (ad->is_btn_visible) - elm_object_text_set(ad->start_btn, "Start Alpha Animation from 1.0 to 0.0"); - else - elm_object_text_set(ad->start_btn, "Start Alpha Animation from 0.0 to 1.0"); + int repeat_count = elm_spinner_value_get(ad->repeat_count_spin); + if (repeat_count % 2 == 1) + { + ad->is_btn_visible = !(ad->is_btn_visible); + if (ad->is_btn_visible) + elm_object_text_set(ad->start_btn, "Start Alpha Animation from 1.0 to 0.0"); + else + elm_object_text_set(ad->start_btn, "Start Alpha Animation from 0.0 to 1.0"); + } } + elm_object_disabled_set(ad->repeat_count_spin, EINA_FALSE); + elm_object_disabled_set(ad->repeat_mode_spin, EINA_FALSE); } - - elm_object_disabled_set(ad->repeat_count_spin, EINA_FALSE); - elm_object_disabled_set(ad->repeat_mode_spin, EINA_FALSE); } static void _anim_running_cb(void *data EINA_UNUSED, const Efl_Event *event) { - Efl_Canvas_Animation_Player_Event_Running *event_running = event->info; - double progress = event_running->progress; - printf("Animation is running! Current progress(%lf)\n", progress); + double *progress = event->info; + printf("Animation is running! Current progress(%lf)\n", *progress); } +EFL_CALLBACKS_ARRAY_DEFINE(animation_stats_cb, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, _anim_changed_cb }, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, _anim_running_cb }, +) + static void _start_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { @@ -89,7 +93,7 @@ _start_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED efl_animation_repeat_mode_set(ad->show_anim, repeat_mode); //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->show_anim); + efl_canvas_object_animation_start(ad->button, ad->show_anim, 1.0, 0.0); efl_text_set(obj, "Start Alpha Animation from 1.0 to 0.0"); } else @@ -101,12 +105,9 @@ _start_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED efl_animation_repeat_mode_set(ad->hide_anim, repeat_mode); //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->hide_anim); + efl_canvas_object_animation_start(ad->button, ad->hide_anim, 1.0, 0.0); efl_text_set(obj, "Start Alpha Animation from 0.0 to 1.0"); } - - //Let Animation Object start animation - efl_player_playing_set(ad->anim_obj, EINA_TRUE); } static void @@ -133,6 +134,7 @@ test_efl_anim_repeat(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void evas_object_resize(btn, 200, 200); evas_object_move(btn, 100, 50); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Show Animation Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); @@ -178,24 +180,14 @@ test_efl_anim_repeat(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void evas_object_move(repeat_mode_spin, 100, 400); evas_object_show(repeat_mode_spin); - //Initialize App Data ad->show_anim = show_anim; ad->hide_anim = hide_anim; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, ad); - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); - ad->start_btn = start_btn; ad->repeat_count_spin = repeat_count_spin; ad->repeat_mode_spin = repeat_mode_spin; ad->is_btn_visible = EINA_TRUE; - + ad->button = btn; evas_object_resize(win, 400, 500); evas_object_show(win); diff --git a/src/bin/elementary/test_efl_anim_rotate.c b/src/bin/elementary/test_efl_anim_rotate.c index ea8b94af68..437d015d75 100644 --- a/src/bin/elementary/test_efl_anim_rotate.c +++ b/src/bin/elementary/test_efl_anim_rotate.c @@ -7,31 +7,38 @@ typedef struct _App_Data { Efl_Canvas_Animation *cw_45_degrees_anim; Efl_Canvas_Animation *ccw_45_degrees_anim; - Efl_Canvas_Animation_Player *anim_obj; + Elm_Button *button; Eina_Bool is_btn_rotated; } App_Data; static void -_anim_started_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) +_anim_changed_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) { - printf("Animation has been started!\n"); -} + Eo *anim = event->info; -static void -_anim_ended_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) -{ - printf("Animation has been ended!\n"); + if (anim) + { + printf("Animation has been started!\n"); + } + else + { + printf("Animation has been ended!\n"); + } } static void _anim_running_cb(void *data EINA_UNUSED, const Efl_Event *event) { - Efl_Canvas_Animation_Player_Event_Running *event_running = event->info; - double progress = event_running->progress; - printf("Animation is running! Current progress(%lf)\n", progress); + double *progress = event->info; + printf("Animation is running! Current progress(%lf)\n", *progress); } +EFL_CALLBACKS_ARRAY_DEFINE(animation_stats_cb, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, _anim_changed_cb }, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, _anim_running_cb }, +) + static void _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { @@ -42,18 +49,15 @@ _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) if (ad->is_btn_rotated) { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->cw_45_degrees_anim); + efl_canvas_object_animation_start(ad->button, ad->cw_45_degrees_anim, 1.0, 0.0); efl_text_set(obj, "Start Rotate Animation from 45 to 0 degrees"); } else { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->ccw_45_degrees_anim); + efl_canvas_object_animation_start(ad->button, ad->ccw_45_degrees_anim, 1.0, 0.0); efl_text_set(obj, "Start Rotate Animation from 0 to 45 degrees"); } - - //Let Animation Object start animation - efl_player_playing_set(ad->anim_obj, EINA_TRUE); } static void @@ -81,6 +85,7 @@ test_efl_anim_rotate(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void evas_object_resize(btn, 150, 150); evas_object_move(btn, 125, 100); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Rotate from 0 to 45 degrees Animation Efl_Canvas_Animation *cw_45_degrees_anim = efl_add(EFL_CANVAS_ANIMATION_ROTATE_CLASS, win); @@ -97,16 +102,7 @@ test_efl_anim_rotate(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void //Initialize App Data ad->cw_45_degrees_anim = cw_45_degrees_anim; ad->ccw_45_degrees_anim = ccw_45_degrees_anim; - - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, NULL); - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); - + ad->button = btn; ad->is_btn_rotated = EINA_FALSE; //Button to start animation @@ -140,6 +136,7 @@ test_efl_anim_rotate_relative(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUS evas_object_resize(btn, 150, 150); evas_object_move(btn, 125, 100); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Pivot to be center of the rotation Evas_Object *pivot = elm_button_add(win); @@ -164,18 +161,8 @@ test_efl_anim_rotate_relative(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUS //Initialize App Data ad->cw_45_degrees_anim = cw_45_degrees_anim; ad->ccw_45_degrees_anim = ccw_45_degrees_anim; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, NULL); - - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); ad->is_btn_rotated = EINA_FALSE; + ad->button = btn; //Button to start animation Evas_Object *btn2 = elm_button_add(win); @@ -208,6 +195,7 @@ test_efl_anim_rotate_absolute(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUS evas_object_resize(btn, 150, 150); evas_object_move(btn, 125, 100); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Absolute coordinate (0, 0) to be center of the rotation Evas_Object *abs_center = elm_button_add(win); @@ -232,17 +220,8 @@ test_efl_anim_rotate_absolute(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUS //Initialize App Data ad->cw_45_degrees_anim = cw_45_degrees_anim; ad->ccw_45_degrees_anim = ccw_45_degrees_anim; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, NULL); - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); - ad->is_btn_rotated = EINA_FALSE; + ad->button = btn; //Button to start animation Evas_Object *btn2 = elm_button_add(win); diff --git a/src/bin/elementary/test_efl_anim_scale.c b/src/bin/elementary/test_efl_anim_scale.c index d3812dec67..93ac1f7270 100644 --- a/src/bin/elementary/test_efl_anim_scale.c +++ b/src/bin/elementary/test_efl_anim_scale.c @@ -7,31 +7,38 @@ typedef struct _App_Data { Efl_Canvas_Animation *scale_double_anim; Efl_Canvas_Animation *scale_half_anim; - Efl_Canvas_Animation_Player *anim_obj; + Elm_Button *button; Eina_Bool is_btn_scaled; } App_Data; static void -_anim_started_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) +_anim_changed_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) { - printf("Animation has been started!\n"); -} + Eo *anim = event->info; -static void -_anim_ended_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) -{ - printf("Animation has been ended!\n"); + if (anim) + { + printf("Animation has been started!\n"); + } + else + { + printf("Animation has been ended!\n"); + } } static void _anim_running_cb(void *data EINA_UNUSED, const Efl_Event *event) { - Efl_Canvas_Animation_Player_Event_Running *event_running = event->info; - double progress = event_running->progress; - printf("Animation is running! Current progress(%lf)\n", progress); + double *progress = event->info; + printf("Animation is running! Current progress(%lf)\n", *progress); } +EFL_CALLBACKS_ARRAY_DEFINE(animation_stats_cb, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, _anim_changed_cb }, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, _anim_running_cb }, +) + static void _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { @@ -42,18 +49,15 @@ _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) if (ad->is_btn_scaled) { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->scale_double_anim); + efl_canvas_object_animation_start(ad->button, ad->scale_double_anim, 1.0, 0.0); efl_text_set(obj, "Start Scale Animation to zoom out"); } else { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->scale_half_anim); + efl_canvas_object_animation_start(ad->button, ad->scale_half_anim, 1.0, 0.0); efl_text_set(obj, "Start Scale Animation to zoom in"); } - - //Let Animation Object start animation - efl_player_playing_set(ad->anim_obj, EINA_TRUE); } static void @@ -81,6 +85,7 @@ test_efl_anim_scale(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * evas_object_resize(btn, 150, 150); evas_object_move(btn, 125, 100); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Scale Animation to zoom in Efl_Canvas_Animation *scale_double_anim = efl_add(EFL_CANVAS_ANIMATION_SCALE_CLASS, win); @@ -97,19 +102,8 @@ test_efl_anim_scale(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * //Initialize App Data ad->scale_double_anim = scale_double_anim; ad->scale_half_anim = scale_half_anim; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, ad); - - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); - ad->is_btn_scaled = EINA_FALSE; + ad->button = btn; //Button to start animation Evas_Object *btn2 = elm_button_add(win); @@ -142,6 +136,7 @@ test_efl_anim_scale_relative(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSE evas_object_resize(btn, 150, 150); evas_object_move(btn, 125, 100); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Pivot to be center of the scaling Evas_Object *pivot = elm_button_add(win); @@ -166,15 +161,7 @@ test_efl_anim_scale_relative(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSE //Initialize App Data ad->scale_double_anim = scale_double_anim; ad->scale_half_anim = scale_half_anim; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, ad); - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); - + ad->button = btn; ad->is_btn_scaled = EINA_FALSE; //Button to start animation @@ -208,6 +195,7 @@ test_efl_anim_scale_absolute(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSE evas_object_resize(btn, 150, 150); evas_object_move(btn, 125, 100); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Absolute coordinate (0, 0) to be center of the scaling Evas_Object *abs_center = elm_button_add(win); @@ -232,15 +220,7 @@ test_efl_anim_scale_absolute(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSE //Initialize App Data ad->scale_double_anim = scale_double_anim; ad->scale_half_anim = scale_half_anim; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, ad); - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); - + ad->button = btn; ad->is_btn_scaled = EINA_FALSE; //Button to start animation diff --git a/src/bin/elementary/test_efl_anim_start_delay.c b/src/bin/elementary/test_efl_anim_start_delay.c index e3c7b255b5..6ef663b33a 100644 --- a/src/bin/elementary/test_efl_anim_start_delay.c +++ b/src/bin/elementary/test_efl_anim_start_delay.c @@ -7,7 +7,7 @@ typedef struct _App_Data { Efl_Canvas_Animation *show_anim; Efl_Canvas_Animation *hide_anim; - Efl_Canvas_Animation_Player *anim_obj; + Elm_Button *button; Evas_Object *start_delay_spin; @@ -15,29 +15,35 @@ typedef struct _App_Data } App_Data; static void -_anim_started_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) -{ - printf("Animation has been started!\n"); -} - -static void -_anim_ended_cb(void *data, const Efl_Event *event EINA_UNUSED) +_anim_changed_cb(void *data, const Efl_Event *event EINA_UNUSED) { + Eo *anim = event->info; App_Data *ad = data; - printf("Animation has been ended!\n"); - - elm_object_disabled_set(ad->start_delay_spin, EINA_FALSE); + if (anim) + { + printf("Animation has been started!\n"); + elm_object_disabled_set(ad->start_delay_spin, EINA_FALSE); + } + else + { + printf("Animation has been ended!\n"); + elm_object_disabled_set(ad->start_delay_spin, EINA_TRUE); + } } static void _anim_running_cb(void *data EINA_UNUSED, const Efl_Event *event) { - Efl_Canvas_Animation_Player_Event_Running *event_running = event->info; - double progress = event_running->progress; - printf("Animation is running! Current progress(%lf)\n", progress); + double *progress = event->info; + printf("Animation is running! Current progress(%lf)\n", *progress); } +EFL_CALLBACKS_ARRAY_DEFINE(animation_stats_cb, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, _anim_changed_cb }, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, _anim_running_cb }, +) + static void _start_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { @@ -54,7 +60,7 @@ _start_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED efl_animation_start_delay_set(ad->show_anim, start_delay); //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->show_anim); + efl_canvas_object_animation_start(ad->button, ad->show_anim, 1.0, 0.0); efl_text_set(obj, "Start Alpha Animation from 1.0 to 0.0"); } else @@ -63,12 +69,9 @@ _start_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED efl_animation_start_delay_set(ad->hide_anim, start_delay); //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->hide_anim); + efl_canvas_object_animation_start(ad->button, ad->hide_anim, 1.0, 0.0); efl_text_set(obj, "Start Alpha Animation from 0.0 to 1.0"); } - - //Let Animation Object start animation - efl_player_playing_set(ad->anim_obj, EINA_TRUE); } static void @@ -96,6 +99,7 @@ test_efl_anim_start_delay(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, evas_object_resize(btn, 200, 200); evas_object_move(btn, 100, 50); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Show Animation Efl_Canvas_Animation *show_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, win); @@ -130,23 +134,12 @@ test_efl_anim_start_delay(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, evas_object_move(start_delay_spin, 100, 350); evas_object_show(start_delay_spin); - //Initialize App Data ad->show_anim = show_anim; ad->hide_anim = hide_anim; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, ad); - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); - ad->start_delay_spin = start_delay_spin; ad->is_btn_visible = EINA_TRUE; - + ad->button = btn; evas_object_resize(win, 400, 450); evas_object_show(win); diff --git a/src/bin/elementary/test_efl_anim_translate.c b/src/bin/elementary/test_efl_anim_translate.c index 5bbf1b22e7..7617be87d1 100644 --- a/src/bin/elementary/test_efl_anim_translate.c +++ b/src/bin/elementary/test_efl_anim_translate.c @@ -7,31 +7,38 @@ typedef struct _App_Data { Efl_Canvas_Animation *translate_rb_anim; Efl_Canvas_Animation *translate_lt_anim; - Efl_Canvas_Animation_Player *anim_obj; + Elm_Button *button; Eina_Bool is_btn_translated; } App_Data; static void -_anim_started_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) +_anim_changed_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) { - printf("Animation has been started!\n"); -} + Eo *anim = event->info; -static void -_anim_ended_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED) -{ - printf("Animation has been ended!\n"); + if (anim) + { + printf("Animation has been started!\n"); + } + else + { + printf("Animation has been ended!\n"); + } } static void _anim_running_cb(void *data EINA_UNUSED, const Efl_Event *event) { - Efl_Canvas_Animation_Player_Event_Running *event_running = event->info; - double progress = event_running->progress; - printf("Animation is running! Current progress(%lf)\n", progress); + double *progress = event->info; + printf("Animation is running! Current progress(%lf)\n", *progress); } +EFL_CALLBACKS_ARRAY_DEFINE(animation_stats_cb, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, _anim_changed_cb }, + {EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, _anim_running_cb }, +) + static void _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { @@ -42,18 +49,15 @@ _btn_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) if (ad->is_btn_translated) { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->translate_rb_anim); + efl_canvas_object_animation_start(ad->button, ad->translate_rb_anim, 1.0, 0.0); efl_text_set(obj, "Start Translate Animation to left top"); } else { //Create Animation Object from Animation - efl_animation_player_animation_set(ad->anim_obj, ad->translate_lt_anim); + efl_canvas_object_animation_start(ad->button, ad->translate_lt_anim, 1.0, 0.0); efl_text_set(obj, "Start Translate Animation to right bottom"); } - - //Let Animation Object start animation - efl_player_playing_set(ad->anim_obj, EINA_TRUE); } static void @@ -81,6 +85,7 @@ test_efl_anim_translate(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, vo evas_object_resize(btn, 150, 150); evas_object_move(btn, 125, 100); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Translate Animation to right bottom relatively Efl_Canvas_Animation *translate_rb_anim = efl_add(EFL_CANVAS_ANIMATION_TRANSLATE_CLASS, win); @@ -97,15 +102,7 @@ test_efl_anim_translate(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, vo //Initialize App Data ad->translate_rb_anim = translate_rb_anim; ad->translate_lt_anim = translate_lt_anim; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, NULL); - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); - + ad->button = btn; ad->is_btn_translated = EINA_FALSE; //Button to start animation @@ -139,6 +136,7 @@ test_efl_anim_translate_absolute(void *data EINA_UNUSED, Evas_Object *obj EINA_U evas_object_resize(btn, 150, 150); evas_object_move(btn, 125, 100); evas_object_show(btn); + efl_event_callback_array_add(btn, animation_stats_cb(), ad); //Absolute coordinate (0, 0) for absolute translation Evas_Object *abs_center = elm_button_add(win); @@ -164,14 +162,7 @@ test_efl_anim_translate_absolute(void *data EINA_UNUSED, Evas_Object *obj EINA_U ad->translate_rb_anim = translate_rb_anim; ad->translate_lt_anim = translate_lt_anim; ad->is_btn_translated = EINA_FALSE; - ad->anim_obj = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS, win, - efl_animation_player_target_set(efl_added, btn)); - //Register callback called when animation starts - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_STARTED, _anim_started_cb, NULL); - //Register callback called when animation ends - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_ENDED, _anim_ended_cb, NULL); - //Register callback called while animation is executed - efl_event_callback_add(ad->anim_obj, EFL_ANIMATION_PLAYER_EVENT_RUNNING, _anim_running_cb, NULL); + ad->button = btn; //Button to start animation Evas_Object *btn2 = elm_button_add(win); |