zmike pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=26d5b7366eb4852aa4441947201b11ea637a0ad2

commit 26d5b7366eb4852aa4441947201b11ea637a0ad2
Author: Cedric Bail <[email protected]>
Date:   Wed Sep 25 21:59:25 2019 -0400

    elementary: forward Efl.Input.Clickable event to Efl.Ui.Collection* event.
    
    Summary: Depends on D10176
    
    Reviewers: zmike, segfaultxavi, bu5hm4n, SanghyeonLee, lauromoura, 
felipealmeida
    
    Reviewed By: zmike
    
    Subscribers: #reviewers, #committers
    
    Tags: #efl
    
    Maniphest Tasks: T8266
    
    Differential Revision: https://phab.enlightenment.org/D10177
---
 src/lib/elementary/efl_ui_collection.c      | 14 ++++++++++++--
 src/lib/elementary/efl_ui_collection_view.c | 13 +++++++++++--
 src/lib/elementary/efl_ui_item_clickable.eo | 17 ++++++++++++-----
 3 files changed, 35 insertions(+), 9 deletions(-)

diff --git a/src/lib/elementary/efl_ui_collection.c 
b/src/lib/elementary/efl_ui_collection.c
index abef6732c1..0dac5b0a60 100644
--- a/src/lib/elementary/efl_ui_collection.c
+++ b/src/lib/elementary/efl_ui_collection.c
@@ -621,8 +621,18 @@ _redirect_cb(void *data, const Efl_Event *ev)
 {
    Eo *obj = data;
 
-#define REDIRECT_EVT(item_evt, item) \
-   if (item_evt == ev->desc) efl_event_callback_call(obj, item, ev->object);
+#define REDIRECT_EVT(Desc, Item_Desc)                           \
+   if (Desc == ev->desc)                                        \
+     {                                                          \
+        Efl_Ui_Item_Clickable_Clicked item_clicked;             \
+        Efl_Input_Clickable_Clicked *clicked = ev->info;        \
+                                                                \
+        item_clicked.clicked = *clicked;                        \
+        item_clicked.item = ev->object;                         \
+                                                                \
+        efl_event_callback_call(obj, Item_Desc, &item_clicked); \
+     }
+
    REDIRECT_EVT(EFL_INPUT_EVENT_PRESSED, EFL_UI_EVENT_ITEM_PRESSED);
    REDIRECT_EVT(EFL_INPUT_EVENT_UNPRESSED, EFL_UI_EVENT_ITEM_UNPRESSED);
    REDIRECT_EVT(EFL_INPUT_EVENT_LONGPRESSED, EFL_UI_EVENT_ITEM_LONGPRESSED);
diff --git a/src/lib/elementary/efl_ui_collection_view.c 
b/src/lib/elementary/efl_ui_collection_view.c
index a13e69e49a..608c31c059 100644
--- a/src/lib/elementary/efl_ui_collection_view.c
+++ b/src/lib/elementary/efl_ui_collection_view.c
@@ -183,8 +183,17 @@ _redirect_item_cb(void *data, const Efl_Event *ev)
 {
    Eo *obj = data;
 
-#define REDIRECT_EVT(item_evt, item)                                    \
-   if (item_evt == ev->desc) efl_event_callback_call(obj, item, ev->object);
+#define REDIRECT_EVT(Desc, Item_Desc)                                   \
+   if (Desc == ev->desc)                                                \
+     {                                                                  \
+        Efl_Ui_Item_Clickable_Clicked item_clicked;                     \
+        Efl_Input_Clickable_Clicked *clicked = ev->info;                \
+                                                                        \
+        item_clicked.clicked = *clicked;                                \
+        item_clicked.item = ev->object;                                 \
+                                                                        \
+        efl_event_callback_call(obj, Item_Desc, &item_clicked);         \
+     }
    REDIRECT_EVT(EFL_INPUT_EVENT_PRESSED, EFL_UI_EVENT_ITEM_PRESSED);
    REDIRECT_EVT(EFL_INPUT_EVENT_UNPRESSED, EFL_UI_EVENT_ITEM_UNPRESSED);
    REDIRECT_EVT(EFL_INPUT_EVENT_LONGPRESSED, EFL_UI_EVENT_ITEM_LONGPRESSED);
diff --git a/src/lib/elementary/efl_ui_item_clickable.eo 
b/src/lib/elementary/efl_ui_item_clickable.eo
index 7177d24f49..1c4f9f318e 100644
--- a/src/lib/elementary/efl_ui_item_clickable.eo
+++ b/src/lib/elementary/efl_ui_item_clickable.eo
@@ -1,12 +1,19 @@
+import efl_input_clickable;
+
+struct @beta Efl.Ui.Item_Clickable_Clicked {
+   clicked: Efl.Input.Clickable_Clicked;
+   item: Efl.Ui.Item;
+}
+
 interface @beta Efl.Ui.Item_Clickable
 {
    [[Shared sets of events between @Efl.Ui.Collection and 
@Efl.Ui.Collection_View.]]
    event_prefix: efl_ui;
    events {
-      item,pressed : Efl.Ui.Item; [[A $press event occurred over an item.]]
-      item,unpressed : Efl.Ui.Item; [[An $unpress event occurred over an 
item.]]
-      item,longpressed : Efl.Ui.Item; [[A $longpressed event occurred over an 
item.]]
-      item,clicked : Efl.Ui.Item; [[A $clicked event occurred over an item.]]
-      item,clicked,any : Efl.Ui.Item; [[A $clicked,any event occurred over an 
item.]]
+      item,pressed : Efl.Ui.Item_Clickable_Clicked; [[A $press event occurred 
over an item.]]
+      item,unpressed : Efl.Ui.Item_Clickable_Clicked; [[An $unpress event 
occurred over an item.]]
+      item,longpressed : Efl.Ui.Item_Clickable_Clicked; [[A $longpressed event 
occurred over an item.]]
+      item,clicked : Efl.Ui.Item_Clickable_Clicked; [[A $clicked event 
occurred over an item.]]
+      item,clicked,any : Efl.Ui.Item_Clickable_Clicked; [[A $clicked,any event 
occurred over an item.]]
    }
 }
\ No newline at end of file

-- 


Reply via email to