forked from enlightenment/efl
efl_ui/item_clickable: fix event info for press events
this is just a button and not the full clickable struct Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D10198
This commit is contained in:
parent
a95870286e
commit
f5a4fd89d9
|
@ -632,13 +632,25 @@ _redirect_cb(void *data, const Efl_Event *ev)
|
|||
\
|
||||
efl_event_callback_call(obj, Item_Desc, &item_clicked); \
|
||||
}
|
||||
#define REDIRECT_EVT_PRESS(Desc, Item_Desc) \
|
||||
if (Desc == ev->desc) \
|
||||
{ \
|
||||
Efl_Ui_Item_Clickable_Pressed item_pressed; \
|
||||
int *button = ev->info; \
|
||||
\
|
||||
item_pressed.button = *button; \
|
||||
item_pressed.item = ev->object; \
|
||||
\
|
||||
efl_event_callback_call(obj, Item_Desc, &item_pressed); \
|
||||
}
|
||||
|
||||
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);
|
||||
REDIRECT_EVT_PRESS(EFL_INPUT_EVENT_PRESSED, EFL_UI_EVENT_ITEM_PRESSED);
|
||||
REDIRECT_EVT_PRESS(EFL_INPUT_EVENT_UNPRESSED, EFL_UI_EVENT_ITEM_UNPRESSED);
|
||||
REDIRECT_EVT_PRESS(EFL_INPUT_EVENT_LONGPRESSED, EFL_UI_EVENT_ITEM_LONGPRESSED);
|
||||
REDIRECT_EVT(EFL_INPUT_EVENT_CLICKED_ANY, EFL_UI_EVENT_ITEM_CLICKED_ANY);
|
||||
REDIRECT_EVT(EFL_INPUT_EVENT_CLICKED, EFL_UI_EVENT_ITEM_CLICKED);
|
||||
#undef REDIRECT_EVT
|
||||
#undef REDIRECT_EVT_PRESS
|
||||
}
|
||||
|
||||
EFL_CALLBACKS_ARRAY_DEFINE(active_item,
|
||||
|
|
|
@ -183,23 +183,36 @@ _redirect_item_cb(void *data, const Efl_Event *ev)
|
|||
{
|
||||
Eo *obj = data;
|
||||
|
||||
#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); \
|
||||
#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);
|
||||
#define REDIRECT_EVT_PRESS(Desc, Item_Desc) \
|
||||
if (Desc == ev->desc) \
|
||||
{ \
|
||||
Efl_Ui_Item_Clickable_Pressed item_pressed; \
|
||||
int *button = ev->info; \
|
||||
\
|
||||
item_pressed.button = *button; \
|
||||
item_pressed.item = ev->object; \
|
||||
\
|
||||
efl_event_callback_call(obj, Item_Desc, &item_pressed); \
|
||||
}
|
||||
|
||||
REDIRECT_EVT_PRESS(EFL_INPUT_EVENT_PRESSED, EFL_UI_EVENT_ITEM_PRESSED);
|
||||
REDIRECT_EVT_PRESS(EFL_INPUT_EVENT_UNPRESSED, EFL_UI_EVENT_ITEM_UNPRESSED);
|
||||
REDIRECT_EVT_PRESS(EFL_INPUT_EVENT_LONGPRESSED, EFL_UI_EVENT_ITEM_LONGPRESSED);
|
||||
REDIRECT_EVT(EFL_INPUT_EVENT_CLICKED_ANY, EFL_UI_EVENT_ITEM_CLICKED_ANY);
|
||||
REDIRECT_EVT(EFL_INPUT_EVENT_CLICKED, EFL_UI_EVENT_ITEM_CLICKED);
|
||||
#undef REDIRECT_EVT
|
||||
#undef REDIRECT_EVT_PRESS
|
||||
}
|
||||
|
||||
EFL_CALLBACKS_ARRAY_DEFINE(active_item_cbs,
|
||||
|
|
|
@ -6,14 +6,20 @@ struct Efl.Ui.Item_Clickable_Clicked {
|
|||
item: Efl.Ui.Item; [[The clicked item.]]
|
||||
}
|
||||
|
||||
struct Efl.Ui.Item_Clickable_Pressed {
|
||||
[[A struct that expresses a press or unpress in item of container widget.]]
|
||||
button: int; [[The button which was pressed or unpressed.]]
|
||||
item: Efl.Ui.Item; [[The corresponding item.]]
|
||||
}
|
||||
|
||||
interface 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_Clickable_Clicked; [[A $pressed event occurred over an item.]]
|
||||
item,unpressed : Efl.Ui.Item_Clickable_Clicked; [[An $unpressed event occurred over an item.]]
|
||||
item,longpressed : Efl.Ui.Item_Clickable_Clicked; [[A $longpressed event occurred over an item.]]
|
||||
item,pressed : Efl.Ui.Item_Clickable_Pressed; [[A $pressed event occurred over an item.]]
|
||||
item,unpressed : Efl.Ui.Item_Clickable_Pressed; [[An $unpressed event occurred over an item.]]
|
||||
item,longpressed : Efl.Ui.Item_Clickable_Pressed; [[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.]]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue