Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        edje_main.c 


Log Message:


stop action supported. parser/compiler is accurate there in not needing more
params. stop is immediate - always. edje test program now uses arguments to
determine what to look at

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_main.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- edje_main.c 20 Jun 2003 09:38:27 -0000      1.10
+++ edje_main.c 20 Jun 2003 10:44:36 -0000      1.11
@@ -608,59 +608,83 @@
    Evas_List *l;
 
    _edje_emit(ed, "anim,start", pr->name);
-   if (pr->tween.time > 0.0)
+   if (pr->action == EDJE_ACTION_TYPE_STATE_SET)
      {
-       Edje_Running_Program *runp;
-
-       runp = calloc(1, sizeof(Edje_Running_Program));
-       for (l = pr->targets; l; l = l->next)
+       if (pr->tween.time > 0.0)
          {
-            Edje_Real_Part *rp;
-            Edje_Program_Target *pt;
+            Edje_Running_Program *runp;
             
-            pt = l->data;
-            rp = evas_list_nth(ed->parts, pt->id);
-            if (rp)
+            runp = calloc(1, sizeof(Edje_Running_Program));
+            for (l = pr->targets; l; l = l->next)
+              {
+                 Edje_Real_Part *rp;
+                 Edje_Program_Target *pt;
+                 
+                 pt = l->data;
+                 rp = evas_list_nth(ed->parts, pt->id);
+                 if (rp)
+                   {
+                      if (rp->program)
+                        _edje_program_end(ed, rp->program);
+                      _edje_part_description_apply(ed, rp, 
+                                                   rp->param1.description->state.name,
+                                                   
rp->param1.description->state.value, 
+                                                   pr->state, 
+                                                   pr->value);
+                      _edje_part_pos_set(ed, rp, pr->tween.mode, 0.0);
+                      rp->program = runp;
+                   }
+              }
+            
+            if (!ed->actions)
+              _edje_animators = evas_list_append(_edje_animators, ed);
+            ed->actions = evas_list_append(ed->actions, runp);
+            runp->start_time = ecore_time_get();
+            runp->edje = ed;
+            runp->program = pr;
+            if (!_edje_timer)
+              _edje_timer = ecore_timer_add(_edje_frametime, _edje_timer_cb, NULL);
+            _edje_anim_count++;
+         }
+       else
+         {
+            for (l = pr->targets; l; l = l->next)
               {
-                 if (rp->program)
-                   _edje_program_end(ed, rp->program);
-                 _edje_part_description_apply(ed, rp, 
-                                              rp->param1.description->state.name,
-                                              rp->param1.description->state.value, 
-                                              pr->state, 
-                                              pr->value);
-                 _edje_part_pos_set(ed, rp, pr->tween.mode, 0.0);
-                 rp->program = runp;
+                 Edje_Real_Part *rp;
+                 Edje_Program_Target *pt;
+                 
+                 pt = l->data;
+                 rp = evas_list_nth(ed->parts, pt->id);
+                 if (rp)
+                   {
+                      _edje_part_description_apply(ed, rp, 
+                                                   pr->state, 
+                                                   pr->value,
+                                                   NULL,
+                                              0.0);
+                      _edje_part_pos_set(ed, rp, pr->tween.mode, 0.0);
+                   }
               }
          }
-       
-       if (!ed->actions)
-         _edje_animators = evas_list_append(_edje_animators, ed);
-       ed->actions = evas_list_append(ed->actions, runp);
-       runp->start_time = ecore_time_get();
-       runp->edje = ed;
-       runp->program = pr;
-       if (!_edje_timer)
-         _edje_timer = ecore_timer_add(_edje_frametime, _edje_timer_cb, NULL);
-       _edje_anim_count++;
      }
-   else
+   else if (pr->action == EDJE_ACTION_TYPE_ACTION_STOP)
      {
        for (l = pr->targets; l; l = l->next)
          {
-            Edje_Real_Part *rp;
             Edje_Program_Target *pt;
+            Evas_List *ll;
             
             pt = l->data;
-            rp = evas_list_nth(ed->parts, pt->id);
-            if (rp)
+            for (ll = ed->actions; ll; ll = ll->next)
               {
-                 _edje_part_description_apply(ed, rp, 
-                                              pr->state, 
-                                              pr->value,
-                                              NULL,
-                                              0.0);
-                 _edje_part_pos_set(ed, rp, pr->tween.mode, 0.0);
+                 Edje_Running_Program *runp;
+                 
+                 runp = ll->data;
+                 if (pt->id == runp->program->id)
+                   {
+                      _edje_program_end(ed, runp);
+                      break;
+                   }
               }
          }
      }




-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to