jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=9c4a65a964549675b0c9d50f4777a555ed2598ac

commit 9c4a65a964549675b0c9d50f4777a555ed2598ac
Author: Daniel Zaoui <daniel.za...@samsung.com>
Date:   Wed Mar 19 15:07:26 2014 +0200

    Eolian: Integration of Atspi Object
---
 src/lib/Makefile.am                      |  10 +-
 src/lib/elm_atspi_bridge.c               |  16 +-
 src/lib/elm_atspi_object.c               | 255 ++++++++++---------------------
 src/lib/elm_atspi_object.eo              | 129 ++++++++++++++++
 src/lib/elm_atspi_object_eo.h            |  11 +-
 src/lib/elm_interface_atspi_component.eo |   2 +-
 src/lib/elm_widget.c                     |   2 +-
 7 files changed, 232 insertions(+), 193 deletions(-)

diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 13d354c..e9159e8 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -553,7 +553,9 @@ BUILT_SOURCES = \
                elm_interface_atspi_component.eo.c \
                elm_interface_atspi_component.eo.h \
                elm_interface_atspi_window.eo.c \
-               elm_interface_atspi_window.eo.h
+               elm_interface_atspi_window.eo.h \
+               elm_atspi_object.eo.c \
+               elm_atspi_object.eo.h
 
 EXTRA_DIST += \
             elm_widget.eo \
@@ -570,7 +572,8 @@ EXTRA_DIST += \
             elm_app_server.eo \
             elm_app_server_view.eo \
             elm_interface_atspi_component.eo \
-            elm_interface_atspi_window.eo
+            elm_interface_atspi_window.eo \
+            elm_atspi_object.eo
 
 nodist_includesunstable_HEADERS = \
                                  elm_widget.eo.h \
@@ -587,5 +590,6 @@ nodist_includesunstable_HEADERS = \
                                  elm_app_server.eo.h \
                                  elm_app_server_view.eo.h \
                                  elm_interface_atspi_component.eo.h \
-                                 elm_interface_atspi_window.eo.h
+                                 elm_interface_atspi_window.eo.h \
+                                 elm_atspi_object.eo.h
 
diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c
index 088c135..c8c7cc0 100644
--- a/src/lib/elm_atspi_bridge.c
+++ b/src/lib/elm_atspi_bridge.c
@@ -285,7 +285,7 @@ _accessible_get_index_in_parent(const 
Eldbus_Service_Interface *iface EINA_UNUSE
    const char *obj_path = eldbus_service_object_path_get(iface);
    Elm_Atspi_Object *obj = _access_object_from_path(obj_path);
    Eldbus_Message *ret;
-   int idx;
+   unsigned int idx;
 
    ret = eldbus_message_method_return_new(msg);
    EINA_SAFETY_ON_NULL_RETURN_VAL(ret, NULL);
@@ -358,7 +358,7 @@ _access_object_from_path(const char *path)
 
    sscanf(tmp, "%llu", &eo_ptr);
    eo = (Elm_Atspi_Object *)eo_ptr;
-   return eo_isa(eo, ELM_ATSPI_CLASS) ? eo : NULL;
+   return eo_isa(eo, ELM_ATSPI_OBJ_CLASS) ? eo : NULL;
 }
 
 static char *
@@ -891,7 +891,7 @@ _cache_object_register_interfaces(const char *path, 
Elm_Atspi_Object *node)
    else
      eina_hash_add(_cache, path, node);
 
-   if (!eo_isa(node, ELM_ATSPI_CLASS)) return;
+   if (!eo_isa(node, ELM_ATSPI_OBJ_CLASS)) return;
 
    accessible = eldbus_service_interface_register(_a11y_bus, path, 
&accessible_iface_desc);
    events = eldbus_service_interface_register(_a11y_bus, path, 
&event_iface_desc);
@@ -1190,7 +1190,7 @@ _send_signal_children_changed(Elm_Atspi_Object *parent, 
Elm_Atspi_Object *child,
    Eldbus_Message_Iter *iter, *viter;
    Eldbus_Message *msg;
    const char *desc = NULL;
-   int idx;
+   unsigned int idx;
 
    if (!BIT_FLAG_GET(_object_children_broadcast_mask, type))
      return;
@@ -1285,16 +1285,16 @@ _send_signal_window(Elm_Atspi_Object *eo, enum 
_Atspi_Window_Signals type)
 static Eina_Bool
 _handle_atspi_event(void *data EINA_UNUSED, Elm_Atspi_Object *ao, const 
Eo_Event_Description *desc, void *event_info)
 {
-   if (desc == EV_ATSPI_OBJ_NAME_CHANGED)
+   if (desc == ELM_ATSPI_OBJECT_EVENT_NAME_CHANGED)
      _send_signal_property_changed(ao, ATSPI_OBJECT_PROPERTY_NAME);
-   else if (desc == EV_ATSPI_OBJ_STATE_CHANGED)
+   else if (desc == ELM_ATSPI_OBJECT_EVENT_STATE_CHANGED)
      {
         int *event_data = event_info;
         _send_signal_state_changed(ao, (AtspiStateType)event_data[0], 
(Eina_Bool)event_data[1]);
      }
-   else if (desc == EV_ATSPI_OBJ_CHILD_ADD)
+   else if (desc == ELM_ATSPI_OBJECT_EVENT_CHILD_ADDED)
      _send_signal_children_changed(ao, event_info, ATSPI_OBJECT_CHILD_ADDED);
-   else if (desc == EV_ATSPI_OBJ_CHILD_DEL)
+   else if (desc == ELM_ATSPI_OBJECT_EVENT_CHILD_REMOVED)
      _send_signal_children_changed(ao, event_info, ATSPI_OBJECT_CHILD_REMOVED);
    else if (desc == ELM_INTERFACE_ATSPI_WINDOW_EVENT_WINDOW_ACTIVATED)
      _send_signal_window(ao, ATSPI_WINDOW_EVENT_ACTIVATE);
diff --git a/src/lib/elm_atspi_object.c b/src/lib/elm_atspi_object.c
index bf53f95..094ae21 100644
--- a/src/lib/elm_atspi_object.c
+++ b/src/lib/elm_atspi_object.c
@@ -129,33 +129,19 @@ const char* Atspi_Name[] = {
 
 extern Eina_List *_elm_win_list;
 
-EAPI Eo_Op ELM_ATSPI_OBJ_BASE_ID = EO_NOOP;
-
-EAPI const Eo_Event_Description _EV_ATSPI_OBJ_NAME_CHANGED =
-        EO_EVENT_DESCRIPTION("name,changed", "Called when accessible object 
text has changed.");
-
-EAPI const Eo_Event_Description _EV_ATSPI_OBJ_CHILD_ADD =
-        EO_EVENT_DESCRIPTION("child,added", "Called when accessible object 
children was created.");
-
-EAPI const Eo_Event_Description _EV_ATSPI_OBJ_CHILD_DEL =
-        EO_EVENT_DESCRIPTION("child,removed", "Called when accessible object 
children was destroyed.");
-
-EAPI const Eo_Event_Description _EV_ATSPI_OBJ_STATE_CHANGED =
-        EO_EVENT_DESCRIPTION("state,changed", "Called when accessible object 
state has changed.");
-
 static void
 _eo_emit_state_changed_event(void *data, Evas *e EINA_UNUSED, Evas_Object *eo 
EINA_UNUSED, void *event_info EINA_UNUSED)
 {
    Elm_Atspi_Object *ao = data;
    int event_data[2] = {ATSPI_STATE_VISIBLE, 1};
-   eo_do(ao, eo_event_callback_call(EV_ATSPI_OBJ_STATE_CHANGED, 
&event_data[0], NULL));
+   eo_do(ao, eo_event_callback_call(ELM_ATSPI_OBJECT_EVENT_STATE_CHANGED, 
&event_data[0], NULL));
 }
 
-static void
-_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_atspi_object_eo_base_constructor(Eo *obj, void *_pd EINA_UNUSED)
 {
    Evas_Object *internal_obj = NULL;
-   eo_do_super(obj, ELM_ATSPI_CLASS, eo_constructor());
+   eo_do_super(obj, ELM_ATSPI_OBJ_CLASS, eo_constructor());
 
    eo_do(obj, eo_parent_get(&internal_obj));
 
@@ -166,50 +152,45 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list EINA_UNUSED)
    evas_object_event_callback_add(internal_obj, EVAS_CALLBACK_SHOW, 
_eo_emit_state_changed_event, obj);
 }
 
-static void
-_destructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static Elm_Atspi_Object *
+_elm_atspi_object_child_at_index_get(Eo *obj, void *_pd EINA_UNUSED, int idx)
 {
-   eo_do_super(obj, ELM_ATSPI_CLASS, eo_destructor());
-}
-
-static void
-_child_at_index_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
-{
-   EO_PARAMETER_GET(int, idx, list);
-   EO_PARAMETER_GET(Elm_Atspi_Object**, ao, list);
+   Elm_Atspi_Object *ao = NULL;
    Eina_List *children = NULL;
 
    eo_do(obj, elm_atspi_obj_children_get(&children));
-   if (!children) return;
+   if (!children) return NULL;
 
-   if (ao) *ao = eina_list_nth(children, idx);
+   ao = eina_list_nth(children, idx);
    eina_list_free(children);
+   return ao;
 }
 
-static void
-_object_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Evas_Object *
+_elm_atspi_object_object_get(Eo *obj, void *_pd EINA_UNUSED)
 {
-   EO_PARAMETER_GET(Evas_Object**, ret, list);
-   eo_do(obj, eo_parent_get(ret));
+   Evas_Object *ret = NULL;
+   eo_do(obj, eo_parent_get(&ret));
+   return ret;
 }
 
-static void
-_index_in_parent_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static unsigned int
+_elm_atspi_object_index_in_parent_get(Eo *obj, void *_pd EINA_UNUSED)
 {
-   EO_PARAMETER_GET(unsigned int*, idx, list);
+   unsigned int idx;
    Elm_Atspi_Object *chld, *parent = NULL;
    Eina_List *l, *children = NULL;
    unsigned int tmp = 0;
 
    eo_do(obj, elm_atspi_obj_parent_get(&parent));
-   if (!parent) return;
+   if (!parent) return 0;
    eo_do(parent, elm_atspi_obj_children_get(&children));
 
    EINA_LIST_FOREACH(children, l, chld)
      {
         if (chld == obj)
           {
-             if (idx) *idx = tmp;
+             idx = tmp;
              break;
           }
         tmp++;
@@ -218,12 +199,13 @@ _index_in_parent_get(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list)
       ERR("Access object not present in parent's children list!");
 
    eina_list_free(children);
+
+   return idx;
 }
 
-static void
-_role_name_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static const char*
+_elm_atspi_object_role_name_get(Eo *obj, void *_pd EINA_UNUSED)
 {
-   EO_PARAMETER_GET(const char **, ret, list);
    AtspiRole role = ATSPI_ROLE_INVALID;
 
    eo_do(obj, elm_atspi_obj_role_get(&role));
@@ -231,38 +213,35 @@ _role_name_get(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list)
    if (role >= ATSPI_ROLE_LAST_DEFINED)
      {
         ERR("Invalid role enum for atspi-object: %d.", role);
-        return;
+        return NULL;
      }
 
-   if (ret) *ret = Atspi_Name[role];
+   return Atspi_Name[role];
 }
 
-static void
-_description_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
+EOLIAN static const char*
+_elm_atspi_object_description_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED)
 {
-   EO_PARAMETER_GET(const char **, ret, list);
-   *ret = NULL;
+   return NULL;
 }
 
-static void
-_localized_role_name_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static const char*
+_elm_atspi_object_localized_role_name_get(Eo *obj, void *_pd EINA_UNUSED)
 {
-   EO_PARAMETER_GET(const char **, ret, list);
    const char *name = NULL;
 
    eo_do(obj, elm_atspi_obj_role_name_get(&name));
-   if (!name) return;
+   if (!name) return NULL;
 #ifdef ENABLE_NLS
-   if (ret) *ret = gettext(name);
+   return gettext(name);
 #else
-   if (ret) *ret = name;
+   return name;
 #endif
 }
 
-static void
-_state_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Elm_Atspi_State
+_elm_atspi_object_state_get(Eo *obj, void *_pd EINA_UNUSED)
 {
-   EO_PARAMETER_GET(Elm_Atspi_State *, ret, list);
    Evas_Object *evobj = NULL;
    Elm_Atspi_State states = 0;
    eo_do(obj, elm_atspi_obj_object_get(&evobj));
@@ -270,27 +249,24 @@ _state_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
    if (evas_object_visible_get(evobj))
      BIT_FLAG_SET(states, ATSPI_STATE_VISIBLE);
 
-   if (ret) *ret = states;
+   return states;
 }
 
-static void
-_comp_access_at_point_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Evas_Object *
+_elm_atspi_object_elm_interface_atspi_component_accessible_at_point_get(Eo 
*obj, void *_pd EINA_UNUSED, int x, int y, AtspiCoordType type)
 {
-   EO_PARAMETER_GET(int, x, list);
-   EO_PARAMETER_GET(int, y, list);
-   EO_PARAMETER_GET(AtspiCoordType, type, list);
-   EO_PARAMETER_GET(Evas_Object **, ret, list);
    int ee_x, ee_y;
    Eina_List *l, *objs;
    Evas_Object *evobj = NULL;
+   Evas_Object *ret;
 
    eo_do(obj, elm_atspi_obj_object_get(&evobj));
 
-   if (!evobj) return;
+   if (!evobj) return NULL;
    if (type == ATSPI_COORD_TYPE_SCREEN)
      {
         Ecore_Evas *ee = 
ecore_evas_ecore_evas_get(evas_object_evas_get(evobj));
-               if (!ee) return;
+               if (!ee) return NULL;
         ecore_evas_geometry_get(ee, &ee_x, &ee_y, NULL, NULL);
         x -= ee_x;
         y -= ee_y;
@@ -302,21 +278,17 @@ _comp_access_at_point_get(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list)
           Elm_Atspi_Object *acc = _elm_atspi_factory_construct(evobj);
           if (acc)
             {
-               *ret = evobj;
+               ret = evobj;
                break;
             }
        }
      eina_list_free(objs);
+     return ret;
 }
 
-static void
-_comp_extents_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static void
+_elm_atspi_object_elm_interface_atspi_component_extents_get(Eo *obj, void *_pd 
EINA_UNUSED, int *x, int *y, int *w, int *h, AtspiCoordType type)
 {
-   EO_PARAMETER_GET(int *, x, list);
-   EO_PARAMETER_GET(int*, y, list);
-   EO_PARAMETER_GET(int*, w, list);
-   EO_PARAMETER_GET(int*, h, list);
-   EO_PARAMETER_GET(AtspiCoordType, type, list);
    int ee_x, ee_y;
    Evas_Object *evobj = NULL;
 
@@ -334,28 +306,21 @@ _comp_extents_get(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list)
      }
 }
 
-static void
-_comp_extents_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
-{
-   EO_PARAMETER_GET(int, x, list);
-   EO_PARAMETER_GET(int, y, list);
-   EO_PARAMETER_GET(int, w, list);
-   EO_PARAMETER_GET(int, h, list);
-   EO_PARAMETER_GET(AtspiCoordType, type, list);
-   EO_PARAMETER_GET(Eina_Bool *, ret, list);
+EOLIAN static Eina_Bool
+_elm_atspi_object_elm_interface_atspi_component_extents_set(Eo *obj, void *_pd 
EINA_UNUSED, int x, int y, int w, int h, AtspiCoordType type)
+{
    int wx, wy;
    Evas_Object *evobj = NULL;
 
-   if (ret) *ret = EINA_FALSE;
-   if ((x < 0) || (y < 0) || (w < 0) || (h < 0)) return;
+   if ((x < 0) || (y < 0) || (w < 0) || (h < 0)) return EINA_FALSE;
 
    eo_do(obj, elm_atspi_obj_object_get(&evobj));
-   if (!evobj) return;
+   if (!evobj) return EINA_FALSE;
 
    if (type == ATSPI_COORD_TYPE_SCREEN)
      {
         Ecore_Evas *ee = 
ecore_evas_ecore_evas_get(evas_object_evas_get(evobj));
-               if (!ee) return;
+               if (!ee) return EINA_FALSE;
         evas_object_geometry_get(evobj, &wx, &wy, NULL, NULL);
         ecore_evas_move(ee, x - wx, y - wy);
      }
@@ -363,19 +328,18 @@ _comp_extents_set(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list)
      evas_object_move(evobj, x, y);
 
    evas_object_resize(evobj, w, h);
-   if (ret) *ret = EINA_TRUE;
+   return EINA_TRUE;
 }
 
-static void
-_comp_layer_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static int
+_elm_atspi_object_elm_interface_atspi_component_layer_get(Eo *obj, void *_pd 
EINA_UNUSED)
 {
-   EO_PARAMETER_GET(int *, ret, list);
    Elm_Object_Layer layer;
    Evas_Object *evobj = NULL;
    AtspiComponentLayer spi_layer;
 
    eo_do(obj, elm_atspi_obj_object_get(&evobj));
-   if (!evobj) return;
+   if (!evobj) return 0;
 
    layer = evas_object_layer_get(evobj);
    switch (layer) {
@@ -390,109 +354,46 @@ _comp_layer_get(Eo *obj, void *_pd EINA_UNUSED, va_list 
*list)
     default:
        spi_layer = ATSPI_LAYER_WIDGET;
    }
-   if (ret) *ret = spi_layer;
+   return spi_layer;
 }
 
-static void
-_comp_z_order_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list 
EINA_UNUSED)
+EOLIAN static int
+_elm_atspi_object_elm_interface_atspi_component_z_order_get(Eo *obj 
EINA_UNUSED, void *_pd EINA_UNUSED)
 {
    // FIXME
+   return 0;
 }
 
-static void
-_cb_call(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_atspi_object_eo_base_event_callback_call(Eo *obj, void *_pd EINA_UNUSED,
+      const Eo_Event_Description *desc, const void *event_info)
 {
    Elm_Atspi_Global_Callback_Info *info;
    Eina_List *l;
-   EO_PARAMETER_GET(const Eo_Event_Description *, desc, list);
-   EO_PARAMETER_GET(void *, event_info, list);
-   EO_PARAMETER_GET(Eina_Bool *, ret, list);
+   Eina_Bool ret;
 
    EINA_LIST_FOREACH(_global_callbacks, l, info)
      {
-        if (info->cb) info->cb(info->user_data, obj, desc, event_info);
+        if (info->cb) info->cb(info->user_data, obj, desc, (void *)event_info);
      }
 
-   eo_do_super(obj, ELM_ATSPI_CLASS, eo_event_callback_call(desc, event_info, 
ret));
+   eo_do_super(obj, ELM_ATSPI_OBJ_CLASS, eo_event_callback_call(desc, 
event_info, &ret));
+   return ret;
 }
 
-static void
-_comp_alpha_get(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static double
+_elm_atspi_object_elm_interface_atspi_component_alpha_get(Eo *obj, void *_pd 
EINA_UNUSED)
 {
-   EO_PARAMETER_GET(double *, ret, list);
    Evas_Object *evobj = NULL;
    int alpha;
 
    eo_do(obj, elm_atspi_obj_object_get(&evobj));
-   if (!evobj) return;
+   if (!evobj) return 0.0;
 
    evas_object_color_get(evobj, NULL, NULL, NULL, &alpha);
-   if (ret) *ret = (double)alpha / 255.0;
-}
-
-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(EO_BASE_ID(EO_BASE_SUB_ID_EVENT_CALLBACK_CALL), _cb_call),
-        EO_OP_FUNC(ELM_ATSPI_OBJ_ID(ELM_ATSPI_OBJ_SUB_ID_OBJECT_GET), 
_object_get),
-        EO_OP_FUNC(ELM_ATSPI_OBJ_ID(ELM_ATSPI_OBJ_SUB_ID_CHILD_AT_INDEX_GET), 
_child_at_index_get),
-        EO_OP_FUNC(ELM_ATSPI_OBJ_ID(ELM_ATSPI_OBJ_SUB_ID_INDEX_IN_PARENT_GET), 
_index_in_parent_get),
-        EO_OP_FUNC(ELM_ATSPI_OBJ_ID(ELM_ATSPI_OBJ_SUB_ID_ROLE_NAME_GET), 
_role_name_get),
-        EO_OP_FUNC(ELM_ATSPI_OBJ_ID(ELM_ATSPI_OBJ_SUB_ID_DESCRIPTION_GET), 
_description_get),
-        
EO_OP_FUNC(ELM_ATSPI_OBJ_ID(ELM_ATSPI_OBJ_SUB_ID_LOCALIZED_ROLE_NAME_GET), 
_localized_role_name_get),
-        EO_OP_FUNC(ELM_ATSPI_OBJ_ID(ELM_ATSPI_OBJ_SUB_ID_STATE_GET), 
_state_get),
-        
EO_OP_FUNC(ELM_INTERFACE_ATSPI_COMPONENT_ID(ELM_INTERFACE_ATSPI_COMPONENT_SUB_ID_ACCESSIBLE_AT_POINT_GET),
 _comp_access_at_point_get),
-        
EO_OP_FUNC(ELM_INTERFACE_ATSPI_COMPONENT_ID(ELM_INTERFACE_ATSPI_COMPONENT_SUB_ID_EXTENTS_GET),
 _comp_extents_get),
-        
EO_OP_FUNC(ELM_INTERFACE_ATSPI_COMPONENT_ID(ELM_INTERFACE_ATSPI_COMPONENT_SUB_ID_EXTENTS_SET),
 _comp_extents_set),
-        
EO_OP_FUNC(ELM_INTERFACE_ATSPI_COMPONENT_ID(ELM_INTERFACE_ATSPI_COMPONENT_SUB_ID_LAYER_GET),
 _comp_layer_get),
-        
EO_OP_FUNC(ELM_INTERFACE_ATSPI_COMPONENT_ID(ELM_INTERFACE_ATSPI_COMPONENT_SUB_ID_Z_ORDER_GET),
 _comp_z_order_get),
-        
EO_OP_FUNC(ELM_INTERFACE_ATSPI_COMPONENT_ID(ELM_INTERFACE_ATSPI_COMPONENT_SUB_ID_ALPHA_GET),
 _comp_alpha_get),
-        EO_OP_FUNC_SENTINEL
-   };
-   eo_class_funcs_set(klass, func_desc);
+   return (double)alpha / 255.0;
 }
 
-static const Eo_Op_Description op_desc[] = {
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_NAME_GET, ""),
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_DESCRIPTION_GET, ""),
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_CHILD_AT_INDEX_GET, ""),
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_CHILDREN_GET, ""),
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_PARENT_GET, ""),
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_OBJECT_GET, ""),
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_INDEX_IN_PARENT_GET, ""),
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_RELATION_SET_GET, ""),
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_ROLE_GET, ""),
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_ROLE_NAME_GET, ""),
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_LOCALIZED_ROLE_NAME_GET, ""),
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_STATE_GET, ""),
-     EO_OP_DESCRIPTION(ELM_ATSPI_OBJ_SUB_ID_ATTRIBUTES_GET, ""),
-     EO_OP_DESCRIPTION_SENTINEL
-};
-
-static const Eo_Event_Description *event_desc[] = {
-     EV_ATSPI_OBJ_NAME_CHANGED,
-     EV_ATSPI_OBJ_STATE_CHANGED,
-     EV_ATSPI_OBJ_CHILD_ADD,
-     EV_ATSPI_OBJ_CHILD_DEL,
-     NULL
-};
-
-static const Eo_Class_Description class_desc = {
-     EO_VERSION,
-     "Elm_Atspi_Object",
-     EO_CLASS_TYPE_REGULAR,
-     EO_CLASS_DESCRIPTION_OPS(&ELM_ATSPI_OBJ_BASE_ID, op_desc, 
ELM_ATSPI_OBJ_SUB_ID_LAST),
-     event_desc,
-     0,
-     _class_constructor,
-     NULL
-};
-
-EO_DEFINE_CLASS(elm_atspi_obj_class_get, &class_desc, EO_BASE_CLASS, 
ELM_INTERFACE_ATSPI_COMPONENT_CLASS, NULL);
-
 // Component interface
 EOLIAN static void
 _elm_interface_atspi_component_position_get(Eo *obj EINA_UNUSED, void *_pd 
EINA_UNUSED,int *x, int *y, AtspiCoordType type)
@@ -549,7 +450,7 @@ _emit_atspi_state_changed_focused_event(void *data, 
Evas_Object *eo EINA_UNUSED,
 {
    Elm_Atspi_Object *ao = data;
    int evdata[2] = {ATSPI_STATE_FOCUSED, 1};
-   eo_do(ao, eo_event_callback_call(EV_ATSPI_OBJ_STATE_CHANGED, &evdata[0], 
NULL));
+   eo_do(ao, eo_event_callback_call(ELM_ATSPI_OBJECT_EVENT_STATE_CHANGED, 
&evdata[0], NULL));
 }
 
 static void
@@ -557,7 +458,7 @@ _emit_atspi_state_changed_unfocused_event(void *data, 
Evas_Object *eo EINA_UNUSE
 {
    Elm_Atspi_Object *ao = data;
    int evdata[2] = {ATSPI_STATE_FOCUSED, 0};
-   eo_do(ao, eo_event_callback_call(EV_ATSPI_OBJ_STATE_CHANGED, &evdata[0], 
NULL));
+   eo_do(ao, eo_event_callback_call(ELM_ATSPI_OBJECT_EVENT_STATE_CHANGED, 
&evdata[0], NULL));
 }
 
 static void
@@ -720,7 +621,7 @@ static const Eo_Class_Description widget_class_desc = {
      NULL
 };
 
-EO_DEFINE_CLASS(elm_atspi_widget_obj_class_get, &widget_class_desc, 
ELM_ATSPI_CLASS, NULL);
+EO_DEFINE_CLASS(elm_atspi_widget_obj_class_get, &widget_class_desc, 
ELM_ATSPI_OBJ_CLASS, NULL);
 
 
 /// Elm_Atspi_App base class
@@ -748,7 +649,7 @@ _app_children_get(Eo *obj EINA_UNUSED, void *_pd 
EINA_UNUSED, va_list *list)
 static void
 _app_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
 {
-   eo_do_super(obj, ELM_ATSPI_CLASS, eo_constructor());
+   eo_do_super(obj, ELM_ATSPI_OBJ_CLASS, eo_constructor());
 }
 
 static void
@@ -801,7 +702,7 @@ static const Eo_Class_Description app_class_desc = {
      NULL
 };
 
-EO_DEFINE_CLASS(elm_atspi_app_obj_class_get, &app_class_desc, ELM_ATSPI_CLASS, 
NULL);
+EO_DEFINE_CLASS(elm_atspi_app_obj_class_get, &app_class_desc, 
ELM_ATSPI_OBJ_CLASS, NULL);
 
 // elm_win wrapper
 
@@ -838,7 +739,7 @@ static void
 _win_destructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
 {
    Elm_Atspi_Object *root = _elm_atspi_root_object_get();
-   eo_do(root, eo_event_callback_call(EV_ATSPI_OBJ_CHILD_DEL, obj, NULL));
+   eo_do(root, eo_event_callback_call(ELM_ATSPI_OBJECT_EVENT_CHILD_REMOVED, 
obj, NULL));
 
    eo_do_super(obj, ELM_ATSPI_WIN_CLASS, eo_destructor());
 }
@@ -967,4 +868,4 @@ void _elm_atspi_object_global_callback_del(Eo_Event_Cb cb)
 }
 
 #include "elm_interface_atspi_component.eo.c"
-
+#include "elm_atspi_object.eo.c"
diff --git a/src/lib/elm_atspi_object.eo b/src/lib/elm_atspi_object.eo
new file mode 100644
index 0000000..c4c76da
--- /dev/null
+++ b/src/lib/elm_atspi_object.eo
@@ -0,0 +1,129 @@
+class Elm_Atspi_Object (Eo_Base, Elm_Interface_Atspi_Component)
+{
+   eo_prefix: elm_atspi_obj;
+   data: null;
+   properties {
+      localized_role_name {
+         get {
+            legacy null;
+         }
+         values {
+            const char *ret;
+         }
+      }
+      object {
+         get {
+            legacy null;
+         }
+         values {
+            Evas_Object *ret;
+         }
+      }
+      state {
+         get {
+            legacy null;
+         }
+         values {
+            Elm_Atspi_State ret; /*@ state */
+         }
+      }
+      name {
+         get {
+            legacy null;
+         }
+         values {
+            const char *ret; /*@ obj name */
+         }
+      }
+      relation_set {
+         get {
+            legacy null;
+         }
+      }
+      role {
+         get {
+            legacy null;
+         }
+         values {
+            AtspiRole role;
+         }
+      }
+      children {
+         get {
+            legacy null;
+         }
+         values {
+            Eina_List *ret;
+         }
+      }
+      role_name {
+         get {
+            legacy null;
+         }
+         values {
+            const char *ret;
+         }
+      }
+      attributes {
+         get {
+            legacy null;
+         }
+      }
+      index_in_parent {
+         get {
+            legacy null;
+         }
+         values {
+            unsigned int idx;
+         }
+      }
+      description {
+         get {
+            legacy null;
+         }
+         values {
+            const char *ret;
+         }
+      }
+      parent {
+         get {
+            legacy null;
+         }
+         values {
+            Elm_Atspi_Object *ret;
+         }
+      }
+   }
+   methods {
+      child_at_index_get {
+         legacy null;
+         params {
+            @in int idx;
+         }
+         return Elm_Atspi_Object *;
+      }
+   }
+   implements {
+      Eo_Base::constructor;
+      Eo_Base::event_callback_call;
+      Elm_Interface_Atspi_Component::z_order::get;
+      Elm_Interface_Atspi_Component::layer::get;
+      Elm_Interface_Atspi_Component::extents_set;
+      Elm_Interface_Atspi_Component::extents_get;
+      Elm_Interface_Atspi_Component::accessible_at_point_get;
+      Elm_Interface_Atspi_Component::alpha::get;
+      virtual::relation_set::get;
+      virtual::name::get;
+      virtual::parent::get;
+      virtual::attributes::get;
+      virtual::role::get;
+      virtual::children::get;
+   }
+   events {
+      name,changed; /*@ Called when accessible object text has changed. */
+      state,changed; /*@ Called when accessible object state has changed. */
+      child,added; /*@ Called when accessible object children was created. */
+      child,removed; /*@ Called when accessible object children was destroyed. 
*/
+   }
+
+}
diff --git a/src/lib/elm_atspi_object_eo.h b/src/lib/elm_atspi_object_eo.h
index 33e8396..e41f226 100644
--- a/src/lib/elm_atspi_object_eo.h
+++ b/src/lib/elm_atspi_object_eo.h
@@ -1,12 +1,14 @@
 void _elm_atspi_object_global_callback_add(Eo_Event_Cb cv, void *user_data);
 void _elm_atspi_object_global_callback_del(Eo_Event_Cb cv);
 
-#define ELM_ATSPI_CLASS elm_atspi_obj_class_get()
-const Eo_Class *elm_atspi_obj_class_get(void) EINA_CONST;
-
 #define ELM_ATSPI_WIDGET_CLASS elm_atspi_widget_obj_class_get()
 const Eo_Class *elm_atspi_widget_obj_class_get(void) EINA_CONST;
 
+#include "elm_atspi_object.eo.h"
+#if 0
+#define ELM_ATSPI_CLASS elm_atspi_obj_class_get()
+const Eo_Class *elm_atspi_obj_class_get(void) EINA_CONST;
+
 extern EAPI Eo_Op ELM_ATSPI_OBJ_BASE_ID;
 
 enum
@@ -42,6 +44,7 @@ extern const Eo_Event_Description _EV_ATSPI_OBJ_CHILD_DEL;
 extern const Eo_Event_Description _EV_ATSPI_OBJ_STATE_CHANGED;
 #define EV_ATSPI_OBJ_STATE_CHANGED (&(_EV_ATSPI_OBJ_STATE_CHANGED))
 
+#endif
 /* Component Interface */
 #include "elm_interface_atspi_component.eo.h"
 
@@ -213,6 +216,7 @@ enum
 };
 /* Selection Interface - END */
 
+#if 0
 /**
  * @def elm_atspi_obj_name_get
  * @since 1.10
@@ -341,6 +345,7 @@ enum
 #define elm_atspi_obj_attributes_get()\
    ELM_ATSPI_OBJ_ID(ELM_ATSPI_OBJ_SUB_ID_ATTRIBUTES_GET),\
    EO_TYPECHECK()
+#endif
 
 #if 0
 /**
diff --git a/src/lib/elm_interface_atspi_component.eo 
b/src/lib/elm_interface_atspi_component.eo
index de2ba74..2ea9d2d 100644
--- a/src/lib/elm_interface_atspi_component.eo
+++ b/src/lib/elm_interface_atspi_component.eo
@@ -84,8 +84,8 @@ mixin Elm_Interface_Atspi_Component ()
             @in int x;
             @in int y;
             @in AtspiCoordType type;
-            @out Elm_Atspi_Object *ret;
          }
+         return Elm_Atspi_Object *;
       }
       position_set {
          legacy null;
diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c
index a212099..973b113 100644
--- a/src/lib/elm_widget.c
+++ b/src/lib/elm_widget.c
@@ -5251,7 +5251,7 @@ _atspi_obj_create(void *data)
    if (obj)
      {
        eo_do(obj, elm_atspi_obj_parent_get(&parent));
-       eo_do(parent, eo_event_callback_call(EV_ATSPI_OBJ_CHILD_ADD, obj, 
NULL));
+       eo_do(parent, 
eo_event_callback_call(ELM_ATSPI_OBJECT_EVENT_CHILD_ADDED, obj, NULL));
      }
    return EINA_FALSE;
 }

-- 


Reply via email to