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; }
    }
 }

-- 


Reply via email to