2002-11-08 00:02:15 -08:00
# include "evas_common.h"
# include "evas_private.h"
2012-10-11 23:36:06 -07:00
//#include "evas_cs.h"
2012-05-03 14:01:31 -07:00
# ifdef EVAS_CSERVE2
# include "evas_cs2_private.h"
# endif
2002-11-08 00:02:15 -08:00
2012-10-08 18:58:41 -07:00
# include <Eo.h>
EAPI Eo_Op EVAS_CANVAS_BASE_ID = EO_NOOP ;
# define MY_CLASS EVAS_CLASS
2010-12-13 21:41:32 -08:00
# ifdef LKDEBUG
EAPI Eina_Bool lockdebug = EINA_FALSE ;
EAPI int lockmax = 0 ;
# endif
2009-10-07 23:25:09 -07:00
static int _evas_init_count = 0 ;
2009-09-21 09:08:51 -07:00
int _evas_log_dom_global = - 1 ;
2006-01-06 15:05:17 -08:00
EAPI int
2004-07-07 12:24:49 -07:00
evas_init ( void )
{
2009-10-07 23:25:09 -07:00
if ( + + _evas_init_count ! = 1 )
return _evas_init_count ;
2010-12-13 21:41:32 -08:00
# ifdef LKDEBUG
if ( getenv ( " EVAS_LOCK_DEBUG " ) )
{
lockdebug = EINA_TRUE ;
lockmax = atoi ( getenv ( " EVAS_LOCK_DEBUG " ) ) ;
}
# endif
2010-01-29 16:09:29 -08:00
# ifdef HAVE_EVIL
if ( ! evil_init ( ) )
2009-10-08 14:17:21 -07:00
return - - _evas_init_count ;
2010-01-29 16:09:29 -08:00
# endif
if ( ! eina_init ( ) )
goto shutdown_evil ;
2009-10-07 23:25:09 -07:00
2010-10-07 16:46:42 -07:00
_evas_log_dom_global = eina_log_domain_register
( " evas_main " , EVAS_DEFAULT_LOG_COLOR ) ;
2009-10-07 23:25:09 -07:00
if ( _evas_log_dom_global < 0 )
2008-09-16 07:52:57 -07:00
{
2010-10-07 16:46:42 -07:00
EINA_LOG_ERR ( " Can not create a module log domain. " ) ;
goto shutdown_eina ;
2009-10-07 23:25:09 -07:00
}
2013-03-27 05:42:55 -07:00
eo_init ( ) ;
2009-10-07 23:25:09 -07:00
evas_module_init ( ) ;
if ( ! evas_async_events_init ( ) )
goto shutdown_module ;
2012-05-03 14:01:31 -07:00
# ifdef EVAS_CSERVE2
if ( getenv ( " EVAS_CSERVE2 " ) ) evas_cserve2_init ( ) ;
# endif
2009-12-18 03:03:31 -08:00
_evas_preload_thread_init ( ) ;
2009-10-07 23:25:09 -07:00
2012-12-18 08:21:03 -08:00
evas_thread_init ( ) ;
2013-03-27 05:42:55 -07:00
eina_log_timing ( _evas_log_dom_global ,
EINA_LOG_STATE_STOP ,
EINA_LOG_STATE_INIT ) ;
2009-10-07 23:25:09 -07:00
return _evas_init_count ;
2009-09-03 22:41:20 -07:00
shutdown_module :
evas_module_shutdown ( ) ;
2009-09-21 09:08:51 -07:00
eina_log_domain_unregister ( _evas_log_dom_global ) ;
2009-10-07 23:25:09 -07:00
shutdown_eina :
2009-09-03 22:41:20 -07:00
eina_shutdown ( ) ;
2010-01-29 16:09:29 -08:00
shutdown_evil :
# ifdef HAVE_EVIL
evil_shutdown ( ) ;
# endif
2009-09-03 22:41:20 -07:00
2009-10-08 14:17:21 -07:00
return - - _evas_init_count ;
2004-07-07 12:24:49 -07:00
}
2006-01-06 15:05:17 -08:00
EAPI int
2004-01-12 18:24:03 -08:00
evas_shutdown ( void )
{
2012-05-30 03:08:41 -07:00
if ( _evas_init_count < = 0 )
{
EINA_LOG_ERR ( " Init count not greater than 0 in shutdown. " ) ;
return 0 ;
}
2009-10-07 23:25:09 -07:00
if ( - - _evas_init_count ! = 0 )
return _evas_init_count ;
2013-03-27 05:42:55 -07:00
eina_log_timing ( _evas_log_dom_global ,
EINA_LOG_STATE_START ,
EINA_LOG_STATE_SHUTDOWN ) ;
2013-01-16 23:21:06 -08:00
eina_cow_del ( evas_object_proxy_cow ) ;
2013-01-21 19:56:00 -08:00
eina_cow_del ( evas_object_map_cow ) ;
2013-01-25 04:15:38 -08:00
evas_object_map_cow = NULL ;
2013-01-16 23:21:06 -08:00
evas_object_proxy_cow = NULL ;
2013-01-25 04:15:38 -08:00
eina_cow_del ( evas_object_image_pixels_cow ) ;
eina_cow_del ( evas_object_image_load_opts_cow ) ;
2013-01-27 16:28:53 -08:00
eina_cow_del ( evas_object_image_state_cow ) ;
2013-01-25 04:15:38 -08:00
evas_object_image_pixels_cow = NULL ;
evas_object_image_load_opts_cow = NULL ;
2013-01-27 16:28:53 -08:00
evas_object_image_state_cow = NULL ;
2013-01-25 04:15:38 -08:00
2012-12-18 08:21:03 -08:00
evas_thread_shutdown ( ) ;
2009-12-18 03:03:31 -08:00
_evas_preload_thread_shutdown ( ) ;
2009-10-07 23:25:09 -07:00
evas_async_events_shutdown ( ) ;
evas_font_dir_cache_free ( ) ;
evas_common_shutdown ( ) ;
evas_module_shutdown ( ) ;
2013-03-27 05:42:55 -07:00
eo_shutdown ( ) ;
2009-10-07 23:25:09 -07:00
eina_log_domain_unregister ( _evas_log_dom_global ) ;
2013-03-27 05:42:55 -07:00
2009-10-07 23:25:09 -07:00
eina_shutdown ( ) ;
2010-01-29 16:09:29 -08:00
# ifdef HAVE_EVIL
evil_shutdown ( ) ;
# endif
2009-10-07 23:25:09 -07:00
return _evas_init_count ;
2004-01-12 18:24:03 -08:00
}
2004-07-31 19:20:40 -07:00
2006-01-06 15:05:17 -08:00
EAPI Evas *
2002-11-08 00:02:15 -08:00
evas_new ( void )
{
2012-10-08 18:58:41 -07:00
Evas_Object * eo_obj = eo_add ( EVAS_CLASS , NULL ) ;
return eo_obj ;
}
2005-05-21 19:49:50 -07:00
2012-10-08 18:58:41 -07:00
static void
_constructor ( Eo * eo_obj , void * class_data , va_list * list EINA_UNUSED )
{
2013-03-18 08:33:54 -07:00
eo_do_super ( eo_obj , MY_CLASS , eo_constructor ( ) ) ;
2002-11-08 00:02:15 -08:00
2012-10-08 18:58:41 -07:00
Evas_Public_Data * e = class_data ;
e - > evas = eo_obj ;
2002-11-08 00:02:15 -08:00
e - > output . render_method = RENDER_METHOD_INVALID ;
2004-05-05 04:00:19 -07:00
e - > viewport . w = 1 ;
e - > viewport . h = 1 ;
2011-12-26 15:11:07 -08:00
e - > framespace . x = 0 ;
e - > framespace . y = 0 ;
e - > framespace . w = 0 ;
e - > framespace . h = 0 ;
2006-02-27 20:07:49 -08:00
e - > hinting = EVAS_FONT_HINTING_BYTECODE ;
2008-12-09 09:56:31 -08:00
e - > name_hash = eina_hash_string_superfast_new ( NULL ) ;
2011-10-12 19:22:29 -07:00
eina_clist_init ( & e - > calc_list ) ;
2011-11-16 20:31:43 -08:00
eina_clist_init ( & e - > calc_done ) ;
2008-05-26 06:24:24 -07:00
2011-12-26 15:11:07 -08:00
# define EVAS_ARRAY_SET(E, Array) \
2011-08-26 05:26:45 -07:00
eina_array_step_set ( & E - > Array , sizeof ( E - > Array ) , 4096 ) ;
2010-08-19 05:02:28 -07:00
EVAS_ARRAY_SET ( e , delete_objects ) ;
EVAS_ARRAY_SET ( e , active_objects ) ;
EVAS_ARRAY_SET ( e , restack_objects ) ;
EVAS_ARRAY_SET ( e , render_objects ) ;
EVAS_ARRAY_SET ( e , pending_objects ) ;
EVAS_ARRAY_SET ( e , obscuring_objects ) ;
EVAS_ARRAY_SET ( e , temporary_objects ) ;
EVAS_ARRAY_SET ( e , calculate_objects ) ;
EVAS_ARRAY_SET ( e , clip_changes ) ;
2013-01-17 14:14:05 -08:00
EVAS_ARRAY_SET ( e , scie_unref_queue ) ;
2013-01-11 11:54:12 -08:00
EVAS_ARRAY_SET ( e , image_unref_queue ) ;
2013-01-11 11:55:40 -08:00
EVAS_ARRAY_SET ( e , glyph_unref_queue ) ;
2013-01-15 09:35:11 -08:00
EVAS_ARRAY_SET ( e , texts_unref_queue ) ;
2010-08-19 05:02:28 -07:00
# undef EVAS_ARRAY_SET
2002-11-08 00:02:15 -08:00
}
2006-01-06 15:05:17 -08:00
EAPI void
2012-10-08 18:58:41 -07:00
evas_free ( Evas * eo_e )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
return ;
MAGIC_CHECK_END ( ) ;
2012-12-19 10:03:38 -08:00
evas_sync ( eo_e ) ;
2012-10-08 18:58:41 -07:00
eo_unref ( eo_e ) ;
}
static void
_destructor ( Eo * eo_e , void * _pd , va_list * list EINA_UNUSED )
{
Evas_Public_Data * e = _pd ;
2009-06-23 06:57:27 -07:00
Eina_Rectangle * r ;
From: EunMi Lee <eunmi15.lee@samsung.com>
Subject: [E-devel] [Patch] [Evas] Patch to provide information of
touched points
Hello,
I made a new patch to get information of current touched point instead
of Touch Event.
I added touch_points (Eina_List) to the Evas structure and it maintains touched points on the evas.
New touched point is added to the touch_points when we get Mouse_Down and Multi_Down,
touched point is updated when we get Mouse_Move and Mult_Move,
and touched point is removed when we get Mouse_Up and Multi_Up.
The each touch point has coordinate, id and state information as follows:
id - identifier. 0 for Mouse Event and device id for Multi Event. coordinate - (x, y) coordinate of point.
state - state of point. type is Evas_Touch_Point_State enum.
(EVAS_TOUCH_POINT_DOWN, EVAS_TOUCH_POINT_UP, EVAS_TOUCH_POINT_MOVE,
EVAS_TOUCH_POINT_STILL, EVAS_TOUCH_POINT_CANCEL)
There are 4 new APIs to get touch point's information as follows:
unsigned int evas_touch_point_list_count(Evas *e);
void evas_touch_point_list_nth_xy_get(Evas *e, unsigned int n, Evas_Coord *x, Evas_Coord *y);
int evas_touch_point_list_nth_id_get(Evas *e, unsigned int n);
Evas_Touch_Point_State evas_touch_point_list_nth_state_get(Evas *e, unsigned int n);
I added APIs to get each information instead of exposing whole
structure to make it easy to expand in the future as you mentioned in
the below e-mail :)
SVN revision: 64373
2011-10-24 22:03:50 -07:00
Evas_Coord_Touch_Point * touch_point ;
2008-10-17 04:23:18 -07:00
Evas_Layer * lay ;
2003-06-21 19:33:25 -07:00
int i ;
2005-06-19 05:45:29 -07:00
int del ;
2005-05-21 19:49:50 -07:00
2012-10-08 18:58:41 -07:00
if ( e - > walking_list = = 0 ) evas_render_idle_flush ( eo_e ) ;
2002-11-08 00:02:15 -08:00
2010-03-21 22:33:46 -07:00
if ( e - > walking_list > 0 ) return ;
2012-10-08 18:58:41 -07:00
evas_render_idle_flush ( eo_e ) ;
_evas_post_event_callback_free ( eo_e ) ;
2010-09-25 19:27:01 -07:00
2005-06-19 05:45:29 -07:00
del = 1 ;
2007-04-29 21:22:42 -07:00
e - > walking_list + + ;
2008-06-04 09:42:39 -07:00
e - > cleanup = 1 ;
2005-06-19 05:45:29 -07:00
while ( del )
2003-01-09 21:38:47 -08:00
{
2003-07-29 19:58:10 -07:00
del = 0 ;
2008-10-21 05:19:57 -07:00
EINA_INLIST_FOREACH ( e - > layers , lay )
2003-07-29 19:58:10 -07:00
{
2012-10-08 18:58:41 -07:00
Evas_Object_Protected_Data * o ;
2005-05-21 19:49:50 -07:00
2003-07-29 19:58:10 -07:00
evas_layer_pre_free ( lay ) ;
2005-05-21 19:49:50 -07:00
2008-10-21 05:19:57 -07:00
EINA_INLIST_FOREACH ( lay - > objects , o )
2008-10-17 04:23:18 -07:00
{
2007-04-29 21:22:42 -07:00
if ( ( o - > callbacks ) & & ( o - > callbacks - > walking_list ) )
{
/* Defer free */
e - > delete_me = 1 ;
e - > walking_list - - ;
return ;
}
2003-07-29 19:58:10 -07:00
if ( ! o - > delete_me )
2005-06-19 05:45:29 -07:00
del = 1 ;
2003-07-29 19:58:10 -07:00
}
}
2003-01-09 21:38:47 -08:00
}
2009-06-15 07:25:21 -07:00
EINA_INLIST_FOREACH ( e - > layers , lay )
2009-06-20 00:17:40 -07:00
evas_layer_free_objects ( lay ) ;
2012-10-08 18:58:41 -07:00
evas_layer_clean ( eo_e ) ;
2009-06-15 07:25:21 -07:00
2007-04-29 21:22:42 -07:00
e - > walking_list - - ;
2008-10-17 04:23:18 -07:00
2012-10-08 18:58:41 -07:00
evas_font_path_clear ( eo_e ) ;
2008-10-21 09:31:05 -07:00
e - > pointer . object . in = eina_list_free ( e - > pointer . object . in ) ;
2005-05-21 19:49:50 -07:00
2008-12-09 09:56:31 -08:00
if ( e - > name_hash ) eina_hash_free ( e - > name_hash ) ;
e - > name_hash = NULL ;
2005-05-21 19:49:50 -07:00
2009-04-14 02:48:31 -07:00
EINA_LIST_FREE ( e - > damages , r )
2009-06-23 06:57:27 -07:00
eina_rectangle_free ( r ) ;
2009-04-14 02:48:31 -07:00
EINA_LIST_FREE ( e - > obscures , r )
2009-06-23 06:57:27 -07:00
eina_rectangle_free ( r ) ;
2002-11-08 00:02:15 -08:00
2012-10-08 18:58:41 -07:00
evas_fonts_zero_free ( eo_e ) ;
2010-03-28 19:40:49 -07:00
2012-10-08 18:58:41 -07:00
evas_event_callback_all_del ( eo_e ) ;
evas_event_callback_cleanup ( eo_e ) ;
2008-10-31 03:46:46 -07:00
if ( e - > engine . func )
2005-06-19 06:06:36 -07:00
{
e - > engine . func - > context_free ( e - > engine . data . output , e - > engine . data . context ) ;
e - > engine . func - > output_free ( e - > engine . data . output ) ;
2012-10-08 18:58:41 -07:00
e - > engine . func - > info_free ( eo_e , e - > engine . info ) ;
2005-06-19 06:06:36 -07:00
}
2005-05-21 19:49:50 -07:00
2003-06-21 19:33:25 -07:00
for ( i = 0 ; i < e - > modifiers . mod . count ; i + + )
free ( e - > modifiers . mod . list [ i ] ) ;
if ( e - > modifiers . mod . list ) free ( e - > modifiers . mod . list ) ;
for ( i = 0 ; i < e - > locks . lock . count ; i + + )
free ( e - > locks . lock . list [ i ] ) ;
if ( e - > locks . lock . list ) free ( e - > locks . lock . list ) ;
2005-05-21 19:49:50 -07:00
2006-09-18 02:40:29 -07:00
if ( e - > engine . module ) evas_module_unref ( e - > engine . module ) ;
2008-05-26 06:24:24 -07:00
2008-10-16 05:27:07 -07:00
eina_array_flush ( & e - > delete_objects ) ;
eina_array_flush ( & e - > active_objects ) ;
eina_array_flush ( & e - > restack_objects ) ;
eina_array_flush ( & e - > render_objects ) ;
eina_array_flush ( & e - > pending_objects ) ;
eina_array_flush ( & e - > obscuring_objects ) ;
eina_array_flush ( & e - > temporary_objects ) ;
2009-03-23 03:02:26 -07:00
eina_array_flush ( & e - > calculate_objects ) ;
2009-04-15 06:40:37 -07:00
eina_array_flush ( & e - > clip_changes ) ;
2013-01-17 14:14:05 -08:00
eina_array_flush ( & e - > scie_unref_queue ) ;
2013-01-11 11:54:12 -08:00
eina_array_flush ( & e - > image_unref_queue ) ;
2013-01-11 11:55:40 -08:00
eina_array_flush ( & e - > glyph_unref_queue ) ;
2013-01-15 09:35:11 -08:00
eina_array_flush ( & e - > texts_unref_queue ) ;
2008-05-26 06:24:24 -07:00
From: EunMi Lee <eunmi15.lee@samsung.com>
Subject: [E-devel] [Patch] [Evas] Patch to provide information of
touched points
Hello,
I made a new patch to get information of current touched point instead
of Touch Event.
I added touch_points (Eina_List) to the Evas structure and it maintains touched points on the evas.
New touched point is added to the touch_points when we get Mouse_Down and Multi_Down,
touched point is updated when we get Mouse_Move and Mult_Move,
and touched point is removed when we get Mouse_Up and Multi_Up.
The each touch point has coordinate, id and state information as follows:
id - identifier. 0 for Mouse Event and device id for Multi Event. coordinate - (x, y) coordinate of point.
state - state of point. type is Evas_Touch_Point_State enum.
(EVAS_TOUCH_POINT_DOWN, EVAS_TOUCH_POINT_UP, EVAS_TOUCH_POINT_MOVE,
EVAS_TOUCH_POINT_STILL, EVAS_TOUCH_POINT_CANCEL)
There are 4 new APIs to get touch point's information as follows:
unsigned int evas_touch_point_list_count(Evas *e);
void evas_touch_point_list_nth_xy_get(Evas *e, unsigned int n, Evas_Coord *x, Evas_Coord *y);
int evas_touch_point_list_nth_id_get(Evas *e, unsigned int n);
Evas_Touch_Point_State evas_touch_point_list_nth_state_get(Evas *e, unsigned int n);
I added APIs to get each information instead of exposing whole
structure to make it easy to expand in the future as you mentioned in
the below e-mail :)
SVN revision: 64373
2011-10-24 22:03:50 -07:00
EINA_LIST_FREE ( e - > touch_points , touch_point )
free ( touch_point ) ;
2012-10-08 18:58:41 -07:00
_evas_device_cleanup ( eo_e ) ;
2012-09-17 03:12:48 -07:00
2002-11-08 00:02:15 -08:00
e - > magic = 0 ;
2013-03-18 08:33:54 -07:00
eo_do_super ( eo_e , MY_CLASS , eo_destructor ( ) ) ;
2002-11-08 00:02:15 -08:00
}
2006-01-06 15:05:17 -08:00
EAPI void
2012-10-08 18:58:41 -07:00
evas_output_method_set ( Evas * eo_e , int render_method )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
return ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
eo_do ( eo_e , evas_canvas_output_method_set ( render_method ) ) ;
}
static void
_canvas_output_method_set ( Eo * eo_e , void * _pd , va_list * list )
{
int render_method = va_arg ( * list , int ) ;
Evas_Module * em ;
Evas_Public_Data * e = _pd ;
2005-05-21 19:49:50 -07:00
2002-11-08 00:02:15 -08:00
/* if our engine to set it to is invalid - abort */
if ( render_method = = RENDER_METHOD_INVALID ) return ;
2004-02-16 11:22:48 -08:00
/* if the engine is already set up - abort */
2002-11-08 00:02:15 -08:00
if ( e - > output . render_method ! = RENDER_METHOD_INVALID ) return ;
2009-06-16 06:01:36 -07:00
/* Request the right engine. */
em = evas_module_engine_get ( render_method ) ;
if ( ! em ) return ;
if ( em - > id_engine ! = render_method ) return ;
if ( ! evas_module_load ( em ) ) return ;
/* set the correct render */
e - > output . render_method = render_method ;
e - > engine . func = ( em - > functions ) ;
evas_module_use ( em ) ;
if ( e - > engine . module ) evas_module_unref ( e - > engine . module ) ;
e - > engine . module = em ;
evas_module_ref ( em ) ;
/* get the engine info struct */
2012-10-08 18:58:41 -07:00
if ( e - > engine . func - > info ) e - > engine . info = e - > engine . func - > info ( eo_e ) ;
2009-06-16 06:01:36 -07:00
return ;
2002-11-08 00:02:15 -08:00
}
2006-01-06 15:05:17 -08:00
EAPI int
2012-10-08 18:58:41 -07:00
evas_output_method_get ( const Evas * eo_e )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
return RENDER_METHOD_INVALID ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
int ret = RENDER_METHOD_INVALID ;
eo_do ( ( Eo * ) eo_e , evas_canvas_output_method_get ( & ret ) ) ;
return ret ;
}
2005-05-21 19:49:50 -07:00
2012-10-08 18:58:41 -07:00
static void
_canvas_output_method_get ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
int * ret = va_arg ( * list , int * ) ;
const Evas_Public_Data * e = _pd ;
* ret = e - > output . render_method ;
2002-11-08 00:02:15 -08:00
}
2006-01-06 15:05:17 -08:00
EAPI Evas_Engine_Info *
2012-10-08 18:58:41 -07:00
evas_engine_info_get ( const Evas * eo_e )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
return NULL ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
Evas_Engine_Info * ret = NULL ;
eo_do ( ( Eo * ) eo_e , evas_canvas_engine_info_get ( & ret ) ) ;
return ret ;
}
static void
_canvas_engine_info_get ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
Evas_Engine_Info * * ret = va_arg ( * list , Evas_Engine_Info * * ) ;
2005-05-21 19:49:50 -07:00
2012-10-08 18:58:41 -07:00
Evas_Engine_Info * info ;
const Evas_Public_Data * e = _pd ;
if ( ! e - > engine . info )
{
* ret = NULL ;
return ;
}
2005-05-21 19:49:50 -07:00
2002-11-08 00:02:15 -08:00
info = e - > engine . info ;
2012-10-08 18:58:41 -07:00
( ( Evas_Public_Data * ) e ) - > engine . info_magic = info - > magic ;
2005-05-21 19:49:50 -07:00
2012-10-08 18:58:41 -07:00
* ret = info ;
2002-11-08 00:02:15 -08:00
}
2010-09-22 02:19:31 -07:00
EAPI Eina_Bool
2012-10-08 18:58:41 -07:00
evas_engine_info_set ( Evas * eo_e , Evas_Engine_Info * info )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2010-09-22 02:19:31 -07:00
return EINA_FALSE ;
2002-11-08 00:02:15 -08:00
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
Eina_Bool ret = EINA_FALSE ;
eo_do ( eo_e , evas_canvas_engine_info_set ( info , & ret ) ) ;
return ret ;
}
static void
_canvas_engine_info_set ( Eo * eo_e , void * _pd , va_list * list )
{
Evas_Engine_Info * info = va_arg ( * list , Evas_Engine_Info * ) ;
Eina_Bool * ret = va_arg ( * list , Eina_Bool * ) ;
if ( ret ) * ret = EINA_FALSE ;
Evas_Public_Data * e = _pd ;
if ( ! info ) return ;
if ( info ! = e - > engine . info ) return ;
if ( info - > magic ! = e - > engine . info_magic ) return ;
Eina_Bool int_ret = ( Eina_Bool ) e - > engine . func - > setup ( eo_e , info ) ;
if ( ret ) * ret = int_ret ;
2002-11-08 00:02:15 -08:00
}
2006-01-06 15:05:17 -08:00
EAPI void
2012-10-08 18:58:41 -07:00
evas_output_size_set ( Evas * eo_e , int w , int h )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
return ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
eo_do ( eo_e , evas_canvas_output_size_set ( w , h ) ) ;
}
static void
_canvas_output_size_set ( Eo * eo_e , void * _pd , va_list * list )
{
int w = va_arg ( * list , int ) ;
int h = va_arg ( * list , int ) ;
Evas_Public_Data * e = _pd ;
2005-05-21 19:49:50 -07:00
2002-11-08 00:02:15 -08:00
if ( ( w = = e - > output . w ) & & ( h = = e - > output . h ) ) return ;
if ( w < 1 ) w = 1 ;
if ( h < 1 ) h = 1 ;
2010-05-21 00:10:45 -07:00
2002-11-08 00:02:15 -08:00
e - > output . w = w ;
e - > output . h = h ;
e - > output . changed = 1 ;
e - > output_validity + + ;
e - > changed = 1 ;
2012-10-08 18:58:41 -07:00
evas_render_invalidate ( eo_e ) ;
2002-11-08 00:02:15 -08:00
}
2006-01-06 15:05:17 -08:00
EAPI void
2012-10-08 18:58:41 -07:00
evas_output_size_get ( const Evas * eo_e , int * w , int * h )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2005-05-21 19:49:50 -07:00
if ( w ) * w = 0 ;
if ( h ) * h = 0 ;
2002-11-08 00:02:15 -08:00
return ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
eo_do ( ( Eo * ) eo_e , evas_canvas_output_size_get ( w , h ) ) ;
}
static void
_canvas_output_size_get ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
int * w = va_arg ( * list , int * ) ;
int * h = va_arg ( * list , int * ) ;
const Evas_Public_Data * e = _pd ;
2005-05-21 19:49:50 -07:00
2002-11-08 00:02:15 -08:00
if ( w ) * w = e - > output . w ;
if ( h ) * h = e - > output . h ;
}
2006-01-06 15:05:17 -08:00
EAPI void
2012-10-08 18:58:41 -07:00
evas_output_viewport_set ( Evas * eo_e , Evas_Coord x , Evas_Coord y , Evas_Coord w , Evas_Coord h )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
return ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
eo_do ( eo_e , evas_canvas_output_viewport_set ( x , y , w , h ) ) ;
}
static void
_canvas_output_viewport_set ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
Evas_Coord x = va_arg ( * list , Evas_Coord ) ;
Evas_Coord y = va_arg ( * list , Evas_Coord ) ;
Evas_Coord w = va_arg ( * list , Evas_Coord ) ;
Evas_Coord h = va_arg ( * list , Evas_Coord ) ;
Evas_Public_Data * e = _pd ;
2005-05-21 19:49:50 -07:00
2002-11-08 00:02:15 -08:00
if ( ( x = = e - > viewport . x ) & & ( y = = e - > viewport . y ) & &
( w = = e - > viewport . w ) & & ( h = = e - > viewport . h ) ) return ;
if ( w < = 0 ) return ;
if ( h < = 0 ) return ;
2006-11-15 19:20:24 -08:00
if ( ( x ! = 0 ) | | ( y ! = 0 ) )
{
2009-10-22 08:22:22 -07:00
ERR ( " Compat error. viewport x,y != 0,0 not supported " ) ;
2006-11-15 19:20:24 -08:00
x = 0 ;
y = 0 ;
}
2002-11-08 00:02:15 -08:00
e - > viewport . x = x ;
e - > viewport . y = y ;
e - > viewport . w = w ;
e - > viewport . h = h ;
e - > viewport . changed = 1 ;
e - > output_validity + + ;
e - > changed = 1 ;
}
2006-01-06 15:05:17 -08:00
EAPI void
2012-10-08 18:58:41 -07:00
evas_output_viewport_get ( const Evas * eo_e , Evas_Coord * x , Evas_Coord * y , Evas_Coord * w , Evas_Coord * h )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2005-05-21 19:49:50 -07:00
if ( x ) * x = 0 ;
if ( y ) * y = 0 ;
if ( w ) * w = 0 ;
if ( h ) * h = 0 ;
2002-11-08 00:02:15 -08:00
return ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
eo_do ( ( Eo * ) eo_e , evas_canvas_output_viewport_get ( x , y , w , h ) ) ;
}
static void
_canvas_output_viewport_get ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
Evas_Coord * x = va_arg ( * list , Evas_Coord * ) ;
Evas_Coord * y = va_arg ( * list , Evas_Coord * ) ;
Evas_Coord * w = va_arg ( * list , Evas_Coord * ) ;
Evas_Coord * h = va_arg ( * list , Evas_Coord * ) ;
const Evas_Public_Data * e = _pd ;
2005-05-21 19:49:50 -07:00
2002-11-08 00:02:15 -08:00
if ( x ) * x = e - > viewport . x ;
if ( y ) * y = e - > viewport . y ;
if ( w ) * w = e - > viewport . w ;
if ( h ) * h = e - > viewport . h ;
}
2012-10-08 18:58:41 -07:00
EAPI void
evas_output_framespace_set ( Evas * eo_e , Evas_Coord x , Evas_Coord y , Evas_Coord w , Evas_Coord h )
2011-12-14 10:44:20 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2011-12-14 10:44:20 -08:00
return ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
eo_do ( eo_e , evas_canvas_output_framespace_set ( x , y , w , h ) ) ;
}
static void
_canvas_output_framespace_set ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
Evas_Coord x = va_arg ( * list , Evas_Coord ) ;
Evas_Coord y = va_arg ( * list , Evas_Coord ) ;
Evas_Coord w = va_arg ( * list , Evas_Coord ) ;
Evas_Coord h = va_arg ( * list , Evas_Coord ) ;
Evas_Public_Data * e = _pd ;
2011-12-14 10:44:20 -08:00
if ( ( x = = e - > framespace . x ) & & ( y = = e - > framespace . y ) & &
( w = = e - > framespace . w ) & & ( h = = e - > framespace . h ) ) return ;
e - > framespace . x = x ;
e - > framespace . y = y ;
e - > framespace . w = w ;
e - > framespace . h = h ;
e - > framespace . changed = 1 ;
2011-12-26 15:11:07 -08:00
e - > output_validity + + ;
2011-12-14 10:44:20 -08:00
e - > changed = 1 ;
}
2012-10-08 18:58:41 -07:00
EAPI void
evas_output_framespace_get ( const Evas * eo_e , Evas_Coord * x , Evas_Coord * y , Evas_Coord * w , Evas_Coord * h )
2011-12-14 10:44:20 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2011-12-14 10:44:20 -08:00
if ( x ) * x = 0 ;
if ( y ) * y = 0 ;
if ( w ) * w = 0 ;
if ( h ) * h = 0 ;
return ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
eo_do ( ( Eo * ) eo_e , evas_canvas_output_framespace_get ( x , y , w , h ) ) ;
}
static void
_canvas_output_framespace_get ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
Evas_Coord * x = va_arg ( * list , Evas_Coord * ) ;
Evas_Coord * y = va_arg ( * list , Evas_Coord * ) ;
Evas_Coord * w = va_arg ( * list , Evas_Coord * ) ;
Evas_Coord * h = va_arg ( * list , Evas_Coord * ) ;
const Evas_Public_Data * e = _pd ;
2011-12-14 10:44:20 -08:00
if ( x ) * x = e - > framespace . x ;
if ( y ) * y = e - > framespace . y ;
if ( w ) * w = e - > framespace . w ;
if ( h ) * h = e - > framespace . h ;
}
2006-01-06 15:05:17 -08:00
EAPI Evas_Coord
2012-10-08 18:58:41 -07:00
evas_coord_screen_x_to_world ( const Evas * eo_e , int x )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
return 0 ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
Evas_Coord ret = 0 ;
eo_do ( ( Eo * ) eo_e , evas_canvas_coord_screen_x_to_world ( x , & ret ) ) ;
return ret ;
}
static void
_canvas_coord_screen_x_to_world ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
int x = va_arg ( * list , int ) ;
Evas_Coord * ret = va_arg ( * list , Evas_Coord * ) ;
const Evas_Public_Data * e = _pd ;
if ( e - > output . w = = e - > viewport . w ) * ret = e - > viewport . x + x ;
else * ret = ( long long ) e - > viewport . x + ( ( ( long long ) x * ( long long ) e - > viewport . w ) / ( long long ) e - > output . w ) ;
2002-11-08 00:02:15 -08:00
}
2006-01-06 15:05:17 -08:00
EAPI Evas_Coord
2012-10-08 18:58:41 -07:00
evas_coord_screen_y_to_world ( const Evas * eo_e , int y )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
return 0 ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
Evas_Coord ret = 0 ;
eo_do ( ( Eo * ) eo_e , evas_canvas_coord_screen_y_to_world ( y , & ret ) ) ;
return ret ;
}
static void
_canvas_coord_screen_y_to_world ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
int y = va_arg ( * list , int ) ;
Evas_Coord * ret = va_arg ( * list , Evas_Coord * ) ;
const Evas_Public_Data * e = _pd ;
if ( e - > output . h = = e - > viewport . h ) * ret = e - > viewport . y + y ;
else * ret = ( long long ) e - > viewport . y + ( ( ( long long ) y * ( long long ) e - > viewport . h ) / ( long long ) e - > output . h ) ;
2002-11-08 00:02:15 -08:00
}
2006-01-06 15:05:17 -08:00
EAPI int
2012-10-08 18:58:41 -07:00
evas_coord_world_x_to_screen ( const Evas * eo_e , Evas_Coord x )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
return 0 ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
Evas_Coord ret = 0 ;
eo_do ( ( Eo * ) eo_e , evas_canvas_coord_world_x_to_screen ( x , & ret ) ) ;
return ret ;
}
static void
_canvas_coord_world_x_to_screen ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
Evas_Coord x = va_arg ( * list , Evas_Coord ) ;
int * ret = va_arg ( * list , int * ) ;
const Evas_Public_Data * e = _pd ;
if ( e - > output . w = = e - > viewport . w ) * ret = x - e - > viewport . x ;
else * ret = ( int ) ( ( ( ( long long ) x - ( long long ) e - > viewport . x ) * ( long long ) e - > output . w ) / ( long long ) e - > viewport . w ) ;
2002-11-08 00:02:15 -08:00
}
2006-01-06 15:05:17 -08:00
EAPI int
2012-10-08 18:58:41 -07:00
evas_coord_world_y_to_screen ( const Evas * eo_e , Evas_Coord y )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
return 0 ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
Evas_Coord ret = 0 ;
eo_do ( ( Eo * ) eo_e , evas_canvas_coord_world_y_to_screen ( y , & ret ) ) ;
return ret ;
}
static void
_canvas_coord_world_y_to_screen ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
Evas_Coord y = va_arg ( * list , Evas_Coord ) ;
int * ret = va_arg ( * list , int * ) ;
const Evas_Public_Data * e = _pd ;
if ( e - > output . h = = e - > viewport . h ) * ret = y - e - > viewport . y ;
else * ret = ( int ) ( ( ( ( long long ) y - ( long long ) e - > viewport . y ) * ( long long ) e - > output . h ) / ( long long ) e - > viewport . h ) ;
2002-11-08 00:02:15 -08:00
}
2006-01-06 15:05:17 -08:00
EAPI int
2002-11-08 00:02:15 -08:00
evas_render_method_lookup ( const char * name )
{
2006-01-14 04:13:38 -08:00
Evas_Module * em ;
2009-06-16 06:01:36 -07:00
2002-11-08 00:02:15 -08:00
if ( ! name ) return RENDER_METHOD_INVALID ;
2006-01-14 04:13:38 -08:00
/* search on the engines list for the name */
em = evas_module_find_type ( EVAS_MODULE_TYPE_ENGINE , name ) ;
2006-01-14 07:39:57 -08:00
if ( ! em ) return RENDER_METHOD_INVALID ;
2009-06-16 06:01:36 -07:00
return em - > id_engine ;
2002-11-08 00:02:15 -08:00
}
2008-10-21 09:31:05 -07:00
EAPI Eina_List *
2002-11-08 00:02:15 -08:00
evas_render_method_list ( void )
{
2011-09-19 07:20:18 -07:00
return evas_module_engine_list ( ) ;
2002-11-08 00:02:15 -08:00
}
2006-01-06 15:05:17 -08:00
EAPI void
2008-10-21 09:31:05 -07:00
evas_render_method_list_free ( Eina_List * list )
2002-11-08 00:02:15 -08:00
{
2012-03-26 03:56:55 -07:00
const char * s ;
EINA_LIST_FREE ( list , s ) eina_stringshare_del ( s ) ;
2002-11-08 00:02:15 -08:00
}
2011-06-01 07:32:08 -07:00
EAPI Eina_Bool
evas_object_image_extension_can_load_get ( const char * file )
{
const char * tmp ;
Eina_Bool result ;
tmp = eina_stringshare_add ( file ) ;
result = evas_common_extension_can_load_get ( tmp ) ;
eina_stringshare_del ( tmp ) ;
return result ;
}
EAPI Eina_Bool
evas_object_image_extension_can_load_fast_get ( const char * file )
{
return evas_common_extension_can_load_get ( file ) ;
}
2006-01-06 15:05:17 -08:00
EAPI void
2012-10-08 18:58:41 -07:00
evas_pointer_output_xy_get ( const Evas * eo_e , int * x , int * y )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
if ( x ) * x = 0 ;
if ( y ) * y = 0 ;
return ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
eo_do ( ( Eo * ) eo_e , evas_canvas_pointer_output_xy_get ( x , y ) ) ;
}
static void
_canvas_pointer_output_xy_get ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
int * x = va_arg ( * list , int * ) ;
int * y = va_arg ( * list , int * ) ;
const Evas_Public_Data * e = _pd ;
2002-11-08 00:02:15 -08:00
if ( x ) * x = e - > pointer . x ;
if ( y ) * y = e - > pointer . y ;
}
2006-01-06 15:05:17 -08:00
EAPI void
2012-10-08 18:58:41 -07:00
evas_pointer_canvas_xy_get ( const Evas * eo_e , Evas_Coord * x , Evas_Coord * y )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
if ( x ) * x = 0 ;
if ( y ) * y = 0 ;
return ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
eo_do ( ( Eo * ) eo_e , evas_canvas_pointer_canvas_xy_get ( x , y ) ) ;
}
static void
_canvas_pointer_canvas_xy_get ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
Evas_Coord * x = va_arg ( * list , Evas_Coord * ) ;
Evas_Coord * y = va_arg ( * list , Evas_Coord * ) ;
const Evas_Public_Data * e = _pd ;
2002-11-08 00:02:15 -08:00
if ( x ) * x = e - > pointer . x ;
if ( y ) * y = e - > pointer . y ;
}
2006-01-06 15:05:17 -08:00
EAPI int
2012-10-08 18:58:41 -07:00
evas_pointer_button_down_mask_get ( const Evas * eo_e )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
return 0 ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
int ret = 0 ;
eo_do ( ( Eo * ) eo_e , evas_canvas_pointer_button_down_mask_get ( & ret ) ) ;
return ret ;
}
static void
_canvas_pointer_button_down_mask_get ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
int * ret = va_arg ( * list , int * ) ;
const Evas_Public_Data * e = _pd ;
* ret = ( int ) e - > pointer . button ;
2002-11-08 00:02:15 -08:00
}
2009-06-17 03:01:52 -07:00
EAPI Eina_Bool
2012-10-08 18:58:41 -07:00
evas_pointer_inside_get ( const Evas * eo_e )
2002-11-08 00:02:15 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2002-11-08 00:02:15 -08:00
return 0 ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
Eina_Bool ret = EINA_FALSE ;
eo_do ( ( Eo * ) eo_e , evas_canvas_pointer_inside_get ( & ret ) ) ;
return ret ;
}
static void
_canvas_pointer_inside_get ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
Eina_Bool * ret = va_arg ( * list , Eina_Bool * ) ;
const Evas_Public_Data * e = _pd ;
2012-10-09 00:35:08 -07:00
* ret = e - > pointer . inside ;
2002-11-08 00:02:15 -08:00
}
2005-11-06 01:47:28 -08:00
2006-01-06 15:05:17 -08:00
EAPI void
2012-10-08 18:58:41 -07:00
evas_data_attach_set ( Evas * eo_e , void * data )
2005-11-06 01:47:28 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2005-11-06 01:47:28 -08:00
return ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
eo_do ( eo_e , evas_canvas_data_attach_set ( data ) ) ;
}
static void
_canvas_data_attach_set ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
void * data = va_arg ( * list , void * ) ;
Evas_Public_Data * e = _pd ;
2005-11-06 01:47:28 -08:00
e - > attach_data = data ;
}
2006-01-06 15:05:17 -08:00
EAPI void *
2012-10-08 18:58:41 -07:00
evas_data_attach_get ( const Evas * eo_e )
2005-11-06 01:47:28 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2005-11-06 01:47:28 -08:00
return NULL ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
void * ret = NULL ;
eo_do ( ( Eo * ) eo_e , evas_canvas_data_attach_get ( & ret ) ) ;
return ret ;
}
static void
_canvas_data_attach_get ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
void * * ret = va_arg ( * list , void * * ) ;
const Evas_Public_Data * e = _pd ;
* ret = e - > attach_data ;
2005-11-06 01:47:28 -08:00
}
2007-04-29 21:22:42 -07:00
2010-01-31 20:26:55 -08:00
EAPI void
2012-10-08 18:58:41 -07:00
evas_focus_in ( Evas * eo_e )
2010-01-31 20:26:55 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2010-01-31 20:26:55 -08:00
return ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
eo_do ( eo_e , evas_canvas_focus_in ( ) ) ;
}
static void
_canvas_focus_in ( Eo * eo_e , void * _pd , va_list * list EINA_UNUSED )
{
Evas_Public_Data * e = _pd ;
2010-01-31 20:26:55 -08:00
if ( e - > focus ) return ;
e - > focus = 1 ;
2012-10-08 18:58:41 -07:00
evas_event_callback_call ( eo_e , EVAS_CALLBACK_CANVAS_FOCUS_IN , NULL ) ;
2010-01-31 20:26:55 -08:00
}
EAPI void
2012-10-08 18:58:41 -07:00
evas_focus_out ( Evas * eo_e )
2010-01-31 20:26:55 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2010-01-31 20:26:55 -08:00
return ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
eo_do ( eo_e , evas_canvas_focus_out ( ) ) ;
}
static void
_canvas_focus_out ( Eo * eo_e , void * _pd , va_list * list EINA_UNUSED )
{
Evas_Public_Data * e = _pd ;
2010-01-31 20:26:55 -08:00
if ( ! e - > focus ) return ;
e - > focus = 0 ;
2012-10-08 18:58:41 -07:00
evas_event_callback_call ( eo_e , EVAS_CALLBACK_CANVAS_FOCUS_OUT , NULL ) ;
2010-01-31 20:26:55 -08:00
}
EAPI Eina_Bool
2012-10-08 18:58:41 -07:00
evas_focus_state_get ( const Evas * eo_e )
2010-01-31 20:26:55 -08:00
{
2012-10-08 18:58:41 -07:00
MAGIC_CHECK ( eo_e , Evas , MAGIC_EVAS ) ;
2010-01-31 20:26:55 -08:00
return 0 ;
MAGIC_CHECK_END ( ) ;
2012-10-08 18:58:41 -07:00
Eina_Bool ret = 0 ;
eo_do ( ( Eo * ) eo_e , evas_canvas_focus_state_get ( & ret ) ) ;
return ret ;
}
static void
_canvas_focus_state_get ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list )
{
Eina_Bool * ret = va_arg ( * list , Eina_Bool * ) ;
const Evas_Public_Data * e = _pd ;
* ret = e - > focus ;
2010-01-31 20:26:55 -08:00
}
2010-09-02 17:06:56 -07:00
EAPI void
2012-10-08 18:58:41 -07:00
evas_nochange_push ( Evas * eo_e )
{
eo_do ( eo_e , evas_canvas_nochange_push ( ) ) ;
}
static void
_canvas_nochange_push ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list EINA_UNUSED )
2010-09-02 17:06:56 -07:00
{
2012-10-08 18:58:41 -07:00
Evas_Public_Data * e = _pd ;
2010-09-02 17:06:56 -07:00
e - > nochange + + ;
}
EAPI void
2012-10-08 18:58:41 -07:00
evas_nochange_pop ( Evas * eo_e )
2010-09-02 17:06:56 -07:00
{
2012-10-08 18:58:41 -07:00
eo_do ( eo_e , evas_canvas_nochange_pop ( ) ) ;
}
static void
_canvas_nochange_pop ( Eo * eo_e EINA_UNUSED , void * _pd , va_list * list EINA_UNUSED )
{
Evas_Public_Data * e = _pd ;
2010-09-02 17:06:56 -07:00
e - > nochange - - ;
}
2007-04-29 21:22:42 -07:00
void
2012-10-08 18:58:41 -07:00
_evas_walk ( Evas_Public_Data * e )
2007-04-29 21:22:42 -07:00
{
e - > walking_list + + ;
}
void
2012-10-08 18:58:41 -07:00
_evas_unwalk ( Evas_Public_Data * e )
2007-04-29 21:22:42 -07:00
{
e - > walking_list - - ;
2012-10-08 18:58:41 -07:00
if ( ( e - > walking_list = = 0 ) & & ( e - > delete_me ) ) evas_free ( e - > evas ) ;
2007-04-29 21:22:42 -07:00
}
2009-12-22 10:06:15 -08:00
EAPI const char *
2010-09-22 06:25:17 -07:00
evas_load_error_str ( Evas_Load_Error error )
2009-12-22 10:06:15 -08:00
{
switch ( error )
{
case EVAS_LOAD_ERROR_NONE :
return " No error on load " ;
case EVAS_LOAD_ERROR_GENERIC :
2010-09-07 20:51:24 -07:00
return " A non-specific error occurred " ;
2009-12-22 10:06:15 -08:00
case EVAS_LOAD_ERROR_DOES_NOT_EXIST :
return " File (or file path) does not exist " ;
case EVAS_LOAD_ERROR_PERMISSION_DENIED :
return " Permission deinied to an existing file (or path) " ;
case EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED :
return " Allocation of resources failure prevented load " ;
case EVAS_LOAD_ERROR_CORRUPT_FILE :
return " File corrupt (but was detected as a known format) " ;
case EVAS_LOAD_ERROR_UNKNOWN_FORMAT :
return " File is not a known format " ;
default :
return " Unknown error " ;
}
}
2010-08-16 09:13:41 -07:00
EAPI void
evas_color_hsv_to_rgb ( float h , float s , float v , int * r , int * g , int * b )
{
evas_common_convert_color_hsv_to_rgb ( h , s , v , r , g , b ) ;
}
EAPI void
evas_color_rgb_to_hsv ( int r , int g , int b , float * h , float * s , float * v )
{
evas_common_convert_color_rgb_to_hsv ( r , g , b , h , s , v ) ;
}
EAPI void
evas_color_argb_premul ( int a , int * r , int * g , int * b )
{
evas_common_convert_color_argb_premul ( a , r , g , b ) ;
}
EAPI void
evas_color_argb_unpremul ( int a , int * r , int * g , int * b )
{
evas_common_convert_color_argb_unpremul ( a , r , g , b ) ;
}
EAPI void
evas_data_argb_premul ( unsigned int * data , unsigned int len )
{
if ( ! data | | ( len < 1 ) ) return ;
evas_common_convert_argb_premul ( data , len ) ;
}
EAPI void
evas_data_argb_unpremul ( unsigned int * data , unsigned int len )
{
if ( ! data | | ( len < 1 ) ) return ;
evas_common_convert_argb_unpremul ( data , len ) ;
}
2012-10-08 18:58:41 -07:00
static void
_evas_get ( Eo * eo_obj , void * _pd EINA_UNUSED , va_list * list )
{
Evas * * evas = va_arg ( * list , Evas * * ) ;
if ( evas ) * evas = ( Evas * ) eo_obj ;
}
static void
_class_constructor ( Eo_Class * klass )
{
const Eo_Op_Func_Description func_desc [ ] = {
EO_OP_FUNC ( EO_BASE_ID ( EO_BASE_SUB_ID_CONSTRUCTOR ) , _constructor ) ,
EO_OP_FUNC ( EO_BASE_ID ( EO_BASE_SUB_ID_DESTRUCTOR ) , _destructor ) ,
EO_OP_FUNC ( EVAS_COMMON_ID ( EVAS_COMMON_SUB_ID_EVAS_GET ) , _evas_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OUTPUT_METHOD_SET ) , _canvas_output_method_set ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OUTPUT_METHOD_GET ) , _canvas_output_method_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_ENGINE_INFO_GET ) , _canvas_engine_info_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_ENGINE_INFO_SET ) , _canvas_engine_info_set ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OUTPUT_SIZE_SET ) , _canvas_output_size_set ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OUTPUT_SIZE_GET ) , _canvas_output_size_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OUTPUT_VIEWPORT_SET ) , _canvas_output_viewport_set ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OUTPUT_VIEWPORT_GET ) , _canvas_output_viewport_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OUTPUT_FRAMESPACE_SET ) , _canvas_output_framespace_set ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OUTPUT_FRAMESPACE_GET ) , _canvas_output_framespace_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_COORD_SCREEN_X_TO_WORLD ) , _canvas_coord_screen_x_to_world ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_COORD_SCREEN_Y_TO_WORLD ) , _canvas_coord_screen_y_to_world ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_COORD_WORLD_X_TO_SCREEN ) , _canvas_coord_world_x_to_screen ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_COORD_WORLD_Y_TO_SCREEN ) , _canvas_coord_world_y_to_screen ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_POINTER_OUTPUT_XY_GET ) , _canvas_pointer_output_xy_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_POINTER_CANVAS_XY_GET ) , _canvas_pointer_canvas_xy_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_POINTER_BUTTON_DOWN_MASK_GET ) , _canvas_pointer_button_down_mask_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_POINTER_INSIDE_GET ) , _canvas_pointer_inside_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_DATA_ATTACH_SET ) , _canvas_data_attach_set ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_DATA_ATTACH_GET ) , _canvas_data_attach_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FOCUS_IN ) , _canvas_focus_in ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FOCUS_OUT ) , _canvas_focus_out ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FOCUS_STATE_GET ) , _canvas_focus_state_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_NOCHANGE_PUSH ) , _canvas_nochange_push ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_NOCHANGE_POP ) , _canvas_nochange_pop ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_DEFAULT_FLAGS_SET ) , _canvas_event_default_flags_set ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_DEFAULT_FLAGS_GET ) , _canvas_event_default_flags_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_DOWN ) , _canvas_event_feed_mouse_down ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_UP ) , _canvas_event_feed_mouse_up ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_CANCEL ) , _canvas_event_feed_mouse_cancel ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_WHEEL ) , _canvas_event_feed_mouse_wheel ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_MOVE ) , _canvas_event_feed_mouse_move ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_IN ) , _canvas_event_feed_mouse_in ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_OUT ) , _canvas_event_feed_mouse_out ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_DOWN ) , _canvas_event_feed_multi_down ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_UP ) , _canvas_event_feed_multi_up ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_MOVE ) , _canvas_event_feed_multi_move ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_DOWN ) , _canvas_event_feed_key_down ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_UP ) , _canvas_event_feed_key_up ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_FEED_HOLD ) , _canvas_event_feed_hold ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_REFEED_EVENT ) , _canvas_event_refeed_event ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_EVENT_DOWN_COUNT_GET ) , _canvas_event_down_count_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FOCUS_GET ) , _canvas_focus_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FONT_PATH_CLEAR ) , _canvas_font_path_clear ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FONT_PATH_APPEND ) , _canvas_font_path_append ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FONT_PATH_PREPEND ) , _canvas_font_path_prepend ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FONT_PATH_LIST ) , _canvas_font_path_list ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FONT_HINTING_SET ) , _canvas_font_hinting_set ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FONT_HINTING_GET ) , _canvas_font_hinting_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FONT_HINTING_CAN_HINT ) , _canvas_font_hinting_can_hint ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FONT_CACHE_FLUSH ) , _canvas_font_cache_flush ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FONT_CACHE_SET ) , _canvas_font_cache_set ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FONT_CACHE_GET ) , _canvas_font_cache_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_FONT_AVAILABLE_LIST ) , _canvas_font_available_list ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_KEY_MODIFIER_GET ) , _canvas_key_modifier_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_KEY_LOCK_GET ) , _canvas_key_lock_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_KEY_MODIFIER_ADD ) , _canvas_key_modifier_add ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_KEY_MODIFIER_DEL ) , _canvas_key_modifier_del ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_KEY_LOCK_ADD ) , _canvas_key_lock_add ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_KEY_LOCK_DEL ) , _canvas_key_lock_del ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_KEY_MODIFIER_ON ) , _canvas_key_modifier_on ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_KEY_MODIFIER_OFF ) , _canvas_key_modifier_off ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_KEY_LOCK_ON ) , _canvas_key_lock_on ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_KEY_LOCK_OFF ) , _canvas_key_lock_off ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_KEY_MODIFIER_MASK_GET ) , _canvas_key_modifier_mask_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_DAMAGE_RECTANGLE_ADD ) , _canvas_damage_rectangle_add ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OBSCURED_RECTANGLE_ADD ) , _canvas_obscured_rectangle_add ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OBSCURED_CLEAR ) , _canvas_obscured_clear ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_RENDER_UPDATES ) , _canvas_render_updates ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_RENDER ) , _canvas_render ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_NORENDER ) , _canvas_norender ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_RENDER_IDLE_FLUSH ) , _canvas_render_idle_flush ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_SYNC ) , _canvas_sync ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_RENDER_DUMP ) , _canvas_render_dump ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OBJECT_BOTTOM_GET ) , _canvas_object_bottom_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OBJECT_TOP_GET ) , _canvas_object_top_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_TOUCH_POINT_LIST_COUNT ) , _canvas_touch_point_list_count ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_TOUCH_POINT_LIST_NTH_XY_GET ) , _canvas_touch_point_list_nth_xy_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_TOUCH_POINT_LIST_NTH_ID_GET ) , _canvas_touch_point_list_nth_id_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_TOUCH_POINT_LIST_NTH_STATE_GET ) , _canvas_touch_point_list_nth_state_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_IMAGE_CACHE_FLUSH ) , _canvas_image_cache_flush ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_IMAGE_CACHE_RELOAD ) , _canvas_image_cache_reload ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_IMAGE_CACHE_SET ) , _canvas_image_cache_set ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_IMAGE_CACHE_GET ) , _canvas_image_cache_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_IMAGE_MAX_SIZE_GET ) , _canvas_image_max_size_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OBJECT_NAME_FIND ) , _canvas_object_name_find ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OBJECT_TOP_AT_XY_GET ) , _canvas_object_top_at_xy_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OBJECT_TOP_IN_RECTANGLE_GET ) , _canvas_object_top_in_rectangle_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OBJECTS_AT_XY_GET ) , _canvas_objects_at_xy_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_OBJECTS_IN_RECTANGLE_GET ) , _canvas_objects_in_rectangle_get ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_SMART_OBJECTS_CALCULATE ) , _canvas_smart_objects_calculate ) ,
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_SMART_OBJECTS_CALCULATE_COUNT_GET ) , _canvas_smart_objects_calculate_count_get ) ,
2012-12-18 08:26:44 -08:00
EO_OP_FUNC ( EVAS_CANVAS_ID ( EVAS_CANVAS_SUB_ID_RENDER_ASYNC ) , _canvas_render_async ) ,
2012-10-08 18:58:41 -07:00
EO_OP_FUNC_SENTINEL
} ;
eo_class_funcs_set ( klass , func_desc ) ;
}
static const Eo_Op_Description op_desc [ ] = {
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OUTPUT_METHOD_SET , " Sets the output engine for the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OUTPUT_METHOD_GET , " Retrieves the number of the output engine used for the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_ENGINE_INFO_GET , " Retrieves the current render engine info struct from the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_ENGINE_INFO_SET , " Applies the engine settings for the given evas from the given Evas_Engine_Info structure. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OUTPUT_SIZE_SET , " Sets the output size of the render engine of the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OUTPUT_SIZE_GET , " Retrieve the output size of the render engine of the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OUTPUT_VIEWPORT_SET , " Sets the output viewport of the given evas in evas units. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OUTPUT_VIEWPORT_GET , " Get the render engine's output viewport co-ordinates in canvas units. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OUTPUT_FRAMESPACE_SET , " Sets the output framespace size of the render engine of the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OUTPUT_FRAMESPACE_GET , " Get the render engine's output framespace co-ordinates in canvas units. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_COORD_SCREEN_X_TO_WORLD , " Convert/scale an ouput screen co-ordinate into canvas co-ordinates " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_COORD_SCREEN_Y_TO_WORLD , " Convert/scale an ouput screen co-ordinate into canvas co-ordinates " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_COORD_WORLD_X_TO_SCREEN , " Convert/scale a canvas co-ordinate into output screen co-ordinates " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_COORD_WORLD_Y_TO_SCREEN , " Convert/scale a canvas co-ordinate into output screen co-ordinates " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_POINTER_OUTPUT_XY_GET , " This function returns the current known pointer co-ordinates " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_POINTER_CANVAS_XY_GET , " This function returns the current known pointer co-ordinates " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_POINTER_BUTTON_DOWN_MASK_GET , " Returns a bitmask with the mouse buttons currently pressed. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_POINTER_INSIDE_GET , " Returns whether the mouse pointer is logically inside the canvas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_DATA_ATTACH_SET , " Attaches a specific pointer to the evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_DATA_ATTACH_GET , " Returns the pointer attached by evas_data_attach_set(). " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FOCUS_IN , " Inform to the evas that it got the focus. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FOCUS_OUT , " Inform to the evas that it lost the focus. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FOCUS_STATE_GET , " Get the focus state known by the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_NOCHANGE_PUSH , " Push the nochange flag up 1. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_NOCHANGE_POP , " Pop the nochange flag down 1. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_DEFAULT_FLAGS_SET , " Set the default set of flags an event begins with. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_DEFAULT_FLAGS_GET , " Get the defaulty set of flags an event begins with. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_DOWN , " Mouse down event feed. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_UP , " Mouse up event feed. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_CANCEL , " Mouse cancel event feed. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_WHEEL , " Mouse wheel event feed. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_MOVE , " Mouse move event feed. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_IN , " Mouse in event feed. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MOUSE_OUT , " Mouse out event feed. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_DOWN , " Multi down event feed. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_UP , " Multi up event feed. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_MULTI_MOVE , " Multi move event feed. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_DOWN , " Key down event feed " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_KEY_UP , " Key up event feed " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_FEED_HOLD , " Hold event feed " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_REFEED_EVENT , " Re feed event. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_EVENT_DOWN_COUNT_GET , " Get the number of mouse or multi presses currently active. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FOCUS_GET , " Retrieve the object that currently has focus. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FONT_PATH_CLEAR , " Removes all font paths loaded into memory for the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FONT_PATH_APPEND , " Appends a font path to the list of font paths used by the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FONT_PATH_PREPEND , " Prepends a font path to the list of font paths used by the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FONT_PATH_LIST , " Retrieves the list of font paths used by the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FONT_HINTING_SET , " Changes the font hinting for the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FONT_HINTING_GET , " Retrieves the font hinting used by the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FONT_HINTING_CAN_HINT , " Checks if the font hinting is supported by the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FONT_CACHE_FLUSH , " Force the given evas and associated engine to flush its font cache. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FONT_CACHE_SET , " Changes the size of font cache of the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FONT_CACHE_GET , " Changes the size of font cache of the given evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_FONT_AVAILABLE_LIST , " List of available font descriptions known or found by this evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_KEY_MODIFIER_GET , " Returns a handle to the list of modifier keys registered. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_KEY_LOCK_GET , " Returns a handle to the list of lock keys registered in the canvas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_KEY_MODIFIER_ADD , " Adds the keyname key to the current list of modifier keys. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_KEY_MODIFIER_DEL , " Removes the keyname key from the current list of modifier keys. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_KEY_LOCK_ADD , " Adds the keyname key to the current list of lock keys. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_KEY_LOCK_DEL , " Removes the keyname key from the current list of lock keys. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_KEY_MODIFIER_ON , " Enables or turns on programmatically the modifier key with name keyname. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_KEY_MODIFIER_OFF , " Disables or turns off programmatically the modifier key with name keyname. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_KEY_LOCK_ON , " Enables or turns on programmatically the lock key with name keyname. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_KEY_LOCK_OFF , " Disables or turns off programmatically the lock key with name keyname. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_KEY_MODIFIER_MASK_GET , " Creates a bit mask from the keyname modifier key. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_DAMAGE_RECTANGLE_ADD , " Add a damage rectangle. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OBSCURED_RECTANGLE_ADD , " Add an obscured region to an Evas canvas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OBSCURED_CLEAR , " Remove all obscured regions from an Evas canvas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_RENDER_UPDATES , " Force immediate renderization of the given Evas canvas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_RENDER , " Force renderization of the given canvas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_NORENDER , " Update the canvas internal objects but not triggering immediate. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_RENDER_IDLE_FLUSH , " Make the canvas discard internally cached data used for rendering. " ) ,
2012-12-19 10:03:38 -08:00
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_SYNC , " Force evas render to be synchronized (in case it is asynchronous). " ) ,
2012-10-08 18:58:41 -07:00
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_RENDER_DUMP , " Make the canvas discard as much data as possible used by the engine at " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OBJECT_BOTTOM_GET , " Get the lowest (stacked) Evas object on the canvas e. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OBJECT_TOP_GET , " Get the highest (stacked) Evas object on the canvas e. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_TOUCH_POINT_LIST_COUNT , " Get the number of touched point in the evas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_TOUCH_POINT_LIST_NTH_XY_GET , " This function returns the nth touch point's co-ordinates. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_TOUCH_POINT_LIST_NTH_ID_GET , " This function returns the id of nth touch point. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_TOUCH_POINT_LIST_NTH_STATE_GET , " This function returns the state of nth touch point. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_IMAGE_CACHE_FLUSH , " Flush the image cache of the canvas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_IMAGE_CACHE_RELOAD , " Reload the image cache " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_IMAGE_CACHE_SET , " Set the image cache. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_IMAGE_CACHE_GET , " Get the image cache " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_IMAGE_MAX_SIZE_GET , " Get the maximum image size evas can possibly handle " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OBJECT_NAME_FIND , " Retrieves the object on the given evas with the given name. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OBJECT_TOP_AT_XY_GET , " Retrieve the Evas object stacked at the top of a given position in " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OBJECT_TOP_IN_RECTANGLE_GET , " Retrieve the Evas object stacked at the top of a given rectangulari region in a canvas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OBJECTS_AT_XY_GET , " Retrieve a list of Evas objects lying over a given position in a canvas. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_OBJECTS_IN_RECTANGLE_GET , " Retrieves the objects in the given rectangle region. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_SMART_OBJECTS_CALCULATE , " Call user-provided calculate() smart functions. " ) ,
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_SMART_OBJECTS_CALCULATE_COUNT_GET , " Get the internal counter that counts the number of smart calculations. " ) ,
2012-12-18 08:26:44 -08:00
EO_OP_DESCRIPTION ( EVAS_CANVAS_SUB_ID_RENDER_ASYNC , " Renders the canvas asynchronously. " ) ,
2012-10-08 18:58:41 -07:00
EO_OP_DESCRIPTION_SENTINEL
} ;
static const Eo_Class_Description class_desc = {
EO_VERSION ,
" Evas " ,
EO_CLASS_TYPE_REGULAR ,
EO_CLASS_DESCRIPTION_OPS ( & EVAS_CANVAS_BASE_ID , op_desc , EVAS_CANVAS_SUB_ID_LAST ) ,
NULL ,
sizeof ( Evas_Public_Data ) ,
_class_constructor ,
NULL
} ;
EO_DEFINE_CLASS ( evas_class_get , & class_desc , EO_BASE_CLASS , EVAS_COMMON_CLASS , NULL ) ;