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