From f456e542a4a839720b7097aa86d7d81bf94a0dc5 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Fri, 11 Jan 2019 13:10:33 +0100 Subject: [PATCH] evas: make efl_canvas_group abstract the efl_canvas_group should be abstract in order to support other classes which are inheriting from it, which are abstract. This is done in order to support only abstract parents from abstract classes. ref T7240 Reviewed-by: Xavi Artigas Differential Revision: https://phab.enlightenment.org/D7600 --- src/Makefile_Evas.am | 1 + src/lib/elementary/efl_ui_pager.c | 2 +- src/lib/evas/Evas_Eo.h | 1 + src/lib/evas/canvas/efl_canvas_group.eo | 2 +- src/lib/evas/canvas/efl_canvas_group_object.eo | 7 +++++++ src/lib/evas/canvas/evas_object_smart.c | 3 ++- src/lib/evas/canvas/meson.build | 1 + 7 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 src/lib/evas/canvas/efl_canvas_group_object.eo diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 4780a29..ec1cd31 100755 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -9,6 +9,7 @@ evas_canvas_eolian_pub_files = \ lib/evas/canvas/efl_canvas_text.eo \ lib/evas/canvas/efl_canvas_text_factory.eo \ lib/evas/canvas/efl_canvas_group.eo \ + lib/evas/canvas/efl_canvas_group_object.eo \ lib/evas/canvas/efl_canvas_image_internal.eo \ lib/evas/canvas/evas_canvas3d_camera.eo\ lib/evas/canvas/evas_canvas3d_texture.eo\ diff --git a/src/lib/elementary/efl_ui_pager.c b/src/lib/elementary/efl_ui_pager.c index 921d767..9ef79d3 100644 --- a/src/lib/elementary/efl_ui_pager.c +++ b/src/lib/elementary/efl_ui_pager.c @@ -351,7 +351,7 @@ _efl_ui_pager_efl_object_constructor(Eo *obj, elm_widget_can_focus_set(obj, EINA_TRUE); - pd->page_root = efl_add(EFL_CANVAS_GROUP_CLASS, evas_object_evas_get(obj)); + pd->page_root = efl_add(EFL_CANVAS_GROUP_OBJECT_CLASS, evas_object_evas_get(obj)); efl_content_set(efl_part(obj, "efl.page_root"), pd->page_root); efl_event_callback_add(pd->page_root, EFL_GFX_ENTITY_EVENT_RESIZE, _resize_cb, pd); diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h index 9cea6dd..903da2e 100644 --- a/src/lib/evas/Evas_Eo.h +++ b/src/lib/evas/Evas_Eo.h @@ -179,6 +179,7 @@ struct _Efl_Canvas_Object_Animation_Event * @{ */ #include "canvas/efl_canvas_group.eo.h" +#include "canvas/efl_canvas_group_object.eo.h" /** * @} */ diff --git a/src/lib/evas/canvas/efl_canvas_group.eo b/src/lib/evas/canvas/efl_canvas_group.eo index eecb255..eb9fc15 100644 --- a/src/lib/evas/canvas/efl_canvas_group.eo +++ b/src/lib/evas/canvas/efl_canvas_group.eo @@ -1,4 +1,4 @@ -class Efl.Canvas.Group (Efl.Canvas.Object) +abstract Efl.Canvas.Group (Efl.Canvas.Object) { [[A group object is a container for other canvas objects. Its children move along their parent and are often clipped with a common clipper. diff --git a/src/lib/evas/canvas/efl_canvas_group_object.eo b/src/lib/evas/canvas/efl_canvas_group_object.eo new file mode 100644 index 0000000..42650b1 --- /dev/null +++ b/src/lib/evas/canvas/efl_canvas_group_object.eo @@ -0,0 +1,7 @@ +class Efl.Canvas.Group_Object(Efl.Canvas.Group) +{ + [[A class which makes Efl.Canvas.Group instanceable. + For further information, please see @Efl.Canvas.Group. + ]] + data: null; +} diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index 07744cb..2eabbf6a 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -679,7 +679,7 @@ evas_object_smart_add(Evas *eo_e, Evas_Smart *s) eo_e = evas_find(eo_e); EINA_SAFETY_ON_FALSE_RETURN_VAL(efl_isa(eo_e, EVAS_CANVAS_CLASS), NULL); - eo_obj = efl_add(EFL_CANVAS_GROUP_CLASS, eo_e, efl_canvas_object_legacy_ctor(efl_added)); + eo_obj = efl_add(EFL_CANVAS_GROUP_OBJECT_CLASS, eo_e, efl_canvas_object_legacy_ctor(efl_added)); evas_object_smart_attach(eo_obj, s); return eo_obj; } @@ -1853,3 +1853,4 @@ EOAPI EFL_VOID_FUNC_BODYV(efl_canvas_group_clipped_set, EFL_FUNC_CALL(enable), E EFL_OBJECT_OP_FUNC(efl_canvas_group_clipped_set, _efl_canvas_group_group_clipped_set) #include "canvas/efl_canvas_group.eo.c" +#include "canvas/efl_canvas_group_object.eo.c" diff --git a/src/lib/evas/canvas/meson.build b/src/lib/evas/canvas/meson.build index c7e8810..1b384c0 100644 --- a/src/lib/evas/canvas/meson.build +++ b/src/lib/evas/canvas/meson.build @@ -74,6 +74,7 @@ pub_eo_files = [ 'efl_canvas_vg_gradient_radial.eo', 'efl_canvas_vg_gradient_linear.eo', 'efl_canvas_group.eo', + 'efl_canvas_group_object.eo', 'efl_gfx_map.eo', 'efl_canvas_event_grabber.eo', 'efl_canvas_text.eo' -- 2.7.4