_access_read_done(void *data __UNUSED__)
{
printf("read done\n");
- // FIXME: produce event here
}
static void
return ret;
}
+void
+_elm_access_all_read_stop()
+{
+ _access_init();
+ if (mapi)
+ {
+ if (mapi->out_done_callback_set)
+ mapi->out_done_callback_set(NULL, NULL);
+ }
+}
+
+static void
+_access_all_read_done(void *data)
+{
+ printf("all read done\n");
+ _elm_access_highlight_cycle(data, ELM_FOCUS_NEXT);
+}
+
+void
+_elm_access_all_read_start(Evas_Object *obj)
+{
+ Evas_Object *ho;
+
+ ho = _access_highlight_object_get(obj);
+ if (ho) _elm_access_object_unhilight(ho);
+
+ _access_init();
+ if (mapi)
+ {
+ if (mapi->out_done_callback_set)
+ mapi->out_done_callback_set(_access_all_read_done, obj);
+ }
+
+ _elm_access_highlight_cycle(obj, ELM_FOCUS_NEXT);
+}
+
//-------------------------------------------------------------------------//
EAPI void
_elm_access_highlight_set(Evas_Object* obj)
Evas_Object *ho, *parent;
ho = _access_highlight_object_get(obj);
- if (!ho) return;
parent = ho;
/* find highlight root */
- do
+ while (parent)
{
ELM_WIDGET_DATA_GET(parent, sd);
if (sd->highlight_root)
}
parent = elm_widget_parent_get(parent);
}
- while (parent);
_elm_access_auto_highlight_set(EINA_TRUE);
action_by = type;
- if (!_access_action_callback_call(ho, type, NULL))
+ if (!ho || !_access_action_callback_call(ho, type, NULL))
elm_widget_focus_cycle(obj, dir);
action_by = ELM_ACCESS_ACTION_FIRST;
_access_init();
if (mapi)
{
- if (mapi->out_done_callback_set)
- mapi->out_done_callback_set(_access_read_done, NULL);
if (mapi->out_cancel) mapi->out_cancel();
if (txt)
{
void _elm_access_widget_item_access_order_unset(Elm_Widget_Item *item);
void _elm_access_highlight_object_scroll(Evas_Object *obj, int type, int x, int y);
void _elm_access_highlight_object_mouse(Evas_Object *obj, int type, int x, int y);
+void _elm_access_all_read_start(Evas_Object *obj);
+void _elm_access_all_read_stop();
EAPI void _elm_access_clear(Elm_Access_Info *ac);
EAPI void _elm_access_text_set(Elm_Access_Info *ac, int type, const char *text);
atom_scroll = ecore_x_atom_get("_E_MOD_SCREEN_READER_ACTION_SCROLL_");
atom_back = ecore_x_atom_get("_E_MOD_SCREEN_READER_ACTION_BACK_");
atom_control_panel_open = ecore_x_atom_get("_E_MOD_SCREEN_READER_ACTION_CONTROL_PANEL_OPEN_");
+ if ((unsigned int)e->data.l[1] != atom_control_panel_open)
+ {
+ _elm_access_all_read_stop();
+ }
if ((unsigned int)e->data.l[1] ==
ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_NEXT)
}
else if ((unsigned int)e->data.l[1] == atom_control_panel_open)
{
+ _elm_access_all_read_start(ELM_WIDGET_DATA(sd)->obj);
}
}
}