+EAPI Elm_Access_Info *
+_elm_access_item_get(const Elm_Widget_Item *it)
+{
+ return it->access;
+}
+
+EAPI void
+_elm_access_object_hilight(Evas_Object *obj)
+{
+ Evas_Object *o;
+ Evas_Coord x, y, w, h;
+
+ o = evas_object_name_find(evas_object_evas_get(obj), "_elm_access_disp");
+ if (!o)
+ {
+ o = edje_object_add(evas_object_evas_get(obj));
+ evas_object_name_set(o, "_elm_access_disp");
+ evas_object_layer_set(o, ELM_OBJECT_LAYER_TOOLTIP);
+ }
+ else
+ {
+ Evas_Object *ptarget = evas_object_data_get(o, "_elm_access_target");
+ if (ptarget)
+ {
+ evas_object_data_del(o, "_elm_access_target");
+ evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_DEL,
+ _access_obj_hilight_del_cb, NULL);
+ evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_HIDE,
+ _access_obj_hilight_hide_cb, NULL);
+ evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_MOVE,
+ _access_obj_hilight_move_cb, NULL);
+ evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_RESIZE,
+ _access_obj_hilight_resize_cb, NULL);
+ }
+ }
+ evas_object_data_set(o, "_elm_access_target", obj);
+ _elm_theme_object_set(obj, o, "access", "base", "default");
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL,
+ _access_obj_hilight_del_cb, NULL);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE,
+ _access_obj_hilight_hide_cb, NULL);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE,
+ _access_obj_hilight_move_cb, NULL);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE,
+ _access_obj_hilight_resize_cb, NULL);
+ evas_object_raise(o);
+ evas_object_geometry_get(obj, &x, &y, &w, &h);
+ evas_object_move(o, x, y);
+ evas_object_resize(o, w, h);
+ evas_object_show(o);
+}
+
+EAPI void
+_elm_access_object_unhilight(Evas_Object *obj)
+{
+ Evas_Object *o, *ptarget;
+
+ o = evas_object_name_find(evas_object_evas_get(obj), "_elm_access_disp");
+ if (!o) return;
+ ptarget = evas_object_data_get(o, "_elm_access_target");
+ if (ptarget == obj)
+ {
+ evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_DEL,
+ _access_obj_hilight_del_cb, NULL);
+ evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_HIDE,
+ _access_obj_hilight_hide_cb, NULL);
+ evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_MOVE,
+ _access_obj_hilight_move_cb, NULL);
+ evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_RESIZE,
+ _access_obj_hilight_resize_cb, NULL);
+ evas_object_del(o);
+ }
+}
+
+EAPI void
+_elm_access_object_hilight_disable(Evas *e)
+{
+ Evas_Object *o, *ptarget;
+
+ o = evas_object_name_find(e, "_elm_access_disp");
+ if (!o) return;
+ ptarget = evas_object_data_get(o, "_elm_access_target");
+ if (ptarget)
+ {
+ evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_DEL,
+ _access_obj_hilight_del_cb, NULL);
+ evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_HIDE,
+ _access_obj_hilight_hide_cb, NULL);
+ evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_MOVE,
+ _access_obj_hilight_move_cb, NULL);
+ evas_object_event_callback_del_full(ptarget, EVAS_CALLBACK_RESIZE,
+ _access_obj_hilight_resize_cb, NULL);
+ }
+ evas_object_del(o);
+}
+