From ba03d68117198762198a04f82c0730bcce5eac85 Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Sun, 11 Dec 2016 19:38:00 +0900 Subject: [PATCH] elementary: naviframe uses widget item for atspi Application developer could rewrite accessible information of naviframe item. But view object - VIEW(item) - is not accessible from application side. So the accessible information should be set to widget item. --- src/lib/elementary/elc_naviframe.c | 17 +++++++++++++---- src/lib/elementary/elm_naviframe_item.eo | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/lib/elementary/elc_naviframe.c b/src/lib/elementary/elc_naviframe.c index 57e1b03965..81d20fb46f 100644 --- a/src/lib/elementary/elc_naviframe.c +++ b/src/lib/elementary/elc_naviframe.c @@ -460,7 +460,7 @@ _access_obj_process(Elm_Naviframe_Item_Data *it, Eina_Bool is_access) } EOLIAN static void -_elm_naviframe_item_elm_widget_item_part_text_set(Eo *eo_it EINA_UNUSED, +_elm_naviframe_item_elm_widget_item_part_text_set(Eo *eo_it, Elm_Naviframe_Item_Data *it, const char *part, const char *label) @@ -526,7 +526,7 @@ _elm_naviframe_item_elm_widget_item_part_text_set(Eo *eo_it EINA_UNUSED, if (nit->title_label) strncat(buf, " ", 1); strncat(buf, nit->subtitle_label, sizeof(buf) - strlen(buf) - 2); } - elm_interface_atspi_accessible_name_set(VIEW(it), buf); + elm_interface_atspi_accessible_name_set(eo_it, buf); elm_layout_sizing_eval(WIDGET(nit)); } @@ -1224,6 +1224,8 @@ _item_new(Evas_Object *obj, ELM_NAVIFRAME_DATA_GET(obj, sd); eo_item = efl_add(ELM_NAVIFRAME_ITEM_CLASS, obj); + elm_interface_atspi_accessible_role_set(eo_item, ELM_ATSPI_ROLE_PAGE_TAB); + elm_interface_atspi_accessible_name_set(eo_item, (char*)title_label); if (!eo_item) { @@ -1235,8 +1237,6 @@ _item_new(Evas_Object *obj, //item base layout VIEW(it) = elm_layout_add(obj); - elm_interface_atspi_accessible_role_set(VIEW(it), ELM_ATSPI_ROLE_PAGE_TAB); - elm_interface_atspi_accessible_name_set(VIEW(it), (char*)title_label); evas_object_smart_member_add(VIEW(it), obj); if (!elm_widget_sub_object_add(obj, VIEW(it))) @@ -1986,6 +1986,15 @@ _elm_naviframe_item_pop_cb_set(Eo *eo_item EINA_UNUSED, nit->pop_data = data; } +EOLIAN static Eina_List* +_elm_naviframe_item_elm_interface_atspi_accessible_children_get(Eo *eo_item EINA_UNUSED, Elm_Naviframe_Item_Data *nit) +{ + Eina_List *ret = NULL; + + ret = eina_list_append(ret, VIEW(nit)); + return ret; +} + EOLIAN static void _elm_naviframe_prev_btn_auto_pushed_set(Eo *obj EINA_UNUSED, Elm_Naviframe_Data *sd, Eina_Bool auto_pushed) { diff --git a/src/lib/elementary/elm_naviframe_item.eo b/src/lib/elementary/elm_naviframe_item.eo index 2545e29d47..4f3ae4408f 100644 --- a/src/lib/elementary/elm_naviframe_item.eo +++ b/src/lib/elementary/elm_naviframe_item.eo @@ -84,5 +84,6 @@ class Elm.Naviframe.Item(Elm.Widget.Item) Elm.Widget.Item.part_content.get; Elm.Widget.Item.part_content.set; Elm.Widget.Item.part_content_unset; + Elm.Interface.Atspi_Accessible.children.get; } }