ector: starting decoralating surface and parent by adding a property to access the...
authorCedric BAIL <cedric@osg.samsung.com>
Sun, 15 Nov 2015 21:57:48 +0000 (22:57 +0100)
committerCedric BAIL <cedric@osg.samsung.com>
Thu, 19 Nov 2015 13:52:10 +0000 (14:52 +0100)
NOTE: It would be nice to be able to protect independently the setter from the getter in eolian.

src/lib/ector/ector_private.h
src/lib/ector/ector_renderer_base.c
src/lib/ector/ector_renderer_generic_base.eo

index 099542b..fc91510 100644 (file)
@@ -82,6 +82,7 @@ typedef struct _Ector_Renderer_Generic_Shape_Data Ector_Renderer_Generic_Shape_D
 
 struct _Ector_Renderer_Generic_Base_Data
 {
+   Ector_Generic_Surface *surface;
    Eina_Matrix3 *m;
 
    struct {
index 4c84eba..b2b08c5 100644 (file)
@@ -11,9 +11,23 @@ static void
 _ector_renderer_generic_base_eo_base_destructor(Eo *obj, Ector_Renderer_Generic_Base_Data *pd)
 {
    if (pd->m) free(pd->m);
+   eo_unref(pd->surface);
+
    eo_do_super(obj, ECTOR_RENDERER_GENERIC_BASE_CLASS, eo_destructor());
 }
 
+static Ector_Generic_Surface *
+_ector_renderer_generic_base_surface_get(Eo *obj EINA_UNUSED, Ector_Renderer_Generic_Base_Data *pd)
+{
+   return pd->surface;
+}
+
+static void
+_ector_renderer_generic_base_surface_set(Eo *obj EINA_UNUSED, Ector_Renderer_Generic_Base_Data *pd, Ector_Generic_Surface *s)
+{
+   pd->surface = eo_xref(s, obj);
+}
+
 static void
 _ector_renderer_generic_base_transformation_set(Eo *obj EINA_UNUSED,
                                                 Ector_Renderer_Generic_Base_Data *pd,
index 80043d9..8c6ce6e 100644 (file)
@@ -5,6 +5,17 @@ abstract Ector.Renderer.Generic.Base (Eo.Base)
    eo_prefix: ector_renderer;
    legacy_prefix: null;
    methods {
+      @property surface {
+         set {
+           [[Do not use.]]
+        }
+        get {
+           [[Get the surface associated to this renderer. Can not be set.]]
+        }
+        values {
+           s: Ector.Generic.Surface *;
+        }
+      }
       @property transformation {
          set {
         }