Add the extra proxy convenience functions.
authornash <nash@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 6 Feb 2011 23:51:34 +0000 (23:51 +0000)
committernash <nash@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 6 Feb 2011 23:51:34 +0000 (23:51 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@56773 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/Evas.h
src/lib/canvas/evas_object_proxy.c

index e97d661..a0701f2 100644 (file)
@@ -2095,6 +2095,8 @@ struct _Evas_Smart_Cb_Description
  */
    EAPI Evas_Object                         *evas_object_proxy_add            (Evas *e) EINA_MALLOC;
    EAPI Eina_Bool                            evas_object_proxy_source_set     (Evas_Object *o, Evas_Object *source);
+   EAPI Evas_Object                         *evas_object_proxy_source_get     (Evas_Object *o);
+   EAPI Eina_Bool                            evas_object_proxy_source_unset   (Evas_Object *o);
 
 /**
  * @defgroup Evas_Cserve Shared Image Cache Server
index be8e600..525a88f 100644 (file)
@@ -116,7 +116,7 @@ evas_object_proxy_add(Evas *e)
 EAPI Eina_Bool
 evas_object_proxy_source_set(Evas_Object *obj, Evas_Object *src)
 {
-   Evas_Object_Proxy *o;
+   Evas_Object_Proxy *o,*so;
 
    MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
    return false;
@@ -128,6 +128,18 @@ evas_object_proxy_source_set(Evas_Object *obj, Evas_Object *src)
 
    if (o->source == src) return true;
 
+   if (src)
+     {
+        MAGIC_CHECK(src, Evas_Object, MAGIC_OBJ);
+        return false;
+        MAGIC_CHECK_END();
+        so = src->object_data;
+        /* Stop the loop _now_ */
+        /* FIXME: Should I check for smarts that contain proxies too? */
+        if (so->magic == MAGIC_OBJ_PROXY)
+           return false;
+     }
+
    if (o->source)
      {
         _proxy_unset(obj);
@@ -141,6 +153,30 @@ evas_object_proxy_source_set(Evas_Object *obj, Evas_Object *src)
    return true;
 }
 
+EAPI Evas_Object *
+evas_object_proxy_source_get(Evas_Object *obj)
+{
+   Evas_Object_Proxy *o;
+
+   MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+   return NULL;
+   MAGIC_CHECK_END();
+   o = obj->object_data;
+   MAGIC_CHECK(o, Evas_Object_Proxy, MAGIC_OBJ_PROXY);
+   return NULL;
+   MAGIC_CHECK_END();
+
+   return o->source;
+}
+
+EAPI Eina_Bool
+evas_object_proxy_source_unset(Evas_Object *o)
+{
+   return evas_object_proxy_source_set(o, NULL);
+}
+
+
+
 
 /* Internal helpers */
 static void