Forward messages to Edje defined children of box and table
authorsachiel <sachiel>
Sat, 13 Aug 2011 00:30:12 +0000 (00:30 +0000)
committersachiel <sachiel@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 13 Aug 2011 00:30:12 +0000 (00:30 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@62418 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/edje_message_queue.c

index 07fd75f..d00d125 100644 (file)
@@ -28,6 +28,14 @@ edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void
        Edje_Real_Part *rp = ed->table_parts[i];
        if ((rp->part->type == EDJE_PART_TYPE_GROUP) && (rp->swallowed_object))
          edje_object_message_send(rp->swallowed_object, type, id, msg);
+        else if (((rp->part->type == EDJE_PART_TYPE_BOX) ||
+                  (rp->part->type == EDJE_PART_TYPE_TABLE)) && (rp->items))
+          {
+             Eina_List *itr;
+             Evas_Object *o;
+             EINA_LIST_FOREACH(rp->items, itr, o)
+                edje_object_message_send(o, type, id, msg);
+          }
      }
 }
 
@@ -221,6 +229,19 @@ _edje_message_cb_set(Edje *ed, void (*func) (void *data, Evas_Object *obj, Edje_
          if (!edj2) continue;
         _edje_message_cb_set(edj2, func, data);
       }
+      else if (((rp->part->type == EDJE_PART_TYPE_BOX) ||
+                (rp->part->type == EDJE_PART_TYPE_TABLE)) && rp->items)
+        {
+           Eina_List *itr;
+           Evas_Object *obj;
+           EINA_LIST_FOREACH(rp->items, itr, obj)
+             {
+                Edje *edj2;
+                edj2 = _edje_fetch(obj);
+                if (!edj2) continue;
+                _edje_message_cb_set(edj2, func, data);
+             }
+        }
    }
 }