summaryrefslogtreecommitdiff
path: root/src/lib/evas
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2016-06-17 17:26:08 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2016-06-17 19:32:43 +0900
commit52f9220b3fceb6f20b22fba30a9a69ae5e448f5a (patch)
tree68b6d762d87f9f8eaa9ff8832aa028998a2d6651 /src/lib/evas
parentc8ee5583a961ff3d0f40c048548fe204b571cdef (diff)
Evas: Rename smart object into Efl.Canvas.Group
Diffstat (limited to 'src/lib/evas')
-rw-r--r--src/lib/evas/Evas_Eo.h4
-rw-r--r--src/lib/evas/Evas_Legacy.h112
-rw-r--r--src/lib/evas/canvas/efl_canvas_group.eo190
-rw-r--r--src/lib/evas/canvas/efl_canvas_group_clipped.eo17
-rw-r--r--src/lib/evas/canvas/efl_canvas_object_internal_smart_clipped.eo17
-rw-r--r--src/lib/evas/canvas/evas_box.eo10
-rw-r--r--src/lib/evas/canvas/evas_clip.c6
-rw-r--r--src/lib/evas/canvas/evas_grid.eo2
-rw-r--r--src/lib/evas/canvas/evas_name.c2
-rw-r--r--src/lib/evas/canvas/evas_object_box.c12
-rw-r--r--src/lib/evas/canvas/evas_object_main.c10
-rw-r--r--src/lib/evas/canvas/evas_object_smart.c110
-rw-r--r--src/lib/evas/canvas/evas_object_smart.eo204
-rw-r--r--src/lib/evas/canvas/evas_object_smart_clipped.c48
-rw-r--r--src/lib/evas/canvas/evas_object_table.c14
-rw-r--r--src/lib/evas/canvas/evas_render.c2
-rw-r--r--src/lib/evas/canvas/evas_table.eo10
-rw-r--r--src/lib/evas/include/evas_private.h2
18 files changed, 431 insertions, 341 deletions
diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h
index e8b4e91..cde534e 100644
--- a/src/lib/evas/Evas_Eo.h
+++ b/src/lib/evas/Evas_Eo.h
@@ -47,7 +47,7 @@
47 * 47 *
48 * @{ 48 * @{
49 */ 49 */
50#include "canvas/evas_object_smart.eo.h" 50#include "canvas/efl_canvas_group.eo.h"
51/** 51/**
52 * @} 52 * @}
53 */ 53 */
@@ -57,7 +57,7 @@
57 * 57 *
58 * @{ 58 * @{
59 */ 59 */
60#include "canvas/efl_canvas_object_internal_smart_clipped.eo.h" 60#include "canvas/efl_canvas_group_clipped.eo.h"
61/** 61/**
62 * @} 62 * @}
63 */ 63 */
diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index 694902b..4b8b88f 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -5210,8 +5210,8 @@ EAPI Evas_Object *evas_object_smart_clipped_clipper_get(const Evas_Object *obj)
5210 * 5210 *
5211 * This function will return @c null when a non-smart object is passed. 5211 * This function will return @c null when a non-smart object is passed.
5212 * 5212 *
5213 * See also @ref Evas.Object.Smart.smart_member_add, 5213 * See also @ref Efl.Canvas.Group.group_member_add,
5214 * @ref Evas.Object.Smart.smart_member_del and @ref evas_object_smart_iterator_new. 5214 * @ref Efl.Canvas.Group.group_member_del and @ref evas_object_smart_iterator_new.
5215 * 5215 *
5216 * @return Returns the list of the member objects of @c obj. 5216 * @return Returns the list of the member objects of @c obj.
5217 * 5217 *
@@ -5222,6 +5222,110 @@ EAPI Evas_Object *evas_object_smart_clipped_clipper_get(const Evas_Object *obj)
5222EAPI Eina_List *evas_object_smart_members_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT; 5222EAPI Eina_List *evas_object_smart_members_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT;
5223 5223
5224/** 5224/**
5225 * @brief Set or unset the flag signalling that a given smart object needs to
5226 * get recalculated.
5227 *
5228 * If this flag is set, then the @c calculate() smart function of @c obj will
5229 * be called, if one is provided, during rendering phase of Evas (see
5230 * evas_render()), after which this flag will be automatically unset.
5231 *
5232 * If that smart function is not provided for the given object, this flag will
5233 * be left unchanged.
5234 *
5235 * @note just setting this flag will not make the canvas' whole scene dirty, by
5236 * itself, and evas_render() will have no effect. To force that, use
5237 * evas_object_smart_changed(), that will also call this function
5238 * automatically, with @c true as parameter.
5239 *
5240 * See also @ref evas_object_smart_need_recalculate_get,
5241 * @ref evas_object_smart_calculate and @ref evas_smart_objects_calculate().
5242 *
5243 * @param[in] value whether one wants to set ($true) or to unset ($false) the
5244 * flag.
5245 *
5246 * @ingroup Evas_Object_Smart
5247 */
5248EAPI void evas_object_smart_need_recalculate_set(Evas_Object *obj, Eina_Bool value);
5249
5250/**
5251 * @brief Get the value of the flag signalling that a given smart object needs
5252 * to get recalculated.
5253 *
5254 * @note this flag will be unset during the rendering phase, when the
5255 * @c calculate() smart function is called, if one is provided. If it's not
5256 * provided, then the flag will be left unchanged after the rendering phase.
5257 *
5258 * See also @ref evas_object_smart_need_recalculate_set, for more details.
5259 *
5260 * @return whether one wants to set ($true) or to unset ($false) the flag.
5261 *
5262 * @ingroup Evas_Object_Smart
5263 */
5264EAPI Eina_Bool evas_object_smart_need_recalculate_get(const Evas_Object *obj);
5265
5266/**
5267 * @brief Retrieves an iterator of the member objects of a given Evas smart
5268 * object.
5269 *
5270 * See also @ref Efl.Canvas.Group.group_member_add and
5271 * @ref Efl.Canvas.Group.group_member_del
5272 *
5273 * @return Returns the iterator of the member objects of @c obj.
5274 *
5275 * @since 1.8
5276 *
5277 * @ingroup Evas_Object_Smart
5278 */
5279EAPI Eina_Iterator *evas_object_smart_iterator_new(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT;
5280
5281/**
5282 * @brief Call the calculate() smart function immediately on a given smart
5283 * object.
5284 *
5285 * This will force immediate calculations (see #Evas_Smart_Class) needed for
5286 * renderization of this object and, besides, unset the flag on it telling it
5287 * needs recalculation for the next rendering phase.
5288 *
5289 * See also @ref evas_object_smart_need_recalculate_set
5290 *
5291 * @ingroup Evas_Object_Smart
5292 */
5293EAPI void evas_object_smart_calculate(Evas_Object *obj);
5294
5295/**
5296 * @brief Mark smart object as changed, dirty.
5297 *
5298 * This will flag the given object as needing recalculation, forcefully. As an
5299 * effect, on the next rendering cycle its calculate() (see #Evas_Smart_Class)
5300 * smart function will be called.
5301 *
5302 * See also @ref evas_object_smart_need_recalculate_set and
5303 * @ref evas_object_smart_calculate.
5304 *
5305 * @ingroup Evas_Object_Smart
5306 */
5307EAPI void evas_object_smart_changed(Evas_Object *obj);
5308
5309/**
5310 * @brief Moves all children objects of a given smart object relative to a
5311 * given offset.
5312 *
5313 * This will make each of @c obj object's children to move, from where they
5314 * before, with those delta values (offsets) on both directions.
5315 *
5316 * @note This is most useful on custom smart @c move functions.
5317 *
5318 * @note Clipped smart objects already make use of this function on their
5319 * @c move smart function definition.
5320 *
5321 * @param[in] dx Horizontal offset (delta).
5322 * @param[in] dy Vertical offset (delta).
5323 *
5324 * @ingroup Evas_Object_Smart
5325 */
5326EAPI void evas_object_smart_move_children_relative(Evas_Object *obj, Evas_Coord dx, Evas_Coord dy);
5327
5328/**
5225 * This gets the internal counter that counts the number of smart calculations 5329 * This gets the internal counter that counts the number of smart calculations
5226 * 5330 *
5227 * @param e The canvas to get the calculate counter from 5331 * @param e The canvas to get the calculate counter from
@@ -5239,7 +5343,7 @@ EAPI Eina_List *evas_object_smart_members_get(const Evas_Object *obj) EINA_WARN_
5239 */ 5343 */
5240EAPI int evas_smart_objects_calculate_count_get(const Evas *e); 5344EAPI int evas_smart_objects_calculate_count_get(const Evas *e);
5241 5345
5242#include "canvas/evas_object_smart.eo.legacy.h" 5346#include "canvas/efl_canvas_group.eo.legacy.h"
5243 5347
5244/** 5348/**
5245 * @} 5349 * @}
@@ -5264,7 +5368,7 @@ EAPI int evas_smart_objects_calculate_count_get(const Evas *e);
5264 */ 5368 */
5265EAPI Evas_Object *evas_object_smart_clipped_clipper_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 5369EAPI Evas_Object *evas_object_smart_clipped_clipper_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
5266 5370
5267#include "canvas/efl_canvas_object_internal_smart_clipped.eo.legacy.h" 5371#include "canvas/efl_canvas_group_clipped.eo.legacy.h"
5268 5372
5269/** 5373/**
5270 * @} 5374 * @}
diff --git a/src/lib/evas/canvas/efl_canvas_group.eo b/src/lib/evas/canvas/efl_canvas_group.eo
new file mode 100644
index 0000000..5a1a405
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_group.eo
@@ -0,0 +1,190 @@
1class Efl.Canvas.Group (Evas.Object)
2{
3 [[A group object is a container of other canvas objects. Its children
4 move along their parent, are often clipped with a common clipper.
5 This is part of the legacy smart object concept.
6
7 A group is not necessarily a container (see $Efl.Container), in the
8 sense that a standard widget may not have any empty slots for content,
9 but is still a group of low-level canvas objects (clipper, raw objects,
10 etc...).
11 ]]
12 legacy_prefix: evas_object_smart;
13 data: Evas_Smart_Data;
14 methods {
15 @property group_need_recalculate {
16 [[Indicates that the group's layout need to be recalculated.
17
18 If this flag is set, then the @.group_calculate function will
19 be called, during rendering phase of the canvas. After that,
20 this flag will be automatically unset.
21
22 Note: just setting this flag will not make the canvas' whole scene
23 dirty, by itself, and evas_render() will have no effect. To
24 force that, use @.group_change, that will also call this function
25 automatically, with $true as parameter.
26
27 See also @.group_calculate.
28 ]]
29 set {
30 legacy: evas_object_smart_need_recalculate_set;
31 }
32 get {
33 legacy: evas_object_smart_need_recalculate_get;
34 }
35 values {
36 value: bool;
37 }
38 }
39 group_change {
40 [[Marks the object as dirty.
41
42 This also forcefully marks the given object as needing
43 recalculation. As an effect, on the next rendering cycle its
44 @.group_calculate method will be called.
45 ]]
46 legacy: evas_object_smart_changed;
47 }
48 group_children_move {
49 [[Move all children of this object using relative coordinates.
50
51 This will make each children move, from where they before, by
52 a certain delta (offsets) in both directions.
53
54 Note: Clipped smart objects already make use of this function on
55 their $move smart function definition.
56 ]]
57 params {
58 @in dx: int; [[Horizontal offset (delta).]]
59 @in dy: int; [[Vertical offset (delta).]]
60 }
61 legacy: evas_object_smart_move_children_relative;
62 }
63 group_calculate {
64 [[Triggers an immediate recalculation of this object's geometry.
65
66 This will also reset the flag @.group_need_recalculate.
67 ]]
68 legacy: evas_object_smart_calculate;
69 }
70 group_children_iterate @const {
71 [[Returns an iterator over the children of this object, that are
72 canvas objects.
73
74 This returns the list of "smart" children. This might be different
75 from both the $Eo.Base children list as well as the $Efl.Container
76 content list.
77 ]]
78 return: free(own(iterator<Efl.Gfx>), eina_iterator_free);
79 legacy: evas_object_smart_iterator_new;
80 }
81 @property group_clip {
82 set {
83 [[No description supplied by the EAPI.]]
84 legacy: null;
85 }
86 values {
87 clip: Evas.Object;
88 }
89 }
90 @property group_color {
91 set {
92 [[No description supplied by the EAPI.]]
93 legacy: null;
94 }
95 values {
96 r: int;
97 g: int;
98 b: int;
99 a: int;
100 }
101 }
102 group_show {
103 [[No description supplied by the EAPI.]]
104 legacy: null;
105 }
106 group_move {
107 [[No description supplied by the EAPI.]]
108 legacy: null;
109 params {
110 @in x: Evas.Coord;
111 @in y: Evas.Coord;
112 }
113 }
114 @property group_no_render {
115 [[Propagates the value of no-render to the smart children.]]
116 set { legacy: null; }
117 values { hide: bool; }
118 }
119 group_hide {
120 [[No description supplied by the EAPI.]]
121 legacy: null;
122 }
123 group_add {
124 [[Instantiates a new smart object described by $s.
125
126 This is the function one should use when defining the public
127 function adding an instance of the new smart object to a given
128 canvas. It will take care of setting all of its internals to work
129 as they should, if the user set things properly, as seem on the
130 #EVAS_SMART_SUBCLASS_NEW, for example.]]
131 legacy: null;
132 }
133 group_member_add {
134 [[Set an Evas object as a member of a given smart object.
135
136 Members will automatically be stacked and layered together with the
137 smart object. The various stacking functions will operate on
138 members relative to the other members instead of the entire canvas,
139 since they now live on an exclusive layer (see
140 evas_object_stack_above(), for more details).
141
142 Any $smart_obj object's specific implementation of the
143 $member_add() smart function will take place too, naturally.
144
145 See also @.group_member_del.]]
146
147 params {
148 @in sub_obj: Evas.Object @nonull; [[The member object.]]
149 }
150 legacy: null;
151 }
152 group_resize {
153 [[No description supplied by the EAPI.]]
154 legacy: null;
155 params {
156 @in w: Evas.Coord;
157 @in h: Evas.Coord;
158 }
159 }
160 group_clip_unset {
161 [[No description supplied by the EAPI.]]
162 legacy: null;
163 }
164 group_member_del {
165 [[Removes a member object from a given smart object.
166
167 This removes a member object from a smart object, if it was added
168 to any. The object will still be on the canvas, but no longer
169 associated with whichever smart object it was associated with.
170
171 See also @.group_member_add for more details.]]
172
173 params {
174 @in sub_obj: Evas.Object; [[the member object.]]
175 }
176 legacy: null;
177 }
178 group_del {
179 [[Deletes a smart object.]]
180 legacy: null;
181 }
182 }
183 implements {
184 class.constructor;
185 class.destructor;
186 Eo.Base.constructor;
187 Evas.Object.paragraph_direction.set;
188 Evas.Object.paragraph_direction.get;
189 }
190}
diff --git a/src/lib/evas/canvas/efl_canvas_group_clipped.eo b/src/lib/evas/canvas/efl_canvas_group_clipped.eo
new file mode 100644
index 0000000..eb5a7b1
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_group_clipped.eo
@@ -0,0 +1,17 @@
1abstract Efl.Canvas.Group.Clipped (Efl.Canvas.Group)
2{
3 [[Internal class representing a canvas object group with a clipper.]]
4 data: Evas_Object_Smart_Clipped_Data;
5 implements {
6 Efl.Canvas.Group.group_hide;
7 Efl.Canvas.Group.group_clip.set;
8 Efl.Canvas.Group.group_clip_unset;
9 Efl.Canvas.Group.group_show;
10 Efl.Canvas.Group.group_color.set;
11 Efl.Canvas.Group.group_move;
12 Efl.Canvas.Group.group_member_del;
13 Efl.Canvas.Group.group_add;
14 Efl.Canvas.Group.group_del;
15 Efl.Canvas.Group.group_member_add;
16 }
17}
diff --git a/src/lib/evas/canvas/efl_canvas_object_internal_smart_clipped.eo b/src/lib/evas/canvas/efl_canvas_object_internal_smart_clipped.eo
deleted file mode 100644
index d45e928..0000000
--- a/src/lib/evas/canvas/efl_canvas_object_internal_smart_clipped.eo
+++ /dev/null
@@ -1,17 +0,0 @@
1abstract Efl.Canvas.Object.Internal.Smart.Clipped (Evas.Object.Smart)
2{
3 [[Internal class representing a canvas object group with a clipper.]]
4 data: Evas_Object_Smart_Clipped_Data;
5 implements {
6 Evas.Object.Smart.smart_hide;
7 Evas.Object.Smart.smart_clip.set;
8 Evas.Object.Smart.smart_clip_unset;
9 Evas.Object.Smart.smart_show;
10 Evas.Object.Smart.smart_color.set;
11 Evas.Object.Smart.smart_move;
12 Evas.Object.Smart.smart_member_del;
13 Evas.Object.Smart.smart_add;
14 Evas.Object.Smart.smart_del;
15 Evas.Object.Smart.smart_member_add;
16 }
17}
diff --git a/src/lib/evas/canvas/evas_box.eo b/src/lib/evas/canvas/evas_box.eo
index ad1c92f..5f352af 100644
--- a/src/lib/evas/canvas/evas_box.eo
+++ b/src/lib/evas/canvas/evas_box.eo
@@ -4,7 +4,7 @@ type @extern Evas_Object_Box_Layout: __undefined_type; /* FIXME: Function pointe
4type @extern Eina_Free_Cb: __undefined_type; /* FIXME: Function pointers are not supported */ 4type @extern Eina_Free_Cb: __undefined_type; /* FIXME: Function pointers are not supported */
5type @extern va_list: __undefined_type; /* FIXME: va_list is not supported */ 5type @extern va_list: __undefined_type; /* FIXME: va_list is not supported */
6 6
7class Evas.Box (Efl.Canvas.Object.Internal.Smart.Clipped) 7class Evas.Box (Efl.Canvas.Group.Clipped)
8{ 8{
9 legacy_prefix: evas_object_box; 9 legacy_prefix: evas_object_box;
10 eo_prefix: evas_obj_box; 10 eo_prefix: evas_obj_box;
@@ -657,10 +657,10 @@ class Evas.Box (Efl.Canvas.Object.Internal.Smart.Clipped)
657 implements { 657 implements {
658 class.constructor; 658 class.constructor;
659 Eo.Base.constructor; 659 Eo.Base.constructor;
660 Evas.Object.Smart.smart_calculate; 660 Efl.Canvas.Group.group_calculate;
661 Evas.Object.Smart.smart_add; 661 Efl.Canvas.Group.group_add;
662 Evas.Object.Smart.smart_del; 662 Efl.Canvas.Group.group_del;
663 Evas.Object.Smart.smart_resize; 663 Efl.Canvas.Group.group_resize;
664 } 664 }
665 events { 665 events {
666 child,added; 666 child,added;
diff --git a/src/lib/evas/canvas/evas_clip.c b/src/lib/evas/canvas/evas_clip.c
index da471a6..8348e2a 100644
--- a/src/lib/evas/canvas/evas_clip.c
+++ b/src/lib/evas/canvas/evas_clip.c
@@ -279,7 +279,7 @@ _evas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object *
279 } 279 }
280 if (obj->is_smart) 280 if (obj->is_smart)
281 { 281 {
282 evas_obj_smart_clip_set(eo_obj, eo_clip); 282 efl_canvas_group_clip_set(eo_obj, eo_clip);
283 } 283 }
284 if (obj->cur->clipper) 284 if (obj->cur->clipper)
285 { 285 {
@@ -413,7 +413,7 @@ _evas_object_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj)
413 if (evas_object_intercept_call_clip_unset(eo_obj, obj)) return; 413 if (evas_object_intercept_call_clip_unset(eo_obj, obj)) return;
414 if (obj->is_smart) 414 if (obj->is_smart)
415 { 415 {
416 evas_obj_smart_clip_unset(eo_obj); 416 efl_canvas_group_clip_unset(eo_obj);
417 } 417 }
418 if (obj->cur->clipper) 418 if (obj->cur->clipper)
419 { 419 {
@@ -596,7 +596,7 @@ _evas_object_no_render_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Eina_Boo
596{ 596{
597 obj->no_render = enable; 597 obj->no_render = enable;
598 if (obj->is_smart) 598 if (obj->is_smart)
599 evas_obj_smart_no_render_set(eo_obj, enable); 599 efl_canvas_group_no_render_set(eo_obj, enable);
600} 600}
601 601
602EOLIAN Eina_Bool 602EOLIAN Eina_Bool
diff --git a/src/lib/evas/canvas/evas_grid.eo b/src/lib/evas/canvas/evas_grid.eo
index 39ac187..b65ac05 100644
--- a/src/lib/evas/canvas/evas_grid.eo
+++ b/src/lib/evas/canvas/evas_grid.eo
@@ -1,4 +1,4 @@
1class Evas.Grid (Efl.Canvas.Object.Internal.Smart.Clipped) 1class Evas.Grid (Efl.Canvas.Group.Clipped)
2{ 2{
3 legacy_prefix: evas_object_grid; 3 legacy_prefix: evas_object_grid;
4 eo_prefix: evas_obj_grid; 4 eo_prefix: evas_obj_grid;
diff --git a/src/lib/evas/canvas/evas_name.c b/src/lib/evas/canvas/evas_name.c
index 373d055..f3933c8 100644
--- a/src/lib/evas/canvas/evas_name.c
+++ b/src/lib/evas/canvas/evas_name.c
@@ -44,7 +44,7 @@ _priv_evas_object_name_child_find(const Evas_Object *eo_obj, const char *name, i
44 const Eina_Inlist *lst; 44 const Eina_Inlist *lst;
45 Evas_Object_Protected_Data *child; 45 Evas_Object_Protected_Data *child;
46 46
47 if (!eo_isa(eo_obj, EVAS_OBJECT_SMART_CLASS)) return NULL; 47 if (!eo_isa(eo_obj, EFL_CANVAS_GROUP_CLASS)) return NULL;
48 lst = evas_object_smart_members_get_direct(eo_obj); 48 lst = evas_object_smart_members_get_direct(eo_obj);
49 EINA_INLIST_FOREACH(lst, child) 49 EINA_INLIST_FOREACH(lst, child)
50 { 50 {
diff --git a/src/lib/evas/canvas/evas_object_box.c b/src/lib/evas/canvas/evas_object_box.c
index ecf1437..7a3a3e5 100644
--- a/src/lib/evas/canvas/evas_object_box.c
+++ b/src/lib/evas/canvas/evas_object_box.c
@@ -384,9 +384,9 @@ _evas_box_internal_remove_at(Eo *o, Evas_Object_Box_Data *priv, unsigned int pos
384} 384}
385 385
386EOLIAN static void 386EOLIAN static void
387_evas_box_evas_object_smart_smart_add(Eo *o, Evas_Object_Box_Data *priv) 387_evas_box_efl_canvas_group_group_add(Eo *o, Evas_Object_Box_Data *priv)
388{ 388{
389 evas_obj_smart_add(eo_super(o, MY_CLASS)); 389 efl_canvas_group_add(eo_super(o, MY_CLASS));
390 390
391 evas_object_event_callback_add 391 evas_object_event_callback_add
392 (o, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_hints_changed, o); 392 (o, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_hints_changed, o);
@@ -401,7 +401,7 @@ _evas_box_evas_object_smart_smart_add(Eo *o, Evas_Object_Box_Data *priv)
401} 401}
402 402
403EOLIAN static void 403EOLIAN static void
404_evas_box_evas_object_smart_smart_del(Eo *o, Evas_Object_Box_Data *priv) 404_evas_box_efl_canvas_group_group_del(Eo *o, Evas_Object_Box_Data *priv)
405{ 405{
406 Eina_List *l; 406 Eina_List *l;
407 407
@@ -418,11 +418,11 @@ _evas_box_evas_object_smart_smart_del(Eo *o, Evas_Object_Box_Data *priv)
418 if (priv->layout.data && priv->layout.free_data) 418 if (priv->layout.data && priv->layout.free_data)
419 priv->layout.free_data(priv->layout.data); 419 priv->layout.free_data(priv->layout.data);
420 420
421 evas_obj_smart_del(eo_super(o, MY_CLASS)); 421 efl_canvas_group_del(eo_super(o, MY_CLASS));
422} 422}
423 423
424EOLIAN static void 424EOLIAN static void
425_evas_box_evas_object_smart_smart_resize(Eo *o, Evas_Object_Box_Data *_pd EINA_UNUSED, Evas_Coord w, Evas_Coord h) 425_evas_box_efl_canvas_group_group_resize(Eo *o, Evas_Object_Box_Data *_pd EINA_UNUSED, Evas_Coord w, Evas_Coord h)
426{ 426{
427 Evas_Coord ow, oh; 427 Evas_Coord ow, oh;
428 evas_object_geometry_get(o, NULL, NULL, &ow, &oh); 428 evas_object_geometry_get(o, NULL, NULL, &ow, &oh);
@@ -431,7 +431,7 @@ _evas_box_evas_object_smart_smart_resize(Eo *o, Evas_Object_Box_Data *_pd EINA_U
431} 431}
432 432
433EOLIAN static void 433EOLIAN static void
434_evas_box_evas_object_smart_smart_calculate(Eo *o, Evas_Object_Box_Data *priv) 434_evas_box_efl_canvas_group_group_calculate(Eo *o, Evas_Object_Box_Data *priv)
435{ 435{
436 if (priv->layout.cb) 436 if (priv->layout.cb)
437 { 437 {
diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c
index 6398ce8..cf55600 100644
--- a/src/lib/evas/canvas/evas_object_main.c
+++ b/src/lib/evas/canvas/evas_object_main.c
@@ -903,7 +903,7 @@ _evas_object_efl_gfx_position_set(Eo *eo_obj, Evas_Object_Protected_Data *obj,
903 903
904 if (obj->is_smart) 904 if (obj->is_smart)
905 { 905 {
906 evas_obj_smart_move(eo_obj, x, y); 906 efl_canvas_group_move(eo_obj, x, y);
907 } 907 }
908 908
909 EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur) 909 EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur)
@@ -986,7 +986,7 @@ _evas_object_efl_gfx_size_set(Eo *eo_obj, Evas_Object_Protected_Data *obj,
986 986
987 if (obj->is_smart) 987 if (obj->is_smart)
988 { 988 {
989 evas_obj_smart_resize(eo_obj, w, h); 989 efl_canvas_group_resize(eo_obj, w, h);
990 } 990 }
991 991
992 EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur) 992 EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur)
@@ -1401,7 +1401,7 @@ _show(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
1401 if (evas_object_intercept_call_show(eo_obj, obj)) return; 1401 if (evas_object_intercept_call_show(eo_obj, obj)) return;
1402 if (obj->is_smart) 1402 if (obj->is_smart)
1403 { 1403 {
1404 evas_obj_smart_show(eo_obj); 1404 efl_canvas_group_show(eo_obj);
1405 } 1405 }
1406 EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur) 1406 EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur)
1407 { 1407 {
@@ -1450,7 +1450,7 @@ _hide(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
1450 if (evas_object_intercept_call_hide(eo_obj, obj)) return; 1450 if (evas_object_intercept_call_hide(eo_obj, obj)) return;
1451 if (obj->is_smart) 1451 if (obj->is_smart)
1452 { 1452 {
1453 evas_obj_smart_hide(eo_obj); 1453 efl_canvas_group_hide(eo_obj);
1454 } 1454 }
1455 1455
1456 EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur) 1456 EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur)
@@ -1604,7 +1604,7 @@ _evas_object_efl_gfx_color_set(Eo *eo_obj, Evas_Object_Protected_Data *obj,
1604 if (evas_object_intercept_call_color_set(eo_obj, obj, r, g, b, a)) return; 1604 if (evas_object_intercept_call_color_set(eo_obj, obj, r, g, b, a)) return;
1605 if (obj->is_smart) 1605 if (obj->is_smart)
1606 { 1606 {
1607 evas_obj_smart_color_set(eo_obj, r, g, b, a); 1607 efl_canvas_group_color_set(eo_obj, r, g, b, a);
1608 } 1608 }
1609 if ((obj->cur->color.r == r) && 1609 if ((obj->cur->color.r == r) &&
1610 (obj->cur->color.g == g) && 1610 (obj->cur->color.g == g) &&
diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c
index acb7122..6edcf10 100644
--- a/src/lib/evas/canvas/evas_object_smart.c
+++ b/src/lib/evas/canvas/evas_object_smart.c
@@ -1,14 +1,14 @@
1#include "evas_common_private.h" 1#include "evas_common_private.h"
2#include "evas_private.h" 2#include "evas_private.h"
3 3
4#define MY_CLASS EVAS_OBJECT_SMART_CLASS 4#define MY_CLASS EFL_CANVAS_GROUP_CLASS
5 5
6#define MY_CLASS_NAME "Evas_Smart" 6#define MY_CLASS_NAME "Evas_Smart"
7#define MY_CLASS_NAME_LEGACY "Evas_Object_Smart" 7#define MY_CLASS_NAME_LEGACY "Evas_Object_Smart"
8 8
9#define EVAS_OBJECT_SMART_GET_OR_RETURN(eo_obj, ...) \ 9#define EVAS_OBJECT_SMART_GET_OR_RETURN(eo_obj, ...) \
10 Evas_Smart_Data *o = eo_isa(eo_obj, EVAS_OBJECT_SMART_CLASS) ? \ 10 Evas_Smart_Data *o = eo_isa(eo_obj, EFL_CANVAS_GROUP_CLASS) ? \
11 eo_data_scope_get(eo_obj, EVAS_OBJECT_SMART_CLASS) : NULL; \ 11 eo_data_scope_get(eo_obj, EFL_CANVAS_GROUP_CLASS) : NULL; \
12 do { if (!o) { MAGIC_CHECK_FAILED(eo_obj,0,MAGIC_SMART) return __VA_ARGS__; } } while (0) 12 do { if (!o) { MAGIC_CHECK_FAILED(eo_obj,0,MAGIC_SMART) return __VA_ARGS__; } } while (0)
13 13
14extern Eina_Hash* signals_hash_table; 14extern Eina_Hash* signals_hash_table;
@@ -88,7 +88,7 @@ static void evas_object_smart_render_post(Evas_Object *eo_obj,
88static unsigned int evas_object_smart_id_get(Evas_Object *eo_obj); 88static unsigned int evas_object_smart_id_get(Evas_Object *eo_obj);
89static unsigned int evas_object_smart_visual_id_get(Evas_Object *eo_obj); 89static unsigned int evas_object_smart_visual_id_get(Evas_Object *eo_obj);
90static void *evas_object_smart_engine_data_get(Evas_Object *eo_obj); 90static void *evas_object_smart_engine_data_get(Evas_Object *eo_obj);
91static void _evas_object_smart_smart_paragraph_direction_set_internal(Eo *eo_obj, 91static void _efl_canvas_group_group_paragraph_direction_set_internal(Eo *eo_obj,
92 Evas_BiDi_Direction dir); 92 Evas_BiDi_Direction dir);
93 93
94static const Evas_Object_Func object_func = 94static const Evas_Object_Func object_func =
@@ -147,7 +147,7 @@ evas_object_smart_interface_get(const Evas_Object *eo_obj,
147 return NULL; 147 return NULL;
148 MAGIC_CHECK_END(); 148 MAGIC_CHECK_END();
149 149
150 if (!eo_isa(eo_obj, EVAS_OBJECT_SMART_CLASS)) return NULL; 150 if (!eo_isa(eo_obj, EFL_CANVAS_GROUP_CLASS)) return NULL;
151 151
152 s = evas_object_smart_smart_get(eo_obj); 152 s = evas_object_smart_smart_get(eo_obj);
153 if (!s) return NULL; 153 if (!s) return NULL;
@@ -197,7 +197,7 @@ evas_object_smart_interface_data_get(const Evas_Object *eo_obj,
197} 197}
198 198
199EAPI Evas_Smart* 199EAPI Evas_Smart*
200evas_object_smart_smart_get(const Evas_Object_Smart *eo_obj) 200evas_object_smart_smart_get(const Efl_Canvas_Group *eo_obj)
201{ 201{
202 Evas_Object_Protected_Data *obj = EVAS_OBJ_GET_OR_RETURN(eo_obj, NULL); 202 Evas_Object_Protected_Data *obj = EVAS_OBJ_GET_OR_RETURN(eo_obj, NULL);
203 return obj->smart.smart; 203 return obj->smart.smart;
@@ -209,11 +209,11 @@ evas_object_smart_member_add(Evas_Object *eo_obj, Evas_Object *smart_obj)
209 MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ); 209 MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
210 return; 210 return;
211 MAGIC_CHECK_END(); 211 MAGIC_CHECK_END();
212 evas_obj_smart_member_add(smart_obj, eo_obj); 212 efl_canvas_group_member_add(smart_obj, eo_obj);
213} 213}
214 214
215EOLIAN static void 215EOLIAN static void
216_evas_object_smart_smart_member_add(Eo *smart_obj, Evas_Smart_Data *o, Evas_Object *eo_obj) 216_efl_canvas_group_group_member_add(Eo *smart_obj, Evas_Smart_Data *o, Evas_Object *eo_obj)
217{ 217{
218 218
219 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); 219 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
@@ -272,13 +272,13 @@ _evas_object_smart_smart_member_add(Eo *smart_obj, Evas_Smart_Data *o, Evas_Obje
272 272
273 if (obj->is_smart) 273 if (obj->is_smart)
274 { 274 {
275 member_o = eo_data_scope_get(eo_obj, EVAS_OBJECT_SMART_CLASS); 275 member_o = eo_data_scope_get(eo_obj, EFL_CANVAS_GROUP_CLASS);
276 276
277 if ((member_o->inherit_paragraph_direction) && 277 if ((member_o->inherit_paragraph_direction) &&
278 (member_o->paragraph_direction != o->paragraph_direction)) 278 (member_o->paragraph_direction != o->paragraph_direction))
279 { 279 {
280 member_o->paragraph_direction = o->paragraph_direction; 280 member_o->paragraph_direction = o->paragraph_direction;
281 _evas_object_smart_smart_paragraph_direction_set_internal(eo_obj, o->paragraph_direction); 281 _efl_canvas_group_group_paragraph_direction_set_internal(eo_obj, o->paragraph_direction);
282 } 282 }
283 } 283 }
284 284
@@ -300,11 +300,11 @@ evas_object_smart_member_del(Evas_Object *eo_obj)
300 if (!obj->smart.parent) return; 300 if (!obj->smart.parent) return;
301 Evas_Object *smart_obj = obj->smart.parent; 301 Evas_Object *smart_obj = obj->smart.parent;
302 302
303 evas_obj_smart_member_del(smart_obj, eo_obj); 303 efl_canvas_group_member_del(smart_obj, eo_obj);
304} 304}
305 305
306EOLIAN static void 306EOLIAN static void
307_evas_object_smart_smart_member_del(Eo *smart_obj, Evas_Smart_Data *_pd EINA_UNUSED, Evas_Object *eo_obj) 307_efl_canvas_group_group_member_del(Eo *smart_obj, Evas_Smart_Data *_pd EINA_UNUSED, Evas_Object *eo_obj)
308{ 308{
309 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); 309 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
310 Evas_Smart_Data *member_o; 310 Evas_Smart_Data *member_o;
@@ -332,13 +332,13 @@ _evas_object_smart_smart_member_del(Eo *smart_obj, Evas_Smart_Data *_pd EINA_UNU
332 332
333 if (obj->is_smart) 333 if (obj->is_smart)
334 { 334 {
335 member_o = eo_data_scope_get(eo_obj, EVAS_OBJECT_SMART_CLASS); 335 member_o = eo_data_scope_get(eo_obj, EFL_CANVAS_GROUP_CLASS);
336 336
337 if ((member_o->inherit_paragraph_direction) && 337 if ((member_o->inherit_paragraph_direction) &&
338 (member_o->paragraph_direction != EVAS_BIDI_DIRECTION_NEUTRAL)) 338 (member_o->paragraph_direction != EVAS_BIDI_DIRECTION_NEUTRAL))
339 { 339 {
340 member_o->paragraph_direction = EVAS_BIDI_DIRECTION_NEUTRAL; 340 member_o->paragraph_direction = EVAS_BIDI_DIRECTION_NEUTRAL;
341 _evas_object_smart_smart_paragraph_direction_set_internal(eo_obj, EVAS_BIDI_DIRECTION_NEUTRAL); 341 _efl_canvas_group_group_paragraph_direction_set_internal(eo_obj, EVAS_BIDI_DIRECTION_NEUTRAL);
342 } 342 }
343 } 343 }
344 344
@@ -413,7 +413,7 @@ evas_smart_legacy_type_register(const char *type, const Eo_Class *klass)
413} 413}
414 414
415static Eina_Bool 415static Eina_Bool
416_evas_object_smart_smart_iterator_next(Evas_Object_Smart_Iterator *it, void **data) 416_efl_canvas_group_group_iterator_next(Evas_Object_Smart_Iterator *it, void **data)
417{ 417{
418 Evas_Object *eo; 418 Evas_Object *eo;
419 419
@@ -428,13 +428,13 @@ _evas_object_smart_smart_iterator_next(Evas_Object_Smart_Iterator *it, void **da
428} 428}
429 429
430static Evas_Object * 430static Evas_Object *
431_evas_object_smart_smart_iterator_get_container(Evas_Object_Smart_Iterator *it) 431_efl_canvas_group_group_iterator_get_container(Evas_Object_Smart_Iterator *it)
432{ 432{
433 return it->parent; 433 return it->parent;
434} 434}
435 435
436static void 436static void
437_evas_object_smart_smart_iterator_free(Evas_Object_Smart_Iterator *it) 437_efl_canvas_group_group_iterator_free(Evas_Object_Smart_Iterator *it)
438{ 438{
439 eo_unref(it->parent); 439 eo_unref(it->parent);
440 free(it); 440 free(it);
@@ -442,7 +442,7 @@ _evas_object_smart_smart_iterator_free(Evas_Object_Smart_Iterator *it)
442 442
443// Should we have an eo_children_iterator_new API and just inherit from it ? 443// Should we have an eo_children_iterator_new API and just inherit from it ?
444EOLIAN static Eina_Iterator* 444EOLIAN static Eina_Iterator*
445_evas_object_smart_smart_iterator_new(const Eo *eo_obj, Evas_Smart_Data *priv) 445_efl_canvas_group_group_children_iterate(const Eo *eo_obj, Evas_Smart_Data *priv)
446{ 446{
447 Evas_Object_Smart_Iterator *it; 447 Evas_Object_Smart_Iterator *it;
448 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); 448 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
@@ -457,9 +457,9 @@ _evas_object_smart_smart_iterator_new(const Eo *eo_obj, Evas_Smart_Data *priv)
457 it->parent = eo_ref(eo_obj); 457 it->parent = eo_ref(eo_obj);
458 it->current = priv->contained; 458 it->current = priv->contained;
459 459
460 it->iterator.next = FUNC_ITERATOR_NEXT(_evas_object_smart_smart_iterator_next); 460 it->iterator.next = FUNC_ITERATOR_NEXT(_efl_canvas_group_group_iterator_next);
461 it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_evas_object_smart_smart_iterator_get_container); 461 it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_efl_canvas_group_group_iterator_get_container);
462 it->iterator.free = FUNC_ITERATOR_FREE(_evas_object_smart_smart_iterator_free); 462 it->iterator.free = FUNC_ITERATOR_FREE(_efl_canvas_group_group_iterator_free);
463 463
464 return &it->iterator; 464 return &it->iterator;
465} 465}
@@ -489,7 +489,7 @@ evas_object_smart_members_get_direct(const Evas_Object *eo_obj)
489} 489}
490 490
491void 491void
492_evas_object_smart_smart_members_all_del(Evas_Object *eo_obj) 492_efl_canvas_group_group_members_all_del(Evas_Object *eo_obj)
493{ 493{
494 Evas_Smart_Data *o = eo_data_scope_get(eo_obj, MY_CLASS); 494 Evas_Smart_Data *o = eo_data_scope_get(eo_obj, MY_CLASS);
495 Evas_Object_Protected_Data *memobj; 495 Evas_Object_Protected_Data *memobj;
@@ -576,13 +576,13 @@ evas_object_smart_add(Evas *eo_e, Evas_Smart *s)
576 MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS); 576 MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS);
577 return NULL; 577 return NULL;
578 MAGIC_CHECK_END(); 578 MAGIC_CHECK_END();
579 eo_obj = eo_add(EVAS_OBJECT_SMART_CLASS, eo_e); 579 eo_obj = eo_add(EFL_CANVAS_GROUP_CLASS, eo_e);
580 evas_object_smart_attach(eo_obj, s); 580 evas_object_smart_attach(eo_obj, s);
581 return eo_obj; 581 return eo_obj;
582} 582}
583 583
584EOLIAN static Eo * 584EOLIAN static Eo *
585_evas_object_smart_eo_base_constructor(Eo *eo_obj, Evas_Smart_Data *class_data EINA_UNUSED) 585_efl_canvas_group_eo_base_constructor(Eo *eo_obj, Evas_Smart_Data *class_data EINA_UNUSED)
586{ 586{
587 Evas_Smart_Data *smart; 587 Evas_Smart_Data *smart;
588 588
@@ -594,13 +594,13 @@ _evas_object_smart_eo_base_constructor(Eo *eo_obj, Evas_Smart_Data *class_data E
594 evas_object_smart_init(eo_obj); 594 evas_object_smart_init(eo_obj);
595 595
596 evas_obj_type_set(eo_obj, MY_CLASS_NAME_LEGACY); 596 evas_obj_type_set(eo_obj, MY_CLASS_NAME_LEGACY);
597 evas_obj_smart_add(eo_obj); 597 efl_canvas_group_add(eo_obj);
598 598
599 return eo_obj; 599 return eo_obj;
600} 600}
601 601
602EOLIAN static void 602EOLIAN static void
603_evas_object_smart_smart_add(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED) 603_efl_canvas_group_group_add(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED)
604{ 604{
605 // If this function is reached, so we do nothing except trying to call 605 // If this function is reached, so we do nothing except trying to call
606 // the function of the legacy smart class. 606 // the function of the legacy smart class.
@@ -610,12 +610,12 @@ _evas_object_smart_smart_add(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED)
610} 610}
611 611
612EOLIAN static void 612EOLIAN static void
613_evas_object_smart_smart_del(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *o EINA_UNUSED) 613_efl_canvas_group_group_del(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *o EINA_UNUSED)
614{ 614{
615} 615}
616 616
617EOLIAN static void 617EOLIAN static void
618_evas_object_smart_smart_resize(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Evas_Coord w, Evas_Coord h) 618_efl_canvas_group_group_resize(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Evas_Coord w, Evas_Coord h)
619{ 619{
620 // If this function is reached, so we do nothing except trying to call 620 // If this function is reached, so we do nothing except trying to call
621 // the function of the legacy smart class. 621 // the function of the legacy smart class.
@@ -625,7 +625,7 @@ _evas_object_smart_smart_resize(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Evas
625} 625}
626 626
627EOLIAN static void 627EOLIAN static void
628_evas_object_smart_smart_move(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Evas_Coord x, Evas_Coord y) 628_efl_canvas_group_group_move(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Evas_Coord x, Evas_Coord y)
629{ 629{
630 // If this function is reached, so we do nothing except trying to call 630 // If this function is reached, so we do nothing except trying to call
631 // the function of the legacy smart class. 631 // the function of the legacy smart class.
@@ -635,7 +635,7 @@ _evas_object_smart_smart_move(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Evas_C
635} 635}
636 636
637EOLIAN static void 637EOLIAN static void
638_evas_object_smart_smart_show(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED) 638_efl_canvas_group_group_show(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED)
639{ 639{
640 // If this function is reached, so we do nothing except trying to call 640 // If this function is reached, so we do nothing except trying to call
641 // the function of the legacy smart class. 641 // the function of the legacy smart class.
@@ -645,7 +645,7 @@ _evas_object_smart_smart_show(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED)
645} 645}
646 646
647EOLIAN static void 647EOLIAN static void
648_evas_object_smart_smart_hide(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED) 648_efl_canvas_group_group_hide(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED)
649{ 649{
650 // If this function is reached, so we do nothing except trying to call 650 // If this function is reached, so we do nothing except trying to call
651 // the function of the legacy smart class. 651 // the function of the legacy smart class.
@@ -655,7 +655,7 @@ _evas_object_smart_smart_hide(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED)
655} 655}
656 656
657EOLIAN static void 657EOLIAN static void
658_evas_object_smart_smart_color_set(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, int r, int g, int b, int a) 658_efl_canvas_group_group_color_set(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, int r, int g, int b, int a)
659{ 659{
660 // If this function is reached, so we do nothing except trying to call 660 // If this function is reached, so we do nothing except trying to call
661 // the function of the legacy smart class. 661 // the function of the legacy smart class.
@@ -665,7 +665,7 @@ _evas_object_smart_smart_color_set(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, i
665} 665}
666 666
667EOLIAN static void 667EOLIAN static void
668_evas_object_smart_smart_clip_set(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Evas_Object *clip) 668_efl_canvas_group_group_clip_set(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Evas_Object *clip)
669{ 669{
670 // If this function is reached, so we do nothing except trying to call 670 // If this function is reached, so we do nothing except trying to call
671 // the function of the legacy smart class. 671 // the function of the legacy smart class.
@@ -675,7 +675,7 @@ _evas_object_smart_smart_clip_set(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Ev
675} 675}
676 676
677EOLIAN static void 677EOLIAN static void
678_evas_object_smart_smart_clip_unset(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED) 678_efl_canvas_group_group_clip_unset(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED)
679{ 679{
680 // If this function is reached, so we do nothing except trying to call 680 // If this function is reached, so we do nothing except trying to call
681 // the function of the legacy smart class. 681 // the function of the legacy smart class.
@@ -685,14 +685,14 @@ _evas_object_smart_smart_clip_unset(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED)
685} 685}
686 686
687EOLIAN static void 687EOLIAN static void
688_evas_object_smart_smart_no_render_set(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Eina_Bool hide) 688_efl_canvas_group_group_no_render_set(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Eina_Bool hide)
689{ 689{
690 Evas_Object_Protected_Data *obj2; 690 Evas_Object_Protected_Data *obj2;
691 Evas_Object_Smart_Clipped_Data *cso; 691 Evas_Object_Smart_Clipped_Data *cso;
692 Evas_Object *cso_clipper; 692 Evas_Object *cso_clipper;
693 693
694 if (eo_isa(eo_obj, EFL_CANVAS_OBJECT_INTERNAL_SMART_CLIPPED_CLASS)) 694 if (eo_isa(eo_obj, EFL_CANVAS_GROUP_CLIPPED_CLASS))
695 cso = eo_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_INTERNAL_SMART_CLIPPED_CLASS); 695 cso = eo_data_scope_get(eo_obj, EFL_CANVAS_GROUP_CLIPPED_CLASS);
696 else 696 else
697 cso = evas_object_smart_data_get(eo_obj); 697 cso = evas_object_smart_data_get(eo_obj);
698 cso_clipper = cso ? cso->clipper : NULL; 698 cso_clipper = cso ? cso->clipper : NULL;
@@ -732,7 +732,7 @@ evas_object_smart_attach(Evas_Object *eo_obj, Evas_Smart *s)
732 } 732 }
733 } 733 }
734 734
735 evas_obj_smart_add(eo_obj); 735 efl_canvas_group_add(eo_obj);
736} 736}
737 737
738EAPI void 738EAPI void
@@ -910,7 +910,7 @@ evas_object_smart_callback_description_find(const Eo *eo_obj, const char *name,
910} 910}
911 911
912EOLIAN static void 912EOLIAN static void
913_evas_object_smart_smart_need_recalculate_set(Eo *eo_obj, Evas_Smart_Data *o, Eina_Bool value) 913_efl_canvas_group_group_need_recalculate_set(Eo *eo_obj, Evas_Smart_Data *o, Eina_Bool value)
914{ 914{
915 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); 915 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
916 916
@@ -940,13 +940,13 @@ _evas_object_smart_smart_need_recalculate_set(Eo *eo_obj, Evas_Smart_Data *o, Ei
940} 940}
941 941
942EOLIAN static Eina_Bool 942EOLIAN static Eina_Bool
943_evas_object_smart_smart_need_recalculate_get(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *o) 943_efl_canvas_group_group_need_recalculate_get(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *o)
944{ 944{
945 return o->need_recalculate; 945 return o->need_recalculate;
946} 946}
947 947
948EOLIAN static void 948EOLIAN static void
949_evas_object_smart_smart_calculate(Eo *eo_obj, Evas_Smart_Data *o) 949_efl_canvas_group_group_calculate(Eo *eo_obj, Evas_Smart_Data *o)
950{ 950{
951 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); 951 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
952 952
@@ -1004,7 +1004,7 @@ evas_call_smarts_calculate(Evas *eo_e)
1004 if (obj->smart.smart && obj->smart.smart->smart_class->calculate) 1004 if (obj->smart.smart && obj->smart.smart->smart_class->calculate)
1005 obj->smart.smart->smart_class->calculate(obj->object); 1005 obj->smart.smart->smart_class->calculate(obj->object);
1006 else 1006 else
1007 evas_obj_smart_calculate(obj->object); 1007 efl_canvas_group_calculate(obj->object);
1008 } 1008 }
1009 } 1009 }
1010 1010
@@ -1022,12 +1022,12 @@ evas_call_smarts_calculate(Evas *eo_e)
1022} 1022}
1023 1023
1024EOLIAN static void 1024EOLIAN static void
1025_evas_object_smart_smart_changed(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED) 1025_efl_canvas_group_group_change(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED)
1026{ 1026{
1027 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); 1027 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
1028 evas_object_async_block(obj); 1028 evas_object_async_block(obj);
1029 evas_object_change(eo_obj, obj); 1029 evas_object_change(eo_obj, obj);
1030 evas_obj_smart_need_recalculate_set(eo_obj, 1); 1030 efl_canvas_group_need_recalculate_set(eo_obj, 1);
1031} 1031}
1032 1032
1033Eina_Bool 1033Eina_Bool
@@ -1073,7 +1073,7 @@ evas_object_smart_del(Evas_Object *eo_obj)
1073 if (s && s->smart_class->del) 1073 if (s && s->smart_class->del)
1074 s->smart_class->del(eo_obj); 1074 s->smart_class->del(eo_obj);
1075 else 1075 else
1076 evas_obj_smart_del(eo_obj); 1076 efl_canvas_group_del(eo_obj);
1077 if (obj->smart.parent) evas_object_smart_member_del(eo_obj); 1077 if (obj->smart.parent) evas_object_smart_member_del(eo_obj);
1078 1078
1079 if (s) 1079 if (s)
@@ -1513,20 +1513,20 @@ static void *evas_object_smart_engine_data_get(Evas_Object *eo_obj)
1513} 1513}
1514 1514
1515static void 1515static void
1516_evas_object_smart_class_constructor(Eo_Class *klass EINA_UNUSED) 1516_efl_canvas_group_class_constructor(Eo_Class *klass EINA_UNUSED)
1517{ 1517{
1518 _evas_smart_class_names_hash_table = eina_hash_string_small_new(NULL); 1518 _evas_smart_class_names_hash_table = eina_hash_string_small_new(NULL);
1519 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); 1519 evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
1520} 1520}
1521 1521
1522static void 1522static void
1523_evas_object_smart_class_destructor(Eo_Class *klass EINA_UNUSED) 1523_efl_canvas_group_class_destructor(Eo_Class *klass EINA_UNUSED)
1524{ 1524{
1525 eina_hash_free(_evas_smart_class_names_hash_table); 1525 eina_hash_free(_evas_smart_class_names_hash_table);
1526} 1526}
1527 1527
1528static void 1528static void
1529_evas_object_smart_smart_paragraph_direction_set_internal(Eo *eo_obj, 1529_efl_canvas_group_group_paragraph_direction_set_internal(Eo *eo_obj,
1530 Evas_BiDi_Direction dir) 1530 Evas_BiDi_Direction dir)
1531{ 1531{
1532 Evas_Object_Protected_Data *o; 1532 Evas_Object_Protected_Data *o;
@@ -1538,20 +1538,20 @@ _evas_object_smart_smart_paragraph_direction_set_internal(Eo *eo_obj,
1538 1538
1539 if (o->is_smart) 1539 if (o->is_smart)
1540 { 1540 {
1541 member_o = eo_data_scope_get(o->object, EVAS_OBJECT_SMART_CLASS); 1541 member_o = eo_data_scope_get(o->object, EFL_CANVAS_GROUP_CLASS);
1542 1542
1543 if ((member_o->inherit_paragraph_direction) && 1543 if ((member_o->inherit_paragraph_direction) &&
1544 (member_o->paragraph_direction != dir)) 1544 (member_o->paragraph_direction != dir))
1545 { 1545 {
1546 member_o->paragraph_direction = dir; 1546 member_o->paragraph_direction = dir;
1547 _evas_object_smart_smart_paragraph_direction_set_internal(o->object, dir); 1547 _efl_canvas_group_group_paragraph_direction_set_internal(o->object, dir);
1548 } 1548 }
1549 } 1549 }
1550 } 1550 }
1551} 1551}
1552 1552
1553EOLIAN static void 1553EOLIAN static void
1554_evas_object_smart_evas_object_paragraph_direction_set(Eo *eo_obj, Evas_Smart_Data *o, Evas_BiDi_Direction dir) 1554_efl_canvas_group_evas_object_paragraph_direction_set(Eo *eo_obj, Evas_Smart_Data *o, Evas_BiDi_Direction dir)
1555{ 1555{
1556 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); 1556 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
1557 Evas_Smart_Data *parent; 1557 Evas_Smart_Data *parent;
@@ -1567,7 +1567,7 @@ _evas_object_smart_evas_object_paragraph_direction_set(Eo *eo_obj, Evas_Smart_Da
1567 1567
1568 if (obj->smart.parent) 1568 if (obj->smart.parent)
1569 { 1569 {
1570 parent = eo_data_scope_get(obj->smart.parent, EVAS_OBJECT_SMART_CLASS); 1570 parent = eo_data_scope_get(obj->smart.parent, EFL_CANVAS_GROUP_CLASS);
1571 1571
1572 if (parent) 1572 if (parent)
1573 parent_dir = parent->paragraph_direction; 1573 parent_dir = parent->paragraph_direction;
@@ -1586,13 +1586,13 @@ _evas_object_smart_evas_object_paragraph_direction_set(Eo *eo_obj, Evas_Smart_Da
1586 evas_object_change(eo_obj, obj); 1586 evas_object_change(eo_obj, obj);
1587 } 1587 }
1588 1588
1589 _evas_object_smart_smart_paragraph_direction_set_internal(eo_obj, o->paragraph_direction); 1589 _efl_canvas_group_group_paragraph_direction_set_internal(eo_obj, o->paragraph_direction);
1590} 1590}
1591 1591
1592EOLIAN static Evas_BiDi_Direction 1592EOLIAN static Evas_BiDi_Direction
1593_evas_object_smart_evas_object_paragraph_direction_get(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *o) 1593_efl_canvas_group_evas_object_paragraph_direction_get(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *o)
1594{ 1594{
1595 return o->paragraph_direction; 1595 return o->paragraph_direction;
1596} 1596}
1597 1597
1598#include "canvas/evas_object_smart.eo.c" 1598#include "canvas/efl_canvas_group.eo.c"
diff --git a/src/lib/evas/canvas/evas_object_smart.eo b/src/lib/evas/canvas/evas_object_smart.eo
deleted file mode 100644
index f09f594..0000000
--- a/src/lib/evas/canvas/evas_object_smart.eo
+++ /dev/null
@@ -1,204 +0,0 @@
1class Evas.Object.Smart (Evas.Object)
2{
3 legacy_prefix: evas_object_smart;
4 eo_prefix: evas_obj_smart;
5 data: Evas_Smart_Data;
6 methods {
7 @property smart_need_recalculate {
8 set {
9 [[Set or unset the flag signalling that a given smart object needs to
10 get recalculated.
11
12 If this flag is set, then the $calculate() smart function of
13 $obj will be called, if one is provided, during rendering phase of
14 Evas (see evas_render()), after which this flag will be
15 automatically unset.
16
17 If that smart function is not provided for the given object, this
18 flag will be left unchanged.
19
20 Note: just setting this flag will not make the canvas' whole scene
21 dirty, by itself, and evas_render() will have no effect. To
22 force that, use evas_object_smart_changed(), that will also
23 call this function automatically, with $true as parameter.
24
25 See also @.smart_need_recalculate.get, @.smart_calculate and
26 \@ref evas_smart_objects_calculate().]]
27 legacy: evas_object_smart_need_recalculate_set;
28 }
29 get {
30 [[Get the value of the flag signalling that a given smart object needs to
31 get recalculated.
32
33 Note: this flag will be unset during the rendering phase, when the
34 $calculate() smart function is called, if one is provided.
35 If it's not provided, then the flag will be left unchanged
36 after the rendering phase.
37
38 See also @.smart_need_recalculate.set, for more details.]]
39 legacy: evas_object_smart_need_recalculate_get;
40 }
41 values {
42 value: bool; [[whether one wants to set ($true) or to unset
43 ($false) the flag.]]
44 }
45 }
46 @property smart_clip {
47 set {
48 [[No description supplied by the EAPI.]]
49 legacy: null;
50 }
51 values {
52 clip: Evas.Object;
53 }
54 }
55 @property smart_color {
56 set {
57 [[No description supplied by the EAPI.]]
58 legacy: null;
59 }
60 values {
61 r: int;
62 g: int;
63 b: int;
64 a: int;
65 }
66 }
67 smart_show {
68 [[No description supplied by the EAPI.]]
69 legacy: null;
70 }
71 smart_move {
72 [[No description supplied by the EAPI.]]
73 legacy: null;
74 params {
75 @in x: Evas.Coord;
76 @in y: Evas.Coord;
77 }
78 }
79 @property smart_no_render {
80 [[Propagates the value of no-render to the smart children.]]
81 set { legacy: null; }
82 values { hide: bool; }
83 }
84 smart_iterator_new @const {
85 [[Retrieves an iterator of the member objects of a given Evas smart object.
86
87 See also @.smart_member_add and @.smart_member_del
88
89 @since 1.8]]
90 return: free(own(iterator<Evas.Object>), eina_iterator_free)
91 @warn_unused; [[Returns the iterator of the member objects of $obj.]]
92 legacy: evas_object_smart_iterator_new;
93 }
94 smart_hide {
95 [[No description supplied by the EAPI.]]
96 legacy: null;
97 }
98 smart_calculate {
99 [[Call the calculate() smart function immediately on a given smart object.
100
101 This will force immediate calculations (see #Evas_Smart_Class)
102 needed for renderization of this object and, besides, unset the
103 flag on it telling it needs recalculation for the next rendering
104 phase.
105
106 See also @.smart_need_recalculate.set]]
107 legacy: evas_object_smart_calculate;
108 }
109 smart_add {
110 [[Instantiates a new smart object described by $s.
111
112 This is the function one should use when defining the public
113 function adding an instance of the new smart object to a given
114 canvas. It will take care of setting all of its internals to work
115 as they should, if the user set things properly, as seem on the
116 #EVAS_SMART_SUBCLASS_NEW, for example.]]
117 legacy: null;
118 }
119 smart_member_add {
120 [[Set an Evas object as a member of a given smart object.
121
122 Members will automatically be stacked and layered together with the
123 smart object. The various stacking functions will operate on
124 members relative to the other members instead of the entire canvas,
125 since they now live on an exclusive layer (see
126 evas_object_stack_above(), for more details).
127
128 Any $smart_obj object's specific implementation of the
129 $member_add() smart function will take place too, naturally.
130
131 See also @.smart_member_del.]]
132
133 params {
134 @in sub_obj: Evas.Object @nonull; [[The member object.]]
135 }
136 legacy: null;
137 }
138 smart_resize {
139 [[No description supplied by the EAPI.]]
140 legacy: null;
141 params {
142 @in w: Evas.Coord;
143 @in h: Evas.Coord;
144 }
145 }
146 smart_clip_unset {
147 [[No description supplied by the EAPI.]]
148 legacy: null;
149 }
150 smart_changed {
151 [[Mark smart object as changed, dirty.
152
153 This will flag the given object as needing recalculation,
154 forcefully. As an effect, on the next rendering cycle its
155 calculate() (see #Evas_Smart_Class) smart function will be called.
156
157 See also @.smart_need_recalculate.set and @.smart_calculate.]]
158 legacy: evas_object_smart_changed;
159 }
160 smart_member_del {
161 [[Removes a member object from a given smart object.
162
163 This removes a member object from a smart object, if it was added
164 to any. The object will still be on the canvas, but no longer
165 associated with whichever smart object it was associated with.
166
167 See also @.smart_member_add for more details.]]
168
169 params {
170 @in sub_obj: Evas.Object; [[the member object.]]
171 }
172 legacy: null;
173 }
174 smart_del {
175 [[Deletes a smart object.]]
176 legacy: null;
177 }
178 smart_move_children_relative {
179 [[Moves all children objects of a given smart object relative to a
180 given offset.
181
182 This will make each of $obj object's children to move, from where
183 they before, with those delta values (offsets) on both directions.
184
185 Note: This is most useful on custom smart $move functions.
186
187 Note: Clipped smart objects already make use of this function on
188 their $move smart function definition.
189 ]]
190 params {
191 @in dx: Evas.Coord; [[Horizontal offset (delta).]]
192 @in dy: Evas.Coord; [[Vertical offset (delta).]]
193 }
194 legacy: evas_object_smart_move_children_relative;
195 }
196 }
197 implements {
198 class.constructor;
199 class.destructor;
200 Eo.Base.constructor;
201 Evas.Object.paragraph_direction.set;
202 Evas.Object.paragraph_direction.get;
203 }
204}
diff --git a/src/lib/evas/canvas/evas_object_smart_clipped.c b/src/lib/evas/canvas/evas_object_smart_clipped.c
index 36806f6..18ed6bb 100644
--- a/src/lib/evas/canvas/evas_object_smart_clipped.c
+++ b/src/lib/evas/canvas/evas_object_smart_clipped.c
@@ -1,7 +1,7 @@
1#include "evas_common_private.h" 1#include "evas_common_private.h"
2#include "evas_private.h" 2#include "evas_private.h"
3 3
4#define MY_CLASS EFL_CANVAS_OBJECT_INTERNAL_SMART_CLIPPED_CLASS 4#define MY_CLASS EFL_CANVAS_GROUP_CLIPPED_CLASS
5 5
6#define CSO_DATA_GET(eo_obj, ptr) \ 6#define CSO_DATA_GET(eo_obj, ptr) \
7 Evas_Object_Smart_Clipped_Data *ptr = (eo_isa(eo_obj, MY_CLASS) ? \ 7 Evas_Object_Smart_Clipped_Data *ptr = (eo_isa(eo_obj, MY_CLASS) ? \
@@ -13,7 +13,7 @@
13 if (!ptr) return; 13 if (!ptr) return;
14 14
15EOLIAN void 15EOLIAN void
16_evas_object_smart_smart_move_children_relative(Eo *eo_obj, Evas_Object_Protected_Data *obj EINA_UNUSED, Evas_Coord dx, Evas_Coord dy) 16_efl_canvas_group_group_children_move(Eo *eo_obj, Evas_Object_Protected_Data *obj EINA_UNUSED, Evas_Coord dx, Evas_Coord dy)
17{ 17{
18 18
19 const Eina_Inlist *lst; 19 const Eina_Inlist *lst;
@@ -40,9 +40,9 @@ evas_object_smart_clipped_clipper_get(const Evas_Object *eo_obj)
40{ 40{
41 Evas_Object_Smart_Clipped_Data *obj; 41 Evas_Object_Smart_Clipped_Data *obj;
42 42
43 if (!eo_isa(eo_obj, EFL_CANVAS_OBJECT_INTERNAL_SMART_CLIPPED_CLASS)) 43 if (!eo_isa(eo_obj, EFL_CANVAS_GROUP_CLIPPED_CLASS))
44 return NULL; 44 return NULL;
45 obj = eo_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_INTERNAL_SMART_CLIPPED_CLASS); 45 obj = eo_data_scope_get(eo_obj, EFL_CANVAS_GROUP_CLIPPED_CLASS);
46 return obj->clipper; 46 return obj->clipper;
47} 47}
48 48
@@ -72,7 +72,7 @@ evas_object_smart_clipped_smart_add(Evas_Object *eo_obj)
72} 72}
73 73
74EOLIAN static void 74EOLIAN static void
75_efl_canvas_object_internal_smart_clipped_evas_object_smart_smart_add(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED) 75_efl_canvas_group_clipped_efl_canvas_group_group_add(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED)
76{ 76{
77 evas_object_smart_clipped_smart_add(eo_obj); 77 evas_object_smart_clipped_smart_add(eo_obj);
78} 78}
@@ -89,7 +89,7 @@ evas_object_smart_clipped_smart_del(Evas_Object *eo_obj)
89 evas_object_del(clipper); 89 evas_object_del(clipper);
90 } 90 }
91 91
92 _evas_object_smart_smart_members_all_del(eo_obj); 92 _efl_canvas_group_group_members_all_del(eo_obj);
93 93
94 /* If it's a legacy smart object, we should free the cso. */ 94 /* If it's a legacy smart object, we should free the cso. */
95 if (!eo_isa(eo_obj, MY_CLASS)) 95 if (!eo_isa(eo_obj, MY_CLASS))
@@ -99,7 +99,7 @@ evas_object_smart_clipped_smart_del(Evas_Object *eo_obj)
99} 99}
100 100
101EOLIAN static void 101EOLIAN static void
102_efl_canvas_object_internal_smart_clipped_evas_object_smart_smart_del(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED) 102_efl_canvas_group_clipped_efl_canvas_group_group_del(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED)
103{ 103{
104 evas_object_smart_clipped_smart_del(eo_obj); 104 evas_object_smart_clipped_smart_del(eo_obj);
105} 105}
@@ -114,13 +114,13 @@ evas_object_smart_clipped_smart_move(Evas_Object *eo_obj, Evas_Coord x, Evas_Coo
114} 114}
115 115
116EOLIAN static void 116EOLIAN static void
117_efl_canvas_object_internal_smart_clipped_evas_object_smart_smart_move(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, Evas_Coord x, Evas_Coord y) 117_efl_canvas_group_clipped_efl_canvas_group_group_move(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, Evas_Coord x, Evas_Coord y)
118{ 118{
119 evas_object_smart_clipped_smart_move(eo_obj, x, y); 119 evas_object_smart_clipped_smart_move(eo_obj, x, y);
120} 120}
121 121
122static void 122static void
123evas_object_smart_clipped_smart_show(Evas_Object *eo_obj) 123evas_object_smart_clipped_group_show(Evas_Object *eo_obj)
124{ 124{
125 CSO_DATA_GET_OR_RETURN(eo_obj, cso); 125 CSO_DATA_GET_OR_RETURN(eo_obj, cso);
126 if (evas_object_clipees_has(cso->clipper)) 126 if (evas_object_clipees_has(cso->clipper))
@@ -128,22 +128,22 @@ evas_object_smart_clipped_smart_show(Evas_Object *eo_obj)
128} 128}
129 129
130EOLIAN static void 130EOLIAN static void
131_efl_canvas_object_internal_smart_clipped_evas_object_smart_smart_show(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED) 131_efl_canvas_group_clipped_efl_canvas_group_group_show(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED)
132{ 132{
133 evas_object_smart_clipped_smart_show(eo_obj); 133 evas_object_smart_clipped_group_show(eo_obj);
134} 134}
135 135
136static void 136static void
137evas_object_smart_clipped_smart_hide(Evas_Object *eo_obj) 137evas_object_smart_clipped_group_hide(Evas_Object *eo_obj)
138{ 138{
139 CSO_DATA_GET_OR_RETURN(eo_obj, cso); 139 CSO_DATA_GET_OR_RETURN(eo_obj, cso);
140 evas_object_hide(cso->clipper); 140 evas_object_hide(cso->clipper);
141} 141}
142 142
143EOLIAN static void 143EOLIAN static void
144_efl_canvas_object_internal_smart_clipped_evas_object_smart_smart_hide(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED) 144_efl_canvas_group_clipped_efl_canvas_group_group_hide(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED)
145{ 145{
146 evas_object_smart_clipped_smart_hide(eo_obj); 146 evas_object_smart_clipped_group_hide(eo_obj);
147} 147}
148 148
149static void 149static void
@@ -154,7 +154,7 @@ evas_object_smart_clipped_smart_color_set(Evas_Object *eo_obj, int r, int g, int
154} 154}
155 155
156EOLIAN static void 156EOLIAN static void
157_efl_canvas_object_internal_smart_clipped_evas_object_smart_smart_color_set(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, int r, int g, int b, int a) 157_efl_canvas_group_clipped_efl_canvas_group_group_color_set(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, int r, int g, int b, int a)
158{ 158{
159 evas_object_smart_clipped_smart_color_set(eo_obj, r, g, b, a); 159 evas_object_smart_clipped_smart_color_set(eo_obj, r, g, b, a);
160} 160}
@@ -167,7 +167,7 @@ evas_object_smart_clipped_smart_clip_set(Evas_Object *eo_obj, Evas_Object *clip)
167} 167}
168 168
169EOLIAN static void 169EOLIAN static void
170_efl_canvas_object_internal_smart_clipped_evas_object_smart_smart_clip_set(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, Evas_Object *clip) 170_efl_canvas_group_clipped_efl_canvas_group_group_clip_set(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, Evas_Object *clip)
171{ 171{
172 evas_object_smart_clipped_smart_clip_set(eo_obj, clip); 172 evas_object_smart_clipped_smart_clip_set(eo_obj, clip);
173} 173}
@@ -180,7 +180,7 @@ evas_object_smart_clipped_smart_clip_unset(Evas_Object *eo_obj)
180} 180}
181 181
182EOLIAN static void 182EOLIAN static void
183_efl_canvas_object_internal_smart_clipped_evas_object_smart_smart_clip_unset(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED) 183_efl_canvas_group_clipped_efl_canvas_group_group_clip_unset(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED)
184{ 184{
185 evas_object_smart_clipped_smart_clip_unset(eo_obj); 185 evas_object_smart_clipped_smart_clip_unset(eo_obj);
186} 186}
@@ -197,9 +197,9 @@ evas_object_smart_clipped_smart_member_add(Evas_Object *eo_obj, Evas_Object *mem
197} 197}
198 198
199EOLIAN static void 199EOLIAN static void
200_efl_canvas_object_internal_smart_clipped_evas_object_smart_smart_member_add(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, Evas_Object *member) 200_efl_canvas_group_clipped_efl_canvas_group_group_member_add(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, Evas_Object *member)
201{ 201{
202 evas_obj_smart_member_add(eo_super(eo_obj, MY_CLASS), member); 202 efl_canvas_group_member_add(eo_super(eo_obj, MY_CLASS), member);
203 evas_object_smart_clipped_smart_member_add(eo_obj, member); 203 evas_object_smart_clipped_smart_member_add(eo_obj, member);
204} 204}
205 205
@@ -215,10 +215,10 @@ evas_object_smart_clipped_smart_member_del(Evas_Object *eo_obj, Evas_Object *mem
215} 215}
216 216
217EOLIAN static void 217EOLIAN static void
218_efl_canvas_object_internal_smart_clipped_evas_object_smart_smart_member_del(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, Evas_Object *member) 218_efl_canvas_group_clipped_efl_canvas_group_group_member_del(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, Evas_Object *member)
219{ 219{
220 evas_object_smart_clipped_smart_member_del(eo_obj, member); 220 evas_object_smart_clipped_smart_member_del(eo_obj, member);
221 evas_obj_smart_member_del(eo_super(eo_obj, MY_CLASS), member); 221 efl_canvas_group_member_del(eo_super(eo_obj, MY_CLASS), member);
222} 222}
223 223
224EAPI void 224EAPI void
@@ -230,8 +230,8 @@ evas_object_smart_clipped_smart_set(Evas_Smart_Class *sc)
230 sc->add = evas_object_smart_clipped_smart_add; 230 sc->add = evas_object_smart_clipped_smart_add;
231 sc->del = evas_object_smart_clipped_smart_del; 231 sc->del = evas_object_smart_clipped_smart_del;
232 sc->move = evas_object_smart_clipped_smart_move; 232 sc->move = evas_object_smart_clipped_smart_move;
233 sc->show = evas_object_smart_clipped_smart_show; 233 sc->show = evas_object_smart_clipped_group_show;
234 sc->hide = evas_object_smart_clipped_smart_hide; 234 sc->hide = evas_object_smart_clipped_group_hide;
235 sc->color_set = evas_object_smart_clipped_smart_color_set; 235 sc->color_set = evas_object_smart_clipped_smart_color_set;
236 sc->clip_set = evas_object_smart_clipped_smart_clip_set; 236 sc->clip_set = evas_object_smart_clipped_smart_clip_set;
237 sc->clip_unset = evas_object_smart_clipped_smart_clip_unset; 237 sc->clip_unset = evas_object_smart_clipped_smart_clip_unset;
@@ -254,5 +254,5 @@ evas_object_smart_clipped_class_get(void)
254 return class; 254 return class;
255} 255}
256 256
257#include "canvas/efl_canvas_object_internal_smart_clipped.eo.c" 257#include "canvas/efl_canvas_group_clipped.eo.c"
258 258
diff --git a/src/lib/evas/canvas/evas_object_table.c b/src/lib/evas/canvas/evas_object_table.c
index cd616ff..c5fe22a 100644
--- a/src/lib/evas/canvas/evas_object_table.c
+++ b/src/lib/evas/canvas/evas_object_table.c
@@ -884,7 +884,7 @@ _evas_object_table_smart_calculate_regular(Evas_Object *o, Evas_Table_Data *priv
884} 884}
885 885
886EOLIAN static void 886EOLIAN static void
887_evas_table_evas_object_smart_smart_add(Eo *obj, Evas_Table_Data *priv) 887_evas_table_efl_canvas_group_group_add(Eo *obj, Evas_Table_Data *priv)
888{ 888{
889 priv->pad.h = 0; 889 priv->pad.h = 0;
890 priv->pad.v = 0; 890 priv->pad.v = 0;
@@ -898,11 +898,11 @@ _evas_table_evas_object_smart_smart_add(Eo *obj, Evas_Table_Data *priv)
898 priv->expand_h = 0; 898 priv->expand_h = 0;
899 priv->expand_v = 0; 899 priv->expand_v = 0;
900 900
901 evas_obj_smart_add(eo_super(obj, MY_CLASS)); 901 efl_canvas_group_add(eo_super(obj, MY_CLASS));
902} 902}
903 903
904EOLIAN static void 904EOLIAN static void
905_evas_table_evas_object_smart_smart_del(Eo *obj, Evas_Table_Data *priv) 905_evas_table_efl_canvas_group_group_del(Eo *obj, Evas_Table_Data *priv)
906{ 906{
907 Eina_List *l; 907 Eina_List *l;
908 908
@@ -922,11 +922,11 @@ _evas_table_evas_object_smart_smart_del(Eo *obj, Evas_Table_Data *priv)
922 priv->cache = NULL; 922 priv->cache = NULL;
923 } 923 }
924 924
925 evas_obj_smart_del(eo_super(obj, MY_CLASS)); 925 efl_canvas_group_del(eo_super(obj, MY_CLASS));
926} 926}
927 927
928EOLIAN static void 928EOLIAN static void
929_evas_table_evas_object_smart_smart_resize(Eo *obj, Evas_Table_Data *_pd EINA_UNUSED, Evas_Coord w, Evas_Coord h) 929_evas_table_efl_canvas_group_group_resize(Eo *obj, Evas_Table_Data *_pd EINA_UNUSED, Evas_Coord w, Evas_Coord h)
930{ 930{
931 Evas_Coord ow, oh; 931 Evas_Coord ow, oh;
932 evas_object_geometry_get(obj, NULL, NULL, &ow, &oh); 932 evas_object_geometry_get(obj, NULL, NULL, &ow, &oh);
@@ -935,7 +935,7 @@ _evas_table_evas_object_smart_smart_resize(Eo *obj, Evas_Table_Data *_pd EINA_UN
935} 935}
936 936
937EOLIAN static void 937EOLIAN static void
938_evas_table_evas_object_smart_smart_calculate(Eo *o, Evas_Table_Data *priv) 938_evas_table_efl_canvas_group_group_calculate(Eo *o, Evas_Table_Data *priv)
939{ 939{
940 Evas *e; 940 Evas *e;
941 941
@@ -1402,7 +1402,7 @@ _evas_table_mirrored_set(Eo *o, Evas_Table_Data *priv, Eina_Bool mirrored)
1402 if (priv->is_mirrored != mirrored) 1402 if (priv->is_mirrored != mirrored)
1403 { 1403 {
1404 priv->is_mirrored = mirrored; 1404 priv->is_mirrored = mirrored;
1405 evas_obj_smart_calculate(o); 1405 efl_canvas_group_calculate(o);
1406 } 1406 }
1407} 1407}
1408 1408
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index 3809b53..138c87d 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -1079,7 +1079,7 @@ _evas_render_can_use_overlay(Evas_Public_Data *e, Evas_Object *eo_obj)
1079 (current->cur->visible) && 1079 (current->cur->visible) &&
1080 (!current->delete_me) && 1080 (!current->delete_me) &&
1081 (current->cur->cache.clip.visible) && 1081 (current->cur->cache.clip.visible) &&
1082 (!eo_isa(eo_current, EVAS_OBJECT_SMART_CLASS))) 1082 (!eo_isa(eo_current, EFL_CANVAS_GROUP_CLASS)))
1083 { 1083 {
1084 Eina_Bool included = EINA_FALSE; 1084 Eina_Bool included = EINA_FALSE;
1085 1085
diff --git a/src/lib/evas/canvas/evas_table.eo b/src/lib/evas/canvas/evas_table.eo
index 36c88ee..d1de46c 100644
--- a/src/lib/evas/canvas/evas_table.eo
+++ b/src/lib/evas/canvas/evas_table.eo
@@ -9,7 +9,7 @@ enum Evas.Object_Table.Homogeneous_Mode {
9 item = 2 9 item = 2
10} 10}
11 11
12class Evas.Table (Efl.Canvas.Object.Internal.Smart.Clipped) 12class Evas.Table (Efl.Canvas.Group.Clipped)
13{ 13{
14 legacy_prefix: evas_object_table; 14 legacy_prefix: evas_object_table;
15 eo_prefix: evas_obj_table; 15 eo_prefix: evas_obj_table;
@@ -216,9 +216,9 @@ class Evas.Table (Efl.Canvas.Object.Internal.Smart.Clipped)
216 implements { 216 implements {
217 class.constructor; 217 class.constructor;
218 Eo.Base.constructor; 218 Eo.Base.constructor;
219 Evas.Object.Smart.smart_add; 219 Efl.Canvas.Group.group_add;
220 Evas.Object.Smart.smart_del; 220 Efl.Canvas.Group.group_del;
221 Evas.Object.Smart.smart_calculate; 221 Efl.Canvas.Group.group_calculate;
222 Evas.Object.Smart.smart_resize; 222 Efl.Canvas.Group.group_resize;
223 } 223 }
224} 224}
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index 4f40f6e..e6b84a5 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1583,7 +1583,7 @@ void evas_object_smart_member_lower(Evas_Object *member);
1583void evas_object_smart_member_stack_above(Evas_Object *member, Evas_Object *other); 1583void evas_object_smart_member_stack_above(Evas_Object *member, Evas_Object *other);
1584void evas_object_smart_member_stack_below(Evas_Object *member, Evas_Object *other); 1584void evas_object_smart_member_stack_below(Evas_Object *member, Evas_Object *other);
1585const Eina_Inlist *evas_object_smart_members_get_direct(const Evas_Object *obj); 1585const Eina_Inlist *evas_object_smart_members_get_direct(const Evas_Object *obj);
1586void _evas_object_smart_smart_members_all_del(Evas_Object *obj); 1586void _efl_canvas_group_group_members_all_del(Evas_Object *obj);
1587void evas_call_smarts_calculate(Evas *e); 1587void evas_call_smarts_calculate(Evas *e);
1588void evas_object_smart_bounding_box_update(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj); 1588void evas_object_smart_bounding_box_update(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj);
1589void evas_object_smart_need_bounding_box_update(Evas_Object *eo_obj, Evas_Smart_Data *o, Evas_Object_Protected_Data *obj); 1589void evas_object_smart_need_bounding_box_update(Evas_Object *eo_obj, Evas_Smart_Data *o, Evas_Object_Protected_Data *obj);