diff options
27 files changed, 181 insertions, 2 deletions
diff --git a/src/lib/evas/Evas_Internal.h b/src/lib/evas/Evas_Internal.h index 19cb0fcbfd..af8fcd6b6e 100644 --- a/src/lib/evas/Evas_Internal.h +++ b/src/lib/evas/Evas_Internal.h @@ -113,6 +113,9 @@ EOAPI Efl_Animation_Object_Repeat_Mode efl_animation_object_repeat_mode_get(cons EOAPI void efl_animation_object_repeat_count_set(Eo *obj, int count); EOAPI int efl_animation_object_repeat_count_get(const Eo *obj); +EOAPI void efl_animation_object_interpolator_set(Eo *obj, Efl_Object *interpolator); +EOAPI Efl_Object *efl_animation_object_interpolator_get(const Eo *obj); + EWAPI extern const Efl_Event_Description _EFL_ANIMATION_OBJECT_EVENT_PRE_START; #define EFL_ANIMATION_OBJECT_EVENT_PRE_START (&(_EFL_ANIMATION_OBJECT_EVENT_PRE_START)) /* Efl.Animation.Object END */ diff --git a/src/lib/evas/canvas/efl_animation.c b/src/lib/evas/canvas/efl_animation.c index f01a40ba67..874e4107dd 100644 --- a/src/lib/evas/canvas/efl_animation.c +++ b/src/lib/evas/canvas/efl_animation.c @@ -196,6 +196,25 @@ _efl_animation_start_delay_get(Eo *eo_obj, return pd->start_delay_time; } +EOLIAN static void +_efl_animation_interpolator_set(Eo *eo_obj, + Efl_Animation_Data *pd, + Efl_Interpolator *interpolator) +{ + EFL_ANIMATION_CHECK_OR_RETURN(eo_obj); + + pd->interpolator = interpolator; +} + +EOLIAN static Efl_Interpolator * +_efl_animation_interpolator_get(Eo *eo_obj, + Efl_Animation_Data *pd) +{ + EFL_ANIMATION_CHECK_OR_RETURN(eo_obj, NULL); + + return pd->interpolator; +} + EOLIAN static Efl_Object * _efl_animation_efl_object_constructor(Eo *eo_obj, Efl_Animation_Data *pd) @@ -210,6 +229,8 @@ _efl_animation_efl_object_constructor(Eo *eo_obj, pd->repeat_count = 0; + pd->interpolator = NULL; + pd->is_deleted = EINA_FALSE; pd->keep_final_state = EINA_FALSE; diff --git a/src/lib/evas/canvas/efl_animation.eo b/src/lib/evas/canvas/efl_animation.eo index edcfec0d67..4dc169b0f8 100644 --- a/src/lib/evas/canvas/efl_animation.eo +++ b/src/lib/evas/canvas/efl_animation.eo @@ -74,6 +74,15 @@ class Efl.Animation (Efl.Object) delay_time: double; [[Delay time, in seconds, from when the animation starts until the animation is animated]] } } + @property interpolator { + set { + } + get { + } + values { + interpolator: Efl.Object; [[Interpolator which indicates interpolation fucntion. Efl_Interpolator is required.]] + } + } is_deleted @protected { return: bool; [[$true if animation is deleted, $false otherwise.]] } diff --git a/src/lib/evas/canvas/efl_animation_alpha.c b/src/lib/evas/canvas/efl_animation_alpha.c index 8dff1442ed..2e21e6a24b 100644 --- a/src/lib/evas/canvas/efl_animation_alpha.c +++ b/src/lib/evas/canvas/efl_animation_alpha.c @@ -57,6 +57,9 @@ _efl_animation_alpha_efl_animation_object_create(Eo *eo_obj, int repeat_count = efl_animation_repeat_count_get(eo_obj); efl_animation_object_repeat_count_set(anim_obj, repeat_count); + Efl_Interpolator *interpolator = efl_animation_interpolator_get(eo_obj); + efl_animation_object_interpolator_set(anim_obj, interpolator); + efl_animation_object_alpha_set(anim_obj, pd->from.alpha, pd->to.alpha); return anim_obj; diff --git a/src/lib/evas/canvas/efl_animation_alpha_private.h b/src/lib/evas/canvas/efl_animation_alpha_private.h index 58e429eb07..fc08be75bc 100644 --- a/src/lib/evas/canvas/efl_animation_alpha_private.h +++ b/src/lib/evas/canvas/efl_animation_alpha_private.h @@ -1,6 +1,7 @@ #define EFL_ANIMATION_PROTECTED #include "evas_common_private.h" +#include <Ecore.h> #define MY_CLASS EFL_ANIMATION_ALPHA_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) diff --git a/src/lib/evas/canvas/efl_animation_group.c b/src/lib/evas/canvas/efl_animation_group.c index 750a69de9f..dd2b30a20e 100644 --- a/src/lib/evas/canvas/efl_animation_group.c +++ b/src/lib/evas/canvas/efl_animation_group.c @@ -106,6 +106,23 @@ _efl_animation_group_efl_animation_final_state_keep_set(Eo *eo_obj, efl_animation_final_state_keep_set(efl_super(eo_obj, MY_CLASS), keep_final_state); } +EOLIAN static void +_efl_animation_group_efl_animation_interpolator_set(Eo *eo_obj, + Efl_Animation_Group_Data *pd, + Efl_Interpolator *interpolator) +{ + EFL_ANIMATION_GROUP_CHECK_OR_RETURN(eo_obj); + + Eina_List *l; + Efl_Animation *anim; + EINA_LIST_FOREACH(pd->animations, l, anim) + { + efl_animation_interpolator_set(anim, interpolator); + } + + efl_animation_interpolator_set(efl_super(eo_obj, MY_CLASS), interpolator); +} + EOLIAN static Efl_Object * _efl_animation_group_efl_object_constructor(Eo *eo_obj, Efl_Animation_Group_Data *pd) diff --git a/src/lib/evas/canvas/efl_animation_group.eo b/src/lib/evas/canvas/efl_animation_group.eo index c287490907..a431e39737 100644 --- a/src/lib/evas/canvas/efl_animation_group.eo +++ b/src/lib/evas/canvas/efl_animation_group.eo @@ -28,5 +28,6 @@ abstract Efl.Animation.Group (Efl.Animation) Efl.Animation.target { set; } Efl.Animation.duration { set; } Efl.Animation.final_state_keep { set; } + Efl.Animation.interpolator { set; } } } diff --git a/src/lib/evas/canvas/efl_animation_group_parallel.c b/src/lib/evas/canvas/efl_animation_group_parallel.c index 36a2e0653b..1a0bb460ab 100644 --- a/src/lib/evas/canvas/efl_animation_group_parallel.c +++ b/src/lib/evas/canvas/efl_animation_group_parallel.c @@ -116,6 +116,9 @@ _efl_animation_group_parallel_efl_animation_object_create(Eo *eo_obj, int repeat_count = efl_animation_repeat_count_get(eo_obj); efl_animation_object_repeat_count_set(group_anim_obj, repeat_count); + Efl_Interpolator *interpolator = efl_animation_interpolator_get(eo_obj); + efl_animation_object_interpolator_set(group_anim_obj, interpolator); + return group_anim_obj; } diff --git a/src/lib/evas/canvas/efl_animation_group_parallel_private.h b/src/lib/evas/canvas/efl_animation_group_parallel_private.h index b425a1606e..a2f00cd3dd 100644 --- a/src/lib/evas/canvas/efl_animation_group_parallel_private.h +++ b/src/lib/evas/canvas/efl_animation_group_parallel_private.h @@ -1,6 +1,7 @@ #define EFL_ANIMATION_PROTECTED #include "evas_common_private.h" +#include <Ecore.h> #define MY_CLASS EFL_ANIMATION_GROUP_PARALLEL_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) diff --git a/src/lib/evas/canvas/efl_animation_group_private.h b/src/lib/evas/canvas/efl_animation_group_private.h index 0ce4728bf2..c107828c74 100644 --- a/src/lib/evas/canvas/efl_animation_group_private.h +++ b/src/lib/evas/canvas/efl_animation_group_private.h @@ -1,6 +1,7 @@ #define EFL_ANIMATION_PROTECTED #include "evas_common_private.h" +#include <Ecore.h> #define MY_CLASS EFL_ANIMATION_GROUP_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) diff --git a/src/lib/evas/canvas/efl_animation_group_sequential.c b/src/lib/evas/canvas/efl_animation_group_sequential.c index f40b769fdd..5f858586fc 100644 --- a/src/lib/evas/canvas/efl_animation_group_sequential.c +++ b/src/lib/evas/canvas/efl_animation_group_sequential.c @@ -110,6 +110,9 @@ _efl_animation_group_sequential_efl_animation_object_create(Eo *eo_obj, int repeat_count = efl_animation_repeat_count_get(eo_obj); efl_animation_object_repeat_count_set(group_anim_obj, repeat_count); + Efl_Interpolator *interpolator = efl_animation_interpolator_get(eo_obj); + efl_animation_object_interpolator_set(group_anim_obj, interpolator); + return group_anim_obj; } diff --git a/src/lib/evas/canvas/efl_animation_group_sequential_private.h b/src/lib/evas/canvas/efl_animation_group_sequential_private.h index e944ffdcb0..4fe4dc08d7 100644 --- a/src/lib/evas/canvas/efl_animation_group_sequential_private.h +++ b/src/lib/evas/canvas/efl_animation_group_sequential_private.h @@ -1,6 +1,7 @@ #define EFL_ANIMATION_PROTECTED #include "evas_common_private.h" +#include <Ecore.h> #define MY_CLASS EFL_ANIMATION_GROUP_SEQUENTIAL_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) diff --git a/src/lib/evas/canvas/efl_animation_object.c b/src/lib/evas/canvas/efl_animation_object.c index 21be199852..6d6c8d2abd 100644 --- a/src/lib/evas/canvas/efl_animation_object.c +++ b/src/lib/evas/canvas/efl_animation_object.c @@ -151,6 +151,24 @@ _efl_animation_object_start_delay_get(Eo *eo_obj, return pd->start_delay_time; } +EOLIAN static void +_efl_animation_object_interpolator_set(Eo *eo_obj, + Efl_Animation_Object_Data *pd, + Efl_Interpolator *interpolator) +{ + EFL_ANIMATION_OBJECT_CHECK_OR_RETURN(eo_obj); + + pd->interpolator = interpolator; +} + +EOLIAN static Efl_Interpolator * +_efl_animation_object_interpolator_get(Eo *eo_obj, + Efl_Animation_Object_Data *pd) +{ + EFL_ANIMATION_OBJECT_CHECK_OR_RETURN(eo_obj, NULL); + + return pd->interpolator; +} EOLIAN static Eina_Bool _efl_animation_object_is_deleted(Eo *eo_obj, @@ -296,6 +314,13 @@ _animator_cb(void *data) if (!pd->is_direction_forward) pd->progress = 1.0 - pd->progress; + //Apply interpolator + if (pd->interpolator) + { + pd->progress = efl_interpolator_interpolate(pd->interpolator, + pd->progress); + } + //Reset previous animation effect before applying animation effect /* FIXME: When the target state is saved, it may not be finished to calculate * target geometry. @@ -456,6 +481,13 @@ _efl_animation_object_progress_set(Eo *eo_obj, if (!pd->is_direction_forward) pd->progress = 1.0 - pd->progress; + //Apply interpolator + if (pd->interpolator) + { + pd->progress = efl_interpolator_interpolate(pd->interpolator, + pd->progress); + } + Efl_Animation_Object_Animate_Event_Info event_info; event_info.progress = progress; @@ -524,6 +556,8 @@ _efl_animation_object_efl_object_constructor(Eo *eo_obj, pd->repeat_mode = EFL_ANIMATION_OBJECT_REPEAT_MODE_RESTART; pd->repeat_count = 0; + pd->interpolator = NULL; + pd->is_deleted = EINA_FALSE; pd->is_cancelled = EINA_FALSE; pd->keep_final_state = EINA_FALSE; @@ -583,6 +617,9 @@ EOAPI EFL_FUNC_BODY_CONST(efl_animation_object_repeat_mode_get, Efl_Animation_Ob EOAPI EFL_VOID_FUNC_BODYV(efl_animation_object_repeat_count_set, EFL_FUNC_CALL(count), int count); EOAPI EFL_FUNC_BODY_CONST(efl_animation_object_repeat_count_get, int, 0); +EOAPI EFL_VOID_FUNC_BODYV(efl_animation_object_interpolator_set, EFL_FUNC_CALL(interpolator), Efl_Interpolator *interpolator); +EOAPI EFL_FUNC_BODY_CONST(efl_animation_object_interpolator_get, Efl_Interpolator *, NULL); + #define EFL_ANIMATION_OBJECT_EXTRA_OPS \ EFL_OBJECT_OP_FUNC(efl_animation_object_target_set, _efl_animation_object_target_set), \ EFL_OBJECT_OP_FUNC(efl_animation_object_target_get, _efl_animation_object_target_get), \ @@ -598,7 +635,9 @@ EOAPI EFL_FUNC_BODY_CONST(efl_animation_object_repeat_count_get, int, 0); EFL_OBJECT_OP_FUNC(efl_animation_object_repeat_mode_set, _efl_animation_object_repeat_mode_set), \ EFL_OBJECT_OP_FUNC(efl_animation_object_repeat_mode_get, _efl_animation_object_repeat_mode_get), \ EFL_OBJECT_OP_FUNC(efl_animation_object_repeat_count_set, _efl_animation_object_repeat_count_set), \ - EFL_OBJECT_OP_FUNC(efl_animation_object_repeat_count_get, _efl_animation_object_repeat_count_get) + EFL_OBJECT_OP_FUNC(efl_animation_object_repeat_count_get, _efl_animation_object_repeat_count_get), \ + EFL_OBJECT_OP_FUNC(efl_animation_object_interpolator_set, _efl_animation_object_interpolator_set), \ + EFL_OBJECT_OP_FUNC(efl_animation_object_interpolator_get, _efl_animation_object_interpolator_get) EWAPI const Efl_Event_Description _EFL_ANIMATION_OBJECT_EVENT_PRE_START = EFL_EVENT_DESCRIPTION("pre_start"); diff --git a/src/lib/evas/canvas/efl_animation_object_group.c b/src/lib/evas/canvas/efl_animation_object_group.c index df3aca148c..6c8c1b2893 100644 --- a/src/lib/evas/canvas/efl_animation_object_group.c +++ b/src/lib/evas/canvas/efl_animation_object_group.c @@ -112,6 +112,25 @@ _efl_animation_object_group_efl_animation_object_final_state_keep_set(Eo *eo_obj state_keep); } +EOLIAN static void +_efl_animation_object_group_efl_animation_object_interpolator_set(Eo *eo_obj, + Efl_Animation_Object_Group_Data *pd, + Efl_Interpolator *interpolator) +{ + EFL_ANIMATION_OBJECT_GROUP_CHECK_OR_RETURN(eo_obj); + + Eina_List *l; + Efl_Animation_Object *anim_obj; + + EINA_LIST_FOREACH(pd->anim_objs, l, anim_obj) + { + efl_animation_object_interpolator_set(anim_obj, interpolator); + } + + efl_animation_object_interpolator_set(efl_super(eo_obj, MY_CLASS), + interpolator); +} + EOLIAN static Efl_Object * _efl_animation_object_group_efl_object_constructor(Eo *eo_obj, Efl_Animation_Object_Group_Data *pd) @@ -198,6 +217,7 @@ EOAPI EFL_FUNC_BODY(efl_animation_object_group_objects_get, Eina_List *, NULL); EFL_OBJECT_OP_FUNC(efl_animation_object_group_objects_get, _efl_animation_object_group_objects_get), \ EFL_OBJECT_OP_FUNC(efl_animation_object_target_set, _efl_animation_object_group_efl_animation_object_target_set), \ EFL_OBJECT_OP_FUNC(efl_animation_object_duration_set, _efl_animation_object_group_efl_animation_object_duration_set), \ - EFL_OBJECT_OP_FUNC(efl_animation_object_final_state_keep_set, _efl_animation_object_group_efl_animation_object_final_state_keep_set) + EFL_OBJECT_OP_FUNC(efl_animation_object_final_state_keep_set, _efl_animation_object_group_efl_animation_object_final_state_keep_set), \ + EFL_OBJECT_OP_FUNC(efl_animation_object_interpolator_set, _efl_animation_object_group_efl_animation_object_interpolator_set) #include "efl_animation_object_group.eo.c" diff --git a/src/lib/evas/canvas/efl_animation_object_group_parallel.c b/src/lib/evas/canvas/efl_animation_object_group_parallel.c index 544c926510..fd43ba00db 100644 --- a/src/lib/evas/canvas/efl_animation_object_group_parallel.c +++ b/src/lib/evas/canvas/efl_animation_object_group_parallel.c @@ -244,6 +244,24 @@ _efl_animation_object_group_parallel_efl_animation_object_progress_set(Eo *eo_ob } } + //Apply interpolator + Efl_Interpolator *group_interp = + efl_animation_object_interpolator_get(eo_obj); + + /* If group interpolator exists, then the group interpolator has been + * already applied. So it is not needed to apply interpolator again. */ + if (!group_interp) + { + Efl_Interpolator *interpolator = + efl_animation_object_interpolator_get(anim_obj); + if (interpolator) + { + anim_obj_progress = + efl_interpolator_interpolate(interpolator, + anim_obj_progress); + } + } + efl_animation_object_progress_set(anim_obj, anim_obj_progress); } } diff --git a/src/lib/evas/canvas/efl_animation_object_group_parallel_private.h b/src/lib/evas/canvas/efl_animation_object_group_parallel_private.h index 8ccfe5d7e8..d6119623ba 100644 --- a/src/lib/evas/canvas/efl_animation_object_group_parallel_private.h +++ b/src/lib/evas/canvas/efl_animation_object_group_parallel_private.h @@ -1,6 +1,7 @@ #define EFL_ANIMATION_OBJECT_PROTECTED #include "evas_common_private.h" +#include <Ecore.h> #define MY_CLASS EFL_ANIMATION_OBJECT_GROUP_PARALLEL_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) diff --git a/src/lib/evas/canvas/efl_animation_object_group_private.h b/src/lib/evas/canvas/efl_animation_object_group_private.h index a710b462e7..52456b3f89 100644 --- a/src/lib/evas/canvas/efl_animation_object_group_private.h +++ b/src/lib/evas/canvas/efl_animation_object_group_private.h @@ -1,6 +1,7 @@ #define EFL_ANIMATION_OBJECT_PROTECTED #include "evas_common_private.h" +#include <Ecore.h> #define MY_CLASS EFL_ANIMATION_OBJECT_GROUP_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) diff --git a/src/lib/evas/canvas/efl_animation_object_group_sequential.c b/src/lib/evas/canvas/efl_animation_object_group_sequential.c index 2a650cf72c..572d4cf565 100644 --- a/src/lib/evas/canvas/efl_animation_object_group_sequential.c +++ b/src/lib/evas/canvas/efl_animation_object_group_sequential.c @@ -257,6 +257,24 @@ _efl_animation_object_group_sequential_efl_animation_object_progress_set(Eo *eo_ } } + //Apply interpolator + Efl_Interpolator *group_interp = + efl_animation_object_interpolator_get(eo_obj); + + /* If group interpolator exists, then the group interpolator has been + * already applied. So it is not needed to apply interpolator again. */ + if (!group_interp) + { + Efl_Interpolator *interpolator = + efl_animation_object_interpolator_get(anim_obj); + if (interpolator) + { + anim_obj_progress = + efl_interpolator_interpolate(interpolator, + anim_obj_progress); + } + } + efl_animation_object_progress_set(anim_obj, anim_obj_progress); } } diff --git a/src/lib/evas/canvas/efl_animation_object_group_sequential_private.h b/src/lib/evas/canvas/efl_animation_object_group_sequential_private.h index aa6f989acf..f0bbe8f7a1 100644 --- a/src/lib/evas/canvas/efl_animation_object_group_sequential_private.h +++ b/src/lib/evas/canvas/efl_animation_object_group_sequential_private.h @@ -1,6 +1,7 @@ #define EFL_ANIMATION_OBJECT_PROTECTED #include "evas_common_private.h" +#include <Ecore.h> #define MY_CLASS EFL_ANIMATION_OBJECT_GROUP_SEQUENTIAL_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) diff --git a/src/lib/evas/canvas/efl_animation_object_private.h b/src/lib/evas/canvas/efl_animation_object_private.h index c4675815b3..591835fe94 100644 --- a/src/lib/evas/canvas/efl_animation_object_private.h +++ b/src/lib/evas/canvas/efl_animation_object_private.h @@ -41,6 +41,8 @@ typedef struct _Efl_Animation_Object_Data int repeat_count; int remaining_repeat_count; + Efl_Interpolator *interpolator; + Eina_Bool is_deleted : 1; Eina_Bool is_started : 1; Eina_Bool is_cancelled : 1; diff --git a/src/lib/evas/canvas/efl_animation_private.h b/src/lib/evas/canvas/efl_animation_private.h index 1cd84d2a59..466bbfdcf2 100644 --- a/src/lib/evas/canvas/efl_animation_private.h +++ b/src/lib/evas/canvas/efl_animation_private.h @@ -1,6 +1,7 @@ #define EFL_ANIMATION_PROTECTED #include "evas_common_private.h" +#include <Ecore.h> #define MY_CLASS EFL_ANIMATION_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) @@ -17,6 +18,8 @@ typedef struct _Efl_Animation_Data Efl_Animation_Repeat_Mode repeat_mode; int repeat_count; + Efl_Interpolator *interpolator; + Eina_Bool is_deleted : 1; Eina_Bool keep_final_state : 1; } Efl_Animation_Data; diff --git a/src/lib/evas/canvas/efl_animation_rotate.c b/src/lib/evas/canvas/efl_animation_rotate.c index addfc2e9bf..53c7de7c72 100644 --- a/src/lib/evas/canvas/efl_animation_rotate.c +++ b/src/lib/evas/canvas/efl_animation_rotate.c @@ -205,6 +205,9 @@ _efl_animation_rotate_efl_animation_object_create(Eo *eo_obj, int repeat_count = efl_animation_repeat_count_get(eo_obj); efl_animation_object_repeat_count_set(anim_obj, repeat_count); + Efl_Interpolator *interpolator = efl_animation_interpolator_get(eo_obj); + efl_animation_object_interpolator_set(anim_obj, interpolator); + if (pd->use_rel_pivot) { efl_animation_object_rotate_set(anim_obj, diff --git a/src/lib/evas/canvas/efl_animation_rotate_private.h b/src/lib/evas/canvas/efl_animation_rotate_private.h index 58e7d12554..6dcda258cb 100644 --- a/src/lib/evas/canvas/efl_animation_rotate_private.h +++ b/src/lib/evas/canvas/efl_animation_rotate_private.h @@ -1,6 +1,7 @@ #define EFL_ANIMATION_PROTECTED #include "evas_common_private.h" +#include <Ecore.h> #define MY_CLASS EFL_ANIMATION_ROTATE_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) diff --git a/src/lib/evas/canvas/efl_animation_scale.c b/src/lib/evas/canvas/efl_animation_scale.c index ed7ad3b142..11f27c211d 100644 --- a/src/lib/evas/canvas/efl_animation_scale.c +++ b/src/lib/evas/canvas/efl_animation_scale.c @@ -231,6 +231,9 @@ _efl_animation_scale_efl_animation_object_create(Eo *eo_obj, int repeat_count = efl_animation_repeat_count_get(eo_obj); efl_animation_object_repeat_count_set(anim_obj, repeat_count); + Efl_Interpolator *interpolator = efl_animation_interpolator_get(eo_obj); + efl_animation_object_interpolator_set(anim_obj, interpolator); + if (pd->use_rel_pivot) { efl_animation_object_scale_set(anim_obj, diff --git a/src/lib/evas/canvas/efl_animation_scale_private.h b/src/lib/evas/canvas/efl_animation_scale_private.h index 298097a64c..f9be19f3b7 100644 --- a/src/lib/evas/canvas/efl_animation_scale_private.h +++ b/src/lib/evas/canvas/efl_animation_scale_private.h @@ -1,6 +1,7 @@ #define EFL_ANIMATION_PROTECTED #include "evas_common_private.h" +#include <Ecore.h> #define MY_CLASS EFL_ANIMATION_SCALE_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) diff --git a/src/lib/evas/canvas/efl_animation_translate.c b/src/lib/evas/canvas/efl_animation_translate.c index 622727697f..79cf8f131d 100644 --- a/src/lib/evas/canvas/efl_animation_translate.c +++ b/src/lib/evas/canvas/efl_animation_translate.c @@ -173,6 +173,9 @@ _efl_animation_translate_efl_animation_object_create(Eo *eo_obj, int repeat_count = efl_animation_repeat_count_get(eo_obj); efl_animation_object_repeat_count_set(anim_obj, repeat_count); + Efl_Interpolator *interpolator = efl_animation_interpolator_get(eo_obj); + efl_animation_object_interpolator_set(anim_obj, interpolator); + if (pd->use_rel_move) { efl_animation_object_translate_set(anim_obj, diff --git a/src/lib/evas/canvas/efl_animation_translate_private.h b/src/lib/evas/canvas/efl_animation_translate_private.h index 7428012e98..6b4a69c697 100644 --- a/src/lib/evas/canvas/efl_animation_translate_private.h +++ b/src/lib/evas/canvas/efl_animation_translate_private.h @@ -1,6 +1,7 @@ #define EFL_ANIMATION_PROTECTED #include "evas_common_private.h" +#include <Ecore.h> #define MY_CLASS EFL_ANIMATION_TRANSLATE_CLASS #define MY_CLASS_NAME efl_class_name_get(MY_CLASS) |