forked from enlightenment/efl
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. Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D10636
This commit is contained in:
parent
fa93893548
commit
0792d042e5
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
||||
ad->running_anim_cnt--;
|
||||
|
||||
for (i = 0; i < INTERP_NUM; i++)
|
||||
if (anim)
|
||||
{
|
||||
if (ad->anim_obj[i] == event->object)
|
||||
{
|
||||
elm_object_disabled_set(ad->btn[i], EINA_FALSE);
|
||||
break;
|
||||
}
|
||||
printf("Animation has been started!\n");
|
||||
ad->running_anim_cnt++;
|
||||
}
|
||||
else
|
||||
{
|
||||
int i;
|
||||
|
||||
if (ad->running_anim_cnt == 0)
|
||||
elm_object_disabled_set(ad->start_all_btn, EINA_FALSE);
|
||||
printf("Animation has been ended!\n");
|
||||
ad->running_anim_cnt--;
|
||||
|
||||
for (i = 0; i < INTERP_NUM; i++)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
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");
|
||||
}
|
||||
printf("Animation has been started!\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
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)
|
||||
{
|
||||
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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue