We need to emit sigs also to windows that close...etc...etc...
dh
Enlightenment SVN wrote:
> Log:
> track subobjs (used by entry only for now) and emit signals to them too
>
>
> Author: raster
> Date: 2008-11-16 21:54:01 -0800 (Sun, 16 Nov 2008)
> New Revision: 37688
>
> Modified:
> trunk/edje/src/lib/edje_entry.c trunk/edje/src/lib/edje_load.c
> trunk/edje/src/lib/edje_private.h trunk/edje/src/lib/edje_program.c
> trunk/edje/src/lib/edje_util.c
>
> Modified: trunk/edje/src/lib/edje_entry.c
> ===================================================================
> --- trunk/edje/src/lib/edje_entry.c 2008-11-17 04:10:07 UTC (rev 37687)
> +++ trunk/edje/src/lib/edje_entry.c 2008-11-17 05:54:01 UTC (rev 37688)
> @@ -273,6 +273,8 @@
> Sel *sel;
>
> sel = en->sel->data;
> + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs,
> sel->obj_bg);
> + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs,
> sel->obj_fg);
> if (sel->obj_bg) evas_object_del(sel->obj_bg);
> if (sel->obj_fg) evas_object_del(sel->obj_fg);
> free(sel);
> @@ -302,6 +304,8 @@
> while (en->sel)
> {
> sel = en->sel->data;
> + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs,
> sel->obj_bg);
> + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs,
> sel->obj_fg);
> if (sel->obj_bg) evas_object_del(sel->obj_bg);
> if (sel->obj_fg) evas_object_del(sel->obj_fg);
> free(sel);
> @@ -323,6 +327,8 @@
> evas_object_pass_events_set(ob, 1);
> evas_object_show(ob);
> sel->obj_bg = ob;
> + en->rp->edje->subobjs =
> eina_list_append(en->rp->edje->subobjs, sel->obj_bg);
> +
> ob = edje_object_add(en->rp->edje->evas);
> edje_object_file_set(ob, en->rp->edje->path,
> en->rp->part->source2);
> evas_object_smart_member_add(ob, smart);
> @@ -331,6 +337,7 @@
> evas_object_pass_events_set(ob, 1);
> evas_object_show(ob);
> sel->obj_fg = ob;
> + en->rp->edje->subobjs =
> eina_list_append(en->rp->edje->subobjs, sel->obj_fg);
> }
> }
> }
> @@ -503,6 +510,8 @@
> while (an->sel)
> {
> sel = an->sel->data;
> + en->rp->edje->subobjs =
> eina_list_remove(en->rp->edje->subobjs, sel->obj_bg);
> + en->rp->edje->subobjs =
> eina_list_remove(en->rp->edje->subobjs, sel->obj_fg);
> if (sel->obj_bg) evas_object_del(sel->obj_bg);
> if (sel->obj_fg) evas_object_del(sel->obj_fg);
> if (sel->obj) evas_object_del(sel->obj);
> @@ -523,6 +532,8 @@
> evas_object_pass_events_set(ob, 1);
> evas_object_show(ob);
> sel->obj_bg = ob;
> + en->rp->edje->subobjs =
> eina_list_append(en->rp->edje->subobjs, sel->obj_bg);
> +
> ob = edje_object_add(en->rp->edje->evas);
> edje_object_file_set(ob, en->rp->edje->path,
> en->rp->part->source6);
> evas_object_smart_member_add(ob, smart);
> @@ -531,6 +542,8 @@
> evas_object_pass_events_set(ob, 1);
> evas_object_show(ob);
> sel->obj_fg = ob;
> + en->rp->edje->subobjs =
> eina_list_append(en->rp->edje->subobjs, sel->obj_fg);
> +
> ob = evas_object_rectangle_add(en->rp->edje->evas);
> evas_object_color_set(ob, 0, 0, 0, 0);
> evas_object_smart_member_add(ob, smart);
> @@ -590,6 +603,8 @@
> while (an->sel)
> {
> Sel *sel = an->sel->data;
> + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs,
> sel->obj_bg);
> + en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs,
> sel->obj_fg);
> if (sel->obj_bg) evas_object_del(sel->obj_bg);
> if (sel->obj_fg) evas_object_del(sel->obj_fg);
> if (sel->obj) evas_object_del(sel->obj);
> @@ -1189,6 +1204,7 @@
> evas_object_stack_below(en->cursor_bg, rp->object);
> evas_object_clip_set(en->cursor_bg, evas_object_clip_get(rp->object));
> evas_object_pass_events_set(en->cursor_bg, 1);
> + rp->edje->subobjs = eina_list_append(rp->edje->subobjs, en->cursor_bg);
>
> en->cursor_fg = edje_object_add(rp->edje->evas);
> edje_object_file_set(en->cursor_fg, rp->edje->path, rp->part->source4);
> @@ -1196,12 +1212,13 @@
> evas_object_stack_above(en->cursor_fg, rp->object);
> evas_object_clip_set(en->cursor_fg, evas_object_clip_get(rp->object));
> evas_object_pass_events_set(en->cursor_fg, 1);
> + rp->edje->subobjs = eina_list_append(rp->edje->subobjs, en->cursor_fg);
> +
> if (rp->part->entry_mode >= EDJE_ENTRY_EDIT_MODE_EDITABLE)
> {
> evas_object_show(en->cursor_bg);
> evas_object_show(en->cursor_fg);
> }
> -
> en->cursor = evas_object_textblock_cursor_get(rp->object);
> }
>
> @@ -1213,6 +1230,8 @@
> rp->entry_data = NULL;
> _sel_clear(en->cursor, rp->object, en);
> _anchors_clear(en->cursor, rp->object, en);
> + rp->edje->subobjs = eina_list_remove(rp->edje->subobjs, en->cursor_bg);
> + rp->edje->subobjs = eina_list_remove(rp->edje->subobjs, en->cursor_fg);
> evas_object_del(en->cursor_bg);
> evas_object_del(en->cursor_fg);
> free(en);
>
> Modified: trunk/edje/src/lib/edje_load.c
> ===================================================================
> --- trunk/edje/src/lib/edje_load.c 2008-11-17 04:10:07 UTC (rev 37687)
> +++ trunk/edje/src/lib/edje_load.c 2008-11-17 05:54:01 UTC (rev 37688)
> @@ -587,6 +587,12 @@
> ed->load_error = EDJE_LOAD_ERROR_NONE;
> _edje_emit(ed, "load", NULL);
> }
> + // this has to be here to textblock works! otherwise textblock
> objects
> + // don't have styles. withotu styles textblock doesnt know how to
> + // convert markup to format nodes+text - so if u append or modify the
> + // text by appending format or text nodes, you lose the markup as it
> + // has no idea what to do. this forces at least a style to be applied
> + edje_object_calc_force(obj);
> return 1;
> }
> else
>
> Modified: trunk/edje/src/lib/edje_private.h
> ===================================================================
> --- trunk/edje/src/lib/edje_private.h 2008-11-17 04:10:07 UTC (rev 37687)
> +++ trunk/edje/src/lib/edje_private.h 2008-11-17 05:54:01 UTC (rev 37688)
> @@ -629,6 +629,7 @@
> Edje_Real_Part **table_parts;
> Edje_Program **table_programs;
> Edje_Real_Part *focused_part;
> + Eina_List *subobjs;
> void *script_only_data;
> int table_programs_size;
> int table_parts_size;
> @@ -1238,5 +1239,5 @@
> const Eina_List *_edje_entry_anchor_geometry_get(Edje_Real_Part *rp, const
> char *anchor);
> const Eina_List *_edje_entry_anchors_list(Edje_Real_Part *rp);
> void _edje_entry_cursor_geometry_get(Edje_Real_Part *rp, Evas_Coord *cx,
> Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch);
> -
> +
> #endif
>
> Modified: trunk/edje/src/lib/edje_program.c
> ===================================================================
> --- trunk/edje/src/lib/edje_program.c 2008-11-17 04:10:07 UTC (rev 37687)
> +++ trunk/edje/src/lib/edje_program.c 2008-11-17 05:54:01 UTC (rev 37688)
> @@ -812,11 +812,22 @@
> _edje_emit(Edje *ed, const char *sig, const char *src)
> {
> Edje_Message_Signal emsg;
> -
> + Eina_List *l;
> + Evas_Object *obj;
> +
> if (ed->delete_me) return;
> emsg.sig = sig;
> emsg.src = src;
> _edje_message_send(ed, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, &emsg);
> + EINA_LIST_FOREACH(ed->subobjs, l, obj)
> + {
> + Edje *ed2;
> +
> + ed2 = _edje_fetch(obj);
> + if (!ed2) continue;
> + if (ed2->delete_me) continue;
> + _edje_message_send(ed2, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0,
> &emsg);
> + }
> }
>
> struct _Edje_Program_Data
>
> Modified: trunk/edje/src/lib/edje_util.c
> ===================================================================
> --- trunk/edje/src/lib/edje_util.c 2008-11-17 04:10:07 UTC (rev 37687)
> +++ trunk/edje/src/lib/edje_util.c 2008-11-17 05:54:01 UTC (rev 37688)
> @@ -919,7 +919,7 @@
> rp = _edje_real_part_recursive_get(ed, (char *)part);
> if (!rp) return NULL;
> if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
> - return _edje_entry_text_get(rp);
> + return _edje_entry_text_get(rp);
> else
> {
> if (rp->part->type == EDJE_PART_TYPE_TEXT) return rp->text.text;
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> enlightenment-svn mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
>
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel