Generic Object Functions
Evas

Functions that manipulate generic Evas objects. More...

## Topics

| Basic Object Manipulation
| Almost every evas object created will have some generic function used to manipulate it.
| Object Events
| Objects generate events when they are moved, resized, when their visibility change, when they are deleted and so on.
| Size Hints
| Objects may carry hints, so that another object that acts as a manager (see Smart Object Functions) may know how to properly position and resize its subordinate objects.
| Extra Object Manipulation
| Miscellaneous functions that also apply to any object, but are less used or not implemented by all objects.
| Finding Objects
| Functions that allows finding objects by their position, name or other properties.
| Object Method Interceptors
| Evas provides a way to intercept method calls.
| UV Mapping (Rotation, Perspective, 3D...)
| Evas allows different transformations to be applied to all kinds of objects.

## Typedefs

typedef Eo | Efl_Canvas_Object
| An Evas Object handle.
typedef Efl_Canvas_Object | Evas_Object
| An Evas Object handle.

## 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...

## Functions

EVAS_API Eina_Bool | evas_object_pointer_mode_set (Efl_Canvas_Object *obj, Evas_Object_Pointer_Mode pointer_mode)
| Low-level pointer behaviour.
EVAS_API Evas_Object_Pointer_Mode | evas_object_pointer_mode_get (const Efl_Canvas_Object *obj)
| Low-level pointer behaviour.
EVAS_API void | evas_object_clip_set (Efl_Canvas_Object *obj, Efl_Canvas_Object *clip)
| Clip one object to another.
EVAS_API Efl_Canvas_Object * | evas_object_clip_get (const Efl_Canvas_Object *obj)
| Get the object clipping `obj` (if any).
EVAS_API void | evas_object_repeat_events_set (Efl_Canvas_Object *obj, Eina_Bool repeat)
| Set whether an Evas object is to repeat events.
EVAS_API Eina_Bool | evas_object_repeat_events_get (const Efl_Canvas_Object *obj)
| Determine whether an object is set to repeat events.
EVAS_API void | evas_object_focus_set (Efl_Canvas_Object *obj, Eina_Bool focus)
| Indicates that this object is the keyboard event receiver on its canvas.
EVAS_API Eina_Bool | evas_object_focus_get (const Efl_Canvas_Object *obj)
| Indicates that this object is the keyboard event receiver on its canvas.
EVAS_API void | evas_object_precise_is_inside_set (Efl_Canvas_Object *obj, Eina_Bool precise)
| Set whether to use precise (usually expensive) point collision detection for a given Evas object.
EVAS_API Eina_Bool | evas_object_precise_is_inside_get (const Efl_Canvas_Object *obj)
| Determine whether an object is set to use precise point collision detection.
EVAS_API void | evas_object_propagate_events_set (Efl_Canvas_Object *obj, Eina_Bool propagate)
| Set whether events on a smart object's member should be propagated up to its parent.
EVAS_API Eina_Bool | evas_object_propagate_events_get (const Efl_Canvas_Object *obj)
| Retrieve whether an Evas object is set to propagate events.
EVAS_API void | evas_object_pass_events_set (Efl_Canvas_Object *obj, Eina_Bool pass)
| Set whether an Evas object is to pass (ignore) events.
EVAS_API Eina_Bool | evas_object_pass_events_get (const Efl_Canvas_Object *obj)
| Determine whether an object is set to pass (ignore) events.
EVAS_API void | evas_object_anti_alias_set (Efl_Canvas_Object *obj, Eina_Bool anti_alias)
| Sets whether or not the given Evas object is to be drawn anti-aliased.
EVAS_API Eina_Bool | evas_object_anti_alias_get (const Efl_Canvas_Object *obj)
| Retrieves whether or not the given Evas object is to be drawn anti_aliased.
EVAS_API Efl_Canvas_Object * | evas_object_smart_parent_get (const Efl_Canvas_Object *obj)
| Gets the parent smart object of a given Evas object, if it has one.
EVAS_API void | evas_object_paragraph_direction_set (Efl_Canvas_Object *obj, Evas_BiDi_Direction dir)
| This handles text paragraph direction of the given object.
EVAS_API Evas_BiDi_Direction | evas_object_paragraph_direction_get (const Efl_Canvas_Object *obj)
| This handles text paragraph direction of the given object.
EVAS_API Eina_Bool | evas_object_clipees_has (const Efl_Canvas_Object *obj)
| Test if any object is clipped by `obj`.
EVAS_API void | evas_object_move (Evas_Object *obj, Evas_Coord x, Evas_Coord y)
| Move the given Evas object to the given location inside its canvas' viewport.
EVAS_API void | evas_object_resize (Evas_Object *obj, Evas_Coord w, Evas_Coord h)
| Changes the size of the given Evas object.
EVAS_API Eina_Bool | evas_object_visible_get (const Evas_Object *obj)
| Retrieves whether or not the given Evas object is visible.
EVAS_API void | evas_object_size_hint_max_set (Evas_Object *obj, Evas_Coord w, Evas_Coord h)
| Sets the hints for an object's maximum size.
EVAS_API void | evas_object_size_hint_max_get (const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h)
| Retrieves the hints for an object's maximum size.
EVAS_API void | evas_object_size_hint_request_set (Evas_Object *obj, Evas_Coord w, Evas_Coord h)
| Sets the hints for an object's optimum size.
EVAS_API void | evas_object_size_hint_request_get (const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h)
| Retrieves the hints for an object's optimum size.
EVAS_API void | evas_object_size_hint_min_set (Evas_Object *obj, Evas_Coord w, Evas_Coord h)
| Sets the hints for an object's minimum size.
EVAS_API void | evas_object_clip_unset (Evas_Object *obj)
| Disable/cease clipping on a clipped `obj` object.
EVAS_API void | evas_object_size_hint_min_get (const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h)
| Retrieves the hints for an object's minimum size.
EVAS_API void | evas_object_size_hint_padding_set (Evas_Object *obj, Evas_Coord l, Evas_Coord r, Evas_Coord t, Evas_Coord b)
| Sets the hints for an object's padding space.
EVAS_API void | evas_object_size_hint_padding_get (const Evas_Object *obj, Evas_Coord *l, Evas_Coord *r, Evas_Coord *t, Evas_Coord *b)
| Retrieves the hints for an object's padding space.
EVAS_API void | evas_object_size_hint_weight_set (Evas_Object *obj, double x, double y)
| Sets the hints for an object's weight.
EVAS_API void | evas_object_size_hint_weight_get (const Evas_Object *obj, double *x, double *y)
| Retrieves the hints for an object's weight.
EVAS_API void | evas_object_size_hint_align_set (Evas_Object *obj, double x, double y)
| Sets the hints for an object's alignment.
EVAS_API void | evas_object_size_hint_align_get (const Evas_Object *obj, double *x, double *y)
| Retrieves the hints for on object's alignment.
EVAS_API void | evas_object_size_hint_aspect_set (Evas_Object *obj, Evas_Aspect_Control aspect, Evas_Coord w, Evas_Coord h)
| Sets the hints for an object's aspect ratio.
EVAS_API void | evas_object_size_hint_aspect_get (const Evas_Object *obj, Evas_Aspect_Control *aspect, Evas_Coord *w, Evas_Coord *h)
| Retrieves the hints for an object's aspect ratio.
EVAS_API void | evas_object_size_hint_display_mode_set (Evas_Object *obj, Evas_Display_Mode dispmode)
| Sets the hints for an object's disply mode,.
EVAS_API Evas_Display_Mode | evas_object_size_hint_display_mode_get (const Evas_Object *obj)
| Retrieves the hints for an object's display mode.
EVAS_API void | evas_object_layer_set (Evas_Object *obj, short l)
| Sets the layer of its canvas that the given object will be part of.
EVAS_API short | evas_object_layer_get (const Evas_Object *obj)
| Retrieves the layer of its canvas that the given object is part of.
EVAS_API Evas_Object * | evas_object_below_get (const Evas_Object *obj)
| Get the Evas object stacked right below `obj`.
EVAS_API Evas_Object * | evas_object_above_get (const Evas_Object *obj)
| Get the Evas object stacked right above `obj`.
EVAS_API void | evas_object_stack_below (Evas_Object *obj, Evas_Object *below)
| Stack `obj` immediately below `below`.
EVAS_API void | evas_object_raise (Evas_Object *obj)
| Raise `obj` to the top of its layer.
EVAS_API void | evas_object_stack_above (Evas_Object *obj, Evas_Object *above)
| Stack `obj` immediately above `above`.
EVAS_API void | evas_object_lower (Evas_Object *obj)
| Lower `obj` to the bottom of its layer.
EVAS_API 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".
EVAS_API const Eina_List * | evas_object_clipees_get (const Evas_Object *obj)
| Return a list of objects currently clipped by `obj`.
EVAS_API void | evas_object_render_op_set (Evas_Object *obj, Evas_Render_Op render_op)
| Sets the render mode to be used for compositing the Evas object.
EVAS_API 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.
EVAS_API Eina_Bool | evas_object_static_clip_get (const Evas_Object *obj)
| Get the "static clipper" hint flag for a given Evas object.
EVAS_API void | evas_object_scale_set (Evas_Object *obj, double scale)
| Sets the scaling factor for an Evas object.
EVAS_API double | evas_object_scale_get (const Evas_Object *obj)
| Retrieves the scaling factor for the given Evas object.
EVAS_API Eina_Bool | evas_object_pointer_inside_by_device_get (const Evas_Object *obj, Efl_Input_Device *dev)
| Returns whether the mouse pointer is logically inside the object.
EVAS_API Eina_Bool | evas_object_pointer_inside_get (const Evas_Object *obj)
| Returns whether the default mouse pointer is logically inside the object.
EVAS_API Eina_Bool | evas_object_pointer_coords_inside_get (const Evas_Object *eo_obj, int x, int y)
| Returns whether the coords are logically inside the object.
EVAS_API Evas * | evas_object_evas_get (const Eo *obj)
| Get the Evas to which this object belongs to.
EVAS_API void | evas_object_map_set (Evas_Object *obj, const Evas_Map *map)
| Set current object transformation map.
EVAS_API const Evas_Map * | evas_object_map_get (const Evas_Object *obj)
| Get current object transformation map.
EVAS_API void | evas_object_map_enable_set (Evas_Object *obj, Eina_Bool enabled)
| Enable or disable the map that is set.
EVAS_API Eina_Bool | evas_object_map_enable_get (const Evas_Object *obj)
| Whether the map is enabled or not.
EVAS_API void | evas_object_is_frame_object_set (Efl_Canvas_Object *obj, Eina_Bool is_frame)
| If `true` the object belongs to the window border decorations.
EVAS_API Eina_Bool | evas_object_is_frame_object_get (const Efl_Canvas_Object *obj)
| If `true` the object belongs to the window border decorations.
EVAS_API void | evas_object_freeze_events_set (Efl_Canvas_Object *obj, Eina_Bool freeze)
| Set whether an Evas object is to freeze (discard) events.
EVAS_API Eina_Bool | evas_object_freeze_events_get (const Efl_Canvas_Object *obj)
| Determine whether an object is set to freeze (discard) events.

## Detailed Description

Functions that manipulate generic Evas objects.

All Evas displaying units are Evas objects. One handles them all by means of the handle Evas_Object. Besides Evas treats their objects equally, they have types that define their specific behavior (and individual API).

Evas comes with a set of built-in object types:

- rectangle,
- line,
- polygon,
- text,
- textblock,
- textgrid and
- image.

These functions apply to any Evas object, whatever type they may have.

Note
  The built-in types that are most used are rectangles, text and images. In fact, with these one can create 2D interfaces of arbitrary complexity and EFL makes it easy.

## Typedef Documentation

## Efl_Canvas_Object

typedef Eo Efl_Canvas_Object

An Evas Object handle.

See also
  Evas_Object

## Enumeration Type Documentation

## Evas_Render_Op

enum Evas_Render_Op

How the object should be rendered to output.

Enumerator
EVAS_RENDER_BLEND | Default render operation: d = d*(1-sa) + s. The object will be merged onto the bottom objects using simple alpha compositing (a over b).
EVAS_RENDER_BLEND_REL | DEPRECATED. d = d*(1 - sa) + s*da
EVAS_RENDER_COPY | Copy mode, d = s. The object's pixels will replace everything that was below, effectively hiding them.
EVAS_RENDER_COPY_REL | DEPRECATED. d = s*da
EVAS_RENDER_ADD | DEPRECATED. d = d + s
EVAS_RENDER_ADD_REL | DEPRECATED. d = d + s*da
EVAS_RENDER_SUB | DEPRECATED. d = d - s
EVAS_RENDER_SUB_REL | DEPRECATED. d = d - s*da
EVAS_RENDER_TINT | DEPRECATED. d = d*s + d*(1 - sa) + s*(1 - da)
EVAS_RENDER_TINT_REL | DEPRECATED. d = d*(1 - sa + s)
EVAS_RENDER_MASK | DEPRECATED. d = d*sa. For masking support, please use Efl.Canvas.Object.clip_set or EDC "clip_to" instead.
EVAS_RENDER_MUL | DEPRECATED. d = d*s

## Function Documentation

## evas_object_pointer_mode_set()

EVAS_API Eina_Bool evas_object_pointer_mode_set | ( | Efl_Canvas_Object * | obj,
|  | Evas_Object_Pointer_Mode | pointer_mode )

Low-level pointer behaviour.

This function has a direct effect on event callbacks related to pointers (mouse, ...).

If the value is EVAS_OBJECT_POINTER_MODE_AUTO_GRAB (default), then when mouse is pressed down over this object, events will be restricted to it as source, mouse moves, for example, will be emitted even when the pointer goes outside this objects geometry.

If the value is EVAS_OBJECT_POINTER_MODE_NO_GRAB, then events will be emitted just when inside this object area.

The default value is EVAS_OBJECT_POINTER_MODE_AUTO_GRAB. See also: Efl.Canvas.Object.pointer_mode_by_device.get and Efl.Canvas.Object.pointer_mode_by_device.set Note: This function will only set/get the mode for the default pointer.

Parameters

  [in] | obj | The object.
  [in] | pointer_mode | Input pointer mode

Returns
  `true` if pointer behaviour was set, `false` otherwise

## evas_object_pointer_mode_get()

EVAS_API Evas_Object_Pointer_Mode evas_object_pointer_mode_get | ( | const Efl_Canvas_Object * | obj | ) |

Low-level pointer behaviour.

This function has a direct effect on event callbacks related to pointers (mouse, ...).

If the value is EVAS_OBJECT_POINTER_MODE_AUTO_GRAB (default), then when mouse is pressed down over this object, events will be restricted to it as source, mouse moves, for example, will be emitted even when the pointer goes outside this objects geometry.

If the value is EVAS_OBJECT_POINTER_MODE_NO_GRAB, then events will be emitted just when inside this object area.

The default value is EVAS_OBJECT_POINTER_MODE_AUTO_GRAB. See also: Efl.Canvas.Object.pointer_mode_by_device.get and Efl.Canvas.Object.pointer_mode_by_device.set Note: This function will only set/get the mode for the default pointer.

Parameters

  [in] | obj | The object.

Returns
  Input pointer mode

## evas_object_clip_set()

EVAS_API void evas_object_clip_set | ( | Efl_Canvas_Object * | obj,
|  | Efl_Canvas_Object * | clip )

Clip one object to another.

This function will clip the object `obj` to the area occupied by the object `clip`. This means the object `obj` will only be visible within the area occupied by the clipping object ($clip).

The color of the object being clipped will be multiplied by the color of the clipping one, so the resulting color for the former will be "RESULT = (OBJ * CLIP) / (255 * 255)", per color element (red, green, blue and alpha).

Clipping is recursive, so clipping objects may be clipped by others, and their color will in term be multiplied. You may not set up circular clipping lists (i.e. object 1 clips object 2, which clips object 1): the behavior of Evas is undefined in this case.

Objects which do not clip others are visible in the canvas as normal; those that clip one or more objects become invisible themselves, only affecting what they clip. If an object ceases to have other objects being clipped by it, it will become visible again.

The visibility of an object affects the objects that are clipped by it, so if the object clipping others is not shown (as in Efl.Gfx.Entity.visible), the objects clipped by it will not be shown either.

If `obj` was being clipped by another object when this function is called, it gets implicitly removed from the old clipper's domain and is made now to be clipped by its new clipper.

If `clip` is `null`, this call will disable clipping for the object i.e. its visibility and color get detached from the previous clipper. If it wasn't, this has no effect.

Note
  Only rectangle and image (masks) objects can be used as clippers. Anything else will result in undefined behaviour.

Parameters

  [in] | obj | The object.
  [in] | clip | The object to clip `obj` by.

Referenced by edje_edit_part_clip_to_set(), and edje_edit_part_del().

## evas_object_clip_get()

EVAS_API Efl_Canvas_Object * evas_object_clip_get | ( | const Efl_Canvas_Object * | obj | ) |

Get the object clipping `obj` (if any).

This function returns the object clipping `obj`. If `obj` is not being clipped at all, `null` is returned. The object `obj` must be a valid Evas_Object.

Parameters

  [in] | obj | The object.

Returns
  The object to clip `obj` by.

Referenced by edje_edit_part_clip_to_set().

## evas_object_repeat_events_set()

EVAS_API void evas_object_repeat_events_set | ( | Efl_Canvas_Object * | obj,
|  | Eina_Bool | repeat )

Set whether an Evas object is to repeat events.

If `repeat` is `true`, it will make events on `obj` to also be repeated for the next lower object in the objects' stack (see see Efl.Gfx.Stack.below).

If `repeat` is `false`, events occurring on `obj` will be processed only on it.

Parameters

  [in] | obj | The object.
  [in] | repeat | Whether `obj` is to repeat events ($true) or not ($false).

Referenced by edje_edit_part_repeat_events_set().

## evas_object_repeat_events_get()

EVAS_API Eina_Bool evas_object_repeat_events_get | ( | const Efl_Canvas_Object * | obj | ) |

Determine whether an object is set to repeat events.

Parameters

  [in] | obj | The object.

Returns
  Whether `obj` is to repeat events ($true) or not ($false).

## evas_object_focus_set()

EVAS_API void evas_object_focus_set | ( | Efl_Canvas_Object * | obj,
|  | Eina_Bool | focus )

Indicates that this object is the keyboard event receiver on its canvas.

Changing focus only affects where (key) input events go. There can be only one object focused at any time. If `focus` is `true`, `obj` will be set as the currently focused object and it will receive all keyboard events that are not exclusive key grabs on other objects. See also Efl.Canvas.Object.seat_focus_check, Efl.Canvas.Object.seat_focus_add, Efl.Canvas.Object.seat_focus_del.

Parameters

  [in] | obj | The object.
  [in] | focus | `true` when set as focused or `false` otherwise.

Referenced by elm_object_focus_set(), and evas_device_add_full().

## evas_object_focus_get()

EVAS_API Eina_Bool evas_object_focus_get | ( | const Efl_Canvas_Object * | obj | ) |

Indicates that this object is the keyboard event receiver on its canvas.

Changing focus only affects where (key) input events go. There can be only one object focused at any time. If `focus` is `true`, `obj` will be set as the currently focused object and it will receive all keyboard events that are not exclusive key grabs on other objects. See also Efl.Canvas.Object.seat_focus_check, Efl.Canvas.Object.seat_focus_add, Efl.Canvas.Object.seat_focus_del.

Parameters

  [in] | obj | The object.

Returns
  `true` when set as focused or `false` otherwise.

Referenced by elm_object_focus_get().

## evas_object_precise_is_inside_set()

EVAS_API void evas_object_precise_is_inside_set | ( | Efl_Canvas_Object * | obj,
|  | Eina_Bool | precise )

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

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.

Parameters

  [in] | obj | The object.
  [in] | precise | Whether to use precise point collision detection or not. The default value is false.

## evas_object_precise_is_inside_get()

EVAS_API Eina_Bool evas_object_precise_is_inside_get | ( | const Efl_Canvas_Object * | obj | ) |

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

Parameters

  [in] | obj | The object.

Returns
  Whether to use precise point collision detection or not. The default value is false.

## evas_object_propagate_events_set()

EVAS_API void evas_object_propagate_events_set | ( | Efl_Canvas_Object * | obj,
|  | Eina_Bool | propagate )

Set whether events on a smart object's member should be propagated up to its parent.

This function has no effect if `obj` is not a member of a smart object.

If `prop` is `true`, events occurring on this object will be propagated on to the smart object of which `obj` is a member. If `prop` is `false`, events occurring on this object will not be propagated on to the smart object of which `obj` is a member. The default value is `true`.

See also evas_object_repeat_events_set, evas_object_pass_events_set.

Parameters

  [in] | obj | The object.
  [in] | propagate | Whether to propagate events ($true) or not ($false).

Referenced by elm_scroller_propagate_events_set().

## evas_object_propagate_events_get()

EVAS_API Eina_Bool evas_object_propagate_events_get | ( | const Efl_Canvas_Object * | obj | ) |

Retrieve whether an Evas object is set to propagate events.

See also evas_object_repeat_events_get, evas_object_pass_events_get.

Parameters

  [in] | obj | The object.

Returns
  Whether to propagate events ($true) or not ($false).

References EINA_FALSE.

Referenced by elm_scroller_propagate_events_get().

## evas_object_pass_events_set()

EVAS_API void evas_object_pass_events_set | ( | Efl_Canvas_Object * | obj,
|  | Eina_Bool | pass )

Set whether an Evas object is to pass (ignore) events.

If `pass` is `true`, it will make events on `obj` to be ignored. They will be triggered on the next lower object (that is not set to pass events), instead (see Efl.Gfx.Stack.below).

If `pass` is `false` events will be processed on that object as normal.

See also evas_object_repeat_events_set, evas_object_propagate_events_set

Parameters

  [in] | obj | The object.
  [in] | pass | Whether `obj` is to pass events ($true) or not ($false).

Referenced by edje_edit_part_mouse_events_set().

## evas_object_pass_events_get()

EVAS_API Eina_Bool evas_object_pass_events_get | ( | const Efl_Canvas_Object * | obj | ) |

Determine whether an object is set to pass (ignore) events.

See also evas_object_repeat_events_get, evas_object_propagate_events_get.

Parameters

  [in] | obj | The object.

Returns
  Whether `obj` is to pass events ($true) or not ($false).

## evas_object_anti_alias_set()

EVAS_API void evas_object_anti_alias_set | ( | Efl_Canvas_Object * | obj,
|  | Eina_Bool | anti_alias )

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

Parameters

  [in] | obj | The object.
  [in] | anti_alias | `true` if the object is to be anti_aliased, `false` otherwise.

Referenced by edje_edit_part_anti_alias_set().

## evas_object_anti_alias_get()

EVAS_API Eina_Bool evas_object_anti_alias_get | ( | const Efl_Canvas_Object * | obj | ) |

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

Parameters

  [in] | obj | The object.

Returns
  `true` if the object is to be anti_aliased, `false` otherwise.

## evas_object_smart_parent_get()

EVAS_API Efl_Canvas_Object * evas_object_smart_parent_get | ( | const Efl_Canvas_Object * | obj | ) |

Gets the parent smart object of a given Evas object, if it has one.

This can be different from Efl.Object.parent because this one is used internally for rendering and the normal parent is what the user expects to be the parent.

Parameters

  [in] | obj | The object.

Returns
  The parent smart object of `obj` or `null`.

Since
  1.18

## evas_object_paragraph_direction_set()

EVAS_API void evas_object_paragraph_direction_set | ( | Efl_Canvas_Object * | obj,
|  | Evas_BiDi_Direction | dir )

This handles text paragraph direction of the given object.

Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is `inherit`.

Parameters

  [in] | obj | The object.
  [in] | dir | Paragraph direction for the given object.

## evas_object_paragraph_direction_get()

EVAS_API Evas_BiDi_Direction evas_object_paragraph_direction_get | ( | const Efl_Canvas_Object * | obj | ) |

This handles text paragraph direction of the given object.

Even if the given object is not textblock or text, its smart child objects can inherit the paragraph direction from the given object. The default paragraph direction is `inherit`.

Parameters

  [in] | obj | The object.

Returns
  Paragraph direction for the given object.

## evas_object_clipees_has()

EVAS_API Eina_Bool evas_object_clipees_has | ( | const Efl_Canvas_Object * | obj | ) |

Test if any object is clipped by `obj`.

Parameters

  [in] | obj | The object.

Returns
  `true` if any object is clipped by `obj`, `false` otherwise

Since
  1.8

References EINA_FALSE.

## evas_object_move()

EVAS_API void evas_object_move | ( | Evas_Object * | obj,
|  | Evas_Coord | x,
|  | Evas_Coord | y )

Move the given Evas object to the given location inside its canvas' viewport.

Parameters

  [in] | x | in
  [in] | y | in

References EINA_POSITION2D.

## evas_object_resize()

EVAS_API void evas_object_resize | ( | Evas_Object * | obj,
|  | Evas_Coord | w,
|  | Evas_Coord | h )

Changes the size of the given Evas object.

Parameters

  [in] | w | in
  [in] | h | in

References EINA_SIZE2D.

Referenced by ecore_evas_cursor_set().

## evas_object_size_hint_max_set()

EVAS_API void evas_object_size_hint_max_set | ( | Evas_Object * | obj,
|  | Evas_Coord | w,
|  | Evas_Coord | h )

Sets the hints for an object's maximum size.

This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

Values -1 will be treated as unset hint components, when queried by managers.

Note
  Smart objects (such as elementary) can have their own size hint policy. So calling this API may or may not affect the size of smart objects.

Parameters

  [in] | w | Integer to use as the maximum width hint.
  [in] | h | Integer to use as the maximum height hint.

References EINA_SIZE2D.

Referenced by edje_extern_object_max_size_set().

## evas_object_size_hint_max_get()

EVAS_API void evas_object_size_hint_max_get | ( | const Evas_Object * | obj,
|  | Evas_Coord * | w,
|  | Evas_Coord * | h )

Retrieves the hints for an object's maximum size.

These are hints on the maximum sizes `obj` should have. This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

Note
  Use `null` pointers on the hint components you're not interested in: they'll be ignored by the function.

Parameters

  [out] | w | Integer to use as the maximum width hint.
  [out] | h | Integer to use as the maximum height hint.

## evas_object_size_hint_request_set()

EVAS_API void evas_object_size_hint_request_set | ( | Evas_Object * | obj,
|  | Evas_Coord | w,
|  | Evas_Coord | h )

Sets the hints for an object's optimum size.

This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

Values 0 will be treated as unset hint components, when queried by managers.

Note
  Smart objects(such as elementary) can have their own size hint policy. So calling this API may or may not affect the size of smart objects.

Parameters

  [in] | w | Integer to use as the preferred width hint.
  [in] | h | Integer to use as the preferred height hint.

References EINA_UNLIKELY.

## evas_object_size_hint_request_get()

EVAS_API void evas_object_size_hint_request_get | ( | const Evas_Object * | obj,
|  | Evas_Coord * | w,
|  | Evas_Coord * | h )

Retrieves the hints for an object's optimum size.

These are hints on the optimum sizes `obj` should have. This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

Note
  Use `null` pointers on the hint components you're not interested in: they'll be ignored by the function.

Parameters

  [out] | w | Integer to use as the preferred width hint.
  [out] | h | Integer to use as the preferred height hint.

## evas_object_size_hint_min_set()

EVAS_API void evas_object_size_hint_min_set | ( | Evas_Object * | obj,
|  | Evas_Coord | w,
|  | Evas_Coord | h )

Sets the hints for an object's minimum size.

This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

Values 0 will be treated as unset hint components, when queried by managers.

Note
  Smart objects(such as elementary) can have their own size hint policy. So calling this API may or may not affect the size of smart objects.

Parameters

  [in] | w | Integer to use as the minimum width hint.
  [in] | h | Integer to use as the minimum height hint.

References EINA_SIZE2D.

Referenced by edje_extern_object_min_size_set().

## evas_object_clip_unset()

EVAS_API void evas_object_clip_unset | ( | Evas_Object * | obj | ) |

Disable/cease clipping on a clipped `obj` object.

This function disables clipping for the object `obj`, if it was already clipped, i.e., its visibility and color get detached from the previous clipper. If it wasn't, this has no effect. The object `obj` must be a valid Evas_Object.

See also evas_object_clip_set, evas_object_clipees_get and evas_object_clip_get.

## evas_object_size_hint_min_get()

EVAS_API void evas_object_size_hint_min_get | ( | const Evas_Object * | obj,
|  | Evas_Coord * | w,
|  | Evas_Coord * | h )

Retrieves the hints for an object's minimum size.

These are hints on the minimum sizes `obj` should have. This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

Note
  Use `null` pointers on the hint components you're not interested in: they'll be ignored by the function.

Parameters

  [out] | w | Integer to use as the minimum width hint.
  [out] | h | Integer to use as the minimum height hint.

## evas_object_size_hint_padding_set()

EVAS_API void evas_object_size_hint_padding_set | ( | Evas_Object * | obj,
|  | Evas_Coord | l,
|  | Evas_Coord | r,
|  | Evas_Coord | t,
|  | Evas_Coord | b )

Sets the hints for an object's padding space.

This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

Note
  Smart objects(such as elementary) can have their own size hint policy. So calling this API may or may not affect the size of smart objects.

Parameters

  [in] | l | Integer to specify left padding.
  [in] | r | Integer to specify right padding.
  [in] | t | Integer to specify top padding.
  [in] | b | Integer to specify bottom padding.

## evas_object_size_hint_padding_get()

EVAS_API void evas_object_size_hint_padding_get | ( | const Evas_Object * | obj,
|  | Evas_Coord * | l,
|  | Evas_Coord * | r,
|  | Evas_Coord * | t,
|  | Evas_Coord * | b )

Retrieves the hints for an object's padding space.

Padding is extra space an object takes on each of its delimiting rectangle sides, in canvas units.

This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

Note
  Use `null` pointers on the hint components you're not interested in: they'll be ignored by the function.

Parameters

  [out] | l | Integer to specify left padding.
  [out] | r | Integer to specify right padding.
  [out] | t | Integer to specify top padding.
  [out] | b | Integer to specify bottom padding.

## evas_object_size_hint_weight_set()

EVAS_API void evas_object_size_hint_weight_set | ( | Evas_Object * | obj,
|  | double | x,
|  | double | y )

Sets the hints for an object's weight.

This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

This is a hint on how a container object should resize a given child within its area. Containers may adhere to the simpler logic of just expanding the child object's dimensions to fit its own (see the EVAS_HINT_EXPAND helper weight macro) or the complete one of taking each child's weight hint as real weights to how much of its size to allocate for them in each axis. A container is supposed to, after normalizing the weights of its children (with weight hints), distribute the space it has to layout them by those factors – most weighted children get larger in this process than the least ones.

Note
  Default weight hint values are 0.0, for both axis.

Parameters

  [in] | x | Non-negative double value to use as horizontal weight hint.
  [in] | y | Non-negative double value to use as vertical weight hint.

## evas_object_size_hint_weight_get()

EVAS_API void evas_object_size_hint_weight_get | ( | const Evas_Object * | obj,
|  | double * | x,
|  | double * | y )

Retrieves the hints for an object's weight.

Accepted values are zero or positive values. Some users might use this hint as a boolean, but some might consider it as a proportion, see documentation of possible users, which in Evas are the box and table smart objects.

This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

Note
  Use `null` pointers on the hint components you're not interested in: they'll be ignored by the function.
  If `obj` is invalid, then the hint components will be set with 0.0.

Parameters

  [out] | x | Non-negative double value to use as horizontal weight hint.
  [out] | y | Non-negative double value to use as vertical weight hint.

## evas_object_size_hint_align_set()

EVAS_API void evas_object_size_hint_align_set | ( | Evas_Object * | obj,
|  | double | x,
|  | double | y )

Sets the hints for an object's alignment.

These are hints on how to align an object inside the boundaries of a container/manager. Accepted values are in the 0.0 to 1.0 range, with the special value EVAS_HINT_FILL used to specify "justify" or "fill" by some users. In this case, maximum size hints should be enforced with higher priority, if they are set. Also, any padding hint set on objects should add up to the alignment space on the final scene composition.

See documentation of possible users: in Evas, they are the box and table smart objects.

For the horizontal component, 0.0 means to the left, 1.0 means to the right. Analogously, for the vertical component, 0.0 to the top, 1.0 means to the bottom.

This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

Note
  Default alignment hint values are 0.5, for both axis.

Parameters

  [in] | x | Double, ranging from 0.0 to 1.0 or with the special value EVAS_HINT_FILL, to use as horizontal alignment hint.
  [in] | y | Double, ranging from 0.0 to 1.0 or with the special value EVAS_HINT_FILL, to use as vertical alignment hint.

## evas_object_size_hint_align_get()

EVAS_API void evas_object_size_hint_align_get | ( | const Evas_Object * | obj,
|  | double * | x,
|  | double * | y )

Retrieves the hints for on object's alignment.

This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

Note
  Use `null` pointers on the hint components you're not interested in: they'll be ignored by the function.
  If `obj` is invalid, then the hint components will be set with 0.5

Parameters

  [out] | x | Double, ranging from 0.0 to 1.0 or with the special value EVAS_HINT_FILL, to use as horizontal alignment hint.
  [out] | y | Double, ranging from 0.0 to 1.0 or with the special value EVAS_HINT_FILL, to use as vertical alignment hint.

## evas_object_size_hint_aspect_set()

EVAS_API void evas_object_size_hint_aspect_set | ( | Evas_Object * | obj,
|  | Evas_Aspect_Control | aspect,
|  | Evas_Coord | w,
|  | Evas_Coord | h )

Sets the hints for an object's aspect ratio.

This is not a size enforcement in any way, it's just a hint that should be used whenever appropriate.

If any of the given aspect ratio terms are 0, the object's container will ignore the aspect and scale `obj` to occupy the whole available area, for any given policy.

Note
  Smart objects(such as elementary) can have their own size hint policy. So calling this API may or may not affect the size of smart objects.

Parameters

  [in] | aspect | The policy/type of aspect ratio to apply to `obj`.
  [in] | w | Integer to use as aspect width ratio term.
  [in] | h | Integer to use as aspect height ratio term.

References EINA_SIZE2D.

Referenced by edje_extern_object_aspect_set().

## evas_object_size_hint_aspect_get()

EVAS_API void evas_object_size_hint_aspect_get | ( | const Evas_Object * | obj,
|  | Evas_Aspect_Control * | aspect,
|  | Evas_Coord * | w,
|  | Evas_Coord * | h )

Retrieves the hints for an object's aspect ratio.

The different aspect ratio policies are documented in the Evas_Aspect_Control type. A container respecting these size hints would resize its children accordingly to those policies.

For any policy, if any of the given aspect ratio terms are 0, the object's container should ignore the aspect and scale `obj` to occupy the whole available area. If they are both positive integers, that proportion will be respected, under each scaling policy.

Note
  Use `null` pointers on the hint components you're not interested in: they'll be ignored by the function.

Parameters

  [out] | aspect | The policy/type of aspect ratio to apply to `obj`.
  [out] | w | Integer to use as aspect width ratio term.
  [out] | h | Integer to use as aspect height ratio term.

## evas_object_size_hint_display_mode_set()

EVAS_API void evas_object_size_hint_display_mode_set | ( | Evas_Object * | obj,
|  | Evas_Display_Mode | dispmode )

Sets the hints for an object's disply mode,.

This is not a size enforcement in any way, it's just a hint that can be used whenever appropriate.

Parameters

  [in] | dispmode | Display mode hint.

References EINA_UNLIKELY.

## evas_object_size_hint_display_mode_get()

EVAS_API Evas_Display_Mode evas_object_size_hint_display_mode_get | ( | const Evas_Object * | obj | ) |

Retrieves the hints for an object's display mode.

These are hints on the display mode `obj`. This is not a size enforcement in any way, it's just a hint that can be used whenever appropriate. This mode can be used object's display mode like compress or expand.

Returns
  Display mode hint.

## evas_object_layer_set()

EVAS_API void evas_object_layer_set | ( | Evas_Object * | obj,
|  | short | l )

Sets the layer of its canvas that the given object will be part of.

If you don't use this function, you'll be dealing with an unique layer of objects, the default one. Additional layers are handy when you don't want a set of objects to interfere with another set with regard to stacking. Two layers are completely disjoint in that matter.

This is a low-level function, which you'd be using when something should be always on top, for example.

Warning
  Be careful, it doesn't make sense to change the layer of smart objects' children. Smart objects have a layer of their own, which should contain all their children objects.

See also
  evas_object_layer_get()

Parameters

  [in] | l | The number of the layer to place the object on. Must be between EVAS_LAYER_MIN and EVAS_LAYER_MAX.

## evas_object_layer_get()

EVAS_API short evas_object_layer_get | ( | const Evas_Object * | obj | ) |

Retrieves the layer of its canvas that the given object is part of.

Returns
  Number of its layer

See also
  evas_object_layer_set()

## evas_object_below_get()

EVAS_API Evas_Object * evas_object_below_get | ( | const Evas_Object * | obj | ) |

Get the Evas object stacked right below `obj`.

Returns
  the Evas_Object directly below `obj`, if any, or `NULL`, if none

This function will traverse layers in its search, if there are objects on layers below the one `obj` is placed at.

See also
  evas_object_layer_get()
  evas_object_layer_set()
  evas_object_below_get()

## evas_object_above_get()

EVAS_API Evas_Object * evas_object_above_get | ( | const Evas_Object * | obj | ) |

Get the Evas object stacked right above `obj`.

Returns
  the Evas_Object directly above `obj`, if any, or `NULL`, if none

This function will traverse layers in its search, if there are objects on layers above the one `obj` is placed at.

See also
  evas_object_layer_get()
  evas_object_layer_set()
  evas_object_below_get()

## evas_object_stack_below()

EVAS_API void evas_object_stack_below | ( | Evas_Object * | obj,
|  | Evas_Object * | below )

Stack `obj` immediately below `below`.

Objects, in a given canvas, are stacked in the order they get added to it. This means that, if they overlap, the highest ones will cover the lowest ones, in that order. This function is a way to change the stacking order for the objects.

This function is intended to be used with objects belonging to the same layer in a given canvas, otherwise it will fail (and accomplish nothing).

If you have smart objects on your canvas and `obj` is a member of one of them, then `below` must also be a member of the same smart object.

Similarly, if `obj` is not a member of a smart object, `below` must not be either.

See also
  evas_object_layer_get()
  evas_object_layer_set()
  evas_object_stack_below()

Parameters

  [in] | below | the object below which to stack

Referenced by edje_edit_part_restack_below(), and edje_edit_part_restack_part_below().

## evas_object_raise()

EVAS_API void evas_object_raise | ( | Evas_Object * | obj | ) |

Raise `obj` to the top of its layer.

`obj` will, then, be the highest one in the layer it belongs to. Object on other layers won't get touched.

See also
  evas_object_stack_above()
  evas_object_stack_below()
  evas_object_lower()

## evas_object_stack_above()

EVAS_API void evas_object_stack_above | ( | Evas_Object * | obj,
|  | Evas_Object * | above )

Stack `obj` immediately above `above`.

Objects, in a given canvas, are stacked in the order they get added to it. This means that, if they overlap, the highest ones will cover the lowest ones, in that order. This function is a way to change the stacking order for the objects.

This function is intended to be used with objects belonging to the same layer in a given canvas, otherwise it will fail (and accomplish nothing).

If you have smart objects on your canvas and `obj` is a member of one of them, then `above` must also be a member of the same smart object.

Similarly, if `obj` is not a member of a smart object, `above` must not be either.

See also
  evas_object_layer_get()
  evas_object_layer_set()
  evas_object_stack_below()

Parameters

  [in] | above | the object above which to stack

Referenced by edje_edit_part_restack_above(), edje_edit_part_restack_below(), edje_edit_part_restack_part_above(), and edje_edit_part_restack_part_below().

## evas_object_lower()

EVAS_API void evas_object_lower | ( | Evas_Object * | obj | ) |

Lower `obj` to the bottom of its layer.

`obj` will, then, be the lowest one in the layer it belongs to. Objects on other layers won't get touched.

See also
  evas_object_stack_above()
  evas_object_stack_below()
  evas_object_raise()

## evas_object_static_clip_set()

EVAS_API 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".

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 `false`.

Parameters

  [in] | is_static_clip | `true` if it's to be used as a static clipper, `false` otherwise.

## evas_object_clipees_get()

EVAS_API const Eina_List * evas_object_clipees_get | ( | const Evas_Object * | obj | ) |

Return a list of objects currently clipped by `obj`.

This returns the internal list handle that contains all objects clipped by the object `obj`. If none are clipped by it, the call returns `null`. This list is only valid until the clip list is changed and should be fetched again with another call to this function if any objects being clipped by this object are unclipped, clipped by a new object, deleted or get the clipper deleted. These operations will invalidate the list returned, so it should not be used anymore after that point. Any use of the list after this may have undefined results, possibly leading to crashes. The object `obj` must be a valid Evas_Object.

See also evas_object_clip_set, evas_object_clip_unset and evas_object_clip_get.

Returns
  A list of objects being clipped by `obj`.

References eina_list_append(), EINA_LIST_FOREACH, and eina_list_free().

## evas_object_render_op_set()

EVAS_API void evas_object_render_op_set | ( | Evas_Object * | obj,
|  | Evas_Render_Op | render_op )

Sets the render mode to be used for compositing the Evas object.

Note that only copy and blend modes are actually supported: - Evas_Render_Op::EVAS_RENDER_BLEND means the object will be merged on top of objects below it using simple alpha compositing. - Evas_Render_Op::EVAS_RENDER_COPY means this object's pixels will replace everything that is below, making this object opaque.

Please do not assume that Evas_Render_Op::EVAS_RENDER_COPY mode can be used to "poke" holes in a window (to see through it), as only the compositor can ensure that. Copy mode should only be used with otherwise opaque widgets, or inside non-window surfaces (eg. a transparent background inside an Ecore.Evas.Buffer).

Parameters

  [in] | render_op | One of the Evas_Render_Op values. Only blend (default) and copy modes are supported.

## evas_object_render_op_get()

EVAS_API 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.

Returns
  One of the Evas_Render_Op values. Only blend (default) and copy modes are supported.

## evas_object_static_clip_get()

EVAS_API Eina_Bool evas_object_static_clip_get | ( | const Evas_Object * | obj | ) |

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

Returns
  `true` if it's to be used as a static clipper, `false` otherwise.

References EINA_FALSE.

## evas_object_scale_set()

EVAS_API void evas_object_scale_set | ( | Evas_Object * | obj,
|  | double | scale )

Sets the scaling factor for an Evas object.

Does not affect all objects.

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.

Parameters

  [in] | obj | The object.
  [in] | scale | The scaling factor. 1.0 means no scaling, default size.

## evas_object_scale_get()

EVAS_API double evas_object_scale_get | ( | const Evas_Object * | obj | ) |

Retrieves the scaling factor for the given Evas object.

Parameters

  [in] | obj | The object.

Returns
  The scaling factor. 1.0 means no scaling, default size.

## evas_object_pointer_inside_by_device_get()

EVAS_API Eina_Bool evas_object_pointer_inside_by_device_get | ( | const Evas_Object * | obj,
|  | Efl_Input_Device * | dev )

Returns whether the mouse pointer is logically inside the object.

Parameters

  [in] | dev | The pointer device.

Returns
  `true` if the pointer is inside, `false` otherwise.

Since
  1.20

References EINA_FALSE, and EINA_TRUE.

Referenced by evas_object_pointer_inside_get().

## evas_object_pointer_inside_get()

EVAS_API Eina_Bool evas_object_pointer_inside_get | ( | const Evas_Object * | obj | ) |

Returns whether the default mouse pointer is logically inside the object.

When this function is called it will return a value of either `false` or `true`, depending on if event_feed_mouse_in or event_feed_mouse_out have been called to feed in a mouse enter event into the object.

A return value of `true` indicates the mouse is logically inside the object, and `false` implies it is logically outside the object.

If `e` is not a valid object, the return value is undefined.

Returns
  `true` if the mouse pointer is inside the object, `false` otherwise

References evas_object_pointer_inside_by_device_get().

## evas_object_pointer_coords_inside_get()

EVAS_API Eina_Bool evas_object_pointer_coords_inside_get | ( | const Evas_Object * | eo_obj,
|  | int | x,
|  | int | y )

Returns whether the coords are logically inside the object.

When this function is called it will return a value of either `false` or `true`, depending on if the coords are inside the object's current geometry.

A return value of `true` indicates the position is logically inside the object, and `false` implies it is logically outside the object.

If `e` is not a valid object, the return value is undefined.

Parameters

  [in] | x | The canvas-relative x coordinate.
  [in] | y | The canvas-relative y coordinate.

Returns
  `true` if the coords are inside the object, `false` otherwise

References EINA_POSITION2D.

## evas_object_evas_get()

EVAS_API Evas * evas_object_evas_get | ( | const Eo * | obj | ) |

Get the Evas to which this object belongs to.

The object may be an evas object, an elementary object or window, or an evas 3D / VG object.

References EVAS_CANVAS_CLASS.

Referenced by edje_perspective_global_set(), elm_access_action(), elm_cache_all_flush(), elm_cnp_clipboard_selection_has_owner(), elm_cnp_selection_get(), elm_cnp_selection_set(), elm_config_font_hint_type_set(), elm_drag_start(), elm_object_cnp_selection_clear(), elm_transit_go(), elm_win_cocoa_window_get(), elm_win_win32_window_get(), elm_win_window_id_get(), elm_win_wl_window_get(), emotion_file_meta_artwork_get(), and evas_textblock_cursor_visible_range_get().

## evas_object_map_set()

EVAS_API void evas_object_map_set | ( | Evas_Object * | obj,
|  | const Evas_Map * | map )

Set current object transformation map.

This sets the map on a given object. It is copied from the `map` pointer, so there is no need to keep the `map` object if you don't need it anymore.

A map is a set of 4 points which have canvas x, y coordinates per point, with an optional z point value as a hint for perspective correction, if it is available. As well each point has u and v coordinates. These are like "texture coordinates" in OpenGL in that they define a point in the source image that is mapped to that map vertex/point. The u corresponds to the x coordinate of this mapped point and v, the y coordinate. Note that these coordinates describe a bounding region to sample.

Note
  The map points a uv coordinates match the image geometry. If the `map` parameter is `null`, the stored map will be freed and geometry prior to enabling/setting a map will be restored.

Parameters

  [in] | map | The map.

References EINA_COW_WRITE_BEGIN, EINA_COW_WRITE_END, and EINA_TRUE.

## evas_object_map_get()

EVAS_API const Evas_Map * evas_object_map_get | ( | const Evas_Object * | obj | ) |

Get current object transformation map.

This returns the current internal map set on the indicated object. It is intended for read-only access and is only valid as long as the object is not deleted or the map on the object is not changed.

Returns
  The map.

## evas_object_map_enable_set()

EVAS_API void evas_object_map_enable_set | ( | Evas_Object * | obj,
|  | Eina_Bool | enabled )

Enable or disable the map that is set.

Enable or disable the use of map for the object `obj`. On enable, the object geometry will be saved, and the new geometry will change (position and size) to reflect the map geometry set.

If the object doesn't have a map set (with evas_object_map_set), the initial geometry will be undefined. It is advised to always set a map to the object first, and then call this function to enable its use.

Parameters

  [in] | enabled | Enabled state.

## evas_object_map_enable_get()

EVAS_API Eina_Bool evas_object_map_enable_get | ( | const Evas_Object * | obj | ) |

Whether the map is enabled or not.

Parameters

  [in] | obj | The evas object

Returns
  The value of `enabled` as passed to evas_object_map_enable_set().

See also
  evas_object_map_enable_set

References EINA_FALSE.

## evas_object_is_frame_object_set()

EVAS_API void evas_object_is_frame_object_set | ( | Efl_Canvas_Object * | obj,
|  | Eina_Bool | is_frame )

If `true` the object belongs to the window border decorations.

This will be `false` by default, and should be `false` for all objects created by the application, unless swallowed in some very specific parts of the window.

It is very unlikely that an application needs to call this manually, as the window will handle this feature automatically.

Parameters

  [in] | obj | The object.
  [in] | is_frame | `true` if the object is a frame, `false` otherwise

Since
  1.2

## evas_object_is_frame_object_get()

EVAS_API Eina_Bool evas_object_is_frame_object_get | ( | const Efl_Canvas_Object * | obj | ) |

If `true` the object belongs to the window border decorations.

This will be `false` by default, and should be `false` for all objects created by the application, unless swallowed in some very specific parts of the window.

It is very unlikely that an application needs to call this manually, as the window will handle this feature automatically.

Parameters

  [in] | obj | The object.

Returns
  `true` if the object is a frame, `false` otherwise

Since
  1.2

## evas_object_freeze_events_set()

EVAS_API void evas_object_freeze_events_set | ( | Efl_Canvas_Object * | obj,
|  | Eina_Bool | freeze )

Set whether an Evas object is to freeze (discard) events.

If `freeze` is `true`, it will force events on `obj` to be discarded. Unlike evas_object_pass_events_set, events will not be passed to next lower object. This API can be used for blocking events while `obj` is in transition.

If `freeze` is `false`, events will be processed on that object as normal.

Warning
  If you block only key/mouse up events with this API, you can't be sure of the state of any objects that have only key/mouse down events.

Parameters

  [in] | obj | The object.
  [in] | freeze | Pass when `obj` is to freeze events ($true) or not ($false).

Since
  1.1

References EINA_SAFETY_ON_NULL_RETURN.

Referenced by elm_transit_event_enabled_set(), elm_transit_go(), and elm_transit_object_add().

## evas_object_freeze_events_get()

EVAS_API Eina_Bool evas_object_freeze_events_get | ( | const Efl_Canvas_Object * | obj | ) |

Determine whether an object is set to freeze (discard) events.

Parameters

  [in] | obj | The object.

Returns
  Pass when `obj` is to freeze events ($true) or not ($false).

Since
  1.1

References EINA_UNUSED.