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);
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);
evas_object_pass_events_set(ob, EINA_TRUE);
evas_object_show(ob);
sel->obj_bg = ob;
- en->rp->edje->subobjs = eina_list_append(en->rp->edje->subobjs, sel->obj_bg);
+ _edje_subobj_register(en->rp->edje, sel->obj_bg);
ob = edje_object_add(en->rp->edje->base.evas);
edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source2);
evas_object_pass_events_set(ob, EINA_TRUE);
evas_object_show(ob);
sel->obj_fg = ob;
- en->rp->edje->subobjs = eina_list_append(en->rp->edje->subobjs, sel->obj_fg);
+ _edje_subobj_register(en->rp->edje, sel->obj_fg);
}
}
}
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);
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);
evas_object_pass_events_set(ob, EINA_TRUE);
evas_object_show(ob);
sel->obj_bg = ob;
- en->rp->edje->subobjs = eina_list_append(en->rp->edje->subobjs, sel->obj_bg);
+ _edje_subobj_register(en->rp->edje, sel->obj_bg);
ob = edje_object_add(en->rp->edje->base.evas);
edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source6);
evas_object_pass_events_set(ob, EINA_TRUE);
evas_object_show(ob);
sel->obj_fg = ob;
- en->rp->edje->subobjs = eina_list_append(en->rp->edje->subobjs, sel->obj_fg);
+ _edje_subobj_register(en->rp->edje, sel->obj_fg);
ob = evas_object_rectangle_add(en->rp->edje->base.evas);
evas_object_color_set(ob, 0, 0, 0, 0);
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);
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, EINA_TRUE);
- rp->edje->subobjs = eina_list_append(rp->edje->subobjs, en->cursor_bg);
+ _edje_subobj_register(en->rp->edje, en->cursor_bg);
en->cursor_fg = edje_object_add(rp->edje->base.evas);
edje_object_file_set(en->cursor_fg, rp->edje->path, rp->part->source4);
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, EINA_TRUE);
- rp->edje->subobjs = eina_list_append(rp->edje->subobjs, en->cursor_fg);
+ _edje_subobj_register(en->rp->edje, en->cursor_fg);
if (rp->part->entry_mode >= EDJE_ENTRY_EDIT_MODE_EDITABLE)
{
#ifdef HAVE_ECORE_IMF
_preedit_clear(en);
#endif
- 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);
edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void *msg)
{
Edje *ed;
- unsigned int i;
+ Eina_List *l;
+ Evas_Object *o;
ed = _edje_fetch(obj);
if (!ed) return;
-
_edje_message_send(ed, EDJE_QUEUE_SCRIPT, type, id, msg);
+ EINA_LIST_FOREACH(ed->subobjs, l, o)
+ {
+ edje_object_message_send(o, type, id, msg);
+ }
+/* old manual part walking code to send messages to children - should all
+ * be in subobjs if we care
+ unsigned int i;
for (i = 0; i < ed->table_parts_size; i++)
{
}
}
}
+ */
}
void
_edje_message_cb_set(Edje *ed, void (*func) (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg), void *data)
{
- unsigned int i;
+ Eina_List *l;
+ Evas_Object *o;
ed->message.func = func;
ed->message.data = data;
+ EINA_LIST_FOREACH(ed->subobjs, l, o)
+ {
+ Edje *edj2 = _edje_fetch(o);
+ if (!edj2) continue;
+ _edje_message_cb_set(edj2, func, data);
+ }
+/* old manual part walking code to send messages to children - should all
+ * be in subobjs if we care
+ unsigned int i;
+
for (i = 0; i < ed->table_parts_size; i++)
{
Edje_Real_Part *rp = ed->table_parts[i];
}
}
}
+ */
}
Edje_Message *
/* data should either be NULL or a malloc allocated data */
void
-_edje_emit_full(Edje *ed, const char *sig, const char *src, void *data,
- void (*free_func)(void *))
+_edje_emit_full(Edje *ed, const char *sig, const char *src, void *data, void (*free_func)(void *))
{
Edje_Message_Signal emsg;
- Eina_List *l;
- Evas_Object *obj;
const char *sep;
if (ed->delete_me) return;
{
emsg.data = NULL;
}
+/* new sends code */
+ edje_object_message_send(ed->obj, EDJE_MESSAGE_SIGNAL, 0, &emsg);
+/* old send code - use api now
_edje_message_send(ed, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, &emsg);
EINA_LIST_FOREACH(ed->subobjs, l, obj)
{
if (ed2->delete_me) continue;
_edje_message_send(ed2, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, &emsg);
}
-
+ */
if (emsg.data && (--(emsg.data->ref) == 0))
{
if (emsg.data->free_func)