access: add API to get access object of given part

This commit is contained in:
Shinwoo Kim 2016-07-25 22:05:24 +09:00
parent 96fbea9dae
commit 57d77c9041
8 changed files with 61 additions and 0 deletions

1
NEWS
View File

@ -240,6 +240,7 @@ Features:
* eo base - add weak object refs as per jpeg needs
* elput: Add API function to return output name associated with input device
* Eo refcount: Split the refcount to private and public (user).
* access: Add API to get access object of given widget's part.
Fixes:

View File

@ -1482,6 +1482,12 @@ _elm_popup_elm_widget_event(Eo *obj, Elm_Popup_Data *_pd EINA_UNUSED, Evas_Objec
return EINA_TRUE;
}
EOLIAN static Evas_Object*
_elm_popup_elm_widget_part_access_object_get(Eo *obj, Elm_Popup_Data *_pd EINA_UNUSED, const char *part)
{
return _access_object_get(obj, part);
}
EOLIAN static void
_elm_popup_efl_canvas_group_group_add(Eo *obj, Elm_Popup_Data *priv)
{

View File

@ -1925,3 +1925,8 @@ elm_object_focus_region_show_mode_get(const Evas_Object *obj)
return elm_widget_focus_region_show_mode_get(obj);
}
EAPI Evas_Object *elm_object_part_access_object_get(const Evas_Object *obj, const char *part)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
return elm_widget_part_access_object_get(obj, part);
}

View File

@ -508,3 +508,14 @@ EAPI void elm_object_orientation_mode_disabled_set(Evas_Object *obj, Eina
*/
EAPI Eina_Bool elm_object_orientation_mode_disabled_get(const Evas_Object *obj);
/**
* Get the access object which is registered to part
*
* @param obj The Elementary widget
* @param part The widget's part name to get access object
*
* @since 1.18
*
* @ingroup General
*/
EAPI Evas_Object *elm_object_part_access_object_get(const Evas_Object *obj, const char *part);

View File

@ -180,6 +180,7 @@ class Elm.Popup (Elm.Layout, Elm.Interface.Atspi_Widget_Action, Edje.Object)
Elm.Widget.translate;
Elm.Widget.sub_object_del;
Elm.Widget.event;
Elm.Widget.part_access_object_get;
Elm.Layout.text.set;
Elm.Layout.text.get;
Elm.Layout.sizing_eval;

View File

@ -3696,6 +3696,14 @@ _elm_widget_focus_reconfigure(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED)
_elm_widget_focus_move_policy_reload(obj);
}
EOLIAN static Evas_Object*
_elm_widget_part_access_object_get(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED, const char *part)
{
WRN("The %s widget does not implement the \"part_access_object_get\" functions.",
eo_class_name_get(eo_class_get(obj)));
return NULL;
}
EAPI void
elm_widget_content_part_set(Evas_Object *obj,
const char *part,

View File

@ -837,6 +837,15 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible, Elm.Inter
}
focus_reconfigure {
}
part_access_object_get {
[[Get the access object of given part of the widget.
@since 1.18]]
return: Efl.Canvas.Object;
params {
@in part: string; [[The object's part name to get access object]]
}
}
}
implements {
class.constructor;

View File

@ -24,7 +24,27 @@ START_TEST (elm_atspi_role_get)
}
END_TEST
START_TEST (elm_object_part_access_object_get)
{
Evas_Object *win, *popup, *access;
elm_init(1, NULL);
elm_config_access_set(EINA_TRUE);
win = elm_win_add(NULL, "popup", ELM_WIN_BASIC);
popup = elm_popup_add(win);
elm_object_part_text_set(popup, "title,text", "Title");
evas_object_show(popup);
access = elm_object_part_access_object_get(popup, "access.title");
ck_assert(access != NULL);
elm_shutdown();
}
END_TEST
void elm_test_popup(TCase *tc)
{
tcase_add_test(tc, elm_atspi_role_get);
tcase_add_test(tc, elm_object_part_access_object_get);
}