#include "ector_private.h"
+#define MY_CLASS ECTOR_RENDERER_GRADIENT_MIXIN
+
static void
_ector_renderer_gradient_efl_gfx_gradient_stop_set(Eo *obj EINA_UNUSED,
Ector_Renderer_Gradient_Data *pd,
return pd->s;
}
+static void
+_ector_renderer_gradient_efl_object_invalidate(Eo *obj EINA_UNUSED,
+ Ector_Renderer_Gradient_Data *pd)
+{
+ if (pd->colors) free(pd->colors);
+}
#include "ector_renderer_gradient.eo.c"
-mixin Ector.Renderer.Gradient (Efl.Gfx.Gradient)
+mixin Ector.Renderer.Gradient (Efl.Gfx.Gradient, Efl.Object)
{
[[Ector gradient renderer mixin]]
eo_prefix: ector_renderer_gradient;
implements {
Efl.Gfx.Gradient.stop { get; set; }
Efl.Gfx.Gradient.spread { get; set; }
+ Efl.Object.invalidate;
}
}
#include "ector_private.h"
+#define MY_CLASS ECTOR_RENDERER_SHAPE_MIXIN
+
static void
_ector_renderer_shape_fill_set(Eo *obj EINA_UNUSED,
Ector_Renderer_Shape_Data *pd,
return pd->stroke.marker;
}
+static void
+_ector_renderer_shape_efl_object_invalidate(Eo *obj EINA_UNUSED,
+ Ector_Renderer_Shape_Data *pd)
+{
+ if (pd->fill) efl_unref(pd->fill);
+ if (pd->stroke.fill) efl_unref(pd->stroke.fill);
+ if (pd->stroke.marker) efl_unref(pd->stroke.marker);
+}
+
+
#include "ector_renderer_shape.eo.c"
import ector_renderer;
-mixin Ector.Renderer.Shape (Efl.Gfx.Shape)
+mixin Ector.Renderer.Shape (Efl.Gfx.Shape, Efl.Object)
{
[[Ector shape renderer mixin]]
eo_prefix: ector_renderer_shape;
methods {
@property fill {
- [[Fill property]]
+ [[Fill property]]
set {
- }
- get {
- }
- values {
- r: const(Ector.Renderer); [[Ector fill renderer]]
- }
+ }
+ get {
+ }
+ values {
+ r: const(Ector.Renderer); [[Ector fill renderer]]
+ }
}
@property stroke_fill {
- [[Stroke fill property]]
+ [[Stroke fill property]]
set {
- }
- get {
- }
- values {
- r: const(Ector.Renderer); [[Ector stroke fill renderer]]
- }
+ }
+ get {
+ }
+ values {
+ r: const(Ector.Renderer); [[Ector stroke fill renderer]]
+ }
}
@property stroke_marker {
- [[Stroke marker property]]
+ [[Stroke marker property]]
set {
- }
- get {
- }
- values {
- r: const(Ector.Renderer); [[Ector stroke marker renderer]]
- }
+ }
+ get {
+ }
+ values {
+ r: const(Ector.Renderer); [[Ector stroke marker renderer]]
+ }
}
}
+ implements {
+ Efl.Object.invalidate;
+ }
}
}
static void
-_efl_canvas_vg_shape_efl_object_destructor(Eo *obj, Efl_Canvas_Vg_Shape_Data *pd EINA_UNUSED)
+_efl_canvas_vg_shape_efl_object_destructor(Eo *obj, Efl_Canvas_Vg_Shape_Data *pd)
{
+ if (pd->fill) efl_unref(pd->fill);
+ if (pd->stroke.fill) efl_unref(pd->stroke.fill);
+ if (pd->stroke.marker) efl_unref(pd->stroke.marker);
+
efl_gfx_path_reset(obj);
efl_destructor(efl_super(obj, MY_CLASS));
}