aboutsummaryrefslogtreecommitdiffstats
path: root/legacy/evas/src/lib/canvas/evas_object_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'legacy/evas/src/lib/canvas/evas_object_main.c')
-rw-r--r--legacy/evas/src/lib/canvas/evas_object_main.c1666
1 files changed, 1279 insertions, 387 deletions
diff --git a/legacy/evas/src/lib/canvas/evas_object_main.c b/legacy/evas/src/lib/canvas/evas_object_main.c
index 990ddc6df2..6ee429a0bf 100644
--- a/legacy/evas/src/lib/canvas/evas_object_main.c
+++ b/legacy/evas/src/lib/canvas/evas_object_main.c
@@ -1,9 +1,21 @@
#include "evas_common.h"
#include "evas_private.h"
-EVAS_MEMPOOL(_mp_obj);
EVAS_MEMPOOL(_mp_sh);
+#include "Eo.h"
+
+#define MY_CLASS EVAS_OBJ_CLASS
+
+#define MY_CLASS_NAME "Evas_Object"
+
+EAPI Eo_Op EVAS_OBJ_BASE_ID = EO_NOOP;
+
+static void
+_show(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj);
+static void
+_hide(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj);
+
static Eina_Inlist *
get_layer_objects(Evas_Layer *l)
{
@@ -12,27 +24,31 @@ get_layer_objects(Evas_Layer *l)
}
/* evas internal stuff */
-Evas_Object *
-evas_object_new(Evas *e __UNUSED__)
+static void
+_constructor(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED)
{
- Evas_Object *obj;
+ eo_do_super(eo_obj, eo_constructor());
+ eo_do(eo_obj, evas_obj_type_set(MY_CLASS_NAME));
+ eo_manual_free_set(eo_obj, EINA_TRUE);
- EVAS_MEMPOOL_INIT(_mp_obj, "evas_object", Evas_Object, 32, NULL);
- obj = EVAS_MEMPOOL_ALLOC(_mp_obj, Evas_Object);
- if (!obj) return NULL;
- EVAS_MEMPOOL_PREP(_mp_obj, obj, Evas_Object);
+ Evas_Object_Protected_Data *obj = _pd;
+ if (!obj)
+ {
+ eo_error_set(eo_obj);
+ return;
+ }
- obj->magic = MAGIC_OBJ;
obj->cur.scale = 1.0;
obj->prev.scale = 1.0;
obj->is_frame = EINA_FALSE;
-
- return obj;
+ obj->object = eo_obj;
}
void
-evas_object_change_reset(Evas_Object *obj)
+evas_object_change_reset(Evas_Object *eo_obj)
{
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
+ if (!obj) return;
obj->changed = EINA_FALSE;
obj->changed_move = EINA_FALSE;
obj->changed_color = EINA_FALSE;
@@ -41,8 +57,9 @@ evas_object_change_reset(Evas_Object *obj)
}
void
-evas_object_cur_prev(Evas_Object *obj)
+evas_object_cur_prev(Evas_Object *eo_obj)
{
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
if (!obj->prev.valid_map)
{
if (obj->prev.map != obj->cur.map)
@@ -61,15 +78,19 @@ evas_object_cur_prev(Evas_Object *obj)
}
void
-evas_object_free(Evas_Object *obj, int clean_layer)
+evas_object_free(Evas_Object *eo_obj, int clean_layer)
{
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
+ if (!obj) return;
+ obj->clean_layer = clean_layer;
+
int was_smart_child = 0;
#if 0 // filtering disabled
- evas_filter_free(obj);
+ evas_filter_free(eo_obj);
#endif
- if (!strcmp(obj->type, "image")) evas_object_image_video_surface_set(obj, NULL);
- evas_object_map_set(obj, NULL);
+ if (!strcmp(obj->type, "image")) evas_object_image_video_surface_set(eo_obj, NULL);
+ evas_object_map_set(eo_obj, NULL);
if (obj->prev.map) evas_map_free(obj->prev.map);
if (obj->cache_map) evas_map_free(obj->cache_map);
if (obj->map.surface)
@@ -79,17 +100,20 @@ evas_object_free(Evas_Object *obj, int clean_layer)
obj->map.surface);
obj->map.surface = NULL;
}
- evas_object_grabs_cleanup(obj);
- evas_object_intercept_cleanup(obj);
+ evas_object_grabs_cleanup(eo_obj, obj);
+ evas_object_intercept_cleanup(eo_obj);
if (obj->smart.parent) was_smart_child = 1;
- evas_object_smart_cleanup(obj);
- obj->func->free(obj);
- if (!was_smart_child) evas_object_release(obj, clean_layer);
+ evas_object_smart_cleanup(eo_obj);
+ if (obj->func->free)
+ {
+ obj->func->free(eo_obj, obj);
+ }
+ if (!was_smart_child) evas_object_release(eo_obj, obj, obj->clean_layer);
if (obj->clip.clipees)
eina_list_free(obj->clip.clipees);
- evas_object_clip_changes_clean(obj);
- evas_object_event_callback_all_del(obj);
- evas_object_event_callback_cleanup(obj);
+ evas_object_clip_changes_clean(eo_obj);
+ evas_object_event_callback_all_del(eo_obj);
+ evas_object_event_callback_cleanup(eo_obj);
if (obj->spans)
{
free(obj->spans);
@@ -103,19 +127,18 @@ evas_object_free(Evas_Object *obj, int clean_layer)
obj->data.elements = eina_list_remove(obj->data.elements, node);
free(node);
}
- obj->magic = 0;
if (obj->size_hints)
{
EVAS_MEMPOOL_FREE(_mp_sh, obj->size_hints);
}
- EVAS_MEMPOOL_FREE(_mp_obj, obj);
+ eo_manual_free(eo_obj);
}
void
-evas_object_change(Evas_Object *obj)
+evas_object_change(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
{
Eina_List *l;
- Evas_Object *obj2;
+ Evas_Object *eo_obj2;
Eina_Bool movch = EINA_FALSE;
if (obj->layer->evas->nochange) return;
@@ -129,24 +152,34 @@ evas_object_change(Evas_Object *obj)
if (obj->changed) return;
- evas_render_object_recalc(obj);
+ evas_render_object_recalc(eo_obj);
/* set changed flag on all objects this one clips too */
if (!((movch) && (obj->is_static_clip)))
{
- EINA_LIST_FOREACH(obj->clip.clipees, l, obj2)
- evas_object_change(obj2);
+ EINA_LIST_FOREACH(obj->clip.clipees, l, eo_obj2)
+ {
+ Evas_Object_Protected_Data *obj2 = eo_data_get(eo_obj2, MY_CLASS);
+ evas_object_change(eo_obj2, obj2);
+ }
+ }
+ EINA_LIST_FOREACH(obj->proxy.proxies, l, eo_obj2)
+ {
+ Evas_Object_Protected_Data *obj2 = eo_data_get(eo_obj2, MY_CLASS);
+ evas_object_change(eo_obj2, obj2);
}
- EINA_LIST_FOREACH(obj->proxy.proxies, l, obj2)
+ if (obj->smart.parent)
{
- evas_object_change(obj2);
+ Evas_Object_Protected_Data *smart_parent = eo_data_get(obj->smart.parent, MY_CLASS);
+ evas_object_change(obj->smart.parent, smart_parent);
}
- if (obj->smart.parent) evas_object_change(obj->smart.parent);
}
void
-evas_object_render_pre_visible_change(Eina_Array *rects, Evas_Object *obj, int is_v, int was_v)
+evas_object_render_pre_visible_change(Eina_Array *rects, Evas_Object *eo_obj, int is_v, int was_v)
{
- if (obj->smart.smart) return;
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
+
+ if (obj->is_smart) return;
if (is_v == was_v) return;
if (is_v)
{
@@ -167,22 +200,30 @@ evas_object_render_pre_visible_change(Eina_Array *rects, Evas_Object *obj, int i
}
void
-evas_object_render_pre_clipper_change(Eina_Array *rects, Evas_Object *obj)
+evas_object_render_pre_clipper_change(Eina_Array *rects, Evas_Object *eo_obj)
{
- if (obj->smart.smart) return;
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
+
+ Evas_Object_Protected_Data *cur_clipper = NULL;
+ Evas_Object_Protected_Data *prev_clipper = NULL;
+ if (obj->is_smart) return;
if (obj->cur.clipper == obj->prev.clipper) return;
+ if (obj->cur.clipper)
+ cur_clipper = eo_data_get(obj->cur.clipper, MY_CLASS);
+ if (obj->prev.clipper)
+ prev_clipper = eo_data_get(obj->prev.clipper, MY_CLASS);
if ((obj->cur.clipper) && (obj->prev.clipper))
{
/* get difference rects between clippers */
evas_rects_return_difference_rects(rects,
- obj->cur.clipper->cur.cache.clip.x,
- obj->cur.clipper->cur.cache.clip.y,
- obj->cur.clipper->cur.cache.clip.w,
- obj->cur.clipper->cur.cache.clip.h,
- obj->prev.clipper->prev.cache.clip.x,
- obj->prev.clipper->prev.cache.clip.y,
- obj->prev.clipper->prev.cache.clip.w,
- obj->prev.clipper->prev.cache.clip.h);
+ cur_clipper->cur.cache.clip.x,
+ cur_clipper->cur.cache.clip.y,
+ cur_clipper->cur.cache.clip.w,
+ cur_clipper->cur.cache.clip.h,
+ prev_clipper->prev.cache.clip.x,
+ prev_clipper->prev.cache.clip.y,
+ prev_clipper->prev.cache.clip.w,
+ prev_clipper->prev.cache.clip.h);
}
else if (obj->cur.clipper)
{
@@ -195,10 +236,10 @@ evas_object_render_pre_clipper_change(Eina_Array *rects, Evas_Object *obj)
//// obj->cur.cache.geometry.y,
//// obj->cur.cache.geometry.w,
//// obj->cur.cache.geometry.h,
- obj->cur.clipper->cur.cache.clip.x,
- obj->cur.clipper->cur.cache.clip.y,
- obj->cur.clipper->cur.cache.clip.w,
- obj->cur.clipper->cur.cache.clip.h);
+ cur_clipper->cur.cache.clip.x,
+ cur_clipper->cur.cache.clip.y,
+ cur_clipper->cur.cache.clip.w,
+ cur_clipper->cur.cache.clip.h);
}
else if (obj->prev.clipper)
{
@@ -211,16 +252,18 @@ evas_object_render_pre_clipper_change(Eina_Array *rects, Evas_Object *obj)
//// obj->prev.cache.geometry.y,
//// obj->prev.cache.geometry.w,
//// obj->prev.cache.geometry.h,
- obj->prev.clipper->prev.cache.clip.x,
- obj->prev.clipper->prev.cache.clip.y,
- obj->prev.clipper->prev.cache.clip.w,
- obj->prev.clipper->prev.cache.clip.h);
+ prev_clipper->prev.cache.clip.x,
+ prev_clipper->prev.cache.clip.y,
+ prev_clipper->prev.cache.clip.w,
+ prev_clipper->prev.cache.clip.h);
}
}
void
-evas_object_render_pre_prev_cur_add(Eina_Array *rects, Evas_Object *obj)
+evas_object_render_pre_prev_cur_add(Eina_Array *rects, Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj)
{
+ if (!obj) return;
+
evas_add_rect(rects,
obj->cur.cache.clip.x,
obj->cur.cache.clip.y,
@@ -254,8 +297,11 @@ evas_object_render_pre_prev_cur_add(Eina_Array *rects, Evas_Object *obj)
}
void
-evas_object_clip_changes_clean(Evas_Object *obj)
+evas_object_clip_changes_clean(Evas_Object *eo_obj)
{
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
+ if (!obj) return;
+
Eina_Rectangle *r;
EINA_LIST_FREE(obj->clip.changes, r)
@@ -263,16 +309,19 @@ evas_object_clip_changes_clean(Evas_Object *obj)
}
void
-evas_object_render_pre_effect_updates(Eina_Array *rects, Evas_Object *obj, int is_v, int was_v __UNUSED__)
+evas_object_render_pre_effect_updates(Eina_Array *rects, Evas_Object *eo_obj, int is_v, int was_v EINA_UNUSED)
{
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
+ if (!obj) return;
+
Eina_Rectangle *r;
- Evas_Object *clipper;
+ Evas_Object *eo_clipper;
Eina_List *l;
unsigned int i;
Eina_Array_Iterator it;
int x, y, w, h;
- if (obj->smart.smart) goto end;
+ if (obj->is_smart) goto end;
/* FIXME: was_v isn't used... why? */
if (!obj->clip.clipees)
{
@@ -308,9 +357,10 @@ evas_object_render_pre_effect_updates(Eina_Array *rects, Evas_Object *obj, int i
/* if the object is actually visible, take any parent clip changes */
if (is_v)
{
- clipper = obj->cur.clipper;
- while (clipper)
+ eo_clipper = obj->cur.clipper;
+ while (eo_clipper)
{
+ Evas_Object_Protected_Data *clipper = eo_data_get(eo_clipper, MY_CLASS);
EINA_LIST_FOREACH(clipper->clip.changes, l, r)
{
/* get updates and clip to current clip */
@@ -334,13 +384,13 @@ evas_object_render_pre_effect_updates(Eina_Array *rects, Evas_Object *obj, int i
obj->layer->evas->engine.func->output_redraws_rect_add(obj->layer->evas->engine.data.output,
x, y, w, h);
}
- clipper = clipper->cur.clipper;
+ eo_clipper = clipper->cur.clipper;
}
}
}
else
{
- evas_object_clip_changes_clean(obj);
+ evas_object_clip_changes_clean(eo_obj);
EINA_ARRAY_ITER_NEXT(rects, i, r, it)
obj->clip.changes = eina_list_append(obj->clip.changes, r);
eina_array_clean(rects);
@@ -353,9 +403,9 @@ evas_object_render_pre_effect_updates(Eina_Array *rects, Evas_Object *obj, int i
}
int
-evas_object_was_in_output_rect(Evas_Object *obj, int x, int y, int w, int h)
+evas_object_was_in_output_rect(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj, int x, int y, int w, int h)
{
- if (obj->smart.smart && !obj->prev.map && !obj->prev.usemap) return 0;
+ if (obj->is_smart && !obj->prev.map && !obj->prev.usemap) return 0;
/* assumes coords have been recalced */
if ((RECTS_INTERSECT(x, y, w, h,
obj->prev.cache.clip.x,
@@ -367,124 +417,155 @@ evas_object_was_in_output_rect(Evas_Object *obj, int x, int y, int w, int h)
}
int
-evas_object_was_opaque(Evas_Object *obj)
+evas_object_was_opaque(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
{
- if (obj->smart.smart) return 0;
+ if (obj->is_smart) return 0;
if (obj->prev.cache.clip.a == 255)
{
if (obj->func->was_opaque)
- return obj->func->was_opaque(obj);
+ return obj->func->was_opaque(eo_obj, obj);
return 1;
}
return 0;
}
int
-evas_object_is_inside(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
+evas_object_is_inside(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Coord x, Evas_Coord y)
{
- if (obj->smart.smart) return 0;
+ if (obj->is_smart) return 0;
if (obj->func->is_inside)
- return obj->func->is_inside(obj, x, y);
+ return obj->func->is_inside(eo_obj, obj, x, y);
return 0;
}
int
-evas_object_was_inside(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
+evas_object_was_inside(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Coord x, Evas_Coord y)
{
- if (obj->smart.smart) return 0;
+ if (obj->is_smart) return 0;
if (obj->func->was_inside)
- return obj->func->was_inside(obj, x, y);
+ return obj->func->was_inside(eo_obj, obj, x, y);
return 0;
}
/* routines apps will call */
EAPI void
-evas_object_ref(Evas_Object *obj)
+evas_object_ref(Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+
+ eo_ref(eo_obj);
+
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
obj->ref++;
}
EAPI void
-evas_object_unref(Evas_Object *obj)
+evas_object_unref(Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
+
if (obj->ref == 0) return;
obj->ref--;
- if ((obj->del_ref) && (obj->ref == 0)) evas_object_del(obj);
+ eo_unref(eo_obj);
+ if ((obj->del_ref) && (obj->ref == 0)) evas_object_del(eo_obj);
+
}
EAPI int
-evas_object_ref_get(const Evas_Object *obj)
+evas_object_ref_get(const Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return 0;
MAGIC_CHECK_END();
+
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
return obj->ref;
}
EAPI void
-evas_object_del(Evas_Object *obj)
+evas_object_del(Evas_Object *eo_obj)
{
- if (!obj) return;
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ if (!eo_obj) return;
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
- if (obj->delete_me) return;
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
+ if (obj->delete_me || obj->eo_del_called) return;
if (obj->ref > 0)
{
obj->del_ref = EINA_TRUE;
return;
}
- evas_object_hide(obj);
+ obj->eo_del_called = EINA_TRUE;
+
+ eo_parent_set(eo_obj, NULL);
+// eo_del(eo_obj);
+}
+
+static void
+_destructor(Eo *eo_obj, void *_pd, va_list *list EINA_UNUSED)
+{
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
+ return;
+ MAGIC_CHECK_END();
+ Evas_Object_Protected_Data *obj = _pd;
+
+ evas_object_hide(eo_obj);
if (obj->focused)
{
obj->focused = EINA_FALSE;
obj->layer->evas->focused = NULL;
_evas_object_event_new();
- evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_OUT, NULL, _evas_event_counter);
- _evas_post_event_callback_call(obj->layer->evas);
+ evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_OUT, NULL, _evas_event_counter);
+ _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
}
_evas_object_event_new();
- evas_object_event_callback_call(obj, EVAS_CALLBACK_DEL, NULL, _evas_event_counter);
- _evas_post_event_callback_call(obj->layer->evas);
+ evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_DEL, NULL, _evas_event_counter);
+ _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
if (obj->mouse_grabbed > 0)
obj->layer->evas->pointer.mouse_grabbed -= obj->mouse_grabbed;
if ((obj->mouse_in) || (obj->mouse_grabbed > 0))
obj->layer->evas->pointer.object.in = eina_list_remove(obj->layer->evas->pointer.object.in, obj);
obj->mouse_grabbed = 0;
obj->mouse_in = 0;
- if (obj->name) evas_object_name_set(obj, NULL);
+ if (obj->name) evas_object_name_set(eo_obj, NULL);
if (!obj->layer)
{
- evas_object_free(obj, 1);
- return;
+ eo_manual_free_set(eo_obj, EINA_FALSE);
+ obj->clean_layer = 1;
+ goto end;
}
- evas_object_grabs_cleanup(obj);
+ evas_object_grabs_cleanup(eo_obj, obj);
while (obj->clip.clipees)
evas_object_clip_unset(obj->clip.clipees->data);
while (obj->proxy.proxies)
evas_object_image_source_unset(obj->proxy.proxies->data);
- if (obj->cur.clipper) evas_object_clip_unset(obj);
- evas_object_map_set(obj, NULL);
- if (obj->smart.smart) evas_object_smart_del(obj);
+ if (obj->cur.clipper) evas_object_clip_unset(eo_obj);
+ evas_object_map_set(eo_obj, NULL);
+ if (obj->is_smart) evas_object_smart_del(eo_obj);
_evas_object_event_new();
- evas_object_event_callback_call(obj, EVAS_CALLBACK_FREE, NULL, _evas_event_counter);
- _evas_post_event_callback_call(obj->layer->evas);
- evas_object_smart_cleanup(obj);
+ evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FREE, NULL, _evas_event_counter);
+ _evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas);
+ evas_object_smart_cleanup(eo_obj);
obj->delete_me = 1;
- evas_object_change(obj);
+ evas_object_change(eo_obj, obj);
+end:
+ obj->supported_types = eina_list_free(obj->supported_types);
+ eo_do_super(eo_obj, eo_destructor());
}
+
void
-evas_object_update_bounding_box(Evas_Object *obj)
+evas_object_update_bounding_box(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj)
{
Eina_Bool propagate = EINA_FALSE;
Eina_Bool computeminmax = EINA_FALSE;
@@ -498,7 +579,7 @@ evas_object_update_bounding_box(Evas_Object *obj)
to reduce the bounding of the object they are clipping, but for the moment this will do it's jobs */
noclip = !(obj->clip.clipees || obj->is_static_clip);
- if (obj->smart.smart)
+ if (obj->is_smart)
{
x = obj->cur.bounding_box.x;
y = obj->cur.bounding_box.y;
@@ -525,56 +606,57 @@ evas_object_update_bounding_box(Evas_Object *obj)
* That's why we initialiaze min and max search to geometry of the parent object.
*/
- if (obj->smart.parent->cur.valid_bounding_box)
+ Evas_Object_Protected_Data *smart_parent = eo_data_get(obj->smart.parent, MY_CLASS);
+ if (smart_parent->cur.valid_bounding_box)
{
/* Update left limit */
- if (noclip && x < obj->smart.parent->cur.bounding_box.x)
+ if (noclip && x < smart_parent->cur.bounding_box.x)
{
- obj->smart.parent->cur.bounding_box.w += obj->smart.parent->cur.bounding_box.x - x;
- obj->smart.parent->cur.bounding_box.x = x;
+ smart_parent->cur.bounding_box.w += smart_parent->cur.bounding_box.x - x;
+ smart_parent->cur.bounding_box.x = x;
propagate = EINA_TRUE;
}
- else if ((px == obj->smart.parent->prev.bounding_box.x && x > obj->smart.parent->cur.bounding_box.x)
- || (!noclip && x == obj->smart.parent->cur.bounding_box.x))
+ else if ((px == smart_parent->prev.bounding_box.x && x > smart_parent->cur.bounding_box.x)
+ || (!noclip && x == smart_parent->cur.bounding_box.x))
{
computeminmax = EINA_TRUE;
}
/* Update top limit */
- if (noclip && y < obj->smart.parent->cur.bounding_box.y)
+ if (noclip && y < smart_parent->cur.bounding_box.y)
{
- obj->smart.parent->cur.bounding_box.h += obj->smart.parent->cur.bounding_box.x - x;
- obj->smart.parent->cur.bounding_box.y = y;
+ smart_parent->cur.bounding_box.h += smart_parent->cur.bounding_box.x - x;
+ smart_parent->cur.bounding_box.y = y;
propagate = EINA_TRUE;
}
- else if ((py == obj->smart.parent->prev.bounding_box.y && y > obj->smart.parent->cur.bounding_box.y)
- || (!noclip && y == obj->smart.parent->cur.bounding_box.y))
+ else if ((py == smart_parent->prev.bounding_box.y && y > smart_parent->cur.bounding_box.y)
+ || (!noclip && y == smart_parent->cur.bounding_box.y))
{
computeminmax = EINA_TRUE;
}
/* Update right limit */
- if (noclip && x + w > obj->smart.parent->cur.bounding_box.x + obj->smart.parent->cur.bounding_box.w)
+ if (noclip && x + w > smart_parent->cur.bounding_box.x + smart_parent->cur.bounding_box.w)
{
- obj->smart.parent->cur.bounding_box.w = x + w - obj->smart.parent->cur.bounding_box.x;
+ smart_parent->cur.bounding_box.w = x + w - smart_parent->cur.bounding_box.x;
propagate = EINA_TRUE;
}
- else if ((px + pw == obj->smart.parent->prev.bounding_box.x + obj->smart.parent->prev.bounding_box.w &&
- x + w < obj->smart.parent->cur.bounding_box.x + obj->smart.parent->cur.bounding_box.w)
- || (!noclip && x + w == obj->smart.parent->cur.bounding_box.x + obj->smart.parent->cur.bounding_box.w))
+ else if ((px + pw == smart_parent->prev.bounding_box.x + smart_parent->prev.bounding_box.w &&
+ x + w < smart_parent->cur.bounding_box.x + smart_parent->cur.bounding_box.w)
+ || (!noclip && x + w == smart_parent->cur.bounding_box.x + smart_parent->cur.bounding_box.w))
{
computeminmax = EINA_TRUE;
}
/* Update bottom limit */
- if (noclip && y + h > obj->smart.parent->cur.bounding_box.y + obj->smart.parent->cur.bounding_box.h)
+ if (noclip && y + h > smart_parent->cur.bounding_box.y + smart_parent->cur.bounding_box.h)
{
- obj->smart.parent->cur.bounding_box.h = y + h - obj->smart.parent->cur.bounding_box.y;
+ smart_parent->cur.bounding_box.h = y + h - smart_parent->cur.bounding_box.y;
propagate = EINA_TRUE;
}
- else if ((py + ph == obj->smart.parent->prev.bounding_box.y + obj->smart.parent->prev.bounding_box.h &&
- y + h < obj->smart.parent->cur.bounding_box.y + obj->smart.parent->cur.bounding_box.h) ||
- (!noclip && y + h == obj->smart.parent->cur.bounding_box.y + obj->smart.parent->cur.bounding_box.h))
+ else if ((py + ph == smart_parent->prev.bounding_box.y + smart_parent->prev.bounding_box.h &&
+ y + h < smart_parent->cur.bounding_box.y + smart_parent->cur.bounding_box.h) ||
+ (!noclip && y + h == smart_parent->cur.bounding_box.y + smart_parent->cur.bounding_box.h))
{
computeminmax = EINA_TRUE;
}
@@ -588,29 +670,40 @@ evas_object_update_bounding_box(Evas_Object *obj)
{
if (noclip)
{
- obj->smart.parent->cur.bounding_box.x = x;
- obj->smart.parent->cur.bounding_box.y = y;
- obj->smart.parent->cur.bounding_box.w = w;
- obj->smart.parent->cur.bounding_box.h = h;
- obj->smart.parent->cur.valid_bounding_box = EINA_TRUE;
+ smart_parent->cur.bounding_box.x = x;
+ smart_parent->cur.bounding_box.y = y;
+ smart_parent->cur.bounding_box.w = w;
+ smart_parent->cur.bounding_box.h = h;
+ smart_parent->cur.valid_bounding_box = EINA_TRUE;
propagate = EINA_TRUE;
}
}
if (propagate)
- evas_object_update_bounding_box(obj->smart.parent);
+ evas_object_update_bounding_box(obj->smart.parent, smart_parent);
}
EAPI void
-evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
+evas_object_move(Evas_Object *eo_obj, Evas_Coord x, Evas_Coord y)
+{
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
+ return;
+ MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_position_set(x, y));
+}
+
+static void
+_position_set(Eo *eo_obj, void *_pd, va_list *list)
{
- Evas *evas;
+ Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Coord x = va_arg(*list, Evas_Coord);
+ Evas_Coord y = va_arg(*list, Evas_Coord);
+
+ Evas_Public_Data *evas;
int is, was = 0, pass = 0, freeze = 0;
int nx = 0, ny = 0;
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
- return;
- MAGIC_CHECK_END();
if (obj->delete_me) return;
nx = x;
@@ -618,16 +711,16 @@ evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
evas = obj->layer->evas;
- if ((!obj->is_frame) && (obj != evas->framespace.clip))
+ if ((!obj->is_frame) && (eo_obj != evas->framespace.clip))
{
- if ((!obj->smart.parent) && (obj->smart.smart))
+ if ((!obj->smart.parent) && (obj->is_smart))
{
nx += evas->framespace.x;
ny += evas->framespace.y;
}
}
- if (evas_object_intercept_call_move(obj, nx, ny)) return;
+ if (evas_object_intercept_call_move(eo_obj, obj, nx, ny)) return;
if (obj->doing.in_move > 0)
{
@@ -637,45 +730,44 @@ evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
if ((obj->cur.geometry.x == nx) && (obj->cur.geometry.y == ny)) return;
- if (obj->layer->evas->events_frozen <= 0)
+ if (!(obj->layer->evas->is_frozen))
{
- pass = evas_event_passes_through(obj);
- freeze = evas_event_freezes_through(obj);
+ pass = evas_event_passes_through(eo_obj, obj);
+ freeze = evas_event_freezes_through(eo_obj, obj);
if ((!pass) && (!freeze))
- was = evas_object_is_in_output_rect(obj,
+ was = evas_object_is_in_output_rect(eo_obj, obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1);
}
obj->doing.in_move++;
- if (obj->smart.smart)
+ if (obj->is_smart)
{
- if (obj->smart.smart->smart_class->move)
- obj->smart.smart->smart_class->move(obj, nx, ny);
+ eo_do(eo_obj, evas_obj_smart_move(nx, ny));
}
obj->cur.geometry.x = nx;
obj->cur.geometry.y = ny;
- evas_object_update_bounding_box(obj);
+ evas_object_update_bounding_box(eo_obj, obj);
//// obj->cur.cache.geometry.validity = 0;
obj->changed_move = EINA_TRUE;
- evas_object_change(obj);
- evas_object_clip_dirty(obj);
+ evas_object_change(eo_obj, obj);
+ evas_object_clip_dirty(eo_obj, obj);
obj->doing.in_move--;
- if (obj->layer->evas->events_frozen <= 0)
+ if (!(obj->layer->evas->is_frozen))
{
- evas_object_recalc_clippees(obj);
+ evas_object_recalc_clippees(eo_obj, obj);
if (!pass)
{
- if (!obj->smart.smart)
+ if (!obj->is_smart)
{
- is = evas_object_is_in_output_rect(obj,
+ is = evas_object_is_in_output_rect(eo_obj, obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1);
if ((is ^ was) && obj->cur.visible)
- evas_event_feed_mouse_move(obj->layer->evas,
+ evas_event_feed_mouse_move(obj->layer->evas->evas,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y,
obj->layer->evas->last_timestamp,
@@ -683,21 +775,32 @@ evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
}
}
}
- evas_object_inform_call_move(obj);
+ evas_object_inform_call_move(eo_obj, obj);
}
EAPI void
-evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
+evas_object_resize(Evas_Object *eo_obj, Evas_Coord w, Evas_Coord h)
{
- int is, was = 0, pass = 0, freeze =0;
-
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_size_set(w, h));
+}
+
+static void
+_size_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Coord w = va_arg(*list, Evas_Coord);
+ Evas_Coord h = va_arg(*list, Evas_Coord);
+
+ int is, was = 0, pass = 0, freeze =0;
+
if (obj->delete_me) return;
if (w < 0) w = 0; if (h < 0) h = 0;
- if (evas_object_intercept_call_resize(obj, w, h)) return;
+ if (evas_object_intercept_call_resize(eo_obj, w, h)) return;
if (obj->doing.in_resize > 0)
{
@@ -707,48 +810,47 @@ evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
if ((obj->cur.geometry.w == w) && (obj->cur.geometry.h == h)) return;
- if (obj->layer->evas->events_frozen <= 0)
+ if (!(obj->layer->evas->is_frozen))
{
- pass = evas_event_passes_through(obj);
- freeze = evas_event_freezes_through(obj);
+ pass = evas_event_passes_through(eo_obj, obj);
+ freeze = evas_event_freezes_through(eo_obj, obj);
if ((!pass) && (!freeze))
- was = evas_object_is_in_output_rect(obj,
+ was = evas_object_is_in_output_rect(eo_obj, obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1);
}
obj->doing.in_resize++;
- if (obj->smart.smart)
+ if (obj->is_smart)
{
- if (obj->smart.smart->smart_class->resize)
- obj->smart.smart->smart_class->resize(obj, w, h);
+ eo_do(eo_obj, evas_obj_smart_resize(w, h));
}
obj->cur.geometry.w = w;
obj->cur.geometry.h = h;
- evas_object_update_bounding_box(obj);
+ evas_object_update_bounding_box(eo_obj, obj);
//// obj->cur.cache.geometry.validity = 0;
- evas_object_change(obj);
- evas_object_clip_dirty(obj);
+ evas_object_change(eo_obj, obj);
+ evas_object_clip_dirty(eo_obj, obj);
obj->doing.in_resize--;
/* NB: evas_object_recalc_clippees was here previously ( < 08/07/2009) */
- if (obj->layer->evas->events_frozen <= 0)
+ if (!(obj->layer->evas->is_frozen))
{
/* NB: If this creates glitches on screen then move to above position */
- evas_object_recalc_clippees(obj);
+ evas_object_recalc_clippees(eo_obj, obj);
- // if (obj->func->coords_recalc) obj->func->coords_recalc(obj);
+ // if (obj->func->coords_recalc) obj->func->coords_recalc(eo_obj);
if (!pass)
{
- if (!obj->smart.smart)
+ if (!obj->is_smart)
{
- is = evas_object_is_in_output_rect(obj,
+ is = evas_object_is_in_output_rect(eo_obj, obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1);
if ((is ^ was) && (obj->cur.visible))
- evas_event_feed_mouse_move(obj->layer->evas,
+ evas_event_feed_mouse_move(obj->layer->evas->evas,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y,
obj->layer->evas->last_timestamp,
@@ -756,22 +858,33 @@ evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
}
}
}
- evas_object_inform_call_resize(obj);
+ evas_object_inform_call_resize(eo_obj);
}
EAPI void
-evas_object_geometry_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
+evas_object_geometry_get(const Evas_Object *eo_obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
{
- Evas *evas;
- int nx = 0, ny = 0;
-
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0;
return;
MAGIC_CHECK_END();
+ eo_do((Eo *)eo_obj, evas_obj_position_get(x, y), evas_obj_size_get(w, h));
+}
+
+static void
+_position_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ Evas_Public_Data *evas;
+ int nx = 0, ny = 0;
+
+ const Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Coord *x = va_arg(*list, Evas_Coord *);
+ Evas_Coord *y = va_arg(*list, Evas_Coord *);
+
if (obj->delete_me)
{
- if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0;
+ if (x) *x = 0; if (y) *y = 0;
return;
}
@@ -780,9 +893,9 @@ evas_object_geometry_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, E
evas = obj->layer->evas;
- if ((!obj->is_frame) && (obj != evas->framespace.clip))
+ if ((!obj->is_frame) && (eo_obj != evas->framespace.clip))
{
- if ((!obj->smart.parent) && (obj->smart.smart))
+ if ((!obj->smart.parent) && (obj->is_smart))
{
if (nx > 0) nx -= evas->framespace.x;
if (ny > 0) ny -= evas->framespace.y;
@@ -791,12 +904,28 @@ evas_object_geometry_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, E
if (x) *x = nx;
if (y) *y = ny;
+}
+
+static void
+_size_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Coord *w = va_arg(*list, Evas_Coord *);
+ Evas_Coord *h = va_arg(*list, Evas_Coord *);
+
+ if (obj->delete_me)
+ {
+ if (w) *w = 0; if (h) *h = 0;
+ return;
+ }
+
if (w) *w = obj->cur.geometry.w;
if (h) *h = obj->cur.geometry.h;
}
static void
-_evas_object_size_hint_alloc(Evas_Object *obj)
+_evas_object_size_hint_alloc(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj)
{
if (obj->size_hints) return;
@@ -812,38 +941,51 @@ _evas_object_size_hint_alloc(Evas_Object *obj)
}
EAPI Evas_Display_Mode
-evas_object_size_hint_display_mode_get(const Evas_Object *obj)
+evas_object_size_hint_display_mode_get(const Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return EVAS_DISPLAY_MODE_NONE;
MAGIC_CHECK_END();
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
if ((!obj->size_hints) || obj->delete_me)
return EVAS_DISPLAY_MODE_NONE;
return obj->size_hints->dispmode;
}
EAPI void
-evas_object_size_hint_display_mode_set(Evas_Object *obj, Evas_Display_Mode dispmode)
+evas_object_size_hint_display_mode_set(Evas_Object *eo_obj, Evas_Display_Mode dispmode)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, MY_CLASS);
if (obj->delete_me)
return;
- _evas_object_size_hint_alloc(obj);
+ _evas_object_size_hint_alloc(eo_obj, obj);
if (obj->size_hints->dispmode == dispmode) return;
obj->size_hints->dispmode = dispmode;
- evas_object_inform_call_changed_size_hints(obj);
+ evas_object_inform_call_changed_size_hints(eo_obj);
}
EAPI void
-evas_object_size_hint_min_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h)
+evas_object_size_hint_min_get(const Evas_Object *eo_obj, Evas_Coord *w, Evas_Coord *h)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
if (w) *w = 0; if (h) *h = 0;
return;
MAGIC_CHECK_END();
+ eo_do((Eo *)eo_obj, evas_obj_size_hint_min_get(w, h));
+}
+
+static void
+_size_hint_min_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Coord *w = va_arg(*list, Evas_Coord *);
+ Evas_Coord *h = va_arg(*list, Evas_Coord *);
+
if ((!obj->size_hints) || obj->delete_me)
{
if (w) *w = 0; if (h) *h = 0;
@@ -854,28 +996,50 @@ evas_object_size_hint_min_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord
}
EAPI void
-evas_object_size_hint_min_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
+evas_object_size_hint_min_set(Evas_Object *eo_obj, Evas_Coord w, Evas_Coord h)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_size_hint_min_set(w, h));
+}
+
+static void
+_size_hint_min_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Coord w = va_arg(*list, Evas_Coord);
+ Evas_Coord h = va_arg(*list, Evas_Coord);
+
if (obj->delete_me)
return;
- _evas_object_size_hint_alloc(obj);
+ _evas_object_size_hint_alloc(eo_obj, obj);
if ((obj->size_hints->min.w == w) && (obj->size_hints->min.h == h)) return;
obj->size_hints->min.w = w;
obj->size_hints->min.h = h;
- evas_object_inform_call_changed_size_hints(obj);
+ evas_object_inform_call_changed_size_hints(eo_obj);
}
EAPI void
-evas_object_size_hint_max_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h)
+evas_object_size_hint_max_get(const Evas_Object *eo_obj, Evas_Coord *w, Evas_Coord *h)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
if (w) *w = -1; if (h) *h = -1;
return;
MAGIC_CHECK_END();
+ eo_do((Eo *)eo_obj, evas_obj_size_hint_max_get(w, h));
+}
+
+static void
+_size_hint_max_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Coord *w = va_arg(*list, Evas_Coord *);
+ Evas_Coord *h = va_arg(*list, Evas_Coord *);
+
if ((!obj->size_hints) || obj->delete_me)
{
if (w) *w = -1; if (h) *h = -1;
@@ -886,28 +1050,50 @@ evas_object_size_hint_max_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord
}
EAPI void
-evas_object_size_hint_max_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
+evas_object_size_hint_max_set(Evas_Object *eo_obj, Evas_Coord w, Evas_Coord h)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_size_hint_max_set(w, h));
+}
+
+static void
+_size_hint_max_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Coord w = va_arg(*list, Evas_Coord);
+ Evas_Coord h = va_arg(*list, Evas_Coord);
+
if (obj->delete_me)
return;
- _evas_object_size_hint_alloc(obj);
+ _evas_object_size_hint_alloc(eo_obj, obj);
if ((obj->size_hints->max.w == w) && (obj->size_hints->max.h == h)) return;
obj->size_hints->max.w = w;
obj->size_hints->max.h = h;
- evas_object_inform_call_changed_size_hints(obj);
+ evas_object_inform_call_changed_size_hints(eo_obj);
}
EAPI void
-evas_object_size_hint_request_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h)
+evas_object_size_hint_request_get(const Evas_Object *eo_obj, Evas_Coord *w, Evas_Coord *h)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
if (w) *w = 0; if (h) *h = 0;
return;
MAGIC_CHECK_END();
+ eo_do((Eo *)eo_obj, evas_obj_size_hint_request_get(w, h));
+}
+
+static void
+_size_hint_request_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Coord *w = va_arg(*list, Evas_Coord *);
+ Evas_Coord *h = va_arg(*list, Evas_Coord *);
+
if ((!obj->size_hints) || obj->delete_me)
{
if (w) *w = 0; if (h) *h = 0;
@@ -918,29 +1104,52 @@ evas_object_size_hint_request_get(const Evas_Object *obj, Evas_Coord *w, Evas_Co
}
EAPI void
-evas_object_size_hint_request_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
+evas_object_size_hint_request_set(Evas_Object *eo_obj, Evas_Coord w, Evas_Coord h)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_size_hint_request_set(w, h));
+}
+
+static void
+_size_hint_request_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Coord w = va_arg(*list, Evas_Coord);
+ Evas_Coord h = va_arg(*list, Evas_Coord);
+
if (obj->delete_me)
return;
- _evas_object_size_hint_alloc(obj);
+ _evas_object_size_hint_alloc(eo_obj, obj);
if ((obj->size_hints->request.w == w) && (obj->size_hints->request.h == h)) return;
obj->size_hints->request.w = w;
obj->size_hints->request.h = h;
- evas_object_inform_call_changed_size_hints(obj);
+ evas_object_inform_call_changed_size_hints(eo_obj);
}
EAPI void
-evas_object_size_hint_aspect_get(const Evas_Object *obj, Evas_Aspect_Control *aspect, Evas_Coord *w, Evas_Coord *h)
+evas_object_size_hint_aspect_get(const Evas_Object *eo_obj, Evas_Aspect_Control *aspect, Evas_Coord *w, Evas_Coord *h)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
if (aspect) *aspect = EVAS_ASPECT_CONTROL_NONE;
if (w) *w = 0; if (h) *h = 0;
return;
MAGIC_CHECK_END();
+ eo_do((Eo *)eo_obj, evas_obj_size_hint_aspect_get(aspect, w, h));
+}
+
+static void
+_size_hint_aspect_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const const Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Aspect_Control *aspect = va_arg(*list, Evas_Aspect_Control*);
+ Evas_Coord *w = va_arg(*list, Evas_Coord *);
+ Evas_Coord *h = va_arg(*list, Evas_Coord *);
+
if ((!obj->size_hints) || obj->delete_me)
{
if (aspect) *aspect = EVAS_ASPECT_CONTROL_NONE;
@@ -953,29 +1162,52 @@ evas_object_size_hint_aspect_get(const Evas_Object *obj, Evas_Aspect_Control *as
}
EAPI void
-evas_object_size_hint_aspect_set(Evas_Object *obj, Evas_Aspect_Control aspect, Evas_Coord w, Evas_Coord h)
+evas_object_size_hint_aspect_set(Evas_Object *eo_obj, Evas_Aspect_Control aspect, Evas_Coord w, Evas_Coord h)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_size_hint_aspect_set(aspect, w, h));
+}
+
+static void
+_size_hint_aspect_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Aspect_Control aspect = va_arg(*list, Evas_Aspect_Control);
+ Evas_Coord w = va_arg(*list, Evas_Coord);
+ Evas_Coord h = va_arg(*list, Evas_Coord);
+
if (obj->delete_me)
return;
- _evas_object_size_hint_alloc(obj);
+ _evas_object_size_hint_alloc(eo_obj, obj);
if ((obj->size_hints->aspect.mode == aspect) && (obj->size_hints->aspect.size.w == w) && (obj->size_hints->aspect.size.h == h)) return;
obj->size_hints->aspect.mode = aspect;
obj->size_hints->aspect.size.w = w;
obj->size_hints->aspect.size.h = h;
- evas_object_inform_call_changed_size_hints(obj);
+ evas_object_inform_call_changed_size_hints(eo_obj);
}
EAPI void
-evas_object_size_hint_align_get(const Evas_Object *obj, double *x, double *y)
+evas_object_size_hint_align_get(const Evas_Object *eo_obj, double *x, double *y)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
if (x) *x = 0.5; if (y) *y = 0.5;
return;
MAGIC_CHECK_END();
+ eo_do((Eo *)eo_obj, evas_obj_size_hint_align_get(x, y));
+}
+
+static void
+_size_hint_align_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+
+ double *x = va_arg(*list, double *);
+ double *y = va_arg(*list, double *);
+
if ((!obj->size_hints) || obj->delete_me)
{
if (x) *x = 0.5; if (y) *y = 0.5;
@@ -986,28 +1218,50 @@ evas_object_size_hint_align_get(const Evas_Object *obj, double *x, double *y)
}
EAPI void
-evas_object_size_hint_align_set(Evas_Object *obj, double x, double y)
+evas_object_size_hint_align_set(Evas_Object *eo_obj, double x, double y)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_size_hint_align_set(x, y));
+}
+
+static void
+_size_hint_align_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+
+ double x = va_arg(*list, double);
+ double y = va_arg(*list, double);
+
if (obj->delete_me)
return;
- _evas_object_size_hint_alloc(obj);
+ _evas_object_size_hint_alloc(eo_obj, obj);
if ((obj->size_hints->align.x == x) && (obj->size_hints->align.y == y)) return;
obj->size_hints->align.x = x;
obj->size_hints->align.y = y;
- evas_object_inform_call_changed_size_hints(obj);
+ evas_object_inform_call_changed_size_hints(eo_obj);
}
EAPI void
-evas_object_size_hint_weight_get(const Evas_Object *obj, double *x, double *y)
+evas_object_size_hint_weight_get(const Evas_Object *eo_obj, double *x, double *y)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
if (x) *x = 0.0; if (y) *y = 0.0;
return;
MAGIC_CHECK_END();
+ eo_do((Eo *)eo_obj, evas_obj_size_hint_weight_get(x, y));
+}
+
+static void
+_size_hint_weight_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+
+ double *x = va_arg(*list, double *);
+ double *y = va_arg(*list, double *);
+
if ((!obj->size_hints) || obj->delete_me)
{
if (x) *x = 0.0; if (y) *y = 0.0;
@@ -1018,29 +1272,53 @@ evas_object_size_hint_weight_get(const Evas_Object *obj, double *x, double *y)
}
EAPI void
-evas_object_size_hint_weight_set(Evas_Object *obj, double x, double y)
+evas_object_size_hint_weight_set(Evas_Object *eo_obj, double x, double y)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_size_hint_weight_set(x, y));
+}
+
+static void
+_size_hint_weight_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+
+ double x = va_arg(*list, double);
+ double y = va_arg(*list, double);
+
if (obj->delete_me)
return;
- _evas_object_size_hint_alloc(obj);
+ _evas_object_size_hint_alloc(eo_obj, obj);
if ((obj->size_hints->weight.x == x) && (obj->size_hints->weight.y == y)) return;
obj->size_hints->weight.x = x;
obj->size_hints->weight.y = y;
- evas_object_inform_call_changed_size_hints(obj);
+ evas_object_inform_call_changed_size_hints(eo_obj);
}
EAPI void
-evas_object_size_hint_padding_get(const Evas_Object *obj, Evas_Coord *l, Evas_Coord *r, Evas_Coord *t, Evas_Coord *b)
+evas_object_size_hint_padding_get(const Evas_Object *eo_obj, Evas_Coord *l, Evas_Coord *r, Evas_Coord *t, Evas_Coord *b)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
if (l) *l = 0; if (r) *r = 0;
if (t) *t = 0; if (b) *b = 0;
return;
MAGIC_CHECK_END();
+ eo_do((Eo *)eo_obj, evas_obj_size_hint_padding_get(l, r, t, b));
+}
+
+static void
+_size_hint_padding_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Coord *l = va_arg(*list, Evas_Coord *);
+ Evas_Coord *r = va_arg(*list, Evas_Coord *);
+ Evas_Coord *t = va_arg(*list, Evas_Coord *);
+ Evas_Coord *b = va_arg(*list, Evas_Coord *);
+
if ((!obj->size_hints) || obj->delete_me)
{
if (l) *l = 0; if (r) *r = 0;
@@ -1054,56 +1332,90 @@ evas_object_size_hint_padding_get(const Evas_Object *obj, Evas_Coord *l, Evas_Co
}
EAPI void
-evas_object_size_hint_padding_set(Evas_Object *obj, Evas_Coord l, Evas_Coord r, Evas_Coord t, Evas_Coord b)
+evas_object_size_hint_padding_set(Evas_Object *eo_obj, Evas_Coord l, Evas_Coord r, Evas_Coord t, Evas_Coord b)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_size_hint_padding_set(l, r, t, b));
+}
+
+static void
+_size_hint_padding_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Coord l = va_arg(*list, Evas_Coord);
+ Evas_Coord r = va_arg(*list, Evas_Coord);
+ Evas_Coord t = va_arg(*list, Evas_Coord);
+ Evas_Coord b = va_arg(*list, Evas_Coord);
+
if (obj->delete_me)
return;
- _evas_object_size_hint_alloc(obj);
+ _evas_object_size_hint_alloc(eo_obj, obj);
if ((obj->size_hints->padding.l == l) && (obj->size_hints->padding.r == r) && (obj->size_hints->padding.t == t) && (obj->size_hints->padding.b == b)) return;
obj->size_hints->padding.l = l;
obj->size_hints->padding.r = r;
obj->size_hints->padding.t = t;
obj->size_hints->padding.b = b;
- evas_object_inform_call_changed_size_hints(obj);
+ evas_object_inform_call_changed_size_hints(eo_obj);
}
EAPI void
-evas_object_show(Evas_Object *obj)
+evas_object_show(Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_visibility_set(EINA_TRUE));
+}
+
+EAPI void
+evas_object_hide(Evas_Object *eo_obj)
+{
+ if (!eo_obj) return;
+ eo_do(eo_obj, evas_obj_visibility_set(EINA_FALSE));
+}
+
+static void
+_visible_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+ Eina_Bool visible = va_arg(*list, int);
+ if (visible) _show(eo_obj, obj);
+ else _hide(eo_obj, obj);
+}
+
+static void
+_show (Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
+{
if (obj->delete_me) return;
- if (evas_object_intercept_call_show(obj)) return;
- if (obj->smart.smart)
+ if (evas_object_intercept_call_show(eo_obj)) return;
+ if (obj->is_smart)
{
- if (obj->smart.smart->smart_class->show)
- obj->smart.smart->smart_class->show(obj);
+ eo_do(eo_obj, evas_obj_smart_show());
}
if (obj->cur.visible)
{
return;
}
obj->cur.visible = 1;
- evas_object_change(obj);
- evas_object_clip_dirty(obj);
- if (obj->layer->evas->events_frozen <= 0)
- {
- evas_object_clip_across_clippees_check(obj);
- evas_object_recalc_clippees(obj);
- if ((!evas_event_passes_through(obj)) &&
- (!evas_event_freezes_through(obj)))
+ evas_object_change(eo_obj, obj);
+ evas_object_clip_dirty(eo_obj, obj);
+ if (!(obj->layer->evas->is_frozen))
+ {
+ evas_object_clip_across_clippees_check(eo_obj, obj);
+ evas_object_recalc_clippees(eo_obj, obj);
+ if ((!evas_event_passes_through(eo_obj, obj)) &&
+ (!evas_event_freezes_through(eo_obj, obj)))
{
- if (!obj->smart.smart)
+ if (!obj->is_smart)
{
- if (evas_object_is_in_output_rect(obj,
+ if (evas_object_is_in_output_rect(eo_obj, obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1))
- evas_event_feed_mouse_move(obj->layer->evas,
+ evas_event_feed_mouse_move(obj->layer->evas->evas,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y,
obj->layer->evas->last_timestamp,
@@ -1111,45 +1423,44 @@ evas_object_show(Evas_Object *obj)
}
}
}
- evas_object_inform_call_show(obj);
+ evas_object_inform_call_show(eo_obj);
}
-EAPI void
-evas_object_hide(Evas_Object *obj)
+static void
+_hide(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
if (obj->delete_me) return;
- if (evas_object_intercept_call_hide(obj)) return;
- if (obj->smart.smart)
+ if (evas_object_intercept_call_hide(eo_obj)) return;
+ if (obj->is_smart)
{
- if (obj->smart.smart->smart_class->hide)
- obj->smart.smart->smart_class->hide(obj);
+ eo_do(eo_obj, evas_obj_smart_hide());
}
if (!obj->cur.visible)
{
return;
}
obj->cur.visible = 0;
- evas_object_change(obj);
- evas_object_clip_dirty(obj);
- if (obj->layer->evas->events_frozen <= 0)
- {
- evas_object_clip_across_clippees_check(obj);
- evas_object_recalc_clippees(obj);
- if ((!evas_event_passes_through(obj)) &&
- (!evas_event_freezes_through(obj)))
+ evas_object_change(eo_obj, obj);
+ evas_object_clip_dirty(eo_obj, obj);
+ if (!(obj->layer->evas->is_frozen))
+ {
+ evas_object_clip_across_clippees_check(eo_obj, obj);
+ evas_object_recalc_clippees(eo_obj, obj);
+ if ((!evas_event_passes_through(eo_obj, obj)) &&
+ (!evas_event_freezes_through(eo_obj, obj)))
{
- if ((!obj->smart.smart) ||
+ if ((!obj->is_smart) ||
((obj->cur.map) && (obj->cur.map->count == 4) && (obj->cur.usemap)))
{
if (!obj->mouse_grabbed)
{
- if (evas_object_is_in_output_rect(obj,
+ if (evas_object_is_in_output_rect(eo_obj, obj,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y, 1, 1))
- evas_event_feed_mouse_move(obj->layer->evas,
+ evas_event_feed_mouse_move(obj->layer->evas->evas,
obj->layer->evas->pointer.x,
obj->layer->evas->pointer.y,
obj->layer->evas->last_timestamp,
@@ -1165,7 +1476,7 @@ evas_object_hide(Evas_Object *obj)
if ((obj->mouse_in) || (obj->mouse_grabbed > 0))
obj->layer->evas->pointer.object.in = eina_list_remove(obj->layer->evas->pointer.object.in, obj);
obj->mouse_grabbed = 0;
- if (obj->layer->evas->events_frozen > 0)
+ if (obj->layer->evas->is_frozen)
{
obj->mouse_in = 0;
return;
@@ -1187,8 +1498,8 @@ evas_object_hide(Evas_Object *obj)
ev.locks = &(obj->layer->evas->locks);
ev.timestamp = obj->layer->evas->last_timestamp;
ev.event_flags = EVAS_EVENT_FLAG_NONE;
- evas_object_event_callback_call(obj, EVAS_CALLBACK_MOUSE_OUT, &ev);
- _evas_post_event_callback_call(obj->layer->evas);
+ evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_MOUSE_OUT, &ev);
+ _evas_post_event_callback_call(obj->layer->evas, obj->layer->evas);
}
*/
}
@@ -1205,25 +1516,53 @@ evas_object_hide(Evas_Object *obj)
obj->mouse_in = 0;
*/
}
- evas_object_inform_call_hide(obj);
+ evas_object_inform_call_hide(eo_obj);
}
EAPI Eina_Bool
-evas_object_visible_get(const Evas_Object *obj)
+evas_object_visible_get(const Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return 0;
MAGIC_CHECK_END();
- if (obj->delete_me) return 0;
- return obj->cur.visible;
+ Eina_Bool visible = EINA_FALSE;
+ eo_do((Eo *)eo_obj, evas_obj_visibility_get(&visible));
+ return visible;
+}
+
+static void
+_visible_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ Eina_Bool* visible = va_arg(*list, Eina_Bool *);
+ const Evas_Object_Protected_Data *obj = _pd;
+ if (obj->delete_me)
+ {
+ if (visible) *visible = EINA_FALSE;
+ return;
+ }
+
+ if (visible) *visible = obj->cur.visible;
}
EAPI void
-evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a)
+evas_object_color_set(Evas_Object *eo_obj, int r, int g, int b, int a)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_color_set(r, g, b, a));
+}
+
+static void
+_color_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+
+ int r = va_arg(*list, int);
+ int g = va_arg(*list, int);
+ int b = va_arg(*list, int);
+ int a = va_arg(*list, int);
+
if (obj->delete_me) return;
if (r > 255) r = 255; if (r < 0) r = 0;
if (g > 255) g = 255; if (g < 0) g = 0;
@@ -1245,11 +1584,10 @@ evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a)
ERR("Evas only handles pre multiplied colors!");
}
- if (evas_object_intercept_call_color_set(obj, r, g, b, a)) return;
- if (obj->smart.smart)
+ if (evas_object_intercept_call_color_set(eo_obj, r, g, b, a)) return;
+ if (obj->is_smart)
{
- if (obj->smart.smart->smart_class->color_set)
- obj->smart.smart->smart_class->color_set(obj, r, g, b, a);
+ eo_do(eo_obj, evas_obj_smart_color_set(r, g, b, a));
}
if ((obj->cur.color.r == r) &&
(obj->cur.color.g == g) &&
@@ -1258,21 +1596,32 @@ evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a)
obj->cur.color.r = r;
obj->cur.color.g = g;
obj->cur.color.b = b;
- evas_object_clip_dirty(obj);
-
+ evas_object_clip_dirty(eo_obj, obj);
if ((obj->cur.color.a == 0) && (a == 0) && (obj->cur.render_op == EVAS_RENDER_BLEND)) return;
obj->cur.color.a = a;
obj->changed_color = EINA_TRUE;
- evas_object_change(obj);
+ evas_object_change(eo_obj, obj);
}
EAPI void
-evas_object_color_get(const Evas_Object *obj, int *r, int *g, int *b, int *a)
+evas_object_color_get(const Evas_Object *eo_obj, int *r, int *g, int *b, int *a)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
if (r) *r = 0; if (g) *g = 0; if (b) *b = 0; if (a) *a = 0;
return;
MAGIC_CHECK_END();
+ eo_do((Eo *)eo_obj, evas_obj_color_get(r, g, b, a));
+}
+
+static void
+_color_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+
+ int* r = va_arg(*list, int *);
+ int* g = va_arg(*list, int *);
+ int* b = va_arg(*list, int *);
+ int* a = va_arg(*list, int *);
if (obj->delete_me)
{
if (r) *r = 0; if (g) *g = 0; if (b) *b = 0; if (a) *a = 0;
@@ -1285,191 +1634,342 @@ evas_object_color_get(const Evas_Object *obj, int *r, int *g, int *b, int *a)
}
EAPI void
-evas_object_anti_alias_set(Evas_Object *obj, Eina_Bool anti_alias)
+evas_object_anti_alias_set(Evas_Object *eo_obj, Eina_Bool anti_alias)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_anti_alias_set(anti_alias));
+}
+
+static void
+_anti_alias_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+ Eina_Bool anti_alias = va_arg(*list, int);
+
if (obj->delete_me) return;
anti_alias = !!anti_alias;
if (obj->cur.anti_alias == anti_alias)return;
obj->cur.anti_alias = anti_alias;
- evas_object_change(obj);
+ evas_object_change(eo_obj, obj);
}
EAPI Eina_Bool
-evas_object_anti_alias_get(const Evas_Object *obj)
+evas_object_anti_alias_get(const Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return 0;
MAGIC_CHECK_END();
- if (obj->delete_me) return 0;
- return obj->cur.anti_alias;
+ Eina_Bool anti_alias = EINA_FALSE;
+ eo_do((Eo *)eo_obj, evas_obj_anti_alias_get(&anti_alias));
+ return anti_alias;
+}
+
+static void
+_anti_alias_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ Eina_Bool* anti_alias = va_arg(*list, Eina_Bool *);
+
+ const Evas_Object_Protected_Data *obj = _pd;
+ if (obj->delete_me)
+ {
+ if (anti_alias) *anti_alias = EINA_FALSE;
+ return;
+ }
+
+ if (anti_alias) *anti_alias = obj->cur.anti_alias;
}
EAPI void
-evas_object_scale_set(Evas_Object *obj, double scale)
+evas_object_scale_set(Evas_Object *eo_obj, double scale)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_scale_set(scale));
+}
+
+static void
+_scale_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+
+ double scale = va_arg(*list, double);
if (obj->delete_me) return;
if (obj->cur.scale == scale) return;
obj->cur.scale = scale;
- evas_object_change(obj);
- if (obj->func->scale_update) obj->func->scale_update(obj);
+ evas_object_change(eo_obj, obj);
+ if (obj->func->scale_update) obj->func->scale_update(eo_obj);
}
EAPI double
-evas_object_scale_get(const Evas_Object *obj)
+evas_object_scale_get(const Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return 0;
MAGIC_CHECK_END();
- if (obj->delete_me) return 1.0;
- return obj->cur.scale;
+ double scale = 1.0;
+ eo_do((Eo *)eo_obj, evas_obj_scale_get(&scale));
+ return scale;
+}
+
+static void
+_scale_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+
+ double* scale = va_arg(*list, double*);
+ if (obj->delete_me)
+ {
+ if (scale) *scale = 1.0;
+ return;
+ }
+ if (scale) *scale = obj->cur.scale;
}
EAPI void
-evas_object_render_op_set(Evas_Object *obj, Evas_Render_Op render_op)
+evas_object_render_op_set(Evas_Object *eo_obj, Evas_Render_Op render_op)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_render_op_set(render_op));
+}
+
+static void
+_render_op_set(Eo *eo_obj, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+
+ Evas_Render_Op render_op = va_arg(*list, Evas_Render_Op);
if (obj->delete_me) return;
if (obj->cur.render_op == render_op) return;
obj->cur.render_op = render_op;
- evas_object_change(obj);
+ evas_object_change(eo_obj, obj);
}
EAPI Evas_Render_Op
-evas_object_render_op_get(const Evas_Object *obj)
+evas_object_render_op_get(const Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return 0;
MAGIC_CHECK_END();
- if (obj->delete_me) return EVAS_RENDER_BLEND;
- return obj->cur.render_op;
+ Evas_Render_Op render_op = EVAS_RENDER_BLEND;
+ eo_do((Eo *)eo_obj, evas_obj_render_op_get(&render_op));
+ return render_op;
+}
+
+static void
+_render_op_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+ Evas_Render_Op* render_op = va_arg(*list, Evas_Render_Op *);
+
+ if (obj->delete_me)
+ {
+ if (render_op) *render_op = EVAS_RENDER_BLEND;
+ return;
+ }
+ if (render_op) *render_op = obj->cur.render_op;
}
EAPI Evas *
-evas_object_evas_get(const Evas_Object *obj)
+evas_object_evas_get(const Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return NULL;
MAGIC_CHECK_END();
- if (obj->delete_me) return NULL;
- return obj->layer->evas;
+ Evas *eo_evas = NULL;
+ eo_do((Eo *)eo_obj, evas_common_evas_get(&eo_evas));
+ return eo_evas;
+}
+
+static void
+_evas_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+ Evas **evas = va_arg(*list, Evas **);
+
+ if (obj->delete_me)
+ {
+ *evas = NULL;
+ return;
+ }
+ *evas = obj->layer->evas->evas;
}
EAPI Evas_Object *
-evas_object_top_at_xy_get(const Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects)
+evas_object_top_at_xy_get(const Evas *eo_e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects)
{
+ MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS);
+ return NULL;
+ MAGIC_CHECK_END();
+ Evas_Object *ret = NULL;
+ eo_do((Eo *)eo_e, evas_canvas_object_top_at_xy_get(x, y, include_pass_events_objects, include_hidden_objects, &ret));
+ return ret;
+}
+
+void
+_canvas_object_top_at_xy_get(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list)
+{
+ Evas_Coord x = va_arg(*list, Evas_Coord);
+ Evas_Coord y = va_arg(*list, Evas_Coord);
+ Eina_Bool include_pass_events_objects = va_arg(*list, int);
+ Eina_Bool include_hidden_objects = va_arg(*list, int);
+ Evas_Object **ret = va_arg(*list, Evas_Object **);
+
Evas_Layer *lay;
int xx, yy;
+ const Evas_Public_Data *e = _pd;
- MAGIC_CHECK(e, Evas, MAGIC_EVAS);
- return NULL;
- MAGIC_CHECK_END();
xx = x;
yy = y;
-//// xx = evas_coord_world_x_to_screen(e, x);
-//// yy = evas_coord_world_y_to_screen(e, y);
+//// xx = evas_coord_world_x_to_screen(eo_e, x);
+//// yy = evas_coord_world_y_to_screen(eo_e, y);
EINA_INLIST_REVERSE_FOREACH((EINA_INLIST_GET(e->layers)), lay)
{
- Evas_Object *obj;
+ Evas_Object *eo_obj;
+ Evas_Object_Protected_Data *obj;
EINA_INLIST_REVERSE_FOREACH(get_layer_objects(lay), obj)
{
+ eo_obj = obj->object;
if (obj->delete_me) continue;
if ((!include_pass_events_objects) &&
- (evas_event_passes_through(obj))) continue;
+ (evas_event_passes_through(eo_obj, obj))) continue;
if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
- evas_object_clip_recalc(obj);
- if ((evas_object_is_in_output_rect(obj, xx, yy, 1, 1)) &&
+ evas_object_clip_recalc(eo_obj, obj);
+ if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, 1, 1)) &&
(!obj->clip.clipees))
- return obj;
+ {
+ *ret = eo_obj;
+ return;
+ }
}
}
- return NULL;
+ *ret = NULL;
}
EAPI Evas_Object *
-evas_object_top_at_pointer_get(const Evas *e)
+evas_object_top_at_pointer_get(const Evas *eo_e)
{
- return evas_object_top_at_xy_get(e, e->pointer.x, e->pointer.y, EINA_TRUE,
- EINA_TRUE);
+ Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS);
+ Evas_Object *ret = NULL;
+ eo_do((Eo *)eo_e, evas_canvas_object_top_at_xy_get(e->pointer.x, e->pointer.y, EINA_TRUE,
+ EINA_TRUE, &ret));
+ return ret;
}
EAPI Evas_Object *
-evas_object_top_in_rectangle_get(const Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects)
+evas_object_top_in_rectangle_get(const Evas *eo_e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects)
+{
+ MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS);
+ return NULL;
+ MAGIC_CHECK_END();
+ Evas_Object *ret = NULL;
+ eo_do((Eo *)eo_e, evas_canvas_object_top_in_rectangle_get(x, y, w, h, include_pass_events_objects, include_hidden_objects, &ret));
+ return ret;
+}
+
+void
+_canvas_object_top_in_rectangle_get(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list)
{
+ Evas_Coord x = va_arg(*list, Evas_Coord);
+ Evas_Coord y = va_arg(*list, Evas_Coord);
+ Evas_Coord w = va_arg(*list, Evas_Coord);
+ Evas_Coord h = va_arg(*list, Evas_Coord);
+ Eina_Bool include_pass_events_objects = va_arg(*list, int);
+ Eina_Bool include_hidden_objects = va_arg(*list, int);
+ Evas_Object **ret = va_arg(*list, Evas_Object **);
+
+ const Evas_Public_Data *e = _pd;
Evas_Layer *lay;
int xx, yy, ww, hh;
- MAGIC_CHECK(e, Evas, MAGIC_EVAS);
- return NULL;
- MAGIC_CHECK_END();
xx = x;
yy = y;
ww = w;
hh = h;
-//// xx = evas_coord_world_x_to_screen(e, x);
-//// yy = evas_coord_world_y_to_screen(e, y);
-//// ww = evas_coord_world_x_to_screen(e, w);
-//// hh = evas_coord_world_y_to_screen(e, h);
+//// xx = evas_coord_world_x_to_screen(eo_e, x);
+//// yy = evas_coord_world_y_to_screen(eo_e, y);
+//// ww = evas_coord_world_x_to_screen(eo_e, w);
+//// hh = evas_coord_world_y_to_screen(eo_e, h);
if (ww < 1) ww = 1;
if (hh < 1) hh = 1;
EINA_INLIST_REVERSE_FOREACH((EINA_INLIST_GET(e->layers)), lay)
{
- Evas_Object *obj;
+ Evas_Object *eo_obj;
+ Evas_Object_Protected_Data *obj;
EINA_INLIST_REVERSE_FOREACH(get_layer_objects(lay), obj)
{
+ eo_obj = obj->object;
if (obj->delete_me) continue;
if ((!include_pass_events_objects) &&
- (evas_event_passes_through(obj))) continue;
+ (evas_event_passes_through(eo_obj, obj))) continue;
if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
- evas_object_clip_recalc(obj);
- if ((evas_object_is_in_output_rect(obj, xx, yy, ww, hh)) &&
+ evas_object_clip_recalc(eo_obj, obj);
+ if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, ww, hh)) &&
(!obj->clip.clipees))
- return obj;
+ {
+ *ret = eo_obj;
+ return;
+ }
}
}
- return NULL;
+ *ret = NULL;
}
EAPI Eina_List *
-evas_objects_at_xy_get(const Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects)
+evas_objects_at_xy_get(const Evas *eo_e, Evas_Coord x, Evas_Coord y, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects)
{
+ MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS);
+ return NULL;
+ MAGIC_CHECK_END();
+ Eina_List *ret = NULL;
+ eo_do((Eo *)eo_e, evas_canvas_objects_at_xy_get(x, y, include_pass_events_objects, include_hidden_objects, &ret));
+ return ret;
+}
+
+void
+_canvas_objects_at_xy_get(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list)
+{
+ Evas_Coord x = va_arg(*list, Evas_Coord);
+ Evas_Coord y = va_arg(*list, Evas_Coord);
+ Eina_Bool include_pass_events_objects = va_arg(*list, int);
+ Eina_Bool include_hidden_objects = va_arg(*list, int);
+ Eina_List **ret = va_arg(*list, Eina_List **);
+
Eina_List *in = NULL;
Evas_Layer *lay;
int xx, yy;
- MAGIC_CHECK(e, Evas, MAGIC_EVAS);
- return NULL;
- MAGIC_CHECK_END();
+ const Evas_Public_Data *e = _pd;
xx = x;
yy = y;
-//// xx = evas_coord_world_x_to_screen(e, x);
-//// yy = evas_coord_world_y_to_screen(e, y);
+//// xx = evas_coord_world_x_to_screen(eo_e, x);
+//// yy = evas_coord_world_y_to_screen(eo_e, y);
EINA_INLIST_REVERSE_FOREACH((EINA_INLIST_GET(e->layers)), lay)
{
- Evas_Object *obj;
+ Evas_Object *eo_obj;
+ Evas_Object_Protected_Data *obj;
EINA_INLIST_REVERSE_FOREACH(get_layer_objects(lay), obj)
{
+ eo_obj = obj->object;
+ // FIXME - Daniel: we don't know yet how to handle the next line
if (obj->delete_me) continue;
if ((!include_pass_events_objects) &&
- (evas_event_passes_through(obj))) continue;
+ (evas_event_passes_through(eo_obj, obj))) continue;
if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
- evas_object_clip_recalc(obj);
- if ((evas_object_is_in_output_rect(obj, xx, yy, 1, 1)) &&
+ evas_object_clip_recalc(eo_obj, obj);
+ if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, 1, 1)) &&
(!obj->clip.clipees))
in = eina_list_prepend(in, obj);
}
}
- return in;
+ *ret = in;
}
/**
@@ -1485,104 +1985,496 @@ evas_objects_at_xy_get(const Evas *e, Evas_Coord x, Evas_Coord y, Eina_Bool incl
*
*/
EAPI Eina_List *
-evas_objects_in_rectangle_get(const Evas *e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects)
+evas_objects_in_rectangle_get(const Evas *eo_e, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects)
+{
+ MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS);
+ return NULL;
+ MAGIC_CHECK_END();
+ Eina_List *ret = NULL;
+ eo_do((Eo *)eo_e, evas_canvas_objects_in_rectangle_get(x, y, w, h, include_pass_events_objects, include_hidden_objects, &ret));
+ return ret;
+}
+
+void
+_canvas_objects_in_rectangle_get(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list)
{
+ Evas_Coord x = va_arg(*list, Evas_Coord);
+ Evas_Coord y = va_arg(*list, Evas_Coord);
+ Evas_Coord w = va_arg(*list, Evas_Coord);
+ Evas_Coord h = va_arg(*list, Evas_Coord);
+ Eina_Bool include_pass_events_objects = va_arg(*list, int);
+ Eina_Bool include_hidden_objects = va_arg(*list, int);
+ Eina_List **ret = va_arg(*list, Eina_List **);
+
Eina_List *in = NULL;
Evas_Layer *lay;
int xx, yy, ww, hh;
- MAGIC_CHECK(e, Evas, MAGIC_EVAS);
- return NULL;
- MAGIC_CHECK_END();
+ const Evas_Public_Data *e = _pd;
xx = x;
yy = y;
ww = w;
hh = h;
-//// xx = evas_coord_world_x_to_screen(e, x);
-//// yy = evas_coord_world_y_to_screen(e, y);
-//// ww = evas_coord_world_x_to_screen(e, w);
-//// hh = evas_coord_world_y_to_screen(e, h);
+//// xx = evas_coord_world_x_to_screen(eo_e, x);
+//// yy = evas_coord_world_y_to_screen(eo_e, y);
+//// ww = evas_coord_world_x_to_screen(eo_e, w);
+//// hh = evas_coord_world_y_to_screen(eo_e, h);
if (ww < 1) ww = 1;
if (hh < 1) hh = 1;
EINA_INLIST_REVERSE_FOREACH((EINA_INLIST_GET(e->layers)), lay)
{
- Evas_Object *obj;
+ Evas_Object *eo_obj;
+ Evas_Object_Protected_Data *obj;
EINA_INLIST_REVERSE_FOREACH(get_layer_objects(lay), obj)
{
+ eo_obj = obj->object;
+ // FIXME - Daniel: we don't know yet how to handle the next line
if (obj->delete_me) continue;
if ((!include_pass_events_objects) &&
- (evas_event_passes_through(obj))) continue;
+ (evas_event_passes_through(eo_obj, obj))) continue;
if ((!include_hidden_objects) && (!obj->cur.visible)) continue;
- evas_object_clip_recalc(obj);
- if ((evas_object_is_in_output_rect(obj, xx, yy, ww, hh)) &&
+ evas_object_clip_recalc(eo_obj, obj);
+ if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, ww, hh)) &&
(!obj->clip.clipees))
in = eina_list_prepend(in, obj);
}
}
- return in;
+ *ret = in;
}
EAPI const char *
-evas_object_type_get(const Evas_Object *obj)
+evas_object_type_get(const Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return NULL;
MAGIC_CHECK_END();
- if (obj->delete_me) return "";
- return obj->type;
+ const char *type = NULL;
+ eo_do((Eo *)eo_obj, evas_obj_type_get(&type));
+ return type;
+}
+
+static void
+_type_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+ const char **type = va_arg(*list, const char **);
+ if (obj->delete_me)
+ {
+ if (type) *type = "";
+ return;
+ }
+ if (type) *type = obj->type;
+}
+
+static void
+_type_set(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+ const char *type = va_arg(*list, const char *);
+ obj->type = type; // Store it as the top type of this class
+ // Need to add this type to the list of all the types supported
+ obj->supported_types = eina_list_append(obj->supported_types, type);
}
EAPI void
-evas_object_precise_is_inside_set(Evas_Object *obj, Eina_Bool precise)
+evas_object_precise_is_inside_set(Evas_Object *eo_obj, Eina_Bool precise)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_precise_is_inside_set(precise));
+}
+
+static void
+_precise_is_inside_set(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+ Eina_Bool precise = va_arg(*list, int);
obj->precise_is_inside = precise;
}
EAPI Eina_Bool
-evas_object_precise_is_inside_get(const Evas_Object *obj)
+evas_object_precise_is_inside_get(const Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return 0;
MAGIC_CHECK_END();
- return obj->precise_is_inside;
+ Eina_Bool precise = EINA_FALSE;
+ eo_do((Eo *)eo_obj, evas_obj_precise_is_inside_get(&precise));
+ return precise;
+}
+
+static void
+_precise_is_inside_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+ Eina_Bool *precise = va_arg(*list, Eina_Bool *);
+ if (precise) *precise = obj->precise_is_inside;
}
EAPI void
-evas_object_static_clip_set(Evas_Object *obj, Eina_Bool is_static_clip)
+evas_object_static_clip_set(Evas_Object *eo_obj, Eina_Bool is_static_clip)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_static_clip_set(is_static_clip));
+}
+
+static void
+_static_clip_set(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+ Eina_Bool is_static_clip = va_arg(*list, int);
obj->is_static_clip = is_static_clip;
}
EAPI Eina_Bool
-evas_object_static_clip_get(const Evas_Object *obj)
+evas_object_static_clip_get(const Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return 0;
MAGIC_CHECK_END();
- return obj->is_static_clip;
+ Eina_Bool is_static_clip = EINA_FALSE;
+ eo_do((Eo *)eo_obj, evas_obj_static_clip_get(&is_static_clip));
+ return is_static_clip;
+}
+
+static void
+_static_clip_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+ Eina_Bool *is_static_clip = va_arg(*list, Eina_Bool *);
+ if (is_static_clip) *is_static_clip = obj->is_static_clip;
}
EAPI void
-evas_object_is_frame_object_set(Evas_Object *obj, Eina_Bool is_frame)
+evas_object_is_frame_object_set(Evas_Object *eo_obj, Eina_Bool is_frame)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return;
MAGIC_CHECK_END();
+ eo_do(eo_obj, evas_obj_is_frame_object_set(is_frame));
+}
+
+static void
+_is_frame_object_set(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = _pd;
+ Eina_Bool is_frame = va_arg(*list, int);
obj->is_frame = is_frame;
}
EAPI Eina_Bool
-evas_object_is_frame_object_get(Evas_Object *obj)
+evas_object_is_frame_object_get(Evas_Object *eo_obj)
{
- MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+ MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
return EINA_FALSE;
MAGIC_CHECK_END();
- return obj->is_frame;
+ Eina_Bool is_frame = EINA_FALSE;
+ eo_do(eo_obj, evas_obj_is_frame_object_get(&is_frame));
+ return is_frame;
+}
+
+static void
+_is_frame_object_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
+{
+ const Evas_Object_Protected_Data *obj = _pd;
+ Eina_Bool *is_frame = va_arg(*list, Eina_Bool *);
+ if (is_frame) *is_frame = obj->is_frame;
+}
+
+static void
+_smart_parent_get(Eo *eo_obj, void *_pd EINA_UNUSED, va_list *list)
+{
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, EVAS_OBJ_CLASS);
+ Evas_Object **smart_parent = va_arg(*list, Evas_Object **);
+ if (smart_parent) *smart_parent = obj->smart.parent;
+}
+
+static void
+_smart_data_get(Eo *eo_obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
+{
+ void **data = va_arg(*list, void **);
+ *data = NULL;
+}
+
+static void
+_type_check(Eo *eo_obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
+{
+ const char *type = va_arg(*list, const char *);
+ Eina_Bool *type_check = va_arg(*list, Eina_Bool *);
+ if (0 == strcmp(type, "Evas_Object"))
+ *type_check = EINA_TRUE;
+ else
+ *type_check = EINA_FALSE;
+}
+
+static void
+_smart_type_check(Eo *eo_obj, void *_pd EINA_UNUSED, va_list *list)
+{
+ const char *type = va_arg(*list, const char *);
+ Eina_Bool *type_check = va_arg(*list, Eina_Bool *);
+
+ const Evas_Smart_Class *sc;
+
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, EVAS_OBJ_CLASS);
+ if (!obj->is_smart)
+ {
+ *type_check = EINA_FALSE;
+ return;
+ }
+
+ if (obj->supported_types)
+ {
+ Eina_List *l;
+ const char *type_in_list;
+ EINA_LIST_FOREACH(obj->supported_types, l, type_in_list)
+ if (!strcmp(type_in_list, type))
+ {
+ *type_check = EINA_TRUE;
+ return;
+ }
+ }
+
+ eo_do((Eo *)eo_obj, evas_obj_type_check(type, type_check));
+
+ if (EINA_FALSE == *type_check)
+ {
+ if (obj->smart.smart)
+ {
+ sc = obj->smart.smart->smart_class;
+ while (sc)
+ {
+ if (!strcmp(sc->name, type))
+ {
+ *type_check = EINA_TRUE;
+ return;
+ }
+ sc = sc->parent;
+ }
+ }
+ }
+
+ *type_check = EINA_FALSE;
}
+
+static void
+_smart_type_check_ptr(Eo *eo_obj, void *_pd EINA_UNUSED, va_list *list)
+{
+ const Evas_Smart_Class *sc;
+ const char* type = va_arg(*list, const char *);
+ Eina_Bool *type_check = va_arg(*list, Eina_Bool *);
+
+ Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, EVAS_OBJ_CLASS);
+ if (!obj->is_smart)
+ {
+ if (type_check) *type_check = EINA_FALSE;
+ return;
+ }
+
+ eo_do((Eo *)eo_obj, evas_obj_type_check(type, type_check));
+
+ if (EINA_FALSE == *type_check)
+ {
+ if (obj->smart.smart)
+ {
+ sc = obj->smart.smart->smart_class;
+ while (sc)
+ {
+ if (sc->name == type)
+ {
+ if (type_check) *type_check = EINA_TRUE;
+ return;
+ }
+ sc = sc->parent;
+ }
+ }
+ }
+
+ if (type_check) *type_check = EINA_FALSE;
+}
+
+static void
+_class_constructor(Eo_Class *klass)
+{
+ const Eo_Op_Func_Description func_desc[] = {
+ EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor),
+ EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_DESTRUCTOR), _destructor),
+ EO_OP_FUNC(EVAS_COMMON_ID(EVAS_COMMON_SUB_ID_EVAS_GET), _evas_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_POSITION_SET), _position_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_POSITION_GET), _position_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_SET), _size_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_GET), _size_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_MIN_SET), _size_hint_min_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_MIN_GET), _size_hint_min_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_MAX_SET), _size_hint_max_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_MAX_GET), _size_hint_max_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_REQUEST_SET), _size_hint_request_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_REQUEST_GET), _size_hint_request_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_ASPECT_SET), _size_hint_aspect_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_ASPECT_GET), _size_hint_aspect_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_ALIGN_SET), _size_hint_align_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_ALIGN_GET), _size_hint_align_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_WEIGHT_SET), _size_hint_weight_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_WEIGHT_GET), _size_hint_weight_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_PADDING_SET), _size_hint_padding_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SIZE_HINT_PADDING_GET), _size_hint_padding_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_VISIBILITY_SET), _visible_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_VISIBILITY_GET), _visible_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_COLOR_SET), _color_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_COLOR_GET), _color_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_ANTI_ALIAS_SET), _anti_alias_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_ANTI_ALIAS_GET), _anti_alias_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SCALE_SET), _scale_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SCALE_GET), _scale_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_RENDER_OP_SET), _render_op_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_RENDER_OP_GET), _render_op_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_TYPE_SET), _type_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_TYPE_GET), _type_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_PRECISE_IS_INSIDE_SET), _precise_is_inside_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_PRECISE_IS_INSIDE_GET), _precise_is_inside_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_STATIC_CLIP_SET), _static_clip_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_STATIC_CLIP_GET), _static_clip_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_IS_FRAME_OBJECT_SET), _is_frame_object_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_IS_FRAME_OBJECT_GET), _is_frame_object_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_FREEZE_EVENTS_SET), _freeze_events_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_FREEZE_EVENTS_GET), _freeze_events_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_PASS_EVENTS_SET), _pass_events_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_PASS_EVENTS_GET), _pass_events_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_REPEAT_EVENTS_SET), _repeat_events_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_REPEAT_EVENTS_GET), _repeat_events_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_PROPAGATE_EVENTS_SET), _propagate_events_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_PROPAGATE_EVENTS_GET), _propagate_events_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_POINTER_MODE_SET), _pointer_mode_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_POINTER_MODE_GET), _pointer_mode_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_KEY_GRAB), _key_grab),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_KEY_UNGRAB), _key_ungrab),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_FOCUS_SET), _focus_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_FOCUS_GET), _focus_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_NAME_SET), _name_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_NAME_GET), _name_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_NAME_CHILD_FIND), _name_child_find),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_LAYER_SET), _layer_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_LAYER_GET), _layer_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_CLIP_SET), _clip_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_CLIP_GET), _clip_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_CLIP_UNSET), _clip_unset),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_CLIPEES_GET), _clipees_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_MAP_ENABLE_SET), _map_enable_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_MAP_ENABLE_GET), _map_enable_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_MAP_SET), _map_set),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_MAP_GET), _map_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SMART_PARENT_GET), _smart_parent_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SMART_DATA_GET), _smart_data_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SMART_TYPE_CHECK), _smart_type_check),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SMART_TYPE_CHECK_PTR), _smart_type_check_ptr),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SMART_MOVE_CHILDREN_RELATIVE), _smart_move_children_relative),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SMART_CLIPPED_CLIPPER_GET), _smart_clipped_clipper_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_RAISE), _raise),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_LOWER), _lower),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_STACK_ABOVE), _stack_above),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_STACK_BELOW), _stack_below),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_ABOVE_GET), _above_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_BELOW_GET), _below_get),
+ EO_OP_FUNC(EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_TYPE_CHECK), _type_check),
+ EO_OP_FUNC_SENTINEL
+ };
+
+ eo_class_funcs_set(klass, func_desc);
+}
+
+static const Eo_Op_Description op_desc[] = {
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_POSITION_SET, "Set the position of an evas object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_POSITION_GET, "Get the position of an evas object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_SET, "Set the size of an evas object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_GET, "Get the size of an evas object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_MIN_SET, "Sets the hints for an object's minimum size."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_MIN_GET, "Retrieves the hints for an object's minimum size."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_MAX_SET, "Sets the hints for an object's maximum size."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_MAX_GET, "Retrieves the hints for an object's maximum size."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_REQUEST_SET, "Sets the hints for an object's optimum size."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_REQUEST_GET, "Retrieves the hints for an object's optimum size."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_ASPECT_SET, "Sets the hints for an object's aspect ratio."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_ASPECT_GET, "Retrieves the hints for an object's aspect ratio."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_ALIGN_SET, "Sets the hints for an object's alignment."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_ALIGN_GET, "Retrieves the hints for on object's alignment."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_WEIGHT_SET, "Sets the hints for an object's weight."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_WEIGHT_GET, "Retrieves the hints for an object's weight."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_PADDING_SET, "Sets the hints for an object's padding space."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SIZE_HINT_PADDING_GET, "Retrieves the hints for an object's padding space."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_VISIBILITY_SET, "Makes the given Evas object visible/invisible."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_VISIBILITY_GET, "Retrieves whether or not the given Evas object is visible."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_COLOR_SET, "Sets the general/main color of the given Evas object to the given"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_COLOR_GET, "Retrieves the general/main color of the given Evas object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_ANTI_ALIAS_SET, "Sets whether or not the given Evas object is to be drawn anti-aliased."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_ANTI_ALIAS_GET, "Retrieves whether or not the given Evas object is to be drawn anti_aliased."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SCALE_SET, "Sets the scaling factor for an Evas object. Does not affect all"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SCALE_GET, "Retrieves the scaling factor for the given Evas object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_RENDER_OP_SET, "Sets the render_op to be used for rendering the Evas object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_RENDER_OP_GET, "Retrieves the current value of the operation used for rendering the Evas object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_TYPE_SET, "Sets the type of the given Evas object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_TYPE_GET, "Retrieves the type of the given Evas object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_PRECISE_IS_INSIDE_SET, "Set whether to use precise (usually expensive) point collision"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_PRECISE_IS_INSIDE_GET, "Determine whether an object is set to use precise point collision"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_STATIC_CLIP_SET, "Set a hint flag on the given Evas object that it's used as a static clipper."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_STATIC_CLIP_GET, "Get the static clipper hint flag for a given Evas object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_IS_FRAME_OBJECT_SET, "Set whether an object is a frame object"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_IS_FRAME_OBJECT_GET, "Determine whether an object is a frame object"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_FREEZE_EVENTS_SET, "Set whether an Evas object is to freeze (discard) events."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_FREEZE_EVENTS_GET, "Determine whether an object is set to freeze (discard) events."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_PASS_EVENTS_SET, "Set whether an Evas object is to pass (ignore) events."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_PASS_EVENTS_GET, "Determine whether an object is set to pass (ignore) events."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_REPEAT_EVENTS_SET, "Set whether an Evas object is to repeat events."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_REPEAT_EVENTS_GET, "Determine whether an object is set to repeat events."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_PROPAGATE_EVENTS_SET, "Set whether events on a smart object's member should get propagated"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_PROPAGATE_EVENTS_GET, "Retrieve whether an Evas object is set to propagate events."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_POINTER_MODE_SET, "Set pointer behavior."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_POINTER_MODE_GET, "Determine how pointer will behave."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_KEY_GRAB, "Requests keyname key events be directed to obj."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_KEY_UNGRAB, "Removes the grab on @p keyname key events by obj."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_FOCUS_SET, "Sets or unsets a given object as the currently focused one on its"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_FOCUS_GET, "Retrieve whether an object has the focus."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_NAME_SET, "Sets the name of the given Evas object to the given name."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_NAME_GET, "Retrieves the name of the given Evas object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_NAME_CHILD_FIND, "Retrieves the object from children of the given object with the given name."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_LAYER_SET, "Sets the layer of its canvas that the given object will be part of."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_LAYER_GET, "Retrieves the layer of its canvas that the given object is part of."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_CLIP_SET, "Clip one object to another."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_CLIP_GET, "Get the object clipping obj (if any)."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_CLIP_UNSET, "Disable/cease clipping on a clipped obj object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_CLIPEES_GET, "Return a list of objects currently clipped by obj."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_MAP_ENABLE_SET, "Enable or disable the map that is set."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_MAP_ENABLE_GET, "Get the map enabled state"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_MAP_SET, "Set current object transformation map."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_MAP_GET, "Get current object transformation map."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SMART_PARENT_GET, "Get the smart parent"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SMART_DATA_GET, "Get the smart data of obj"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SMART_TYPE_CHECK, "Checks whether a given smart object or any of its smart object"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SMART_TYPE_CHECK_PTR, "Checks whether a given smart object or any of its smart object"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SMART_MOVE_CHILDREN_RELATIVE, "Moves all children objects of a given smart object relative to a given offset"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_SMART_CLIPPED_CLIPPER_GET, "Get the clipper object for the given clipped smart object."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_RAISE, "Raise obj to the top of its layer."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_LOWER, "Lower obj to the bottom of its layer."),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_STACK_ABOVE, "Stack obj immediately above above"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_STACK_BELOW, "Stack obj immediately below below"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_ABOVE_GET, "Get the Evas object stacked right above obj"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_BELOW_GET, "Get the Evas object stacked right below obj"),
+ EO_OP_DESCRIPTION(EVAS_OBJ_SUB_ID_TYPE_CHECK, "description here"),
+ EO_OP_DESCRIPTION_SENTINEL
+};
+
+static const Eo_Class_Description class_desc = {
+ EO_VERSION,
+ MY_CLASS_NAME,
+ EO_CLASS_TYPE_REGULAR_NO_INSTANT,
+ EO_CLASS_DESCRIPTION_OPS(&EVAS_OBJ_BASE_ID, op_desc, EVAS_OBJ_SUB_ID_LAST),
+ NULL,
+ sizeof(Evas_Object_Protected_Data),
+ _class_constructor,
+ NULL
+};
+
+EO_DEFINE_CLASS(evas_object_class_get, &class_desc, EO_BASE_CLASS, EVAS_COMMON_CLASS, NULL)
+