summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Zaoui <daniel.zaoui@samsung.com>2014-03-19 15:07:26 +0200
committerDaniel Zaoui <daniel.zaoui@samsung.com>2014-03-20 07:33:56 +0200
commit9c4a65a964549675b0c9d50f4777a555ed2598ac (patch)
tree6dc240f045d785dbffab69055d652b85664d4606
parenta4f915de6b6f76ae9c6b6859a3548edf6fec033b (diff)
downloadelementary-9c4a65a964549675b0c9d50f4777a555ed2598ac.tar.gz
Eolian: Integration of Atspi Object
-rw-r--r--src/lib/Makefile.am10
-rw-r--r--src/lib/elm_atspi_bridge.c16
-rw-r--r--src/lib/elm_atspi_object.c255
-rw-r--r--src/lib/elm_atspi_object.eo129
-rw-r--r--src/lib/elm_atspi_object_eo.h11
-rw-r--r--src/lib/elm_interface_atspi_component.eo2
-rw-r--r--src/lib/elm_widget.c2
7 files changed, 232 insertions, 193 deletions
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 13d354c62..e9159e806 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 088c1359a..c8c7cc0ff 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 bf53f95db..094ae21b8 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 000000000..c4c76da05
--- /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 33e83968d..e41f2260d 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 de2ba749d..2ea9d2d16 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 a212099a3..973b113a7 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;
}