elm_access: override elm_interface_atspi_widget_action_elm_actions_get

Summary: override elm_interface_atspi_widget_action_elm_actions_get to support what elm_access_action offers

Reviewers: cedric, jpeg, stanluk, raster

Reviewed By: raster

Subscribers: seoz

Differential Revision: https://phab.enlightenment.org/D4043
This commit is contained in:
Shinwoo Kim 2016-06-20 15:45:33 +09:00 committed by Carsten Haitzler (Rasterman)
parent 4ca91c4881
commit 72bb457bcb
2 changed files with 47 additions and 1 deletions

View File

@ -2,6 +2,8 @@
# include "elementary_config.h"
#endif
#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED
#include <Elementary.h>
#include "elm_priv.h"
@ -1450,4 +1452,47 @@ _elm_access_class_constructor(Eo_Class *klass)
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
static Eina_Bool
_access_atspi_action_do(Evas_Object *obj, const char *params)
{
Eina_Bool ret;
ret = EINA_FALSE;
if (!strcmp(params, "highlight"))
ret = _access_action_callback_call(obj, ELM_ACCESS_ACTION_HIGHLIGHT, NULL);
else if (!strcmp(params, "unhighlight"))
ret = _access_action_callback_call(obj, ELM_ACCESS_ACTION_UNHIGHLIGHT, NULL);
else if (!strcmp(params, "highlight,next"))
ret = _access_action_callback_call(obj, ELM_ACCESS_ACTION_HIGHLIGHT_NEXT, NULL);
else if (!strcmp(params, "highlight,prev"))
ret = _access_action_callback_call(obj, ELM_ACCESS_ACTION_HIGHLIGHT_PREV, NULL);
else if (!strcmp(params, "activate"))
ret = _access_action_callback_call(obj, ELM_ACCESS_ACTION_ACTIVATE, NULL);
else if (!strcmp(params, "value,up"))
ret = _access_action_callback_call(obj, ELM_ACCESS_ACTION_UP, NULL);
else if (!strcmp(params, "value,down"))
ret = _access_action_callback_call(obj, ELM_ACCESS_ACTION_DOWN, NULL);
else if (!strcmp(params, "read"))
ret = _access_action_callback_call(obj, ELM_ACCESS_ACTION_READ, NULL);
return ret;
}
EOLIAN const Elm_Atspi_Action *
_elm_access_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED)
{
static Elm_Atspi_Action atspi_actions[] = {
{ "highlight", NULL, "highlight", _access_atspi_action_do},
{ "unhighlight", NULL, "unhighlight", _access_atspi_action_do},
{ "highlight,next", NULL, "highlight,next", _access_atspi_action_do},
{ "highlight,next", NULL, "highlight,prev", _access_atspi_action_do},
{ "activate", NULL, "activate", _access_atspi_action_do},
{ "value,up", NULL, "value,up", _access_atspi_action_do},
{ "value,down", NULL, "value,down", _access_atspi_action_do},
{ "read", NULL, "read", _access_atspi_action_do},
{ NULL, NULL, NULL, NULL }
};
return &atspi_actions[0];
}
#include "elm_access.eo.c"

View File

@ -1,4 +1,4 @@
class Elm.Access (Elm.Widget)
class Elm.Access (Elm.Widget, Elm.Interface.Atspi_Widget_Action)
{
[[Elm abstract accessibility class]]
legacy_prefix: elm_access;
@ -10,5 +10,6 @@ class Elm.Access (Elm.Widget)
Efl.Canvas.Group.group_add;
Elm.Widget.activate;
Elm.Widget.on_focus;
Elm.Interface.Atspi_Widget_Action.elm_actions.get;
}
}