[elementary][atspi] change accessible description to char* from const char*

Summary:
The accessible name is char*, this could confuse API user.
If we provide user callback to get description, an user would return allocated string.
The usage of elm_interface_atspi_description_get/set should be same with elm_interface_atspi_name_get/set

Reviewers: lukasz.stanislawski, cedric, raster

Reviewed By: raster

Subscribers: stanluk, jpeg

Differential Revision: https://phab.enlightenment.org/D4378
This commit is contained in:
Shinwoo Kim 2016-11-10 10:58:41 +09:00 committed by Carsten Haitzler (Rasterman)
parent 7917fa4ebf
commit e648f1e85e
18 changed files with 74 additions and 74 deletions

View File

@ -4808,14 +4808,14 @@ _efl_ui_text_elm_interface_atspi_accessible_state_set_get(Eo *obj, Efl_Ui_Text_D
return ret;
}
EOLIAN static char*
EOLIAN static const char*
_efl_ui_text_elm_interface_atspi_accessible_name_get(Eo *obj, Efl_Ui_Text_Data *pd)
{
char *name;
const char *name;
name = elm_interface_atspi_accessible_name_get(efl_super(obj, EFL_UI_TEXT_CLASS));
if (name && strncmp("", name, 1)) return name;
const char *ret = edje_object_part_text_get(pd->entry_edje, "elm.guide");
return ret ? strdup(ret) : NULL;
return ret;
}
EOLIAN static Efl_Canvas_Text_Cursor *

View File

@ -6205,14 +6205,14 @@ _efl_ui_win_elm_interface_atspi_accessible_state_set_get(Eo *obj, Efl_Ui_Win_Dat
return ret;
}
EOLIAN static char*
EOLIAN static const char*
_efl_ui_win_elm_interface_atspi_accessible_name_get(Eo *obj, Efl_Ui_Win_Data *sd EINA_UNUSED)
{
char *ret;
const char *ret;
ret = elm_interface_atspi_accessible_name_get(efl_super(obj, EFL_UI_WIN_CLASS));
if (ret) return ret;
const char *name = elm_win_title_get(obj);
return name ? strdup(name) : NULL;
return name;
}
EOLIAN static Eina_Bool

View File

@ -2047,15 +2047,15 @@ _elm_multibuttonentry_elm_interface_atspi_accessible_children_get(Eo *obj, Elm_M
return eina_list_merge(eina_list_clone(sd->items), ret);
}
EOLIAN static char*
EOLIAN static const char*
_elm_multibuttonentry_item_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_Multibuttonentry_Item_Data *item)
{
char *ret;
const char *ret;
ret = elm_interface_atspi_accessible_name_get(efl_super(obj, ELM_MULTIBUTTONENTRY_ITEM_CLASS));
if (ret) return ret;
const char *txt = elm_object_part_text_get(VIEW(item), "elm.btn.text");
return txt ? strdup(txt) : NULL;
return txt;
}
static Eina_Bool

View File

@ -44,12 +44,12 @@ _elm_atspi_app_object_elm_interface_atspi_accessible_children_get(Eo *obj EINA_U
return accs;
}
EOLIAN static char*
EOLIAN static const char*
_elm_atspi_app_object_elm_interface_atspi_accessible_name_get(Eo *obj EINA_UNUSED, Elm_Atspi_App_Object_Data *_pd EINA_UNUSED)
{
const char *ret;
ret = elm_app_name_get();
return ret ? strdup(ret) : NULL;
return ret;
}
EOLIAN static const char*

View File

@ -2075,12 +2075,10 @@ _accessible_property_get(const Eldbus_Service_Interface *interface, const char *
if (!strcmp(property, "Name"))
{
char *ret2;
ret2 = elm_interface_atspi_accessible_name_get(obj);
if (!ret2)
ret2 = strdup("");
eldbus_message_iter_basic_append(iter, 's', ret2);
free(ret2);
ret = elm_interface_atspi_accessible_name_get(obj);
if (!ret)
ret = "";
eldbus_message_iter_basic_append(iter, 's', ret);
return EINA_TRUE;
}
else if (!strcmp(property, "Description"))
@ -3191,13 +3189,12 @@ _cache_item_reference_append_cb(Eo *bridge, Eo *data, Eldbus_Message_Iter *iter_
_iter_interfaces_append(iter_struct, data);
/* Marshall name */
char *name = NULL;
const char *name = NULL;
name = elm_interface_atspi_accessible_name_get(data);
if (!name)
name = strdup("");
name = "";
eldbus_message_iter_basic_append(iter_struct, 's', name);
free(name);
/* Marshall role */
eldbus_message_iter_basic_append(iter_struct, 'u', role);

View File

@ -5983,14 +5983,14 @@ _elm_entry_elm_interface_atspi_accessible_state_set_get(Eo *obj, Elm_Entry_Data
return ret;
}
EOLIAN static char*
EOLIAN static const char*
_elm_entry_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_Entry_Data *sd)
{
char *name;
const char *name;
name = elm_interface_atspi_accessible_name_get(efl_super(obj, ELM_ENTRY_CLASS));
if (name && strncmp("", name, 1)) return name;
const char *ret = edje_object_part_text_get(sd->entry_edje, "elm.guide");
return ret ? strdup(ret) : NULL;
return ret;
}
/* Efl.Part begin */

View File

@ -5773,11 +5773,12 @@ _elm_gengrid_item_elm_interface_atspi_accessible_state_set_get(Eo *eo_it, Elm_Ge
return ret;
}
EOLIAN char*
EOLIAN const char*
_elm_gengrid_item_elm_interface_atspi_accessible_name_get(Eo *eo_it, Elm_Gen_Item *it)
{
char *ret;
const char *ret;
Eina_Strbuf *buf;
char *accessible_name;
ret = elm_interface_atspi_accessible_name_get(efl_super(eo_it, ELM_GENGRID_ITEM_CLASS));
if (ret) return ret;
@ -5811,9 +5812,13 @@ _elm_gengrid_item_elm_interface_atspi_accessible_name_get(Eo *eo_it, Elm_Gen_Ite
}
}
ret = eina_strbuf_string_steal(buf);
accessible_name = eina_strbuf_string_steal(buf);
eina_strbuf_free(buf);
return ret;
eina_stringshare_del(it->base->accessible_name);
it->base->accessible_name = eina_stringshare_add(accessible_name);
free(accessible_name);
return it->base->accessible_name;
}
EAPI Elm_Object_Item *

View File

@ -8221,11 +8221,12 @@ _elm_genlist_item_elm_interface_atspi_accessible_state_set_get(Eo *eo_it, Elm_Ge
return ret;
}
EOLIAN char*
EOLIAN const char*
_elm_genlist_item_elm_interface_atspi_accessible_name_get(Eo *eo_it, Elm_Gen_Item *it)
{
char *ret;
const char *ret;
Eina_Strbuf *buf;
char *accessible_name;
ret = elm_interface_atspi_accessible_name_get(efl_super(eo_it, ELM_GENLIST_ITEM_CLASS));
if (ret) return ret;
@ -8257,9 +8258,13 @@ _elm_genlist_item_elm_interface_atspi_accessible_name_get(Eo *eo_it, Elm_Gen_Ite
}
}
ret = eina_strbuf_string_steal(buf);
accessible_name = eina_strbuf_string_steal(buf);
eina_strbuf_free(buf);
return ret;
eina_stringshare_del(it->base->accessible_name);
it->base->accessible_name = eina_stringshare_add(accessible_name);
free(accessible_name);
return it->base->accessible_name;
}
EOLIAN static void

View File

@ -1741,14 +1741,14 @@ _elm_index_elm_interface_atspi_accessible_children_get(Eo *obj, Elm_Index_Data *
return eina_list_merge(eina_list_clone(data->items), ret);
}
EOLIAN static char*
EOLIAN static const char*
_elm_index_item_elm_interface_atspi_accessible_name_get(Eo *eo_it, Elm_Index_Item_Data *data)
{
char *name;
const char *name;
name = elm_interface_atspi_accessible_name_get(efl_super(eo_it, ELM_INDEX_ITEM_CLASS));
if (name) return name;
return data->letter ? strdup(data->letter) : NULL;
return data->letter;
}
EOLIAN static const Elm_Atspi_Action*

View File

@ -224,26 +224,18 @@ _elm_interface_atspi_accessible_role_name_get(Eo *obj EINA_UNUSED, Elm_Interface
return role > ELM_ATSPI_ROLE_LAST_DEFINED ? "" : Atspi_Name[role];
}
EOLIAN char *
EOLIAN const char *
_elm_interface_atspi_accessible_name_get(Eo *obj EINA_UNUSED, Elm_Interface_Atspi_Accessible_Data *pd)
{
if (pd->name)
{
#ifdef ENABLE_NLS
if (pd->translation_domain)
return strdup(dgettext(pd->translation_domain, pd->name));
else
return strdup(pd->name);
#else
return strdup(pd->name);
if (pd->translation_domain)
return dgettext(pd->translation_domain, pd->name);
#endif
}
return NULL;
return pd->name;
}
EOLIAN static void
_elm_interface_atspi_accessible_name_set(Eo *obj EINA_UNUSED, Elm_Interface_Atspi_Accessible_Data *pd, char *val)
_elm_interface_atspi_accessible_name_set(Eo *obj EINA_UNUSED, Elm_Interface_Atspi_Accessible_Data *pd, const char *val)
{
eina_stringshare_replace(&pd->name, val);
}

View File

@ -256,7 +256,7 @@ mixin Elm.Interface.Atspi_Accessible ()
set {
}
values {
name: ptr(char); [[Object name]]
name: string; [[Object name]]
}
}
@property relation_set @protected {

View File

@ -2144,13 +2144,13 @@ _elm_list_item_elm_interface_atspi_accessible_state_set_get(Eo *eo_it, Elm_List_
return ret;
}
EOLIAN static char*
EOLIAN static const char*
_elm_list_item_elm_interface_atspi_accessible_name_get(Eo *eo_it, Elm_List_Item_Data *data)
{
char *ret;
const char *ret;
ret = elm_interface_atspi_accessible_name_get(efl_super(eo_it, ELM_LIST_ITEM_CLASS));
if (ret) return ret;
return data->label ? strdup(data->label) : NULL;
return data->label;
}
static char *

View File

@ -1304,13 +1304,13 @@ _elm_menu_item_elm_interface_atspi_accessible_role_get(Eo *obj EINA_UNUSED, Elm_
return sd->submenu.items ? ELM_ATSPI_ROLE_MENU : ELM_ATSPI_ROLE_MENU_ITEM;
}
EOLIAN static char*
EOLIAN static const char*
_elm_menu_item_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_Menu_Item_Data *sd)
{
char *ret;
const char *ret;
ret = elm_interface_atspi_accessible_name_get(efl_super(obj, ELM_MENU_ITEM_CLASS));
if (ret) return ret;
return sd->label ? strdup(sd->label) : NULL;
return sd->label;
}
EOLIAN static Elm_Atspi_State_Set

View File

@ -1736,14 +1736,14 @@ _elm_spinner_elm_interface_atspi_value_increment_get(Eo *obj EINA_UNUSED, Elm_Sp
return sd->step;
}
EOLIAN static char*
EOLIAN static const char*
_elm_spinner_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_Spinner_Data *sd EINA_UNUSED)
{
char *name;
const char *name;
name = elm_interface_atspi_accessible_name_get(efl_super(obj, ELM_SPINNER_CLASS));
if (name) return name;
const char *ret = elm_layout_text_get(obj, "elm.text");
return ret ? strdup(ret) : NULL;
return ret;
}
// A11Y Accessibility - END

View File

@ -3966,13 +3966,13 @@ _elm_toolbar_item_bring_in(Eo *eo_item EINA_UNUSED, Elm_Toolbar_Item_Data *item,
(WIDGET(item), x, y, w, h);
}
EOLIAN static char*
EOLIAN static const char*
_elm_toolbar_item_elm_interface_atspi_accessible_name_get(Eo *eo_item, Elm_Toolbar_Item_Data *item)
{
char *ret;
const char *ret;
ret = elm_interface_atspi_accessible_name_get(efl_super(eo_item, ELM_TOOLBAR_ITEM_CLASS));
if (ret) return ret;
return item->label ? strdup(item->label) : NULL;
return item->label;
}
EOLIAN static Elm_Atspi_State_Set

View File

@ -482,6 +482,7 @@ _elm_widget_efl_canvas_group_group_del(Eo *obj, Elm_Widget_Smart_Data *sd)
_if_focused_revert(obj, EINA_TRUE);
elm_widget_focus_custom_chain_unset(obj);
eina_stringshare_del(sd->access_info);
eina_stringshare_del(sd->accessible_name);
evas_object_smart_data_set(obj, NULL);
}
@ -4576,6 +4577,7 @@ _elm_widget_item_efl_object_destructor(Eo *eo_item, Elm_Widget_Item_Data *item)
evas_object_del(item->view);
eina_stringshare_del(item->access_info);
eina_stringshare_del(item->accessible_name);
while (item->signals)
_elm_widget_item_signal_callback_list_get(item, item->signals);
@ -5939,11 +5941,11 @@ _elm_widget_elm_interface_atspi_component_focus_grab(Eo *obj, Elm_Widget_Smart_D
return EINA_FALSE;
}
EOLIAN static char*
_elm_widget_elm_interface_atspi_accessible_name_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *_pd EINA_UNUSED)
EOLIAN static const char*
_elm_widget_elm_interface_atspi_accessible_name_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *_pd)
{
const char *ret;
char *name;
const char *ret, *name;
char *accessible_name;
name = elm_interface_atspi_accessible_name_get(efl_super(obj, ELM_WIDGET_CLASS));
if (name) return name;
@ -5951,7 +5953,11 @@ _elm_widget_elm_interface_atspi_accessible_name_get(Eo *obj EINA_UNUSED, Elm_Wid
ret = elm_object_text_get(obj);
if (!ret) return NULL;
return _elm_util_mkup_to_text(ret);
accessible_name = _elm_util_mkup_to_text(ret);
eina_stringshare_del(_pd->accessible_name);
_pd->accessible_name = eina_stringshare_add(accessible_name);
free(accessible_name);
return _pd->accessible_name;
}
EOLIAN static Eina_List*

View File

@ -410,6 +410,7 @@ typedef struct _Elm_Widget_Smart_Data
const char *style;
const char *focus_highlight_style; /**< custom focus style for a widget */
const char *access_info;
const char *accessible_name;
unsigned int focus_order;
Eina_Bool focus_order_on_calc;
@ -603,6 +604,7 @@ struct _Elm_Widget_Item_Data
Evas_Object *access_obj;
const char *access_info;
const char *accessible_name;
Eina_List *access_order;
Eina_Inlist *translate_strings;
Eina_List *signals;

View File

@ -51,7 +51,7 @@ START_TEST (elm_atspi_name_get)
elm_init(0, NULL);
generate_app();
char *name;
const char *name;
name = elm_interface_atspi_accessible_name_get(g_btn);
@ -59,8 +59,6 @@ START_TEST (elm_atspi_name_get)
ck_assert(0);
}
free(name);
// Set name with additional text tags
elm_object_text_set(g_btn, "Some<br>text");
@ -70,7 +68,6 @@ START_TEST (elm_atspi_name_get)
ck_assert(name != NULL);
ck_assert_str_eq(name, "Some\ntext");
free(name);
elm_shutdown();
}
END_TEST
@ -80,7 +77,7 @@ START_TEST (elm_atspi_name_set)
elm_init(0, NULL);
generate_app();
char *name;
const char *name;
elm_object_text_set(g_btn, "Other text");
elm_interface_atspi_accessible_name_set(g_btn, "Test name");
@ -90,16 +87,12 @@ START_TEST (elm_atspi_name_set)
ck_assert(name != NULL);
ck_assert_str_eq(name, "Test name");
free(name);
elm_interface_atspi_accessible_name_set(g_btn, NULL);
name = elm_interface_atspi_accessible_name_get(g_btn);
ck_assert(name != NULL);
ck_assert_str_eq(name, "Other text");
free(name);
elm_shutdown();
}
END_TEST