From 32c135d2312724e0ad205b81e21c0020bc85c71e Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Mon, 11 Dec 2017 13:42:37 +0530 Subject: [PATCH] atspi: Add and expose API [add] - elm_object_part_access_register [expose] - elm_object_part_access_object_get - elm_access_object_register - elm_access_object_unregister - elm_access_object_get - elm_atspi_bridge_utils_say - elm_atspi_accessible_name_cb_set - elm_atspi_accessible_description_cb_set - elm_atspi_accessible_attribute_append - elm_atspi_accessible_reading_info_type_set - elm_atspi_accessible_reading_info_type_get - elm_atspi_accessible_gesture_cb_set - elm_atspi_accessible_can_highlight_set - elm_atspi_accessible_can_highlight_get - elm_atspi_component_highlight_grab - elm_atspi_component_highlight_clear original patch: c8fb84319dc59b6a5d6ffaac9c396c9f03932005 Change-Id: Iae890f9a899cae165135be0e6458e90a9793bddc Signed-off-by: Shilpa Singh --- src/lib/elementary/efl_access.eo | 53 +++++++++++++++++++++++------- src/lib/elementary/efl_access_component.eo | 12 +++++-- src/lib/elementary/elm_access.h | 9 +++++ src/lib/elementary/elm_atspi_bridge.h | 20 +++++++++++ src/lib/elementary/elm_main.c | 15 +++++++++ src/lib/elementary/elm_object.h | 17 +++++++++- 6 files changed, 112 insertions(+), 14 deletions(-) diff --git a/src/lib/elementary/efl_access.eo b/src/lib/elementary/efl_access.eo index 4cad93b..39628fb 100644 --- a/src/lib/elementary/efl_access.eo +++ b/src/lib/elementary/efl_access.eo @@ -339,7 +339,11 @@ mixin Efl.Access (Efl.Interface, Efl.Object) //TIZEN_ONLY(20190922): add name callback, description callback. @property name_cb { set { - [[Sets name information callback about widget.]] + [[Sets name information callback about widget. + + \@if WEARABLE \@since_tizen 3.0 + \@endif + ]] } values { name_cb: Efl_Access_Reading_Info_Cb; [[reading information callback]] @@ -368,18 +372,26 @@ mixin Efl.Access (Efl.Interface, Efl.Object) //TIZEN_ONLY(20190922): add name callback, description callback. @property description_cb { set { - [[Sets contextual information callback about widget.]] + [[Sets contextual information callback about widget. + + \@if WEARABLE \@since_tizen 3.0 + \@endif + ]] } values { - description_cb: Efl_Access_Reading_Info_Cb; [[reading information callback]] - data: const (void_ptr); + description_cb: Efl_Access_Reading_Info_Cb; [[The function called to provide the accessible description.]] + data: const (void_ptr); [[The data passed to \@c description_cb.]] } } // //TIZEN_ONLY(20170405) Add gesture method to accessible interface @property gesture_cb { set { - [[Sets gesture callback to give widget.]] + [[Sets gesture callback to give widget. + + \@if WEARABLE \@since_tizen 3.0 + \@endif + ]] } values { gesture_cb: Efl_Access_Gesture_Cb; @@ -419,7 +431,10 @@ mixin Efl.Access (Efl.Interface, Efl.Object) } } attribute_append { - [[Add key-value pair identifying object extra attributes + [[Add key-value pair identifying widget extra attribute + + \@if WEARABLE \@since_tizen 3.0 + \@endif ]] params { @in key: string; [[The string key to give extra information]] @@ -434,10 +449,18 @@ mixin Efl.Access (Efl.Interface, Efl.Object) } @property reading_info_type @protected { get { - [[Gets reading information types of an accessible object.]] + [[Gets reading information types of an accessible object. + + \@if WEARABLE \@since_tizen 3.0 + \@endif + ]] } set { - [[Sets reading information of an accessible object.]] + [[Sets reading information of an accessible object. + + \@if WEARABLE \@since_tizen 3.0 + \@endif + ]] } values { reading_info: Efl.Access.Reading.Info.Type; [[Reading information types]] @@ -507,13 +530,21 @@ mixin Efl.Access (Efl.Interface, Efl.Object) //TIZEN_ONLY(20160726): add API efl_access_can_highlight_set/get @property can_highlight @protected { get { - [[Gets highlightable of given widget.]] + [[Gets highlightable of given widget. + + \@if WEARABLE \@since_tizen 3.0 + \@endif + ]] } set { - [[Sets highlightable to given widget.]] + [[Sets highlightable to given widget. + + \@if WEARABLE \@since_tizen 3.0 + \@endif + ]] } values { - can_highlight: bool; [[If \@c true, the object is highlightable]] + can_highlight: bool; [[If \@c true, the object is highlightable.]] } } // diff --git a/src/lib/elementary/efl_access_component.eo b/src/lib/elementary/efl_access_component.eo index f31e8b5..d9d0bcf 100644 --- a/src/lib/elementary/efl_access_component.eo +++ b/src/lib/elementary/efl_access_component.eo @@ -102,7 +102,11 @@ mixin Efl.Access.Component () //TIZEN_ONLY(20171108): bring HIGHLIGHT related changes highlight_grab @protected { [[ Highlights accessible widget. - returns true if highlight grab has successed, false otherwise. ]] + returns true if highlight grab has successed, false otherwise. + + \@if WEARABLE \@since_tizen 3.0 + \@endif + ]] //TIZEN_ONLY(20160721): atspi: provide highlight legacy API legacy: elm_atspi_component_highlight_grab; // @@ -110,7 +114,11 @@ mixin Efl.Access.Component () } highlight_clear @protected { [[ Clears highlight of accessible widget. - returns true if clear has successed, false otherwise. ]] + returns true if clear has successed, false otherwise. + + \@if WEARABLE \@since_tizen 3.0 + \@endif + ]] //TIZEN_ONLY(20160721): atspi: provide highlight legacy API legacy: elm_atspi_component_highlight_clear; // diff --git a/src/lib/elementary/elm_access.h b/src/lib/elementary/elm_access.h index 8d82765..429c447 100644 --- a/src/lib/elementary/elm_access.h +++ b/src/lib/elementary/elm_access.h @@ -116,6 +116,9 @@ typedef void (*Elm_Access_Activate_Cb)(void *data, Evas_Object *part_obj, Elm_Ob * accessible object. * * @ingroup Access + * + * @if WEARABLE @since_tizen 3.0 + * @endif */ EAPI Evas_Object *elm_access_object_register(Evas_Object *obj, Evas_Object *parent); @@ -126,6 +129,9 @@ EAPI Evas_Object *elm_access_object_register(Evas_Object *obj, Evas_Object *pare * @param obj The Evas object to unregister accessible object. * * @ingroup Access + * + * @if WEARABLE @since_tizen 3.0 + * @endif */ EAPI void elm_access_object_unregister(Evas_Object *obj); @@ -137,6 +143,9 @@ EAPI void elm_access_object_unregister(Evas_Object *obj); * @return Accessible object of the evas object or NULL for any error * * @ingroup Access + * + * @if WEARABLE @since_tizen 3.0 + * @endif */ EAPI Evas_Object *elm_access_object_get(const Evas_Object *obj); diff --git a/src/lib/elementary/elm_atspi_bridge.h b/src/lib/elementary/elm_atspi_bridge.h index e1f91a6..edcca86 100644 --- a/src/lib/elementary/elm_atspi_bridge.h +++ b/src/lib/elementary/elm_atspi_bridge.h @@ -8,6 +8,26 @@ #endif //TIZEN_ONLY(20160527) - Add direct reading feature typedef void (*Elm_Atspi_Say_Signal_Cb)(void *data, const char *say_signal); +/** + * @brief Reads given text by screen reader + * + * @param text The text to read + * @param discardable If TRUE, reading can be discarded by subsequent reading requests, + * if FALSE the reading must finish before next reading request can be started + * @param func the callback function that is called on reading signals emitted + * during processing of this reading request. Elm_Atspi_Say_Signal_Cb callback + * type specifies two parameters (void *data, const char *signal), where data + * is a user data and signal can be one of the following signals: + * “ReadingCancelled” + * “ReadingStopped” + * “ReadingSkipped” + * @param data The user data to be passed to the callback function + * + * @ingoup Elm_Atspi_Bridge + * + * @if WEARABLE @since_tizen 3.0 + * @endif + */ EAPI void elm_atspi_bridge_utils_say(const char* text, Eina_Bool discardable, const Elm_Atspi_Say_Signal_Cb func, diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c index 852fbf6..a24fe87 100644 --- a/src/lib/elementary/elm_main.c +++ b/src/lib/elementary/elm_main.c @@ -2110,6 +2110,21 @@ elm_object_focus_region_show_mode_set(Evas_Object *obj, Elm_Focus_Region_Show_Mo elm_widget_focus_region_show_mode_set(obj, mode); } +EAPI Evas_Object * +elm_object_part_access_register(Evas_Object *obj, const char *part) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL); + EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); + if (!evas_object_smart_type_check(obj, "elm_layout")) + { + ERR("Only for parts of a layout, access object can be registered"); + return NULL; + } + + Evas_Object *edj = elm_layout_edje_get(obj); + return _elm_access_edje_object_part_object_register(obj, edj, part); +} + //TIZEN_ONLY(20160726): add API elm_object_part_access_object_get EAPI Evas_Object *elm_object_part_access_object_get(const Evas_Object *obj, const char *part) { diff --git a/src/lib/elementary/elm_object.h b/src/lib/elementary/elm_object.h index 6b11c2a..87baaa3 100644 --- a/src/lib/elementary/elm_object.h +++ b/src/lib/elementary/elm_object.h @@ -192,6 +192,21 @@ EAPI void elm_object_access_info_set(Evas_Object *obj, c */ EAPI const char *elm_object_access_info_get(Evas_Object *obj); +//TIZEN_ONLY(20170414): add API elm_object_part_access_register +/** + * @brief Registers a part of an object as an access object. + * + * @param obj The object + * @param part The object's part name to register + * + * @ingroup General + * + * @if WEARABLE @since_tizen 3.0 + * @endif + */ +EAPI Evas_Object *elm_object_part_access_register(Evas_Object *obj, const char *part); +// + //TIZEN_ONLY(20160726): add API elm_object_part_access_object_get /** * @brief Get the access object which is registered to part @@ -199,7 +214,7 @@ EAPI const char *elm_object_access_info_get(Evas_Object *obj); * @param obj The object * @param part The object's part name to get access object * - * @ingroup Elm_General + * @ingroup General * * @if WEARABLE @since_tizen 3.0 * @endif -- 2.7.4