From 92214e4b17d237dc42b57a6ea9fc18a120e4c545 Mon Sep 17 00:00:00 2001 From: nash Date: Sun, 6 Feb 2011 23:51:34 +0000 Subject: [PATCH] Add the extra proxy convenience functions. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@56773 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/Evas.h | 2 ++ src/lib/canvas/evas_object_proxy.c | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/lib/Evas.h b/src/lib/Evas.h index e97d661..a0701f2 100644 --- a/src/lib/Evas.h +++ b/src/lib/Evas.h @@ -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 diff --git a/src/lib/canvas/evas_object_proxy.c b/src/lib/canvas/evas_object_proxy.c index be8e600..525a88f 100644 --- a/src/lib/canvas/evas_object_proxy.c +++ b/src/lib/canvas/evas_object_proxy.c @@ -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 -- 2.7.4