From ae65c64b8d52c3b3d032eb29474b750b7e5781cb 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 12f9b31fd5..b9a232dfee 100644 --- 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 921d7676f9..9ef79d3cc9 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 9cea6ddc77..903da2ee7c 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 eecb255ad3..eb9fc15aff 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 0000000000..42650b10b7 --- /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 7f0daf7331..a8dbacb833 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -675,7 +675,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; } @@ -1849,3 +1849,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 c7e8810f63..1b384c03f7 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'