jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2f294aeb88fab4537a68283e30493f6fc951f0f8
commit 2f294aeb88fab4537a68283e30493f6fc951f0f8 Author: Lukasz Stanislawski <[email protected]> Date: Mon Nov 20 12:03:29 2017 +0900 elm: add "activate" action to ctxpopup items Summary: Change-Id: I0974c3bec02a05d3d46d7cc0fd86572e32248a3b Subscribers: jenkins, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5493 --- src/lib/elementary/elc_ctxpopup.c | 30 ++++++++++++++++++++++++++++-- src/lib/elementary/elm_ctxpopup_item.eo | 3 ++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c index d6eae68618..b8e6f8018b 100644 --- a/src/lib/elementary/elc_ctxpopup.c +++ b/src/lib/elementary/elc_ctxpopup.c @@ -1251,9 +1251,8 @@ elm_ctxpopup_item_next_get(const Evas_Object *obj) } static void -_item_wrap_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +_item_select(Elm_Ctxpopup_Item_Data *item) { - Elm_Ctxpopup_Item_Data *item = data; Elm_Object_Item *eo_item2; Eina_List *l; @@ -1269,6 +1268,13 @@ _item_wrap_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UN item->wcb.org_func_cb((void *)item->wcb.org_data, item->wcb.cobj, EO_OBJ(item)); } +static void +_item_wrap_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Elm_Ctxpopup_Item_Data *item = data; + _item_select(item); +} + EOLIAN static Eo * _elm_ctxpopup_item_efl_object_constructor(Eo *obj, Elm_Ctxpopup_Item_Data *it) { @@ -1575,6 +1581,26 @@ _elm_ctxpopup_efl_access_state_set_get(Eo *obj, Elm_Ctxpopup_Data *sd EINA_UNUSE return ret; } +static Eina_Bool +_item_access_action_activate(Evas_Object *obj, const char *params EINA_UNUSED) +{ + ELM_CTXPOPUP_ITEM_DATA_GET(obj, it); + if (!it) return EINA_FALSE; + + _item_select(it); + return EINA_TRUE; +} + +EOLIAN static const Efl_Access_Action_Data* +_elm_ctxpopup_item_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Item_Data *sd EINA_UNUSED) +{ + static Efl_Access_Action_Data atspi_actions[] = { + { "activate", NULL, NULL, _item_access_action_activate}, + { NULL, NULL, NULL, NULL } + }; + return &atspi_actions[0]; +} + /* Internal EO APIs and hidden overrides */ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(elm_ctxpopup, Elm_Ctxpopup_Data) diff --git a/src/lib/elementary/elm_ctxpopup_item.eo b/src/lib/elementary/elm_ctxpopup_item.eo index 31c87ebff7..8c87b23a4c 100644 --- a/src/lib/elementary/elm_ctxpopup_item.eo +++ b/src/lib/elementary/elm_ctxpopup_item.eo @@ -1,4 +1,4 @@ -class Elm.Ctxpopup.Item(Elm.Widget.Item, Efl.Ui.Item) +class Elm.Ctxpopup.Item(Elm.Widget.Item, Efl.Ui.Item, Efl.Access.Widget.Action) { [[Elementary context popup item class]] legacy_prefix: elm_ctxpopup_item; @@ -25,5 +25,6 @@ class Elm.Ctxpopup.Item(Elm.Widget.Item, Efl.Ui.Item) Efl.Ui.Item.selected { get; set; } Efl.Ui.Item.prev { get; } Efl.Ui.Item.next { get; } + Efl.Access.Widget.Action.elm_actions { get; } } } --
