if (!_access_action_callback_call(obj, ELM_ACCESS_ACTION_HIGHLIGHT, NULL))
eo_do_super(obj, ELM_ACCESS_CLASS, elm_interface_atspi_component_highlight_grab());
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_HIGHLIGHTED, EINA_TRUE);
+///
return EINA_TRUE;
}
if (!_access_action_callback_call(obj, ELM_ACCESS_ACTION_UNHIGHLIGHT, NULL))
eo_do_super(obj, ELM_ACCESS_CLASS, elm_interface_atspi_component_highlight_clear());
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_HIGHLIGHTED, EINA_FALSE);
+///
return EINA_TRUE;
}
elm_genlist_item_show(eo_it, ELM_GENLIST_ITEM_SCROLLTO_IN);
elm_object_accessibility_highlight_set(VIEW(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);
+///
return EINA_TRUE;
}
_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);
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ elm_interface_atspi_accessible_state_changed_signal_emit(eo_it, ELM_ATSPI_STATE_HIGHLIGHTED, EINA_FALSE);
+///
return EINA_TRUE;
}
elm_gengrid_item_show(eo_it, ELM_GENGRID_ITEM_SCROLLTO_IN);
elm_object_accessibility_highlight_set(VIEW(it), EINA_TRUE);
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ eo_do(WIDGET(it), eo_event_callback_call(ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_ACTIVE_DESCENDANT_CHANGED, eo_it));
+///
return EINA_TRUE;
}
_elm_gengrid_item_elm_interface_atspi_component_highlight_clear(Eo *eo_it, Elm_Gen_Item *it)
{
elm_object_accessibility_highlight_set(VIEW(it), EINA_FALSE);
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ eo_do(WIDGET(it), eo_event_callback_call(ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_ACTIVE_DESCENDANT_CHANGED, eo_it));
+///
return EINA_TRUE;
}
if (!view) return;
ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
+ if ((void*)view == _elm_object_accessibility_currently_highlighted_get())
+ {
+ Elm_Genlist_Data * sd = it->item->wsd;
+ int x,y,w,h;
+ evas_object_geometry_get(sd->obj, &x, &y, &w, &h);
+
+ Elm_Gen_Item * next_previous_item = NULL;
+ if ((it_y + GL_IT(it)->h/2) < y)
+ {
+ next_previous_item = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->next);
+ }
+ else if ((it_y + GL_IT(it)->h/2) > y + h)
+ {
+ next_previous_item = ELM_GEN_ITEM_FROM_INLIST(EINA_INLIST_GET(it)->prev);
+ }
+
+ if (next_previous_item)
+ eo_do(EO_OBJ(next_previous_item), elm_interface_atspi_component_highlight_grab());
+ }
+
evas_event_freeze
(evas_object_evas_get(sd->obj));
evas_object_resize(view, it->item->w, it->item->h);
/*
* Sets a particilar state type for given state set.
*/
-#define STATE_TYPE_SET(state_set, type) (state_set|= (1ULL << type))
+#define STATE_TYPE_SET(state_set, type) (state_set|= ((Elm_Atspi_State_Set)1 << type))
/**
* Unsets a particilar state type for given state set.
*/
-#define STATE_TYPE_UNSET(state_set, type) (state_set &= ~(1ULL << type))
+#define STATE_TYPE_UNSET(state_set, type) (state_set &= ~((Elm_Atspi_State_Set)1 << type))
/**
* Gets value of a particilar state type for given state set.
*/
-#define STATE_TYPE_GET(state_set, type) (state_set & (1ULL << type))
+#define STATE_TYPE_GET(state_set, type) (state_set & ((Elm_Atspi_State_Set)1 << type))
/**
_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);
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ elm_interface_atspi_accessible_state_changed_signal_emit(eo_it, ELM_ATSPI_STATE_HIGHLIGHTED, EINA_FALSE);
+///
return EINA_TRUE;
}
else
elm_list_item_show(eo_it);
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ elm_interface_atspi_accessible_state_changed_signal_emit(eo_it, ELM_ATSPI_STATE_HIGHLIGHTED, EINA_TRUE);
+///
eo_do_super(eo_it, ELM_LIST_ITEM_CLASS, ret = elm_interface_atspi_component_highlight_grab());
return ret;
}
{
elm_toolbar_item_show(eo_it, ELM_TOOLBAR_ITEM_SCROLLTO_IN);
elm_object_accessibility_highlight_set(VIEW(it), EINA_TRUE);
+
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ eo_do(WIDGET(it), eo_event_callback_call(ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_ACTIVE_DESCENDANT_CHANGED, eo_it));
+///
return EINA_TRUE;
}
_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);
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ eo_do(WIDGET(it), eo_event_callback_call(ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_ACTIVE_DESCENDANT_CHANGED, eo_it));
+///
return EINA_TRUE;
}
//
item->widget = widget;
item->eo_obj = eo_item;
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ item->can_highlight = EINA_TRUE;
+///
+
eo_do(eo_item, eo_event_callback_add(EO_BASE_EVENT_DEL, _eo_del_cb, NULL));
return eo_item;
EOLIAN static Elm_Atspi_State_Set
_elm_widget_item_elm_interface_atspi_accessible_state_set_get(Eo *eo_item,
- Elm_Widget_Item_Data *item EINA_UNUSED)
+ Elm_Widget_Item_Data *item)
{
Elm_Atspi_State_Set states = 0;
if (_elm_widget_item_onscreen_is(eo_item))
STATE_TYPE_SET(states, ELM_ATSPI_STATE_SHOWING);
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ if (item->can_highlight)
+ STATE_TYPE_SET(states, ELM_ATSPI_STATE_HIGHLIGHTABLE);
+
+ if (_elm_object_accessibility_currently_highlighted_get() == (void*)item->view)
+ STATE_TYPE_SET(states, ELM_ATSPI_STATE_HIGHLIGHTED);
+///
return states;
}
parent = eo_parent_get());
eo_do(obj, elm_obj_widget_parent_set(parent));
sd->on_create = EINA_FALSE;
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ sd->can_highlight = EINA_TRUE;
+///
eo_do(obj, elm_interface_atspi_accessible_role_set(ELM_ATSPI_ROLE_UNKNOWN));
return obj;
}
EOLIAN static Elm_Atspi_State_Set
-_elm_widget_elm_interface_atspi_accessible_state_set_get(Eo *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED)
+_elm_widget_elm_interface_atspi_accessible_state_set_get(Eo *obj, Elm_Widget_Smart_Data *pd)
{
Elm_Atspi_State_Set states = 0;
STATE_TYPE_SET(states, ELM_ATSPI_STATE_SENSITIVE);
}
+///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ if (pd->can_highlight)
+ STATE_TYPE_SET(states, ELM_ATSPI_STATE_HIGHLIGHTABLE);
+
+ if (_elm_object_accessibility_currently_highlighted_get() == (void*)pd->obj)
+ STATE_TYPE_SET(states, ELM_ATSPI_STATE_HIGHLIGHTED);
+///
+
return states;
}
Eina_Bool on_translate : 1; /**< This is true when any types of elm translate function is being called. */
Eina_Bool on_create : 1; /**< This is true when the widget is on creation(general widget constructor). */
Eina_Bool on_destroy: 1; /**< This is true when the widget is on destruction(general widget destructor). */
+ ///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ Eina_Bool can_highlight : 1; /**< true if widget have at-spi HIGHLIGHTABLE state */
+ ///
+
} Elm_Widget_Smart_Data;
/**
//TIZEN_ONLY(20160404) Accessibility Highlight Frame added (99248ce)
void _elm_win_object_set_accessibility_highlight(Evas_Object *win, Evas_Object *obj);
//
+void *_elm_object_accessibility_currently_highlighted_get();
+
EAPI void _elm_access_clear(Elm_Access_Info *ac);
EAPI void _elm_access_text_set(Elm_Access_Info *ac, int type, const char *text);
EAPI void _elm_access_callback_set(Elm_Access_Info *ac, int type, Elm_Access_Info_Cb func, const void *data);
Eina_Bool on_deletion : 1;
Eina_Bool on_translate : 1;
Eina_Bool still_in : 1;
+ ///TIZEN_ONLY(20170717) : expose highlight information on atspi
+ Eina_Bool can_highlight : 1; /**< true if widget have at-spi HIGHLIGHTABLE state */
+ ///
};
#define ELM_NEW(t) calloc(1, sizeof(t))