evas: make efl_canvas_group abstract
authorMarcel Hollerbach <mail@marcel-hollerbach.de>
Fri, 11 Jan 2019 12:10:33 +0000 (13:10 +0100)
committerJiyoun Park <jy0703.park@samsung.com>
Wed, 16 Jan 2019 04:10:39 +0000 (13:10 +0900)
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 <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7600

src/Makefile_Evas.am
src/lib/elementary/efl_ui_pager.c
src/lib/evas/Evas_Eo.h
src/lib/evas/canvas/efl_canvas_group.eo
src/lib/evas/canvas/efl_canvas_group_object.eo [new file with mode: 0644]
src/lib/evas/canvas/evas_object_smart.c
src/lib/evas/canvas/meson.build

index 4780a29..ec1cd31 100755 (executable)
@@ -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\
index 921d767..9ef79d3 100644 (file)
@@ -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);
index 9cea6dd..903da2e 100644 (file)
@@ -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"
 /**
  * @}
  */
index eecb255..eb9fc15 100644 (file)
@@ -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 (file)
index 0000000..42650b1
--- /dev/null
@@ -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;
+}
index 07744cb..2eabbf6 100644 (file)
@@ -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"
index c7e8810..1b384c0 100644 (file)
@@ -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'