atspi: allow to override default Elementary objects hierarchy

This commit is contained in:
Lukasz Stanislawski 2015-03-25 16:45:29 +01:00 committed by Lukasz Stanislawski
parent afe3ec87b0
commit 33ea156e8b
4 changed files with 17 additions and 3 deletions

View File

@ -7721,8 +7721,11 @@ _elm_genlist_item_elm_interface_atspi_accessible_children_get(Eo *eo_it EINA_UNU
{
Evas_Object *part;
part = edje_object_part_swallow_get(VIEW(it), key);
if (eo_isa(part, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN))
ret = eina_list_append(ret, part);
if (part && eo_isa(part, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN))
{
ret = eina_list_append(ret, part);
eo_do(part, elm_interface_atspi_accessible_parent_set(eo_it));
}
}
}
return ret;

View File

@ -5604,7 +5604,16 @@ _elm_widget_elm_interface_atspi_accessible_children_get(Eo *obj EINA_UNUSED, Elm
EOLIAN static Eo*
_elm_widget_elm_interface_atspi_accessible_parent_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *pd)
{
return pd->parent_obj;
if (pd->atspi_custom_parent)
return pd->atspi_custom_parent;
else
return pd->parent_obj;
}
EOLIAN static void
_elm_widget_elm_interface_atspi_accessible_parent_set(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *pd, Eo *parent)
{
pd->atspi_custom_parent = parent;
}
EOLIAN static Elm_Atspi_State_Set

View File

@ -821,6 +821,7 @@ abstract Elm_Widget (Evas.Object_Smart, Elm_Interface_Atspi_Accessible, Elm_Inte
Elm_Interface_Atspi_Accessible.state_set.get;
Elm_Interface_Atspi_Accessible.children.get;
Elm_Interface_Atspi_Accessible.parent.get;
Elm_Interface_Atspi_Accessible.parent.set;
Elm_Interface_Atspi_Accessible.attributes.get;
Elm_Interface_Atspi_Accessible.relation_set.get;
Elm_Interface_Atspi_Component.focus_grab;

View File

@ -409,6 +409,7 @@ typedef struct _Elm_Widget_Smart_Data
int role; /**< Accessibility role */
const char *description; /**< Accessibility description */
Eo *atspi_custom_parent; /**< Accessibility parent if different then parent_obj */
/* this is a hook to be set on-the-fly on widgets. this is code
* handling the request of showing a specific region from an inner