@ -523,6 +523,64 @@ _feed_event(Exactness_Action_Type type, unsigned int n_evas, void *data)
if ( ! found ) fprintf ( stderr , " Failed finding %s. \n " , t - > wdg_name ) ;
break ;
}
case EXACTNESS_ACTION_CLICK_ON :
{
Exactness_Action_Click_On * t = data ;
Eina_List * itr ;
Eo * o ;
n_evas = 0 ;
EINA_LIST_FOREACH ( _evas_list , itr , e )
{
o = efl_name_find ( e , t - > wdg_name ) ;
if ( o ) goto wdg_found ;
n_evas + + ;
}
o = NULL ;
wdg_found :
if ( o )
{
Eina_Size2D sz = efl_gfx_entity_size_get ( o ) ;
Eina_Position2D pos = efl_gfx_entity_position_get ( o ) ;
int x = pos . x + ( sz . w / 2 ) ;
int y = pos . y + ( sz . h / 2 ) ;
Exactness_Action_Multi_Move * d_move = calloc ( 1 , sizeof ( * d_move ) ) ;
Exactness_Action_Multi_Event * d_event = calloc ( 1 , sizeof ( * d_event ) ) ;
Exactness_Action * act , * prev_act = eina_list_data_get ( _cur_event_list ) ;
_printf ( 2 , " %s click on %s \n " , __func__ , t - > wdg_name ) ;
act = calloc ( 1 , sizeof ( * act ) ) ;
act - > type = EXACTNESS_ACTION_MULTI_MOVE ;
act - > delay_ms = 100 ;
act - > n_evas = n_evas ;
act - > data = d_move ;
d_move - > x = x ;
d_move - > y = y ;
_cur_event_list = eina_list_append_relative ( _cur_event_list ,
act , prev_act ) ;
prev_act = act ;
act = calloc ( 1 , sizeof ( * act ) ) ;
act - > type = EXACTNESS_ACTION_MULTI_DOWN ;
act - > delay_ms = 100 ;
act - > n_evas = n_evas ;
act - > data = d_event ;
d_event - > b = 1 ;
_cur_event_list = eina_list_append_relative ( _cur_event_list ,
act , prev_act ) ;
prev_act = act ;
act = calloc ( 1 , sizeof ( * act ) ) ;
act - > type = EXACTNESS_ACTION_MULTI_UP ;
act - > delay_ms = 100 ;
act - > n_evas = n_evas ;
d_event = calloc ( 1 , sizeof ( * d_event ) ) ;
act - > data = d_event ;
d_event - > b = 1 ;
_cur_event_list = eina_list_append_relative ( _cur_event_list ,
act , prev_act ) ;
}
else fprintf ( stderr , " Failed finding %s. \n " , t - > wdg_name ) ;
}
case EXACTNESS_ACTION_STABILIZE :
{
_printf ( 2 , " %s stabilize \n " , __func__ ) ;
@ -735,6 +793,15 @@ _main_loop_efl_event_cb(Eina_Debug_Session *session EINA_UNUSED, int srcid EINA_
_feed_event ( EXACTNESS_ACTION_EFL_EVENT , 0 , & t ) ;
}
static void
_main_loop_click_on_cb ( Eina_Debug_Session * session EINA_UNUSED , int srcid EINA_UNUSED , void * buffer , int size EINA_UNUSED )
{
char * buf = buffer ;
Exactness_Action_Click_On t ;
t . wdg_name = EXTRACT_STRING ( buf ) ;
_feed_event ( EXACTNESS_ACTION_CLICK_ON , 0 , & t ) ;
}
static void
_main_loop_stabilize_cb ( Eina_Debug_Session * session EINA_UNUSED , int srcid EINA_UNUSED , void * buffer EINA_UNUSED , int size EINA_UNUSED )
{
@ -757,6 +824,7 @@ 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 ( _click_on_cb )
WRAPPER_TO_XFER_MAIN_LOOP ( _stabilize_cb )
WRAPPER_TO_XFER_MAIN_LOOP ( _finish_cb )
@ -771,6 +839,7 @@ EINA_DEBUG_OPCODES_ARRAY_DEFINE(_debug_ops,
{ " Exactness/Actions/Key Up " , NULL , & _key_up_cb } ,
{ " Exactness/Actions/Take Shot " , & _take_shot_op , & _take_shot_cb } ,
{ " Exactness/Actions/EFL Event " , NULL , & _efl_event_cb } ,
{ " Exactness/Actions/Click On " , NULL , & _click_on_cb } ,
{ " Exactness/Actions/Stabilize " , NULL , & _stabilize_cb } ,
{ " Exactness/Actions/Finish " , NULL , & _finish_cb } ,
{ NULL , NULL , NULL }