Evas_Common.h File Reference

These routines are used for Evas library interaction. More...

## Data Structures

struct | _Evas_Version
struct | _Evas_Coord_Rectangle
| A rectangle in Evas_Coord. More...
struct | _Evas_Coord_Point
| A Point in Evas_Coord. More...
struct | _Evas_Coord_Size
| A size in Evas_Coord. More...
struct | _Evas_Coord_Precision_Size
| A size in Evas_Coord with subpixel precision. More...
struct | _Evas_Coord_Precision_Point
| A point in Evas_Coord with subpixel precision. More...
struct | _Evas_Point
| A point. More...
struct | _Evas_Position
| A position. More...
struct | _Evas_Precision_Position
| A position with precision. More...
struct | _Evas_Pixel_Import_Source
struct | _Evas_Event_Render_Post
struct | _Evas_Textgrid_Cell
| A cell contains a single unicode character, with associated formatting data including style, color, and color palette. More...
struct | _Evas_Smart_Class
| A smart object's base class definition. More...
struct | _Evas_Smart_Interface
| A smart object's base interface definition. More...
struct | _Evas_Smart_Cb_Description
| Describes a callback issued by a smart object (evas_object_smart_callback_call()), as defined in its smart object class. More...
struct | _Evas_Object_Smart_Clipped_Data
struct | _Evas_Object_Box_Api
| This structure should be used by any smart class inheriting from the box's one, to provide custom box behavior that could not be achieved only by providing a layout function, with evas_object_box_layout_set(). More...
struct | _Evas_Object_Box_Data
| This structure augments clipped smart object's instance data, providing extra members required by generic box implementation. More...
struct | _Evas_Object_Box_Option
| Evas_Object_Box_Option struct fields More...
struct | _Evas_Cserve_Stats
| Statistics about the server that shares cached bitmaps. More...
struct | _Evas_Cserve_Image_Cache
| A handle of a cache of images shared by a server. More...
struct | _Evas_Cserve_Image
| A handle to an image shared by a server. More...
struct | _Evas_Cserve_Config
| Configuration that controls the server that shares cached bitmaps. More...

## Macros

#define | EVAS_VERSION_MAJOR EFL_VERSION_MAJOR
| The major number of evas version.
#define | EVAS_VERSION_MINOR EFL_VERSION_MINOR
| The minor number of evas version.
#define | EVAS_CALLBACK_PRIORITY_BEFORE -100
| Slightly more prioritized than default.
#define | EVAS_CALLBACK_PRIORITY_DEFAULT 0
| Default callback priority level.
#define | EVAS_CALLBACK_PRIORITY_AFTER 100
| Slightly less prioritized than default.
#define | _EFL_CANVAS_OBJECT_EO_CLASS_TYPE
#define | EVAS_LAYER_MIN -32768
| bottom-most layer number
#define | EVAS_LAYER_MAX 32767
| top-most layer number
#define | EVAS_COLOR_SPACE_ARGB 0
| Not used for anything.
#define | EVAS_COLOR_SPACE_AHSV 1
| Not used for anything.
#define | EVAS_TEXT_INVALID -1
| Not used for anything.
#define | EVAS_TEXT_SPECIAL -2
| Not used for anything.
#define | EVAS_HINT_EXPAND 1.0
| Use with evas_object_size_hint_weight_set(), evas_object_size_hint_weight_get(), evas_object_size_hint_expand_set(), evas_object_size_hint_expand_get().
#define | EVAS_HINT_FILL -1.0
| Use with evas_object_size_hint_align_set(), evas_object_size_hint_align_get(), evas_object_size_hint_fill_set(), evas_object_size_hint_fill_get().
#define | evas_object_size_hint_fill_set evas_object_size_hint_align_set
| Convenience macro to make it easier to understand that align is also used for fill properties (as fill is mutually exclusive to align).
#define | evas_object_size_hint_fill_get evas_object_size_hint_align_get
| Convenience macro to make it easier to understand that align is also used for fill properties (as fill is mutually exclusive to align).
#define | evas_object_size_hint_expand_set evas_object_size_hint_weight_set
| Convenience macro to make it easier to understand that weight is also used for expand properties.
#define | evas_object_size_hint_expand_get evas_object_size_hint_weight_get
| Convenience macro to make it easier to understand that weight is also used for expand properties.
#define | EVAS_DEVICE_CLASS_WAND EVAS_DEVICE_CLASS_POINTER
#define | EVAS_BIDI_DIRECTION_NEUTRAL EFL_TEXT_BIDIRECTIONAL_TYPE_NEUTRAL
#define | EVAS_BIDI_DIRECTION_NATURAL EFL_TEXT_BIDIRECTIONAL_TYPE_NATURAL
#define | EVAS_BIDI_DIRECTION_LTR EFL_TEXT_BIDIRECTIONAL_TYPE_LTR
#define | EVAS_BIDI_DIRECTION_RTL EFL_TEXT_BIDIRECTIONAL_TYPE_RTL
#define | EVAS_BIDI_DIRECTION_INHERIT EFL_TEXT_BIDIRECTIONAL_TYPE_INHERIT
#define | EVAS_TEXT_STYLE_MASK_BASIC 0xf
#define | EVAS_TEXT_STYLE_BASIC_SET(x, s)
| Text style type creation macro.
#define | EVAS_TEXT_STYLE_MASK_SHADOW_DIRECTION (0x7 << 4)
#define | EVAS_TEXT_STYLE_SHADOW_DIRECTION_SET(x, s)
| Text style type creation macro.
#define | EVAS_SMART_CLASS_VERSION 4
| The version you have to put into the version field in the Evas_Smart_Class struct.
#define | EVAS_SMART_CLASS_INIT_NULL {NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}
| Initialize to zero a whole Evas_Smart_Class structure.
#define | EVAS_SMART_CLASS_INIT_VERSION {NULL, EVAS_SMART_CLASS_VERSION, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}
| Initialize to zero a whole Evas_Smart_Class structure and set version.
#define | EVAS_SMART_CLASS_INIT_NAME_VERSION(name)
| Initialize to zero a whole Evas_Smart_Class structure and set name and version.
#define | EVAS_SMART_CLASS_INIT_NAME_VERSION_PARENT(name, parent)
| Initialize to zero a whole Evas_Smart_Class structure and set name, version and parent class.
#define | EVAS_SMART_CLASS_INIT_NAME_VERSION_PARENT_CALLBACKS(name, parent, callbacks)
| Initialize to zero a whole Evas_Smart_Class structure and set name, version, parent class and callbacks definition.
#define | EVAS_SMART_SUBCLASS_NEW(smart_name, prefix, api_type, parent_type, parent_func, cb_desc)
| Convenience macro to subclass a given Evas smart class.
#define | EVAS_SMART_SUBCLASS_IFACE_NEW(smart_name, prefix, api_type, parent_type, parent_func, cb_desc, ifaces)
#define | EVAS_SMART_DATA_ALLOC(o, priv_type)
| Convenience macro to allocate smart data only if needed.
#define | evas_smart_class_inherit(sc, parent_sc)
| Easy to use version of evas_smart_class_inherit_full().
#define | EVAS_OBJECT_BOX_API_VERSION 1
| Current version for Evas box object smart class, a value that goes to _Evas_Object_Box_Api::version.
#define | EVAS_OBJECT_BOX_API_INIT(smart_class_init)
| Initializer for a whole Evas_Object_Box_Api structure, with `NULL` values on its specific fields.
#define | EVAS_OBJECT_BOX_API_INIT_NULL EVAS_OBJECT_BOX_API_INIT(EVAS_SMART_CLASS_INIT_NULL)
| Initialize to zero out a whole Evas_Object_Box_Api structure.
#define | EVAS_OBJECT_BOX_API_INIT_VERSION EVAS_OBJECT_BOX_API_INIT(EVAS_SMART_CLASS_INIT_VERSION)
| Initialize to zero out a whole Evas_Object_Box_Api structure and set a specific version on it.
#define | EVAS_OBJECT_BOX_API_INIT_NAME_VERSION(name)
| Initialize to zero out a whole Evas_Object_Box_Api structure and set its name and version.
#define | _EFL_INPUT_DEVICE_EO_CLASS_TYPE
#define | _EFL_INPUT_DEVICE_EO_TYPES
#define | _EFL_GFX_ENTITY_EO_H_
#define | _EFL_GFX_ENTITY_EO_CLASS_TYPE

## Typedefs

typedef struct _Evas_Version | Evas_Version
| This is the Evas version information structure that can be used at runtime to detect which version of evas is being used and adapt appropriately as follows for example:
typedef Efl_Callback_Priority | Evas_Callback_Priority
| Callback priority value.
typedef struct _Evas_Coord_Rectangle | Evas_Coord_Rectangle
| A generic rectangle handle.
typedef struct _Evas_Point | Evas_Point
| integer point
typedef struct _Evas_Coord_Point | Evas_Coord_Point
| Evas_Coord point.
typedef struct _Evas_Coord_Precision_Point | Evas_Coord_Precision_Point
| Evas_Coord point with sub-pixel precision.
typedef struct _Evas_Coord_Size | Evas_Coord_Size
| Evas_Coord size.
typedef struct _Evas_Coord_Precision_Size | Evas_Coord_Precision_Size
| Evas_Coord size with sub-pixel precision.
typedef struct _Evas_Position | Evas_Position
| associates given point in Canvas and Output
typedef struct _Evas_Precision_Position | Evas_Precision_Position
| associates given point in Canvas and Output, with sub-pixel precision
typedef int | Evas_Coord
| Type used for coordinates (in pixels, int).
typedef int | Evas_Font_Size
| Type used for font sizes (int).
typedef struct _Evas_Smart_Class | Evas_Smart_Class
| A smart object's base class definition.
typedef struct _Evas_Smart_Interface | Evas_Smart_Interface
| A smart object's base interface definition.
typedef struct _Evas_Smart_Cb_Description | Evas_Smart_Cb_Description
| A smart object callback description, used to provide introspection.
typedef Eo | Evas
| An opaque handle to an Evas canvas.
typedef struct _Evas_Public_Data | Evas_Public_Data
| Public data for an Evas.
typedef Efl_Canvas_Object | Evas_Object
| An Evas Object handle.
typedef Eo | Efl_VG
| Type of abstract VG node.
typedef void | Evas_Performance
| An Evas Performance handle.
typedef struct _Evas_Smart | Evas_Smart
| An Evas Smart Object handle.
typedef int | Evas_Angle
| A type for angle.
typedef struct _Evas_Pixel_Import_Source | Evas_Pixel_Import_Source
| A source description of pixels for importing pixels.
typedef Eo | Evas_Device
| A source device handle - where the event came from.
typedef enum _Evas_Image_Content_Hint | Evas_Image_Content_Hint
| How an image's data is to be treated by Evas, for optimization.
typedef enum _Evas_Alloc_Error | Evas_Alloc_Error
| Possible allocation errors returned by evas_alloc_error().
typedef enum _Evas_Pixel_Import_Pixel_Format | Evas_Pixel_Import_Pixel_Format
| Pixel format for import call.
typedef enum _Evas_Engine_Render_Mode | Evas_Engine_Render_Mode
| behaviour of the renderer
typedef struct _Evas_Event_Render_Post | Evas_Event_Render_Post
| Event info sent after a frame was rendered.
typedef enum _Evas_Device_Class | Evas_Device_Class
| A general class of device.
typedef enum _Evas_Button_Flags | Evas_Button_Flags
| Flags for Mouse Button events.
typedef enum _Evas_Event_Flags | Evas_Event_Flags
| Flags for Events.
typedef enum _Evas_Aspect_Control | Evas_Aspect_Control
| Aspect types/policies for scaling size hints, used for evas_object_size_hint_aspect_set().
typedef Efl_Text_Bidirectional_Type | Evas_BiDi_Direction
typedef enum _Evas_Font_Data_Cache | Evas_Font_Data_Cache
| font caching options, used for evas_font_data_cache_set()/evas_font_data_cache_get()
typedef enum _Evas_Object_Pointer_Mode | Evas_Object_Pointer_Mode
| How the mouse pointer should be handled by Evas.
typedef void(* | Evas_Smart_Cb) (void *data, Evas_Object *obj, void *event_info)
| Evas smart objects' "smart callback" function signature.
typedef void(* | Evas_Event_Cb) (void *data, Evas *e, void *event_info)
| Evas event callback function signature.
typedef Eina_Bool(* | Evas_Object_Event_Post_Cb) (void *data, Evas *e)
| Evas object event (post) callback function signature.
typedef void(* | Evas_Object_Event_Cb) (void *data, Evas *e, Evas_Object *obj, void *event_info)
| Evas object event callback function signature.
typedef void(* | Evas_Async_Events_Put_Cb) (void *target, Evas_Callback_Type type, void *event_info)
| Evas async callback function signature.
typedef void(* | Evas_Object_Image_Pixels_Get_Cb) (void *data, Evas_Object *o)
| Function signature for the evas object pixels get callback function.
typedef struct _Evas_Object_Smart_Clipped_Data | Evas_Object_Smart_Clipped_Data
| Every subclass should provide this at the beginning of their own data set with evas_object_smart_data_set().
typedef struct _Evas_Object_Box_Api | Evas_Object_Box_Api
| Smart class extension, providing extra box object requirements.
typedef struct _Evas_Object_Box_Data | Evas_Object_Box_Data
| Smart object instance data, providing box object requirements.
typedef struct _Evas_Object_Box_Option | Evas_Object_Box_Option
| The base structure for a box option.
typedef void(* | Evas_Object_Box_Layout) (Evas_Object *o, Evas_Object_Box_Data *priv, void *user_data)
| Function signature for an Evas box object layouting routine.
typedef struct _Evas_Cserve_Stats | Evas_Cserve_Stats
typedef struct _Evas_Cserve_Image_Cache | Evas_Cserve_Image_Cache
typedef struct _Evas_Cserve_Image | Evas_Cserve_Image
typedef struct _Evas_Cserve_Config | Evas_Cserve_Config
typedef Eo | Efl_Input_Device
typedef Eo | Efl_Gfx_Entity

## Enumerations

enum | _Evas_Image_Content_Hint { EVAS_IMAGE_CONTENT_HINT_NONE = 0 , EVAS_IMAGE_CONTENT_HINT_DYNAMIC = 1 , EVAS_IMAGE_CONTENT_HINT_STATIC = 2 }
enum | _Evas_Alloc_Error { EVAS_ALLOC_ERROR_NONE = 0 , EVAS_ALLOC_ERROR_FATAL = 1 , EVAS_ALLOC_ERROR_RECOVERED = 2 }
enum | _Evas_Pixel_Import_Pixel_Format { EVAS_PIXEL_FORMAT_NONE = 0 , EVAS_PIXEL_FORMAT_ARGB32 = 1 , EVAS_PIXEL_FORMAT_YUV420P_601 = 2 }
enum | _Evas_Engine_Render_Mode { EVAS_RENDER_MODE_BLOCKING = 0 , EVAS_RENDER_MODE_NONBLOCKING = 1 }
enum | _Evas_Device_Class { EVAS_DEVICE_CLASS_NONE , EVAS_DEVICE_CLASS_SEAT , EVAS_DEVICE_CLASS_KEYBOARD , EVAS_DEVICE_CLASS_MOUSE , EVAS_DEVICE_CLASS_TOUCH , EVAS_DEVICE_CLASS_PEN , EVAS_DEVICE_CLASS_POINTER , EVAS_DEVICE_CLASS_GAMEPAD }
enum | Evas_Device_Subclass { EVAS_DEVICE_SUBCLASS_NONE = 0 , EVAS_DEVICE_SUBCLASS_FINGER , EVAS_DEVICE_SUBCLASS_FINGERNAIL , EVAS_DEVICE_SUBCLASS_KNUCKLE , EVAS_DEVICE_SUBCLASS_PALM , EVAS_DEVICE_SUBCLASS_HAND_SIZE , EVAS_DEVICE_SUBCLASS_HAND_FLAT , EVAS_DEVICE_SUBCLASS_PEN_TIP , EVAS_DEVICE_SUBCLASS_TRACKPAD , EVAS_DEVICE_SUBCLASS_TRACKPOINT , EVAS_DEVICE_SUBCLASS_TRACKBALL }
| Specific type of input device. More...
enum | _Evas_Button_Flags { EVAS_BUTTON_NONE = 0 , EVAS_BUTTON_DOUBLE_CLICK = (1 << 0) , EVAS_BUTTON_TRIPLE_CLICK = (1 << 1) }
| Flags for Mouse Button events. More...
enum | _Evas_Event_Flags { EVAS_EVENT_FLAG_NONE = 0 , EVAS_EVENT_FLAG_ON_HOLD = (1 << 0) , EVAS_EVENT_FLAG_ON_SCROLL = (1 << 1) }
| Flags for Events. More...
enum | _Evas_Aspect_Control { EVAS_ASPECT_CONTROL_NONE = 0 , EVAS_ASPECT_CONTROL_NEITHER = 1 , EVAS_ASPECT_CONTROL_HORIZONTAL = 2 , EVAS_ASPECT_CONTROL_VERTICAL = 3 , EVAS_ASPECT_CONTROL_BOTH = 4 }
enum | _Evas_Font_Data_Cache { EVAS_FONT_DATA_CACHE_TEXTURE = 0x01 }
enum | _Evas_Object_Pointer_Mode { EVAS_OBJECT_POINTER_MODE_AUTOGRAB , EVAS_OBJECT_POINTER_MODE_NOGRAB , EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN }
| How the mouse pointer should be handled by Evas. More...

enum

Evas_Callback_Type {
EVAS_CALLBACK_MOUSE_IN = 0 ,
EVAS_CALLBACK_MOUSE_OUT ,
EVAS_CALLBACK_MOUSE_DOWN ,
EVAS_CALLBACK_MOUSE_UP ,
EVAS_CALLBACK_MOUSE_MOVE ,
EVAS_CALLBACK_MOUSE_WHEEL ,
EVAS_CALLBACK_MULTI_DOWN ,
EVAS_CALLBACK_MULTI_UP ,
EVAS_CALLBACK_MULTI_MOVE ,
EVAS_CALLBACK_FREE ,
EVAS_CALLBACK_KEY_DOWN ,
EVAS_CALLBACK_KEY_UP ,
EVAS_CALLBACK_FOCUS_IN ,
EVAS_CALLBACK_FOCUS_OUT ,
EVAS_CALLBACK_SHOW ,
EVAS_CALLBACK_HIDE ,
EVAS_CALLBACK_MOVE ,
EVAS_CALLBACK_RESIZE ,
EVAS_CALLBACK_RESTACK ,
EVAS_CALLBACK_DEL ,
EVAS_CALLBACK_HOLD ,
EVAS_CALLBACK_CHANGED_SIZE_HINTS ,
EVAS_CALLBACK_IMAGE_PRELOADED ,
EVAS_CALLBACK_CANVAS_FOCUS_IN ,
EVAS_CALLBACK_CANVAS_FOCUS_OUT ,
EVAS_CALLBACK_RENDER_FLUSH_PRE ,
EVAS_CALLBACK_RENDER_FLUSH_POST ,
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN ,
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT ,
EVAS_CALLBACK_IMAGE_UNLOADED ,
EVAS_CALLBACK_RENDER_PRE ,
EVAS_CALLBACK_RENDER_POST ,
EVAS_CALLBACK_IMAGE_RESIZE ,
EVAS_CALLBACK_DEVICE_CHANGED ,
EVAS_CALLBACK_AXIS_UPDATE ,
EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE ,
EVAS_CALLBACK_LAST
}

| Identifier of callbacks to be set for Evas canvases or Evas objects. More...
enum | Efl_Input_Device_Type { EFL_INPUT_DEVICE_TYPE_NONE = 0 , EFL_INPUT_DEVICE_TYPE_SEAT , EFL_INPUT_DEVICE_TYPE_KEYBOARD , EFL_INPUT_DEVICE_TYPE_MOUSE , EFL_INPUT_DEVICE_TYPE_TOUCH , EFL_INPUT_DEVICE_TYPE_PEN , EFL_INPUT_DEVICE_TYPE_WAND , EFL_INPUT_DEVICE_TYPE_GAMEPAD }

## Functions

EINA_DEPRECATED EVAS_API const char * | evas_cserve_path_get (void)
EVAS_API int | evas_init (void)
| Directly initialize Evas and its required dependencies.
EVAS_API int | evas_shutdown (void)
| Directly shutdown Evas.
EVAS_API Evas_Alloc_Error | evas_alloc_error (void)
| Get the error status of the most recent memory allocation call.
EVAS_API int | evas_async_events_fd_get (void)
| Access the canvas' asynchronous event queue.
EVAS_API int | evas_async_events_process (void)
| Process the asynchronous event queue.
EVAS_API Eina_Bool | evas_async_events_put (const void *target, Evas_Callback_Type type, void *event_info, Evas_Async_Events_Put_Cb func)
| Insert asynchronous events on the canvas.
EVAS_API int | evas_render_method_lookup (const char *name)
| Look up a numeric ID from a string name of a rendering engine.
EVAS_API Eina_List * | evas_render_method_list (void)
| List all the rendering engines compiled into the copy of the Evas library.
EVAS_API void | evas_render_method_list_free (Eina_List *list)
| This function should be called to free a list of engine names.
EVAS_API void | evas_render_updates_free (Eina_List *updates)
| Free the rectangles returned by evas_render_updates().
EVAS_API Evas_Device * | evas_device_add (Evas *e)
| Add a new device type.
EVAS_API Evas_Device * | evas_device_add_full (Evas *e, const char *name, const char *desc, Evas_Device *parent_dev, Evas_Device *emulation_dev, Evas_Device_Class clas, Evas_Device_Subclass sub_class)
| Add a new device type.
EVAS_API void | evas_device_del (Evas_Device *dev)
| Delete a new device type.
EVAS_API void | evas_device_push (Evas *e, Evas_Device *dev)
| Push the current context device onto the device stack.
EVAS_API void | evas_device_pop (Evas *e)
| This pops the top of the device stack for the canvas.
EVAS_API const Eina_List * | evas_device_list (Evas *e, const Evas_Device *dev)
| List all current devices attached to the given canvas and/or device.
EVAS_API Evas_Device * | evas_device_get (Evas *e, const char *name)
| Get a device by its name.
EVAS_API Evas_Device * | evas_device_get_by_seat_id (Evas *eo_e, unsigned int id)
| Get a device by its seat id.
EVAS_API void | evas_device_name_set (Evas_Device *dev, const char *name)
| Set the name of a device as a string.
EVAS_API const char * | evas_device_name_get (const Evas_Device *dev)
| Get the name of a device.
EVAS_API void | evas_device_seat_id_set (Evas_Device *dev, unsigned int id)
| Set the seat id of a device.
EVAS_API unsigned int | evas_device_seat_id_get (const Evas_Device *dev)
| Get the seat id of a device.
EVAS_API void | evas_device_description_set (Evas_Device *dev, const char *desc)
| Set the description of a device as a string.
EVAS_API const char * | evas_device_description_get (const Evas_Device *dev)
| Get the description of a device.
EVAS_API void | evas_device_parent_set (Evas_Device *dev, Evas_Device *parent) EINA_DEPRECATED
| Set the parent of a device.
EVAS_API const Evas_Device * | evas_device_parent_get (const Evas_Device *dev)
| Get the parent of a device.
EVAS_API void | evas_device_class_set (Evas_Device *dev, Evas_Device_Class clas) EINA_DEPRECATED
| Set the major class of device.
EVAS_API Evas_Device_Class | evas_device_class_get (const Evas_Device *dev)
| Get the major class of a device.
EVAS_API void | evas_device_subclass_set (Evas_Device *dev, Evas_Device_Subclass clas)
| Set the sub-class of a device.
EVAS_API Evas_Device_Subclass | evas_device_subclass_get (const Evas_Device *dev)
| Get the device sub-class.
EVAS_API void | evas_device_emulation_source_set (Evas_Device *dev, Evas_Device *src)
| Set the emulation source device.
EVAS_API const Evas_Device * | evas_device_emulation_source_get (const Evas_Device *dev)
| Get the emulation source device.
EVAS_API Eina_Bool | evas_object_image_extension_can_load_get (const char *file)
| Check if a file extension may be supported by Image Object Functions.
EVAS_API Eina_Bool | evas_object_image_extension_can_load_fast_get (const char *file)
| Check if a file extension may be supported by Image Object Functions.
EVAS_API void | evas_smart_free (Evas_Smart *s)
| Free an Evas_Smart struct.
EVAS_API Evas_Smart * | evas_smart_class_new (const Evas_Smart_Class *sc)
| Creates a new Evas_Smart from a given Evas_Smart_Class struct.
EVAS_API const Evas_Smart_Class * | evas_smart_class_get (const Evas_Smart *s)
| Get the Evas_Smart_Class handle of an Evas_Smart struct.
EVAS_API void * | evas_smart_data_get (const Evas_Smart *s)
| Get the data pointer set on an Evas_Smart struct.
EVAS_API const Evas_Smart_Cb_Description ** | evas_smart_callbacks_descriptions_get (const Evas_Smart *s, unsigned int *count)
| Get the smart callbacks known by this Evas_Smart handle's smart class hierarchy.
EVAS_API const Evas_Smart_Cb_Description * | evas_smart_callback_description_find (const Evas_Smart *s, const char *name)
| Find a callback description for the callback named name.
EVAS_API Eina_Bool | evas_smart_class_inherit_full (Evas_Smart_Class *sc, const Evas_Smart_Class *parent_sc, unsigned int parent_sc_size)
| Sets one class to inherit from the other.
EVAS_API int | evas_smart_usage_get (const Evas_Smart *s)
| Get the number of uses of the smart instance.
EVAS_API void | evas_smart_legacy_type_register (const char *type, const Efl_Class *klass)
| Registers an object type and its associated class.
EVAS_API void | evas_object_smart_clipped_smart_set (Evas_Smart_Class *sc)
| Set a given smart class' callbacks so it implements the clipped smart object"'s interface.
EVAS_API const Evas_Smart_Class * | evas_object_smart_clipped_class_get (void)
| Get a pointer to the clipped smart object's class, to use for proper inheritance.
EVAS_API void | evas_object_box_smart_set (Evas_Object_Box_Api *api)
| Set the default box api struct (Evas_Object_Box_Api) with the default values.
EVAS_API const Evas_Object_Box_Api * | evas_object_box_smart_class_get (void)
| Get the Evas box smart class, for inheritance purposes.
EVAS_API Eina_Bool | evas_cserve_want_get (void)
| Retrieves if the system wants to share bitmaps using the server.
EVAS_API Eina_Bool | evas_cserve_connected_get (void)
| Retrieves if the system is connected to the server used to share bitmaps.
EVAS_API Eina_Bool | evas_cserve_stats_get (Evas_Cserve_Stats *stats)
| Retrieves statistics from a running bitmap sharing server.
EVAS_API void | evas_cserve_image_cache_contents_clean (Evas_Cserve_Image_Cache *cache)
| Completely discard/clean a given images cache, thus re-setting it.
EVAS_API Eina_Bool | evas_cserve_config_get (Evas_Cserve_Config *config)
| Retrieves the current configuration of the Evas image caching server.
EVAS_API Eina_Bool | evas_cserve_config_set (const Evas_Cserve_Config *config)
| Changes the configurations of the Evas image caching server.
EVAS_API void | evas_cserve_disconnect (void)
| Force the system to disconnect from the bitmap caching server.
EVAS_API const char * | evas_load_error_str (Evas_Load_Error error)
| Converts the given Evas image load error code into a string describing it in human-readable text.
EVAS_API void | evas_color_hsv_to_rgb (float h, float s, float v, int *r, int *g, int *b)
| Convert a given color from HSV to RGB format.
EVAS_API void | evas_color_rgb_to_hsv (int r, int g, int b, float *h, float *s, float *v)
| Convert a given color from RGB to HSV format.
EVAS_API void | evas_color_argb_premul (int a, int *r, int *g, int *b)
| Pre-multiplies a rgb triplet by an alpha factor.
EVAS_API void | evas_color_argb_unpremul (int a, int *r, int *g, int *b)
| Undo pre-multiplication of a rgb triplet by an alpha factor.
EVAS_API void | evas_data_argb_premul (unsigned int *data, unsigned int len)
| Pre-multiplies data by an alpha factor.
EVAS_API void | evas_data_argb_unpremul (unsigned int *data, unsigned int len)
| Undo pre-multiplication data by an alpha factor.
EVAS_API int | evas_string_char_next_get (const char *str, int pos, int *decoded)
| Gets the next character in the string.
EVAS_API int | evas_string_char_prev_get (const char *str, int pos, int *decoded)
| Gets the previous character in the string.
EVAS_API int | evas_string_char_len_get (const char *str)
| Get the length in characters of the string.
EVAS_API Evas_BiDi_Direction | evas_language_direction_get (void)
| Get language direction.
EVAS_API void | evas_language_reinit (void)
| Reinitialize language from the environment.
EVAS_API void | evas_font_path_global_clear (void)
| Removes all font paths loaded into memory by evas_font_path_app_* APIs for the application.
EVAS_API void | evas_font_path_global_append (const char *path)
| Appends a font path to the list of font paths used by the application.
EVAS_API void | evas_font_path_global_prepend (const char *path)
| Prepends a font path to the list of font paths used by the application.
EVAS_API const Eina_List * | evas_font_path_global_list (void)
| Retrieves the list of font paths used by the application.
EVAS_API void | evas_font_reinit (void)
| Reinitialize FontConfig.
EVAS_API void | evas_font_data_cache_set (Evas_Font_Data_Cache options, int byte)
| Set the limit in bytes for memory allocated by font glyphs in evas.
EVAS_API int | evas_font_data_cache_get (Evas_Font_Data_Cache options)
| Get the limit in bytes for memory allocated by font glyphs in evas.

## Variables

EVAS_API Evas_Version * | evas_version
| Evas Version Information.

## Detailed Description

These routines are used for Evas library interaction.

## Macro Definition Documentation

## EVAS_CALLBACK_PRIORITY_BEFORE

#define EVAS_CALLBACK_PRIORITY_BEFORE -100

Slightly more prioritized than default.

Since
  1.1

## EVAS_CALLBACK_PRIORITY_DEFAULT

#define EVAS_CALLBACK_PRIORITY_DEFAULT 0

Default callback priority level.

Since
  1.1

Referenced by evas_event_callback_add(), evas_object_event_callback_add(), and evas_object_smart_callback_add().

## EVAS_CALLBACK_PRIORITY_AFTER

#define EVAS_CALLBACK_PRIORITY_AFTER 100

Slightly less prioritized than default.

Since
  1.1

## Typedef Documentation

## Evas_Version

typedef struct _Evas_Version Evas_Version

This is the Evas version information structure that can be used at runtime to detect which version of evas is being used and adapt appropriately as follows for example:

#if defined(EVAS_VERSION_MAJOR) && (EVAS_VERSION_MAJOR >= 1) && defined(EVAS_VERSION_MINOR) && (EVAS_VERSION_MINOR > 0)
printf("Evas version: %i.%i.%i\n",
evas_version->major,
evas_version->minor,
evas_version->micro);
if (evas_version->revision > 0)
{
printf(" Built from Git revision # %i\n", evas_version->revision);
}
#endif
evas_version
EVAS_API Evas_Version * evas_version
Evas Version Information.
Definition main.c:5

## Evas_Callback_Priority

typedef Efl_Callback_Priority Evas_Callback_Priority

Callback priority value.

Range is -32k - 32k. The lower the number, the bigger the priority.

See also
  EVAS_CALLBACK_PRIORITY_AFTER
  EVAS_CALLBACK_PRIORITY_BEFORE
  EVAS_CALLBACK_PRIORITY_DEFAULT

Since
  1.1

## Evas_Coord_Rectangle

typedef struct _Evas_Coord_Rectangle Evas_Coord_Rectangle

A generic rectangle handle.

Deprecated
  Use Eina_Rectangle instead

## Evas_Coord_Size

typedef struct _Evas_Coord_Size Evas_Coord_Size

Evas_Coord size.

Since
  1.8

## Evas_Coord_Precision_Size

typedef struct _Evas_Coord_Precision_Size Evas_Coord_Precision_Size

Evas_Coord size with sub-pixel precision.

Since
  1.8

## Evas_Pixel_Import_Pixel_Format

typedef enum _Evas_Pixel_Import_Pixel_Format Evas_Pixel_Import_Pixel_Format

Pixel format for import call.

See evas_object_image_pixels_import()

## Evas_Event_Render_Post

typedef struct _Evas_Event_Render_Post Evas_Event_Render_Post

Event info sent after a frame was rendered.

Since
  1.18

## Evas_Device_Class

typedef enum _Evas_Device_Class Evas_Device_Class

A general class of device.

Since
  1.8

## Evas_Button_Flags

typedef enum _Evas_Button_Flags Evas_Button_Flags

Flags for Mouse Button events.

Flags for Mouse Button events

## Evas_Event_Flags

typedef enum _Evas_Event_Flags Evas_Event_Flags

Flags for Events.

Flags for Events

## Enumeration Type Documentation

## _Evas_Image_Content_Hint

enum _Evas_Image_Content_Hint

Enumerator
EVAS_IMAGE_CONTENT_HINT_NONE | No hint at all.
EVAS_IMAGE_CONTENT_HINT_DYNAMIC | The contents will change over time.
EVAS_IMAGE_CONTENT_HINT_STATIC | The contents won't change over time.

## _Evas_Alloc_Error

enum _Evas_Alloc_Error

Enumerator
EVAS_ALLOC_ERROR_NONE | No allocation error.
EVAS_ALLOC_ERROR_FATAL | Allocation failed despite attempts to free up memory.
EVAS_ALLOC_ERROR_RECOVERED | Allocation succeeded after freeing up speculative resource memory.

## _Evas_Pixel_Import_Pixel_Format

enum _Evas_Pixel_Import_Pixel_Format

Enumerator
EVAS_PIXEL_FORMAT_NONE | No pixel format.
EVAS_PIXEL_FORMAT_ARGB32 | ARGB 32bit pixel format with A in the high byte per 32bit pixel word.
EVAS_PIXEL_FORMAT_YUV420P_601 | YUV 420 Planar format with CCIR 601 color encoding with contiguous planes in the order Y, U and V.

## _Evas_Engine_Render_Mode

enum _Evas_Engine_Render_Mode

Enumerator
EVAS_RENDER_MODE_BLOCKING | The rendering is blocking mode.
EVAS_RENDER_MODE_NONBLOCKING | The rendering is non blocking mode.

## _Evas_Device_Class

enum _Evas_Device_Class

Enumerator

EVAS_DEVICE_CLASS_NONE

Not a device.

Since
  1.8

EVAS_DEVICE_CLASS_SEAT

The user/seat (the user themselves).

Since
  1.8

EVAS_DEVICE_CLASS_KEYBOARD

A regular keyboard, numberpad or attached buttons.

Since
  1.8

EVAS_DEVICE_CLASS_MOUSE

A mouse, trackball or touchpad relative motion device.

Since
  1.8

EVAS_DEVICE_CLASS_TOUCH

A touchscreen with fingers or stylus.

Since
  1.8

EVAS_DEVICE_CLASS_PEN

A special pen device.

Since
  1.8

EVAS_DEVICE_CLASS_POINTER

A laser pointer, wii-style or "minority report" pointing device.

Since
  1.8

EVAS_DEVICE_CLASS_GAMEPAD

A gamepad controller or joystick.

Since
  1.8

## Evas_Device_Subclass

enum Evas_Device_Subclass

Specific type of input device.

Note: Currently not used inside EFL.

Since
  1.8

Enumerator
EVAS_DEVICE_SUBCLASS_NONE | Not a device.
EVAS_DEVICE_SUBCLASS_FINGER | The normal flat of your finger.
EVAS_DEVICE_SUBCLASS_FINGERNAIL | A fingernail.
EVAS_DEVICE_SUBCLASS_KNUCKLE | A Knuckle.
EVAS_DEVICE_SUBCLASS_PALM | The palm of a users hand.
EVAS_DEVICE_SUBCLASS_HAND_SIZE | The side of your hand.
EVAS_DEVICE_SUBCLASS_HAND_FLAT | The flat of your hand.
EVAS_DEVICE_SUBCLASS_PEN_TIP | The tip of a pen.
EVAS_DEVICE_SUBCLASS_TRACKPAD | A trackpad style mouse.
EVAS_DEVICE_SUBCLASS_TRACKPOINT | A trackpoint style mouse.
EVAS_DEVICE_SUBCLASS_TRACKBALL | A trackball style mouse.

## _Evas_Button_Flags

enum _Evas_Button_Flags

Flags for Mouse Button events.

Enumerator
EVAS_BUTTON_NONE | No extra mouse button data.
EVAS_BUTTON_DOUBLE_CLICK | This mouse button press was the 2nd press of a double click.
EVAS_BUTTON_TRIPLE_CLICK | This mouse button press was the 3rd press of a triple click.

## _Evas_Event_Flags

enum _Evas_Event_Flags

Flags for Events.

Enumerator
EVAS_EVENT_FLAG_NONE | No fancy flags set.
EVAS_EVENT_FLAG_ON_HOLD | This event is being delivered but should be put "on hold" until the on hold flag is unset. The event should be used for informational purposes and maybe some indications visually, but not actually perform anything
EVAS_EVENT_FLAG_ON_SCROLL | This event flag indicates the event occurs while scrolling; for example, DOWN event occurs during scrolling; the event should be used for informational purposes and maybe some indications visually, but not actually perform anything.

## _Evas_Aspect_Control

enum _Evas_Aspect_Control

Enumerator
EVAS_ASPECT_CONTROL_NONE | Preference on scaling unset.
EVAS_ASPECT_CONTROL_NEITHER | Same effect as unset preference on scaling.
EVAS_ASPECT_CONTROL_HORIZONTAL | Use all horizontal container space to place an object, using the given aspect.
EVAS_ASPECT_CONTROL_VERTICAL | Use all vertical container space to place an object, using the given aspect.
EVAS_ASPECT_CONTROL_BOTH | Use all horizontal and vertical container spaces to place an object (never growing it out of those bounds), using the given aspect.

## _Evas_Font_Data_Cache

enum _Evas_Font_Data_Cache

Enumerator
EVAS_FONT_DATA_CACHE_TEXTURE | Texture caching (in case of accelerated rendering).

## Evas_Callback_Type

enum Evas_Callback_Type

Identifier of callbacks to be set for Evas canvases or Evas objects.

Enumerator
EVAS_CALLBACK_MOUSE_IN | Mouse In Event.
EVAS_CALLBACK_MOUSE_OUT | Mouse Out Event.
EVAS_CALLBACK_MOUSE_DOWN | Mouse Button Down Event.
EVAS_CALLBACK_MOUSE_UP | Mouse Button Up Event.
EVAS_CALLBACK_MOUSE_MOVE | Mouse Move Event.
EVAS_CALLBACK_MOUSE_WHEEL | Mouse Wheel Event.
EVAS_CALLBACK_MULTI_DOWN | Multi-touch Down Event.
EVAS_CALLBACK_MULTI_UP | Multi-touch Up Event.
EVAS_CALLBACK_MULTI_MOVE | Multi-touch Move Event.
EVAS_CALLBACK_FREE | Object Being Freed (Called after Del).
EVAS_CALLBACK_KEY_DOWN | Key Press Event.
EVAS_CALLBACK_KEY_UP | Key Release Event.
EVAS_CALLBACK_FOCUS_IN | Focus In Event.
EVAS_CALLBACK_FOCUS_OUT | Focus Out Event.
EVAS_CALLBACK_SHOW | Show Event.
EVAS_CALLBACK_HIDE | Hide Event.
EVAS_CALLBACK_MOVE | Move Event.
EVAS_CALLBACK_RESIZE | Resize Event.
EVAS_CALLBACK_RESTACK | Restack Event.
EVAS_CALLBACK_DEL | Object Being Deleted (called before Free).
EVAS_CALLBACK_HOLD | Events go on/off hold.
EVAS_CALLBACK_CHANGED_SIZE_HINTS | Size hints changed event.
EVAS_CALLBACK_IMAGE_PRELOADED | Image has been preloaded.
EVAS_CALLBACK_CANVAS_FOCUS_IN | Canvas got focus as a whole.
EVAS_CALLBACK_CANVAS_FOCUS_OUT | Canvas lost focus as a whole.
EVAS_CALLBACK_RENDER_FLUSH_PRE | Called after render update regions have been calculated, but only if update regions exist.
EVAS_CALLBACK_RENDER_FLUSH_POST | Called after render update regions have been sent to the display server, but only if update regions existed for the most recent frame.
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN | Canvas object got focus.
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT | Canvas object lost focus.
EVAS_CALLBACK_IMAGE_UNLOADED | Image data has been unloaded (by some mechanism in Evas that throw out original image data).

EVAS_CALLBACK_RENDER_PRE

Called just before rendering starts on the canvas target.

Since
  1.2

EVAS_CALLBACK_RENDER_POST

Called just after rendering stops on the canvas target.

Since
  1.2

EVAS_CALLBACK_IMAGE_RESIZE

Image size is changed.

Since
  1.8

EVAS_CALLBACK_DEVICE_CHANGED

Devices added, removed or changed on canvas.

Since
  1.8

EVAS_CALLBACK_AXIS_UPDATE

Input device changed value on some axis.

Since
  1.13

EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE

Canvas viewport resized.

Since
  1.15

EVAS_CALLBACK_LAST | Sentinel value to indicate last enum field during iteration.

Examples
  flipselector_example.c, test_bouncing_ball.c, and test_velocity.c.

## Function Documentation

## evas_cserve_path_get()

EINA_DEPRECATED EVAS_API const char * evas_cserve_path_get | ( | void |  | ) |

Deprecated
  This function now returns NULL as cserve2 support has been removed

Get the path for the cserve binary to execute

There is little need for anyone except a desktop environment to call this. This can be called before evas_init() has been called. It will try and find the full path to the to the cserve binary to run to provide cserve image and font caching services for evas.

Returns
  NULL if error, or a string with the full path to the cserve binary.

Since
  1.8

## evas_cserve_image_cache_contents_clean()

EVAS_API void evas_cserve_image_cache_contents_clean | ( | Evas_Cserve_Image_Cache * | cache | ) |

Completely discard/clean a given images cache, thus re-setting it.

Parameters

  cache | A handle to the given images cache.

References EINA_UNUSED.

## evas_font_data_cache_set()

EVAS_API void evas_font_data_cache_set | ( | Evas_Font_Data_Cache | options,
|  | int | byte )

Set the limit in bytes for memory allocated by font glyphs in evas.

Parameters

  [in] | options | for caching.
  [in] | bytes | cache size in bytes, pass negative value to ignore the limit.

Since
  1.24

References EVAS_FONT_DATA_CACHE_TEXTURE.

## evas_font_data_cache_get()

EVAS_API int evas_font_data_cache_get | ( | Evas_Font_Data_Cache | options | ) |

Get the limit in bytes for memory allocated by font glyphs in evas.

Parameters

  [in] | options | for caching.

Returns
  Returns font allocated memory cache limit, if value is negative this means no limit.

Since
  1.24

References EVAS_FONT_DATA_CACHE_TEXTURE.