elementary: forward Efl.Input.Clickable event to Efl.Ui.Collection* event.
authorCedric Bail <cedric.bail@free.fr>
Thu, 26 Sep 2019 01:59:25 +0000 (21:59 -0400)
committerJongmin Lee <jm105.lee@samsung.com>
Thu, 26 Sep 2019 21:38:43 +0000 (06:38 +0900)
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
src/lib/elementary/efl_ui_collection_view.c
src/lib/elementary/efl_ui_item_clickable.eo

index abef673..0dac5b0 100644 (file)
@@ -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);
index a13e69e..608c31c 100644 (file)
@@ -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);
index 7177d24..1c4f9f3 100644 (file)
@@ -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