Oh. thanks. i tried again. 
 
-----Original Message-----
From: "Carsten Haitzler"<ras...@rasterman.com> 
To: "박춘언"<her...@naver.com>
Cc: enlightenment-devel@lists.sourceforge.net
Sent: 10-11-14(일) 11:15:42
Subject: Re: [E-devel] [Patch] elm_animator

On Sun, 14 Nov 2010 04:39:14 +0900 박춘언 said:

failed again :) renaming the patch to .txt or maybe zipping it or gzipping it
or tarring it up might help. your client is declaring mimetype as octet-stream
which is forbidden on sf.net mailing lists (virus fun)

> Ah... Sorry. 
> It seems failed to attach the patch file. 
> I try again. 
> 
> Thanks. 
> 
> -Hermet-
> 
> -----Original Message-----
> From: "박춘언"<her...@naver.com> 
> To: enlightenment-devel@lists.sourceforge.net
> Cc: 
> Sent: 10-11-14(일) 03:46:48
> Subject: [E-devel][Patch] elm_animator
> 
> Hello there. 
> 
> Please apply this simple patch for Elementary elm_animator
> 
> Thanks.


-- 
------------- Codito, ergo sum - "I code, therefore I am" 
--------------
The Rasterman (Carsten Haitzler) ras...@rasterman.com
Index: elm_animator.c
===================================================================
--- elm_animator.c      (revision 54534)
+++ elm_animator.c      (working copy)
@@ -1,17 +1,34 @@
 #include <Elementary.h>
 #include "elm_priv.h"
 
+#define ELM_ANIMATOR_CHECK_OR_RETURN(animator, ...) \
+   do { \
+      if (!animator) { \
+         CRITICAL("Elm_Animator " # animator " is NULL!"); \
+         return __VA_ARGS__; \
+      } \
+      if (!EINA_MAGIC_CHECK(animator, ELM_ANIMATOR_MAGIC)) { \
+         EINA_MAGIC_FAIL(animator, ELM_ANIMATOR_MAGIC); \
+         return __VA_ARGS__; \
+      } \
+   } while (0)
+
+
 /**
  * @addtogroup Animator Animator
  * @ingroup Elementary
  *
- * Support normalized frame value for animation.  
+ * elm_animator is designed to provides animation frame. 
+ * It is somewhat different with any others widgets however elm_animator might 
useful when your GUIs have animation. 
+ * Basically, it computes normalized frame value for animation, provides 
additional functions to adjust this also. 
+ * 
 */
-#define MAGIC_OBJ_ANIMATOR 0x40777770
 
 struct _Elm_Animator
 {
-   int magic;
+#define ELM_ANIMATOR_MAGIC 0x40777770
+   EINA_MAGIC;
+   
    Evas_Object *parent;
    Ecore_Animator *animator;
    double begin_time;
@@ -139,7 +156,7 @@
 EAPI Eina_Bool
 elm_animator_auto_reverse_get(const Elm_Animator *animator)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return 
EINA_FALSE;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator, EINA_FALSE);  
    return animator->auto_reverse;
 }
 
@@ -154,7 +171,7 @@
 EAPI unsigned int
 elm_animator_repeat_get(const Elm_Animator *animator)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return 0;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator, 0);  
    return animator->repeat_cnt;
 }
 
@@ -169,7 +186,7 @@
 EAPI void
 elm_animator_auto_reverse_set(Elm_Animator *animator, Eina_Bool reverse)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator);  
    if (animator->auto_reverse == reverse) return;
    animator->auto_reverse = reverse;
    if (reverse)
@@ -192,7 +209,7 @@
 elm_animator_curve_style_set(Elm_Animator *animator,
                             Elm_Animator_Curve_Style cs)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator);  
    switch (cs)
      {
      case ELM_ANIMATOR_CURVE_LINEAR:
@@ -224,7 +241,7 @@
 EAPI void
 elm_animator_duration_set(Elm_Animator *animator, double duration)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator);  
    if (animator->on_animating) return;
    animator->duration = duration;
 }
@@ -244,7 +261,7 @@
                                     Elm_Animator_Operation_Cb func,
                                     void *data)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator);  
    if (animator->on_animating) return;
    animator->animator_op = func;
    animator->animator_arg = data;
@@ -263,14 +280,13 @@
 {
    Elm_Animator *animator = ELM_NEW(Elm_Animator);
    if (!animator) return NULL;
+   EINA_MAGIC_SET(animator, ELM_ANIMATOR_MAGIC);
    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);
    if (parent)
       evas_object_event_callback_add(parent, EVAS_CALLBACK_DEL,
                                     _animator_parent_del, animator);
-
    return animator;
 }
 
@@ -285,7 +301,7 @@
 EAPI Eina_Bool
 elm_animator_operating_get(const Elm_Animator *animator)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return 
EINA_FALSE;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator, EINA_FALSE);  
    return animator->on_animating;
 }
 
@@ -299,13 +315,13 @@
 EAPI void
 elm_animator_del(Elm_Animator *animator)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator);  
    _delete_animator(animator);
    if (animator->parent)
       evas_object_event_callback_del(animator->parent, EVAS_CALLBACK_DEL,
                                     _animator_parent_del);
 
-   memset(animator, 0x0, sizeof(Elm_Animator));
+   EINA_MAGIC_SET(animator, EINA_MAGIC_NONE);
    free(animator);
 }
 
@@ -323,7 +339,7 @@
                                     Elm_Animator_Completion_Cb func,
                                      void *data)
 {
-   if (!animator || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator);  
    if (animator->on_animating) return;
    animator->completion_op = func;
    animator->completion_arg = data;
@@ -339,7 +355,7 @@
 EAPI void
 elm_animator_pause(Elm_Animator *animator)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator);  
    if (!animator->on_animating) return;
    ecore_animator_freeze(animator->animator);
 }
@@ -354,7 +370,7 @@
 EAPI void
 elm_animator_resume(Elm_Animator *animator)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator);  
    if (!animator->on_animating) return;
    ecore_animator_thaw(animator->animator);
 }
@@ -369,7 +385,7 @@
 EAPI void
 elm_animator_stop(Elm_Animator *animator)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator);  
    animator->on_animating = EINA_FALSE;
    _delete_animator(animator);
 }
@@ -385,7 +401,7 @@
 EAPI void
 elm_animator_repeat_set(Elm_Animator *animator, unsigned int repeat_cnt)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator);  
    if (!animator->auto_reverse) animator->repeat_cnt = repeat_cnt;
    else
       animator->repeat_cnt = 
_animator_compute_reverse_repeat_count(repeat_cnt);
@@ -401,7 +417,7 @@
 EAPI void
 elm_animator_animate(Elm_Animator *animator)
 {
-   if ((!animator) || (animator->magic != MAGIC_OBJ_ANIMATOR)) return;
+   ELM_ANIMATOR_CHECK_OR_RETURN(animator);  
    if (!animator->animator_op) return;
    animator->begin_time = ecore_loop_time_get();
    animator->cur_repeat_cnt = animator->repeat_cnt;
------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to