Extra Object Manipulation

Miscellaneous functions that also apply to any object, but are less used or not implemented by all objects. More...

Typedefs

typedef enum _Evas_Render_Op Evas_Render_Op
 How the object should be rendered to output. More...
 
typedef enum _Evas_Object_Pointer_Mode Evas_Object_Pointer_Mode
 How the mouse pointer should be handled by Evas. More...
 

Enumerations

enum  _Evas_Render_Op {
  EVAS_RENDER_BLEND = 0,
  EVAS_RENDER_BLEND_REL = 1,
  EVAS_RENDER_COPY = 2,
  EVAS_RENDER_COPY_REL = 3,
  EVAS_RENDER_ADD = 4,
  EVAS_RENDER_ADD_REL = 5,
  EVAS_RENDER_SUB = 6,
  EVAS_RENDER_SUB_REL = 7,
  EVAS_RENDER_TINT = 8,
  EVAS_RENDER_TINT_REL = 9,
  EVAS_RENDER_MASK = 10,
  EVAS_RENDER_MUL = 11
}
 How the object should be rendered to output. More...
 
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...
 
#define evas_obj_anti_alias_set(anti_alias)   EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_ANTI_ALIAS_SET), EO_TYPECHECK(Eina_Bool, anti_alias)
 
#define evas_obj_anti_alias_get(anti_alias)   EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_ANTI_ALIAS_GET), EO_TYPECHECK(Eina_Bool *, anti_alias)
 
#define evas_obj_scale_set(scale)   EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SCALE_SET), EO_TYPECHECK(double, scale)
 
#define evas_obj_scale_get(scale)   EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SCALE_GET), EO_TYPECHECK(double *, scale)
 
#define evas_obj_render_op_set(render_op)   EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_RENDER_OP_SET), EO_TYPECHECK(Evas_Render_Op, render_op)
 
#define evas_obj_render_op_get(render_op)   EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_RENDER_OP_GET), EO_TYPECHECK(Evas_Render_Op *, render_op)
 
#define evas_obj_precise_is_inside_set(precise)   EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_PRECISE_IS_INSIDE_SET), EO_TYPECHECK(Eina_Bool, precise)
 
#define evas_obj_precise_is_inside_get(precise)   EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_PRECISE_IS_INSIDE_GET), EO_TYPECHECK(Eina_Bool *, precise)
 
#define evas_obj_static_clip_set(is_static_clip)   EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_STATIC_CLIP_SET), EO_TYPECHECK(Eina_Bool, is_static_clip)
 
#define evas_obj_static_clip_get(is_static_clip)   EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_STATIC_CLIP_GET), EO_TYPECHECK(Eina_Bool *, is_static_clip)
 
#define evas_obj_pointer_mode_set(pointer_mode)   EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_POINTER_MODE_SET), EO_TYPECHECK(Evas_Object_Pointer_Mode, pointer_mode)
 
#define evas_obj_pointer_mode_get(pointer_mode)   EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_POINTER_MODE_GET), EO_TYPECHECK(Evas_Object_Pointer_Mode *, pointer_mode)
 
void evas_object_data_set (Evas_Object *obj, const char *key, const void *data)
 Set an attached data pointer to an object with a given string key. More...
 
void evas_object_pointer_mode_set (Evas_Object *obj, Evas_Object_Pointer_Mode setting)
 Set pointer behavior. More...
 
Evas_Object_Pointer_Mode evas_object_pointer_mode_get (const Evas_Object *obj)
 Determine how pointer will behave. More...
 
void evas_object_anti_alias_set (Evas_Object *obj, Eina_Bool antialias)
 Sets whether or not the given Evas object is to be drawn anti-aliased. More...
 
Eina_Bool evas_object_anti_alias_get (const Evas_Object *obj)
 Retrieves whether or not the given Evas object is to be drawn anti_aliased. More...
 
void evas_object_scale_set (Evas_Object *obj, double scale)
 Sets the scaling factor for an Evas object. More...
 
double evas_object_scale_get (const Evas_Object *obj)
 Retrieves the scaling factor for the given Evas object. More...
 
void evas_object_render_op_set (Evas_Object *obj, Evas_Render_Op op)
 Sets the render_op to be used for rendering the Evas object. More...
 
Evas_Render_Op evas_object_render_op_get (const Evas_Object *obj)
 Retrieves the current value of the operation used for rendering the Evas object. More...
 
void evas_object_precise_is_inside_set (Evas_Object *obj, Eina_Bool precise)
 Set whether to use precise (usually expensive) point collision detection for a given Evas object. More...
 
Eina_Bool evas_object_precise_is_inside_get (const Evas_Object *obj)
 Determine whether an object is set to use precise point collision detection. More...
 
void evas_object_static_clip_set (Evas_Object *obj, Eina_Bool is_static_clip)
 Set a hint flag on the given Evas object that it's used as a "static clipper". More...
 
Eina_Bool evas_object_static_clip_get (const Evas_Object *obj)
 Get the "static clipper" hint flag for a given Evas object. More...
 
void * evas_object_data_get (const Evas_Object *obj, const char *key)
 Return an attached data pointer on an Evas object by its given string key. More...
 
void * evas_object_data_del (Evas_Object *obj, const char *key)
 Delete an attached data pointer from an object. More...
 

Detailed Description

Miscellaneous functions that also apply to any object, but are less used or not implemented by all objects.

Examples on this group of functions can be found here and here.

Macro Definition Documentation

◆ evas_obj_anti_alias_set

#define evas_obj_anti_alias_set (   anti_alias)    EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_ANTI_ALIAS_SET), EO_TYPECHECK(Eina_Bool, anti_alias)
Since
1.8

Sets whether or not the given Evas object is to be drawn anti-aliased.

Parameters
[in]anti_aliasin
See also
evas_object_anti_alias_set

Referenced by evas_object_anti_alias_set().

◆ evas_obj_pointer_mode_set

#define evas_obj_pointer_mode_set (   pointer_mode)    EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_POINTER_MODE_SET), EO_TYPECHECK(Evas_Object_Pointer_Mode, pointer_mode)
Since
1.8

Set pointer behavior.

Parameters
[in]pointer_modein
See also
evas_object_pointer_mode_set

Referenced by evas_object_pointer_mode_set().

◆ evas_obj_anti_alias_get

#define evas_obj_anti_alias_get (   anti_alias)    EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_ANTI_ALIAS_GET), EO_TYPECHECK(Eina_Bool *, anti_alias)
Since
1.8

Retrieves whether or not the given Evas object is to be drawn anti_aliased.

Parameters
[out]anti_aliasout
See also
evas_object_anti_alias_get

Referenced by evas_object_anti_alias_get().

◆ evas_obj_scale_set

#define evas_obj_scale_set (   scale)    EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SCALE_SET), EO_TYPECHECK(double, scale)
Since
1.8

Sets the scaling factor for an Evas object. Does not affect all objects.

Parameters
[in]scalein
See also
evas_object_scale_set

Referenced by evas_object_scale_set().

◆ evas_obj_scale_get

#define evas_obj_scale_get (   scale)    EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_SCALE_GET), EO_TYPECHECK(double *, scale)
Since
1.8

Retrieves the scaling factor for the given Evas object.

Parameters
[out]scaleout
See also
evas_object_scale_get

Referenced by evas_object_evas_get(), and evas_object_scale_get().

◆ evas_obj_render_op_set

#define evas_obj_render_op_set (   render_op)    EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_RENDER_OP_SET), EO_TYPECHECK(Evas_Render_Op, render_op)
Since
1.8

Sets the render_op to be used for rendering the Evas object.

Parameters
[in]render_opin
See also
evas_object_render_op_set

Referenced by evas_object_render_op_set().

◆ evas_obj_render_op_get

#define evas_obj_render_op_get (   render_op)    EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_RENDER_OP_GET), EO_TYPECHECK(Evas_Render_Op *, render_op)
Since
1.8
Parameters
[out]render_op
See also
evas_object_render_op_get

Referenced by evas_object_render_op_get().

◆ evas_obj_precise_is_inside_set

#define evas_obj_precise_is_inside_set (   precise)    EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_PRECISE_IS_INSIDE_SET), EO_TYPECHECK(Eina_Bool, precise)
Since
1.8

Set whether to use precise (usually expensive) point collision detection for a given Evas object.

Parameters
[in]precisein
See also
evas_object_precise_is_inside_set

Referenced by evas_object_precise_is_inside_set().

◆ evas_obj_precise_is_inside_get

#define evas_obj_precise_is_inside_get (   precise)    EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_PRECISE_IS_INSIDE_GET), EO_TYPECHECK(Eina_Bool *, precise)
Since
1.8

Determine whether an object is set to use precise point collision detection.

Parameters
[out]preciseout
See also
evas_object_precise_is_inside_get

Referenced by evas_object_precise_is_inside_get().

◆ evas_obj_static_clip_set

#define evas_obj_static_clip_set (   is_static_clip)    EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_STATIC_CLIP_SET), EO_TYPECHECK(Eina_Bool, is_static_clip)
Since
1.8

Set a hint flag on the given Evas object that it's used as a "static clipper".

Parameters
[in]is_static_clipin
See also
evas_object_static_clip_set

Referenced by evas_object_static_clip_set().

◆ evas_obj_static_clip_get

#define evas_obj_static_clip_get (   is_static_clip)    EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_STATIC_CLIP_GET), EO_TYPECHECK(Eina_Bool *, is_static_clip)
Since
1.8

Get the "static clipper" hint flag for a given Evas object.

Parameters
[out]is_static_clipout
See also
evas_object_static_clip_get

Referenced by evas_object_static_clip_get().

◆ evas_obj_pointer_mode_get

#define evas_obj_pointer_mode_get (   pointer_mode)    EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_POINTER_MODE_GET), EO_TYPECHECK(Evas_Object_Pointer_Mode *, pointer_mode)
Since
1.8

Determine how pointer will behave.

Parameters
[out]pointer_modeout
See also
evas_object_pointer_mode_get

Referenced by evas_object_evas_get(), and evas_object_pointer_mode_get().

Typedef Documentation

◆ Evas_Render_Op

How the object should be rendered to output.

How the object should be rendered to output.

◆ Evas_Object_Pointer_Mode

How the mouse pointer should be handled by Evas.

In the mode EVAS_OBJECT_POINTER_MODE_AUTOGRAB, when a mouse button is pressed down over an object and held, with the mouse pointer being moved outside of it, the pointer still behaves as being bound to that object, albeit out of its drawing region. When the button is released, the event will be fed to the object, that may check if the final position is over it or not and do something about it.

In the mode EVAS_OBJECT_POINTER_MODE_NOGRAB, the pointer will always be bound to the object right below it.How the mouse pointer should be handled by Evas.

Enumeration Type Documentation

◆ _Evas_Render_Op

How the object should be rendered to output.

Enumerator
EVAS_RENDER_BLEND 

default op: d = d*(1-sa) + s

EVAS_RENDER_BLEND_REL 

d = d*(1 - sa) + s*da

EVAS_RENDER_COPY 

d = s

EVAS_RENDER_COPY_REL 

d = s*da

EVAS_RENDER_ADD_REL 

d = d + s*da

EVAS_RENDER_SUB 

d = d - s

EVAS_RENDER_TINT 

d = d*s + d*(1 - sa) + s*(1 - da)

EVAS_RENDER_TINT_REL 

d = d*(1 - sa + s)

EVAS_RENDER_MASK 

d = d*sa

EVAS_RENDER_MUL 

d = d*s

◆ _Evas_Object_Pointer_Mode

How the mouse pointer should be handled by Evas.

In the mode EVAS_OBJECT_POINTER_MODE_AUTOGRAB, when a mouse button is pressed down over an object and held, with the mouse pointer being moved outside of it, the pointer still behaves as being bound to that object, albeit out of its drawing region. When the button is released, the event will be fed to the object, that may check if the final position is over it or not and do something about it.

In the mode EVAS_OBJECT_POINTER_MODE_NOGRAB, the pointer will always be bound to the object right below it.

Enumerator
EVAS_OBJECT_POINTER_MODE_AUTOGRAB 

default, X11-like

EVAS_OBJECT_POINTER_MODE_NOGRAB 

pointer always bound to the object right below it

EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN 

useful on object with "repeat events" enabled, where mouse/touch up and down events WONT be repeated to objects and these objects wont be auto-grabbed.

Since
1.2

Function Documentation

◆ evas_object_data_set()

void evas_object_data_set ( Evas_Object obj,
const char *  key,
const void *  data 
)

Set an attached data pointer to an object with a given string key.

Parameters
objThe object to attach the data pointer to
keyThe string key for the data to access it
dataThe pointer to the data to be attached

This attaches the pointer data to the object obj, given the access string key. This pointer will stay "hooked" to the object until a new pointer with the same string key is attached with evas_object_data_set() or it is deleted with evas_object_data_del(). On deletion of the object obj, the pointers will not be accessible from the object anymore.

You can find the pointer attached under a string key using evas_object_data_get(). It is the job of the calling application to free any data pointed to by data when it is no longer required.

If data is NULL, the old value stored at key will be removed but no new value will be stored. This is synonymous with calling evas_object_data_del() with obj and key.

Note
This function is very handy when you have data associated specifically to an Evas object, being of use only when dealing with it. Than you don't have the burden to a pointer to it elsewhere, using this family of functions.

Example:

int *my_data;
extern Evas_Object *obj;
my_data = malloc(500);
evas_object_data_set(obj, "name_of_data", my_data);
printf("The data that was attached was %p\n", evas_object_data_get(obj, "name_of_data"));

References EAPI.

Referenced by edje_perspective_new().

◆ evas_object_pointer_mode_set()

void evas_object_pointer_mode_set ( Evas_Object obj,
Evas_Object_Pointer_Mode  setting 
)

Set pointer behavior.

Parameters
obj
settingdesired behavior.

This function has direct effect on event callbacks related to mouse.

If setting is EVAS_OBJECT_POINTER_MODE_AUTOGRAB, then when mouse is down at this object, events will be restricted to it as source, mouse moves, for example, will be emitted even if outside this object area.

If setting is EVAS_OBJECT_POINTER_MODE_NOGRAB, then events will be emitted just when inside this object area.

The default value is EVAS_OBJECT_POINTER_MODE_AUTOGRAB.

References EAPI, and evas_obj_pointer_mode_set.

Referenced by edje_edit_part_clip_to_set().

◆ evas_object_pointer_mode_get()

Evas_Object_Pointer_Mode evas_object_pointer_mode_get ( const Evas_Object obj)

Determine how pointer will behave.

Parameters
obj
Returns
pointer behavior.

References EAPI, evas_obj_pointer_mode_get, and EVAS_OBJECT_POINTER_MODE_AUTOGRAB.

◆ evas_object_anti_alias_set()

void evas_object_anti_alias_set ( Evas_Object obj,
Eina_Bool  antialias 
)

Sets whether or not the given Evas object is to be drawn anti-aliased.

Parameters
objThe given Evas object.
antialias1 if the object is to be anti_aliased, 0 otherwise.

References EAPI, and evas_obj_anti_alias_set.

◆ evas_object_anti_alias_get()

Eina_Bool evas_object_anti_alias_get ( const Evas_Object obj)

Retrieves whether or not the given Evas object is to be drawn anti_aliased.

Parameters
objThe given Evas object.
Returns
1 if the object is to be anti_aliased. 0 otherwise.

References EAPI, EINA_FALSE, and evas_obj_anti_alias_get.

◆ evas_object_scale_set()

void evas_object_scale_set ( Evas_Object obj,
double  scale 
)

Sets the scaling factor for an Evas object.

Does not affect all objects.

Parameters
objThe given Evas object.
scaleThe scaling factor. 1.0 means no scaling, default size.

This will multiply the object's dimension by the given factor, thus altering its geometry (width and height). Useful when you want scalable UI elements, possibly at run time.

Note
Only text and textblock objects have scaling change handlers. Other objects won't change visually on this call.
See also
evas_object_scale_get()

References EAPI, and evas_obj_scale_set.

◆ evas_object_scale_get()

double evas_object_scale_get ( const Evas_Object obj)

Retrieves the scaling factor for the given Evas object.

Parameters
objThe given Evas object.
Returns
The scaling factor.
See also
evas_object_scale_set()

References EAPI, and evas_obj_scale_get.

◆ evas_object_render_op_set()

void evas_object_render_op_set ( Evas_Object obj,
Evas_Render_Op  op 
)

Sets the render_op to be used for rendering the Evas object.

Parameters
objThe given Evas object.
opone of the Evas_Render_Op values.

References EAPI, and evas_obj_render_op_set.

◆ evas_object_render_op_get()

Evas_Render_Op evas_object_render_op_get ( const Evas_Object obj)

Retrieves the current value of the operation used for rendering the Evas object.

Parameters
objThe given Evas object.
Returns
one of the enumerated values in Evas_Render_Op.

References EAPI, evas_obj_render_op_get, and EVAS_RENDER_BLEND.

◆ evas_object_precise_is_inside_set()

void evas_object_precise_is_inside_set ( Evas_Object obj,
Eina_Bool  precise 
)

Set whether to use precise (usually expensive) point collision detection for a given Evas object.

Parameters
objThe given object.
preciseWhether to use precise point collision detection or not. The default value is false.

Use this function to make Evas treat objects' transparent areas as not belonging to it with regard to mouse pointer events. By default, all of the object's boundary rectangle will be taken in account for them.

Warning
By using precise point collision detection you'll be making Evas more resource intensive.

Example code follows.

if (strcmp(ev->key, "p") == 0) /* toggle precise point
* collision detection */
{
fprintf(stdout, "Toggling precise point collision detection %s on"
" Enlightenment logo\n", precise ? "off" : "on");
return;
}

See the full example here.

See also
evas_object_precise_is_inside_get()

References EAPI, and evas_obj_precise_is_inside_set.

◆ evas_object_precise_is_inside_get()

Eina_Bool evas_object_precise_is_inside_get ( const Evas_Object obj)

Determine whether an object is set to use precise point collision detection.

Parameters
objThe given object.
Returns
whether obj is set to use precise point collision detection or not The default value is false.
See also
evas_object_precise_is_inside_set() for an example

References EAPI, EINA_FALSE, and evas_obj_precise_is_inside_get.

◆ evas_object_static_clip_set()

void evas_object_static_clip_set ( Evas_Object obj,
Eina_Bool  is_static_clip 
)

Set a hint flag on the given Evas object that it's used as a "static clipper".

Parameters
objThe given object.
is_static_clipEINA_TRUE if it's to be used as a static clipper, EINA_FALSE otherwise.

This is a hint to Evas that this object is used as a big static clipper and shouldn't be moved with children and otherwise considered specially. The default value for new objects is EINA_FALSE.

See also
evas_object_static_clip_get()

References EAPI, and evas_obj_static_clip_set.

Referenced by evas_object_smart_clipped_clipper_get().

◆ evas_object_static_clip_get()

Eina_Bool evas_object_static_clip_get ( const Evas_Object obj)

Get the "static clipper" hint flag for a given Evas object.

Parameters
objThe given object.
Returns
EINA_TRUE if it's set as a static clipper, EINA_FALSE otherwise.
See also
evas_object_static_clip_set() for more details

References EAPI, EINA_FALSE, EINA_INLIST_FOREACH, evas_obj_static_clip_get, evas_object_geometry_get(), and evas_object_move().

◆ evas_object_data_get()

void* evas_object_data_get ( const Evas_Object obj,
const char *  key 
)

Return an attached data pointer on an Evas object by its given string key.

Parameters
objThe object to which the data was attached
keyThe string key the data was stored under
Returns
The data pointer stored, or NULL if none was stored

This function will return the data pointer attached to the object obj, stored using the string key key. If the object is valid and a data pointer was stored under the given key, that pointer will be returned. If this is not the case, NULL will be returned, signifying an invalid object or a non-existent key. It is possible that a NULL pointer was stored given that key, but this situation is non-sensical and thus can be considered an error as well. NULL pointers are never stored as this is the return value if an error occurs.

Example:

int *my_data;
extern Evas_Object *obj;
my_data = evas_object_data_get(obj, "name_of_my_data");
if (my_data) printf("Data stored was %p\n", my_data);
else printf("No data was stored on the object\n");
Examples:
ephysics_logo.c, evas-smart-interface.c, evas-smart-object.c, test_camera.c, test_camera_track.c, test_delete.c, and test_rotating_forever.c.

References EAPI.

Referenced by ecore_evas_object_ecore_evas_get(), ecore_evas_object_evas_get(), edje_evas_global_perspective_get(), edje_extern_object_max_size_set(), edje_extern_object_min_size_set(), edje_object_access_part_list_get(), edje_object_part_swallow(), edje_object_part_unswallow(), edje_object_signal_callback_extra_data_get(), and edje_object_update_hints_get().

◆ evas_object_data_del()

void* evas_object_data_del ( Evas_Object obj,
const char *  key 
)

Delete an attached data pointer from an object.

Parameters
objThe object to delete the data pointer from
keyThe string key the data was stored under
Returns
The original data pointer stored at key on obj

This will remove the stored data pointer from obj stored under key and return this same pointer, if actually there was data there, or NULL, if nothing was stored under that key.

Example:

int *my_data;
extern Evas_Object *obj;
my_data = evas_object_data_del(obj, "name_of_my_data");

Referenced by edje_edit_object_add().