*
* Support normalized frame value for animation.
*/
-#define ANIMATOR_DOGTAG 0x38
+#define MAGIC_OBJ_ANIMATOR 0x40777770
struct _Animator
{
void *animator_arg;
void (*completion_op) (void *data);
void *completion_arg;
- unsigned char dogtag;
+ int magic;
Eina_Bool auto_reverse:1;
Eina_Bool on_animating:1;
};
EAPI Eina_Bool
elm_animator_auto_reverse_get(Elm_Animator *animator)
{
- if (!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return EINA_FALSE;
return animator->auto_reverse;
}
EAPI unsigned int
elm_animator_repeat_get(Elm_Animator *animator)
{
- if (!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return EINA_FALSE;
return animator->repeat_cnt;
}
EAPI void
elm_animator_auto_reverse_set(Elm_Animator *animator, Eina_Bool reverse)
{
- if (!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return;
if (animator->auto_reverse == reverse)
return;
elm_animator_curve_style_set(Elm_Animator *animator,
Elm_Animator_Curve_Style cs)
{
- if (!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return;
switch (cs)
EAPI void
elm_animator_duration_set(Elm_Animator *animator, double duration)
{
- if (!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return;
if (animator->on_animating)
return;
Elm_Animator *animator,
double frame), void *data)
{
- if (!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return;
if (animator->on_animating)
return;
if (!animator)
return NULL;
+ animator->parent = parent;
+ animator->magic = MAGIC_OBJ_ANIMATOR;
+
elm_animator_auto_reverse_set(animator, EINA_FALSE);
elm_animator_curve_style_set(animator, ELM_ANIMATOR_CURVE_LINEAR);
_animator_parent_del, animator);
}
- animator->parent = parent;
- animator->dogtag = ANIMATOR_DOGTAG;
-
return animator;
}
EAPI Eina_Bool
elm_animator_operating_get(Elm_Animator *animator)
{
- if (!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return EINA_FALSE;
return animator->on_animating;
}
EAPI void
elm_animator_del(Elm_Animator *animator)
{
- if(animator->dogtag != ANIMATOR_DOGTAG) {
+ if(animator->magic != MAGIC_OBJ_ANIMATOR) {
return;
}
elm_animator_completion_callback_set(Elm_Animator *animator,
void (*func) (void *data), void *data)
{
- if (!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return;
if (animator->on_animating)
return;
EAPI void
elm_animator_pause(Elm_Animator *animator)
{
- if(!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return;
if(!animator->on_animating)
EAPI void
elm_animator_resume(Elm_Animator *animator)
{
- if(!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return;
if(!animator->on_animating)
EAPI void
elm_animator_stop(Elm_Animator *animator)
{
- if (!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return;
animator->on_animating = EINA_FALSE;
_delete_animator(animator);
EAPI void
elm_animator_repeat_set(Elm_Animator *animator, unsigned int repeat_cnt)
{
- if (!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return;
if (!animator->auto_reverse)
animator->repeat_cnt = repeat_cnt;
EAPI void
elm_animator_animate(Elm_Animator *animator)
{
- if (!animator)
+ if (animator->magic != MAGIC_OBJ_ANIMATOR)
return;
if (!animator->animator_op)
return;