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
This commit is contained in:
Cedric Bail 2019-09-25 21:59:25 -04:00 committed by Mike Blumenkrantz
parent b8af6c17fc
commit 26d5b7366e
3 changed files with 35 additions and 9 deletions

View 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);

View 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);

View 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.]]
}
}