atspi: improva child add/del broadcasting.

This commit enables generic broadcasting of changes in widget hierarcies.
Previously this kind of broadcasting had to be implemented inside widget.
This solution is using elm_widget sub_obj_add/sub_obj_del functions.
This commit is contained in:
Lukasz Stanislawski 2014-10-09 11:17:20 +02:00 committed by Lukasz Stanislawski
parent da78012f8f
commit e663ee3167
2 changed files with 12 additions and 0 deletions

View File

@ -1180,6 +1180,9 @@ _elm_widget_sub_object_add(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj
sd->subobjs = eina_list_append(sd->subobjs, sobj);
evas_object_data_set(sobj, "elm-parent", obj);
if (_elm_config->atspi_mode)
elm_interface_atspi_accessible_children_changed_added_signal_emit(obj, sobj);
_callbacks_add(sobj, obj);
if (_elm_widget_is(sobj))
{
@ -1291,6 +1294,8 @@ _elm_widget_sub_object_del(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj
sd->subobjs = eina_list_remove(sd->subobjs, sobj);
if (_elm_config->atspi_mode)
elm_interface_atspi_accessible_children_changed_del_signal_emit(obj, sobj);
_callbacks_del(sobj, obj);
return EINA_TRUE;
@ -5599,6 +5604,12 @@ _elm_widget_elm_interface_atspi_accessible_children_get(Eo *obj EINA_UNUSED, Elm
return accs;
}
EOLIAN static Eo*
_elm_widget_elm_interface_atspi_accessible_parent_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *pd)
{
return pd->parent_obj;
}
EOLIAN static Elm_Atspi_State_Set
_elm_widget_elm_interface_atspi_accessible_state_set_get(Eo *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED)
{

View File

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