From 26d5b7366eb4852aa4441947201b11ea637a0ad2 Mon Sep 17 00:00:00 2001 From: Cedric Bail Date: Wed, 25 Sep 2019 21:59:25 -0400 Subject: [PATCH] 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