So far, elm_object_accessibility_highlight_set have used VIEW object of Elm_Object_Item.
But, we cannot get Elm_Object_Item related data from VIEW which is returned by _elm_object_accessibility_currently_highlighted_get
We need to use currently highlighted object with some APIs such as elm_interface_atspi_accessible_state_changed_signal_emit.
But, we cannot use this kind of API with VIEW object.
Change-Id: I85ee98c4e2510c8e59c7fd0758281dfa9282f12e
{
elm_genlist_item_show(eo_it, ELM_GENLIST_ITEM_SCROLLTO_IN);
- elm_object_accessibility_highlight_set(VIEW(it), EINA_TRUE);
+ elm_object_accessibility_highlight_set(EO_OBJ(it), EINA_TRUE);
///TIZEN_ONLY(20170717) : expose highlight information on atspi
elm_interface_atspi_accessible_state_changed_signal_emit(eo_it, ELM_ATSPI_STATE_HIGHLIGHTED, EINA_TRUE);
///
EOLIAN static Eina_Bool
_elm_color_item_elm_interface_atspi_component_highlight_clear(Eo *eo_it EINA_UNUSED, Elm_Color_Item_Data *it)
{
- elm_object_accessibility_highlight_set(VIEW(it), EINA_FALSE);
+ elm_object_accessibility_highlight_set(EO_OBJ(it), EINA_FALSE);
///TIZEN_ONLY(20170717) : expose highlight information on atspi
elm_interface_atspi_accessible_state_changed_signal_emit(eo_it, ELM_ATSPI_STATE_HIGHLIGHTED, EINA_FALSE);
///
if (sd->atspi_item_to_highlight == it)
{
sd->atspi_item_to_highlight = NULL;
- elm_object_accessibility_highlight_set(VIEW(it), EINA_TRUE);
+ elm_object_accessibility_highlight_set(EO_OBJ(it), EINA_TRUE);
}
//
}
}
if (VIEW(it))
- elm_object_accessibility_highlight_set(VIEW(it), EINA_TRUE);
+ elm_object_accessibility_highlight_set(EO_OBJ(it), EINA_TRUE);
else
sd->atspi_item_to_highlight = it;//it will be highlighted when realized
if (sd->atspi_item_to_highlight == it)
sd->atspi_item_to_highlight = NULL;
//
- elm_object_accessibility_highlight_set(VIEW(it), EINA_FALSE);
+ elm_object_accessibility_highlight_set(EO_OBJ(it), EINA_FALSE);
///TIZEN_ONLY(20170717) : expose highlight information on atspi
elm_interface_atspi_accessible_active_descendant_changed_signal_emit(WIDGET(it), eo_it);
///
if (!view) return;
ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
- if ((void*)view == _elm_object_accessibility_currently_highlighted_get())
+ Evas_Object * highlighted_obj = _elm_object_accessibility_currently_highlighted_get();
+ if (eo_isa(highlighted_obj, ELM_WIDGET_ITEM_CLASS))
+ {
+ Elm_Widget_Item_Data *id = eo_data_scope_get(highlighted_obj, ELM_WIDGET_ITEM_CLASS);
+ highlighted_obj = id->view;
+ }
+ else
+ highlighted_obj = NULL;
+
+ if (highlighted_obj && view == highlighted_obj)
{
int x,y,w,h;
evas_object_geometry_get(sd->obj, &x, &y, &w, &h);
//check if highlighted item is genlist descendant
Evas_Object * highlighted_obj = _elm_object_accessibility_currently_highlighted_get();
+ if (eo_isa(highlighted_obj, ELM_WIDGET_ITEM_CLASS))
+ {
+ Elm_Widget_Item_Data *id = eo_data_scope_get(highlighted_obj, ELM_WIDGET_ITEM_CLASS);
+ highlighted_obj = id->view;
+ }
+
Evas_Object *parent = highlighted_obj;
if (eo_isa(highlighted_obj, ELM_WIDGET_CLASS))
{
EOLIAN static Eina_Bool
_elm_list_item_elm_interface_atspi_component_highlight_clear(Eo *eo_it, Elm_List_Item_Data *it)
{
- elm_object_accessibility_highlight_set(VIEW(it), EINA_FALSE);
+ elm_object_accessibility_highlight_set(EO_OBJ(it), EINA_FALSE);
///TIZEN_ONLY(20170717) : expose highlight information on atspi
elm_interface_atspi_accessible_state_changed_signal_emit(eo_it, ELM_ATSPI_STATE_HIGHLIGHTED, EINA_FALSE);
///
//check if highlighted item is list descendant
Evas_Object * highlighted_obj = _elm_object_accessibility_currently_highlighted_get();
+ if (eo_isa(highlighted_obj, ELM_WIDGET_ITEM_CLASS))
+ {
+ ERR("[KSW] ITEM!");
+ Elm_Widget_Item_Data *id = eo_data_scope_get(highlighted_obj, ELM_WIDGET_ITEM_CLASS);
+ highlighted_obj = id->view;
+ }
+
Evas_Object * parent = highlighted_obj;
if (eo_isa(highlighted_obj, ELM_WIDGET_CLASS))
{
//
void *
-_elm_object_accessibility_currently_highlighted_get()
+_elm_object_accessibility_currently_highlighted_get(void)
{
return _accessibility_currently_highlighted_obj;
}
//TIZEN_ONLY(20160329): win: add accessibility highlight (d4753268ad02d0c25c16f815003c70b158879ca7)
-EAPI void
-elm_object_accessibility_highlight_set(Evas_Object *obj, Eina_Bool visible)
+void
+elm_object_accessibility_highlight_set(void *obj, Eina_Bool visible)
{
EINA_SAFETY_ON_NULL_RETURN(obj);
Evas_Object *win = NULL;
+ Evas_Object *target = NULL;
+
+ if (eo_isa(obj, ELM_WIDGET_ITEM_CLASS))
+ {
+ Elm_Widget_Item_Data *id = eo_data_scope_get(obj, ELM_WIDGET_ITEM_CLASS);
+ target = id->view;
+ }
+ else
+ target = obj;
- if (elm_object_widget_check(obj))
- win = elm_object_top_widget_get(obj);
+ if (elm_object_widget_check(target))
+ win = elm_object_top_widget_get(target);
else
- win = elm_object_top_widget_get(elm_object_parent_widget_get(obj));
+ win = elm_object_top_widget_get(elm_object_parent_widget_get(target));
EINA_SAFETY_ON_NULL_RETURN(win);
if (_accessibility_currently_highlighted_obj == (void*)obj)
if (visible)
{
- if (elm_widget_access_highlight_in_theme_get(obj))
+ if (elm_widget_access_highlight_in_theme_get(target))
elm_widget_signal_emit(obj, "elm,action,access_highlight,show", "elm");
else
- _elm_win_object_set_accessibility_highlight(win, obj);
+ _elm_win_object_set_accessibility_highlight(win, target);
}
else
{
- if (elm_widget_access_highlight_in_theme_get(obj))
+ if (elm_widget_access_highlight_in_theme_get(target))
elm_widget_signal_emit(obj, "elm,action,access_highlight,hide", "elm");
else
_elm_win_object_set_accessibility_highlight(win, NULL);
EAPI Evas_Object *elm_object_part_access_object_get(const Evas_Object *obj, const char *part);
//
-//TIZEN_ONLY(20160329): win: add accessibility highlight (d4753268ad02d0c25c16f815003c70b158879ca7)
-/**
- * Set accessibility highlight on object.
- *
- * Accessibility higlight helps visually impaired people to localize elements on
- * application's user interface. It can be used to point to currently focused
- * objects, interesting elements in given application context or it can just point
- * to object that mouse is currently hovering above.
- *
- * There can be only one highlighted object per window.
- *
- * @param obj The Elementary widget to set accessibility highlight.
- * @param val EINA_TRUE is object should be highlighted, EINA_FALSE otherwise.
- *
- * @tizen_only
- *
- * @ingroup General
- */
-EAPI void elm_object_accessibility_highlight_set(Evas_Object *obj, Eina_Bool val);
-//
-
// TIZEN_ONLY(20150705): Genlist item align feature
/**
* @brief Sets the scroll item align enable.
_elm_toolbar_item_elm_interface_atspi_component_highlight_grab(Eo *eo_it, Elm_Toolbar_Item_Data *it)
{
elm_toolbar_item_show(eo_it, ELM_TOOLBAR_ITEM_SCROLLTO_IN);
- elm_object_accessibility_highlight_set(VIEW(it), EINA_TRUE);
+ elm_object_accessibility_highlight_set(EO_OBJ(it), EINA_TRUE);
///TIZEN_ONLY(20170717) : expose highlight information on atspi
elm_interface_atspi_accessible_active_descendant_changed_signal_emit(WIDGET(it), eo_it);
EOLIAN static Eina_Bool
_elm_toolbar_item_elm_interface_atspi_component_highlight_clear(Eo *eo_it, Elm_Toolbar_Item_Data *it)
{
- elm_object_accessibility_highlight_set(VIEW(it), EINA_FALSE);
+ elm_object_accessibility_highlight_set(EO_OBJ(it), EINA_FALSE);
///TIZEN_ONLY(20170717) : expose highlight information on atspi
elm_interface_atspi_accessible_active_descendant_changed_signal_emit(WIDGET(it), eo_it);
///
delta_x = old_x - x;
//check if highlighted item is list descendant
Evas_Object * highlighted_obj = _elm_object_accessibility_currently_highlighted_get();
+ if (eo_isa(highlighted_obj, ELM_WIDGET_ITEM_CLASS))
+ {
+ Elm_Widget_Item_Data *id = eo_data_scope_get(highlighted_obj, ELM_WIDGET_ITEM_CLASS);
+ highlighted_obj = id->view;
+ }
+
Evas_Object * parent = highlighted_obj;
if (eo_isa(highlighted_obj, ELM_WIDGET_CLASS))
{
else
STATE_TYPE_UNSET(states, ELM_ATSPI_STATE_HIGHLIGHTABLE);
- if (_elm_object_accessibility_currently_highlighted_get() == (void*)item->view)
+ if (_elm_object_accessibility_currently_highlighted_get() == (void*)item->eo_obj)
STATE_TYPE_SET(states, ELM_ATSPI_STATE_HIGHLIGHTED);
//
return states;
}
}
- elm_object_accessibility_highlight_set(sd->view, EINA_TRUE);
+ elm_object_accessibility_highlight_set(sd->eo_obj, EINA_TRUE);
elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_HIGHLIGHTED, EINA_TRUE);
return EINA_TRUE;
_elm_widget_item_elm_interface_atspi_component_highlight_clear(Eo *obj, Elm_Widget_Item_Data *sd)
{
if (!obj) return EINA_FALSE;
- elm_object_accessibility_highlight_set(sd->view, EINA_FALSE);
+ elm_object_accessibility_highlight_set(sd->eo_obj, EINA_FALSE);
elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_HIGHLIGHTED, EINA_FALSE);
return EINA_TRUE;
}
if (sd->atspi_item_to_highlight == it)
{
sd->atspi_item_to_highlight = NULL;
- elm_object_accessibility_highlight_set(VIEW(it), EINA_TRUE);
+ elm_object_accessibility_highlight_set(EO_OBJ(it), EINA_TRUE);
}
}
}
if (VIEW(it))
- elm_object_accessibility_highlight_set(VIEW(it), EINA_TRUE);
+ elm_object_accessibility_highlight_set(EO_OBJ(it), EINA_TRUE);
else
sd->atspi_item_to_highlight = it;//it will be highlighted when realized
ELM_GENLIST_DATA_GET(WIDGET(it), sd);
if (sd->atspi_item_to_highlight == it)
sd->atspi_item_to_highlight = NULL;
- elm_object_accessibility_highlight_set(VIEW(it), EINA_FALSE);
+ elm_object_accessibility_highlight_set(EO_OBJ(it), EINA_FALSE);
///TIZEN_ONLY(20170717) : expose highlight information on atspi
elm_interface_atspi_accessible_active_descendant_changed_signal_emit(WIDGET(it), eo_it);
///
//check if highlighted item is genlist descendant
Evas_Object * highlighted_obj = _elm_object_accessibility_currently_highlighted_get();
+ if (eo_isa(highlighted_obj, ELM_WIDGET_ITEM_CLASS))
+ {
+ Elm_Widget_Item_Data *id = eo_data_scope_get(highlighted_obj, ELM_WIDGET_ITEM_CLASS);
+ highlighted_obj = id->view;
+ }
+
Evas_Object * parent = highlighted_obj;
if (eo_isa(highlighted_obj, ELM_WIDGET_CLASS))
{