|
|
|
@ -377,6 +377,55 @@ _feed_event(Exactness_Action_Type type, unsigned int n_evas, void *data) |
|
|
|
|
if (_dest_type != FTYPE_UNKNOWN && e) _shot_do(e); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case EXACTNESS_ACTION_EFL_EVENT: |
|
|
|
|
{ |
|
|
|
|
Exactness_Action_Efl_Event *t = data; |
|
|
|
|
Eina_Bool found = EINA_FALSE; |
|
|
|
|
Eina_List *itr; |
|
|
|
|
EINA_LIST_FOREACH(_evas_list, itr, e) |
|
|
|
|
{ |
|
|
|
|
Eo *o = efl_name_find(e, t->wdg_name); |
|
|
|
|
if (o) |
|
|
|
|
{ |
|
|
|
|
_printf(2, "%s EFL event invoke %s on %s\n", |
|
|
|
|
__func__, t->event_name, t->wdg_name); |
|
|
|
|
Efl_Event_Description d; |
|
|
|
|
found = EINA_TRUE; |
|
|
|
|
memset(&d, 0, sizeof(d)); |
|
|
|
|
d.name = t->event_name; |
|
|
|
|
d.legacy_is = EINA_TRUE; |
|
|
|
|
efl_event_callback_legacy_call(o, &d, NULL); |
|
|
|
|
#if 0 |
|
|
|
|
/* Remove when events stuff work well */ |
|
|
|
|
Eina_Size2D sz = efl_gfx_size_get(o); |
|
|
|
|
Eina_Position2D pos = efl_gfx_position_get(o); |
|
|
|
|
if (!strcmp(t->event_name, "clicked") || |
|
|
|
|
!strcmp(t->event_name, "clicked,double")) |
|
|
|
|
{ |
|
|
|
|
int x = pos.x + (sz.w / 2); |
|
|
|
|
int y = pos.y + (sz.h / 2); |
|
|
|
|
evas_event_feed_mouse_move(e, x, y, time(NULL), NULL); |
|
|
|
|
evas_event_feed_mouse_down(e, 0, EVAS_BUTTON_NONE, time(NULL), NULL); |
|
|
|
|
evas_event_feed_mouse_up(e, 0, EVAS_BUTTON_NONE, time(NULL), NULL); |
|
|
|
|
if (rect) |
|
|
|
|
{ |
|
|
|
|
evas_object_move(rect, x, y); |
|
|
|
|
evas_object_color_set(rect, 255, 0, 0, 255); |
|
|
|
|
} |
|
|
|
|
if (!strcmp(t->event_name, "clicked,double")) |
|
|
|
|
{ |
|
|
|
|
evas_event_feed_mouse_down(e, 0, EVAS_BUTTON_DOUBLE_CLICK, |
|
|
|
|
time(NULL), NULL); |
|
|
|
|
evas_event_feed_mouse_up(e, 0, EVAS_BUTTON_DOUBLE_CLICK, |
|
|
|
|
time(NULL), NULL); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!found) fprintf(stderr, "Failed finding %s.\n", t->wdg_name); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
default: /* All non-input events are not handeled */ |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
@ -526,6 +575,16 @@ _main_loop_take_shot_cb(Eina_Debug_Session *session EINA_UNUSED, int srcid EINA_ |
|
|
|
|
_feed_event(EXACTNESS_ACTION_TAKE_SHOT, n_evas, NULL); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void |
|
|
|
|
_main_loop_efl_event_cb(Eina_Debug_Session *session EINA_UNUSED, int srcid EINA_UNUSED, void *buffer, int size EINA_UNUSED) |
|
|
|
|
{ |
|
|
|
|
char *buf = buffer; |
|
|
|
|
Exactness_Action_Efl_Event t; |
|
|
|
|
t.wdg_name = EXTRACT_STRING(buf); |
|
|
|
|
t.event_name = EXTRACT_STRING(buf); |
|
|
|
|
_feed_event(EXACTNESS_ACTION_EFL_EVENT, 0, &t); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void |
|
|
|
|
_main_loop_finish_cb(Eina_Debug_Session *session EINA_UNUSED, int srcid EINA_UNUSED, void *buffer EINA_UNUSED, int size EINA_UNUSED) |
|
|
|
|
{ |
|
|
|
@ -541,6 +600,7 @@ WRAPPER_TO_XFER_MAIN_LOOP(_multi_move_cb) |
|
|
|
|
WRAPPER_TO_XFER_MAIN_LOOP(_key_down_cb) |
|
|
|
|
WRAPPER_TO_XFER_MAIN_LOOP(_key_up_cb) |
|
|
|
|
WRAPPER_TO_XFER_MAIN_LOOP(_take_shot_cb) |
|
|
|
|
WRAPPER_TO_XFER_MAIN_LOOP(_efl_event_cb) |
|
|
|
|
WRAPPER_TO_XFER_MAIN_LOOP(_finish_cb) |
|
|
|
|
|
|
|
|
|
EINA_DEBUG_OPCODES_ARRAY_DEFINE(_debug_ops, |
|
|
|
@ -553,6 +613,7 @@ EINA_DEBUG_OPCODES_ARRAY_DEFINE(_debug_ops, |
|
|
|
|
{"Exactness/Actions/Key Down", NULL, &_key_down_cb}, |
|
|
|
|
{"Exactness/Actions/Key Up", NULL, &_key_up_cb}, |
|
|
|
|
{"Exactness/Actions/Take Shot", NULL, &_take_shot_cb}, |
|
|
|
|
{"Exactness/Actions/EFL Event", NULL, &_efl_event_cb}, |
|
|
|
|
{"Exactness/Actions/Finish", NULL, &_finish_cb}, |
|
|
|
|
{NULL, NULL, NULL} |
|
|
|
|
); |
|
|
|
|