Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        edje_main.c edje_private.h 


Log Message:


emissions now for the part collection soruce is now "". fixed a tinsy parser
bug for parsing "". emissions now wont recurse - but they may loop. hmm need
to limit that - easy to do this way though.

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_main.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- edje_main.c 19 Jun 2003 15:02:21 -0000      1.8
+++ edje_main.c 19 Jun 2003 23:56:27 -0000      1.9
@@ -58,6 +58,8 @@
 static double       _edje_frametime = 1.0 / 60.0;
 static Ecore_Timer *_edje_timer = NULL;
 static Evas_List   *_edje_animators = NULL;
+static Evas_Hash   *_edje_file_hash = NULL;
+
 
 static Evas_Smart *_edje_smart = NULL;
 
@@ -198,7 +200,7 @@
          }
        ed->dirty = 1;
        _edje_recalc(ed);
-       _edje_emit(ed, "load", ed->part);
+       _edje_emit(ed, "load", "");
      }
 }
 
@@ -245,8 +247,6 @@
    free(ed);
 }
 
-static Evas_Hash *_edje_file_hash = NULL;
-
 void
 _edje_file_add(Edje *ed)
 {
@@ -619,16 +619,38 @@
 _edje_emit(Edje *ed, char *sig, char *src)
 {
    Evas_List *l;
-   
-   printf("EMIT %s %s\n", sig, src);
-   for (l = ed->collection->programs; l; l = l->next)
+   static Evas_List *emissions = NULL;
+   Edje_Emission *ee;
+
+   printf("EMIT \"%s\" \"%s\"\n", sig, src);
+   ee = calloc(1, sizeof(Edje_Emission));
+   if (!ee) return;
+   ee->signal = strdup(sig);
+   ee->source = strdup(src);
+   if (emissions)
      {
-       Edje_Program *pr;
-       
-       pr = l->data;
-       if ((_edje_glob_match(sig, pr->signal)) &&
-           (_edje_glob_match(src, pr->source)))
-         _edje_program_run(ed, pr);
+       emissions = evas_list_append(emissions, ee);
+       return;
+     }
+   else
+     emissions = evas_list_append(emissions, ee);
+   while (emissions)
+     {
+       ee = emissions->data;
+       printf("  emission \"%s\" \"%s\"\n", ee->signal, ee->source);
+       emissions = evas_list_remove(emissions, ee);
+       for (l = ed->collection->programs; l; l = l->next)
+         {
+            Edje_Program *pr;
+            
+            pr = l->data;
+            if ((_edje_glob_match(ee->signal, pr->signal)) &&
+                (_edje_glob_match(ee->source, pr->source)))
+              _edje_program_run(ed, pr);
+         }
+       free(ee->signal);
+       free(ee->source);
+       free(ee);
      }
 }
 
@@ -1468,7 +1490,8 @@
 {
    Edje *ed;
    Evas_List *l;
-
+   char buf[256];
+   
    ed = evas_object_smart_data_get(obj);
    if (!ed) return;
    if (ed->layer == layer) return;
@@ -1480,6 +1503,8 @@
        ep = l->data;
        evas_object_layer_set(ep->object, ed->layer);
      }
+   snprintf(buf, sizeof(buf), "layer,set,%i", layer);
+   _edje_emit(ed, buf, "");
 }
 
 static void
@@ -1497,6 +1522,7 @@
        ep = l->data;
        evas_object_raise(ep->object);
      }
+   _edje_emit(ed, "raise", "");
 }
 
 static void
@@ -1514,6 +1540,7 @@
        ep = l->data;
        evas_object_lower(ep->object);
      }
+   _edje_emit(ed, "lower", "");
 }
 
 static void 
@@ -1531,6 +1558,7 @@
        ep = l->data;
        evas_object_stack_above(ep->object, above);
      }
+   _edje_emit(ed, "stack_above", "");
 }
 
 static void
@@ -1548,6 +1576,7 @@
        ep = l->data;
        evas_object_stack_below(ep->object, below);
      }
+   _edje_emit(ed, "stack_below", "");
 }
 
 static void 
@@ -1555,12 +1584,13 @@
 {
    Edje *ed;
    Evas_List *l;
+   double xx, yy;
    
    ed = evas_object_smart_data_get(obj);
    if (!ed) return;
+   if ((ed->x == x) && (ed->y == y)) return;
    ed->x = x;
    ed->y = y;
-
    evas_object_move(ed->clipper, ed->x, ed->y);
    
    for (l = ed->parts; l; l = l->next)
@@ -1570,6 +1600,7 @@
        ep = l->data;
        evas_object_move(ep->object, ed->x + ep->x, ed->y + ep->y);
      }
+   _edje_emit(ed, "move", "");
 }
 
 static void 
@@ -1588,6 +1619,7 @@
    evas_object_resize(ed->clipper, ed->w, ed->h);
    ed->dirty = 1;
    _edje_recalc(ed);
+   _edje_emit(ed, "resize", "");
 }
 
 static void 
@@ -1598,6 +1630,7 @@
    ed = evas_object_smart_data_get(obj);
    if (!ed) return;
    evas_object_show(ed->clipper);
+   _edje_emit(ed, "show", "");
 }
 
 static void 
@@ -1608,6 +1641,7 @@
    ed = evas_object_smart_data_get(obj);
    if (!ed) return;
    evas_object_hide(ed->clipper);
+   _edje_emit(ed, "hide", "");
 }
 
 static void 
@@ -1618,6 +1652,7 @@
    ed = evas_object_smart_data_get(obj);
    if (!ed) return;
    evas_object_color_set(ed->clipper, r, g, b, a);
+   _edje_emit(ed, "color_set", "");
 }
 
 static void 
@@ -1627,7 +1662,9 @@
 
    ed = evas_object_smart_data_get(obj);
    if (!ed) return;
+   if (evas_object_clip_get(obj) == clip) return;
    evas_object_clip_set(ed->clipper, clip);
+   _edje_emit(ed, "clip_set", "");
 }
 
 static void 
@@ -1637,5 +1674,7 @@
 
    ed = evas_object_smart_data_get(obj);
    if (!ed) return;
+   if (!evas_object_clip_get(obj)) return;
    evas_object_clip_unset(ed->clipper);
+   _edje_emit(ed, "clip_unset", "");
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- edje_private.h      19 Jun 2003 14:43:49 -0000      1.9
+++ edje_private.h      19 Jun 2003 23:56:27 -0000      1.10
@@ -292,6 +292,8 @@
 typedef struct _Edje Edje;
 typedef struct _Edje_Real_Part Edje_Real_Part;
 typedef struct _Edje_Running_Program Edje_Running_Program;
+typedef struct _Edje_Calc_Params Edje_Calc_Params;
+typedef struct _Edje_Emission Edje_Emission;
 
 struct _Edje
 {
@@ -340,8 +342,6 @@
    double          start_time;
 };
 
-typedef struct _Edje_Calc_Params Edje_Calc_Params;
-
 struct _Edje_Calc_Params
 {
    double           x, y, w, h;
@@ -355,6 +355,12 @@
    struct {   
       int           l, r, t, b;
    } border;
+};
+
+struct _Edje_Emission
+{
+   char *signal;
+   char *source;
 };
 
 extern Eet_Data_Descriptor *_edje_edd_edje_file;




-------------------------------------------------------
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