Public Member Functions | Static Public Member Functions
evas::object Struct Reference

Class object. More...

Public Member Functions

 object (Eo *eo)
 Eo Constructor. More...
 
 object (std::nullptr_t)
 nullptr_t Constructor. More...
 
 object (object const &other)
 Copy Constructor.
 
bool clipees_has () const
 Test if any object is clipped by obj. More...
 
bool key_grab (::efl::eina::string_view keyname_, Evas_Modifier_Mask modifiers_, Evas_Modifier_Mask not_modifiers_, bool exclusive_) const
 Requests keyname key events be directed to obj. More...
 
bool smart_type_check (::efl::eina::string_view type_) const
 Checks whether a given smart object or any of its smart object parents is of a given smart class. More...
 
::evas::object name_child_find (::efl::eina::string_view name_, int recurse_) const
 Retrieves the object from children of the given object with the given name. More...
 
void key_ungrab (::efl::eina::string_view keyname_, Evas_Modifier_Mask modifiers_, Evas_Modifier_Mask not_modifiers_) const
 Removes the grab on keyname key events by obj. More...
 
void clip_unset () const
 Disable/cease clipping on a clipped obj object. More...
 
void smart_move_children_relative (Evas_Coord dx_, Evas_Coord dy_) const
 Moves all children objects of a given smart object relative to a given offset. More...
 
bool smart_type_check_ptr (::efl::eina::string_view type_) const
 Checks whether a given smart object or any of its smart object parents is of a given smart class, using pointer comparison. More...
 
void size_hint_max_get (Evas_Coord *w_, Evas_Coord *h_) const
 Retrieves the hints for an object's maximum size. More...
 
void size_hint_max_set (Evas_Coord w_, Evas_Coord h_) const
 Sets the hints for an object's maximum size. More...
 
void size_hint_request_get (Evas_Coord *w_, Evas_Coord *h_) const
 Retrieves the hints for an object's optimum size. More...
 
void size_hint_request_set (Evas_Coord w_, Evas_Coord h_) const
 Sets the hints for an object's optimum size. More...
 
::efl::eina::string_view type_get () const
 Retrieves the type of the given Evas object. More...
 
void type_set (::efl::eina::string_view type_) const
 Sets the type of the given Evas object.
 
void size_hint_min_get (Evas_Coord *w_, Evas_Coord *h_) const
 Retrieves the hints for an object's minimum size. More...
 
void size_hint_min_set (Evas_Coord w_, Evas_Coord h_) const
 Sets the hints for an object's minimum size. More...
 
Evas_Object_Pointer_Mode pointer_mode_get () const
 Determine how pointer will behave. More...
 
void pointer_mode_set (Evas_Object_Pointer_Mode pointer_mode_) const
 Set pointer behavior. More...
 
Evas_Render_Op render_op_get () const
 Retrieves the current value of the operation used for rendering the Evas object. More...
 
void render_op_set (Evas_Render_Op render_op_) const
 Sets the render_op to be used for rendering the Evas object.
 
bool freeze_events_get () const
 Determine whether an object is set to freeze (discard) events. More...
 
void freeze_events_set (bool freeze_) const
 Set whether an Evas object is to freeze (discard) events. More...
 
const Evas_Mapmap_get () const
 Get current object transformation map. More...
 
void map_set (const Evas_Map *map_) const
 Set current object transformation map. More...
 
void size_hint_aspect_get (Evas_Aspect_Control *aspect_, Evas_Coord *w_, Evas_Coord *h_) const
 Retrieves the hints for an object's aspect ratio. More...
 
void size_hint_aspect_set (Evas_Aspect_Control aspect_, Evas_Coord w_, Evas_Coord h_) const
 Sets the hints for an object's aspect ratio. More...
 
::evas::object clip_get () const
 Get the object clipping obj (if any). More...
 
void clip_set (::evas::object clip_) const
 Clip one object to another. More...
 
void size_hint_padding_get (Evas_Coord *l_, Evas_Coord *r_, Evas_Coord *t_, Evas_Coord *b_) const
 Retrieves the hints for an object's padding space. More...
 
void size_hint_padding_set (Evas_Coord l_, Evas_Coord r_, Evas_Coord t_, Evas_Coord b_) const
 Sets the hints for an object's padding space. More...
 
bool repeat_events_get () const
 Determine whether an object is set to repeat events. More...
 
void repeat_events_set (bool repeat_) const
 Set whether an Evas object is to repeat events. More...
 
void size_hint_weight_get (double *x_, double *y_) const
 Retrieves the hints for an object's weight. More...
 
void size_hint_weight_set (double x_, double y_) const
 Sets the hints for an object's weight. More...
 
::efl::eina::string_view name_get () const
 Retrieves the name of the given Evas object. More...
 
void name_set (::efl::eina::string_view name_) const
 Sets the name of the given Evas object to the given name. More...
 
double scale_get () const
 Retrieves the scaling factor for the given Evas object. More...
 
void scale_set (double scale_) const
 Sets the scaling factor for an Evas object. More...
 
bool static_clip_get () const
 Get the "static clipper" hint flag for a given Evas object. More...
 
void static_clip_set (bool is_static_clip_) const
 Set a hint flag on the given Evas object that it's used as a "static clipper". More...
 
bool focus_get () const
 Retrieve whether an object has the focus. More...
 
void focus_set (bool focus_) const
 Sets or unsets a given object as the currently focused one on its canvas. More...
 
bool is_frame_object_get () const
 
void is_frame_object_set (bool is_frame_) const
 
bool map_enable_get () const
 Get the map enabled state. More...
 
void map_enable_set (bool enabled_) const
 Enable or disable the map that is set. More...
 
bool precise_is_inside_get () const
 Determine whether an object is set to use precise point collision detection. More...
 
void precise_is_inside_set (bool precise_) const
 Set whether to use precise (usually expensive) point collision detection for a given Evas object. More...
 
void size_hint_align_get (double *x_, double *y_) const
 Retrieves the hints for on object's alignment. More...
 
void size_hint_align_set (double x_, double y_) const
 Sets the hints for an object's alignment. More...
 
bool propagate_events_get () const
 Retrieve whether an Evas object is set to propagate events. More...
 
void propagate_events_set (bool propagate_) const
 Set whether events on a smart object's member should get propagated up to its parent. More...
 
bool pass_events_get () const
 Determine whether an object is set to pass (ignore) events. More...
 
void pass_events_set (bool pass_) const
 Set whether an Evas object is to pass (ignore) events. More...
 
bool anti_alias_get () const
 Retrieves whether or not the given Evas object is to be drawn anti_aliased. More...
 
void anti_alias_set (bool anti_alias_) const
 Sets whether or not the given Evas object is to be drawn anti-aliased.
 
void * smart_data_get () const
 Retrieve user data stored on a given smart object. More...
 
::evas::object smart_clipped_clipper_get () const
 Get the clipper object for the given clipped smart object. More...
 
::efl::eina::crange_list< ::evas::objectclipees_get () const
 Return a list of objects currently clipped by obj. More...
 
::evas::object smart_parent_get () const
 Gets the parent smart object of a given Evas object, if it has one. More...
 
Evas_Display_Mode size_hint_display_mode_get () const
 Retrieves the hints for an object's display mode. More...
 
void size_hint_display_mode_set (Evas_Display_Mode dispmode_) const
 Sets the hints for an object's disply mode. More...
 
bool no_render_get () const
 Returns the state of the "no-render" flag, which means, when true, that an object should never be rendered on the canvas. More...
 
void no_render_set (bool enable_) const
 Disable all rendering on the canvas. More...
 
template<typename F >
::efl::eo::signal_connection callback_callback_add_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_callback_add_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_callback_del_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_callback_del_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_changed_size_hints_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_changed_size_hints_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_del_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_del_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_focus_in_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_focus_in_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_focus_out_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_focus_out_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_free_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_free_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_hide_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_hide_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_hold_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_hold_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_image_preloaded_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_image_preloaded_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_image_resize_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_image_resize_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_image_unloaded_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_image_unloaded_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_key_down_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_key_down_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_key_up_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_key_up_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_mouse_down_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_mouse_down_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_mouse_in_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_mouse_in_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_mouse_move_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_mouse_move_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_mouse_out_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_mouse_out_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_mouse_up_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_mouse_up_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_mouse_wheel_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_mouse_wheel_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_move_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_move_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_multi_down_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_multi_down_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_multi_move_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_multi_move_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_multi_up_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_multi_up_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_resize_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_resize_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_restack_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_restack_call (T *info)
 
template<typename F >
::efl::eo::signal_connection callback_show_add (F &&callback_,::efl::eo::callback_priority priority_=::efl::eo::callback_priorities::default_)
 
template<typename T >
void callback_show_call (T *info)
 
 object (::efl::eo::parent_type _p)
 Constructs a new evas::object object. More...
 
- Public Member Functions inherited from efl::eo::concrete
 concrete (Eo *eo)
 Class constructor. More...
 
 concrete ()
 Default constructor. More...
 
 ~concrete ()
 Class destructor.
 
 concrete (concrete const &other)
 
 concrete (concrete &&other)
 
concreteoperator= (concrete const &other)
 Assignment operator.
 
concreteoperator= (concrete &&other)
 
Eo_eo_ptr () const
 Return a pointer to the EO Object stored in this instance. More...
 
Eo_release ()
 Releases the reference from this concrete object and return the pointer to the EO Object stored in this instance. More...
 
void _reset (Eo *_ptr=nullptr)
 Reset the current pointer to reference a new Eo object.
 
int ref_get () const
 Get the reference count of this object. More...
 
void parent_set (concrete parent)
 Set the parent of this object. More...
 
eina::optional< concreteparent_get ()
 Get the parent of this object. More...
 
Eo_Dbg_Info dbg_info_get ()
 Get debug information of this object. More...
 
 operator bool () const
 

Static Public Member Functions

static Eo_Class const * _eo_class ()
 

Additional Inherited Members

- Protected Attributes inherited from efl::eo::concrete
Eo_eo_raw
 The opaque EO Object.
 

Detailed Description

Class object.

Constructor & Destructor Documentation

evas::object::object ( ::efl::eo::parent_type  _p)
inlineexplicit

Constructs a new evas::object object.

Constructs a new evas::object object. If you want this object to be a child of another Eo object, use an efl::eo::parent expression, like the example.

Example:

evas::object my_object(efl::eo::parent = parent_object);
See also
object(Eo* eo)
evas::object::object ( Eo eo)
inlineexplicit

Eo Constructor.

Constructs the object from an Eo* pointer stealing its ownership.

Parameters
eoThe Eo object pointer.
evas::object::object ( std::nullptr_t  )
inlineexplicit

nullptr_t Constructor.

Constructs an empty (null) object.

Member Function Documentation

bool evas::object::clipees_has ( ) const

Test if any object is clipped by obj.

Returns
EINA_TRUE if obj clip any object.
Since
1.8
bool evas::object::key_grab ( ::efl::eina::string_view  keyname_,
Evas_Modifier_Mask  modifiers_,
Evas_Modifier_Mask  not_modifiers_,
bool  exclusive_ 
) const

Requests keyname key events be directed to obj.

Returns
EINA_TRUE, if the call succeeded, EINA_FALSE otherwise.

Key grabs allow one or more objects to receive key events for specific key strokes even if other objects have focus. Whenever a key is grabbed, only the objects grabbing it will get the events for the given keys.

keyname is a platform dependent symbolic name for the key pressed (see Key Input Functions for more information).

modifiers and not_modifiers are bit masks of all the modifiers that must and mustn't, respectively, be pressed along with keyname key in order to trigger this new key grab. Modifiers can be things such as Shift and Ctrl as well as user defined types via evas_key_modifier_add(). Retrieve them with evas_key_modifier_mask_get() or use 0 for empty masks.

exclusive will make the given object the only one permitted to grab the given key. If given EINA_TRUE, subsequent calls on this function with different obj arguments will fail, unless the key is ungrabbed again.

Example code follows.

if (d.focus)
{
evas_object_focus_set(d.bg, EINA_FALSE);
fprintf(stdout, "Focused object is now %s\n",
evas_focus_get(d.canvas) ?
"still valid! Something went wrong." : "none.");
ret = evas_object_key_grab(d.bg, "a", 0, 0, EINA_TRUE);
if (!ret)
{
fprintf(stdout, "Something went wrong with key grabs.\n");
goto c_end;
}
ret = evas_object_key_grab(d.bg, "c", 0, 0, EINA_TRUE);
if (!ret)
{
fprintf(stdout, "Something went wrong with key grabs.\n");
goto c_end;
}
ret = evas_object_key_grab(d.bg, "d", 0, 0, EINA_TRUE);
if (!ret)
{
fprintf(stdout, "Something went wrong with key grabs.\n");
goto c_end;
}
ret = evas_object_key_grab(d.bg, "f", 0, 0, EINA_TRUE);
if (!ret)
{
fprintf(stdout, "Something went wrong with key grabs.\n");
goto c_end;
}
ret = evas_object_key_grab(d.bg, "p", 0, 0, EINA_TRUE);
if (!ret)
{
fprintf(stdout, "Something went wrong with key grabs.\n");
goto c_end;
}
ret = evas_object_key_grab(d.bg, "o", mask, 0, EINA_TRUE);
if (!ret)
{
fprintf(stdout, "Something went wrong with key grabs.\n");
goto c_end;
}
ret = evas_object_key_grab(d.bg, "h", 0, 0, EINA_TRUE);
if (!ret)
{
fprintf(stdout, "Something went wrong with key grabs.\n");
goto c_end;
}
}
else /* got here by key grabs */

See the full example here.

Warning
Providing impossible modifier sets creates undefined behavior
See also
evas_object_key_ungrab
evas_object_focus_set
evas_object_focus_get
evas_focus_get
evas_key_modifier_add
Parameters
keynamethe key to request events for.
modifiersa mask of modifiers that must be present to trigger the event.
not_modifiersa mask of modifiers that must not be present to trigger the event.
exclusiverequest that the obj is the only object receiving the keyname events.
void evas::object::key_ungrab ( ::efl::eina::string_view  keyname_,
Evas_Modifier_Mask  modifiers_,
Evas_Modifier_Mask  not_modifiers_ 
) const

Removes the grab on keyname key events by obj.

Removes a key grab on obj if keyname, modifiers, and not_modifiers match.

Example code follows.

else /* got here by key grabs */
{
evas_object_key_ungrab(d.bg, "a", 0, 0);
evas_object_key_ungrab(d.bg, "c", 0, 0);
evas_object_key_ungrab(d.bg, "d", 0, 0);
evas_object_key_ungrab(d.bg, "f", 0, 0);
evas_object_key_ungrab(d.bg, "p", 0, 0);
evas_object_key_ungrab(d.bg, "o", mask, 0);
evas_object_key_ungrab(d.bg, "h", 0, 0);
evas_object_focus_set(d.bg, EINA_TRUE);
}

See the full example here.

See also
evas_object_key_grab
evas_object_focus_set
evas_object_focus_get
evas_focus_get
Parameters
keynamethe key the grab is set for.
modifiersa mask of modifiers that must be present to trigger the event.
not_modifiersa mask of modifiers that must not not be present to trigger the event.
void evas::object::clip_unset ( ) const

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() (for an example), evas_object_clipees_get() and evas_object_clip_get().

void evas::object::smart_move_children_relative ( Evas_Coord  dx_,
Evas_Coord  dy_ 
) const

Moves all children objects of a given smart object relative to a given offset.

This will make each of obj object's children to move, from where they before, with those delta values (offsets) on both directions.

Note
This is most useful on custom smart move() functions.
Clipped smart objects already make use of this function on their move() smart function definition.
Parameters
dxhorizontal offset (delta).
dyvertical offset (delta).
void evas::object::size_hint_max_get ( Evas_Coord w_,
Evas_Coord h_ 
) const

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.
See also
evas_object_size_hint_max_set()
void evas::object::size_hint_max_set ( Evas_Coord  w_,
Evas_Coord  h_ 
) const

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.

Example:

evas_object_size_hint_max_set(
rect, r_data->max_ptr->w, r_data->max_ptr->h);
fprintf(stdout, "Changing max. size hints for %s rect. to (%d, %d)\n",
name, r_data->max_ptr->w, r_data->max_ptr->h);
return;

In this example the maximum size hints change the behavior of an Evas box when layouting its children. See the full example.

See also
evas_object_size_hint_max_get()
void evas::object::size_hint_request_get ( Evas_Coord w_,
Evas_Coord h_ 
) const

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.
See also
evas_object_size_hint_request_set()
void evas::object::size_hint_request_set ( Evas_Coord  w_,
Evas_Coord  h_ 
) const

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.
See also
evas_object_size_hint_request_get()
::efl::eina::string_view evas::object::type_get ( ) const

Retrieves the type of the given Evas object.

Returns
The type of the object.

For Evas' builtin types, the return strings will be one of:

  • "rectangle",
  • "line",
  • "polygon",
  • "text",
  • "textblock" and
  • "image".

For Evas smart objects (see Smart Functions), the name of the smart class itself is returned on this call. For the built-in smart objects, these names are:

  • "EvasObjectSmartClipped", for the clipped smart object
  • "Evas_Object_Box", for the box object and
  • "Evas_Object_Table", for the table object.

Example:

d.img = evas_object_image_filled_add(d.canvas);
evas_object_image_file_set(d.img, img_path, NULL);
err = evas_object_image_load_error_get(d.img);
if (err != EVAS_LOAD_ERROR_NONE)
{
goto panic;
}
else
{
evas_object_move(d.img, 0, 0);
evas_object_resize(d.img, WIDTH, HEIGHT);
fprintf(stdout, "Image object added, type is: %s\n",
evas_object_type_get(d.img));
}
/* border on the image's clipper, here just to emphasize its position */

See the full example.

void evas::object::size_hint_min_get ( Evas_Coord w_,
Evas_Coord h_ 
) const

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.
See also
evas_object_size_hint_min_set() for an example
void evas::object::size_hint_min_set ( Evas_Coord  w_,
Evas_Coord  h_ 
) const

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.

Example:

evas_object_size_hint_min_set(
rect, r_data->min_ptr->w, r_data->min_ptr->h);
fprintf(stdout, "Changing min. size hints for %s rect. to (%d, %d)\n",
name, r_data->min_ptr->w, r_data->min_ptr->h);
return;

In this example the minimum size hints change the behavior of an Evas box when layouting its children. See the full example.

See also
evas_object_size_hint_min_get()
bool evas::object::freeze_events_get ( ) const

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

Returns
freeze whether obj is set to freeze events (EINA_TRUE) or not (EINA_FALSE)
See also
evas_object_freeze_events_set()
evas_object_pass_events_get()
evas_object_repeat_events_get()
evas_object_propagate_events_get()
Since
1.1
void evas::object::freeze_events_set ( bool  freeze_) const

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

If freeze is EINA_TRUE, it will make 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 on transiting.

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

Warning
If you block only key/mouse up events with this API, we won't guarantee the state of the object, that only had key/mouse down events, will be.
See also
evas_object_freeze_events_get()
evas_object_pass_events_set()
evas_object_repeat_events_set()
evas_object_propagate_events_set()
Since
1.1
const Evas_Map* evas::object::map_get ( ) const

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. If you wish to modify the map and set it back do the following:

const Evas_Map *m = evas_object_map_get(obj);
evas_map_util_rotate(m2, 30.0, 0, 0);
evas_object_map_set(obj, m2);
Returns
map reference to map in use. This is an internal data structure, so do not modify it.
See also
evas_object_map_set()
void evas::object::map_set ( const Evas_Map map_) const

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. If you have a 200x100 source image and want to display it at 200x100 with proper pixel precision, then do:

evas_map_point_coord_set(m, 0, 0, 0, 0);
evas_map_point_coord_set(m, 1, 200, 0, 0);
evas_map_point_coord_set(m, 2, 200, 100, 0);
evas_map_point_coord_set(m, 3, 0, 100, 0);
evas_object_map_set(obj, m);

Note that 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.

See also
evas_map_new()
void evas::object::size_hint_aspect_get ( Evas_Aspect_Control aspect_,
Evas_Coord w_,
Evas_Coord h_ 
) const

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.

These images illustrate some of the Evas_Aspect_Control policies:

any-policy.png
aspect-control-none-neither.png
aspect-control-both.png
aspect-control-horizontal.png

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.

Example:

if (strcmp(ev->key, "c") == 0) /* cycle aspect control on obj */
{
Evas_Coord w, h;
evas_object_size_hint_aspect_get(d.rect, &aspect, &w, &h);
aspect = (aspect + 1) % 5;
evas_object_size_hint_aspect_set(d.rect, aspect, w, h);
fprintf(stdout, "Changing aspect control to %s\n",
_get_aspect_name(aspect));
return;
}

See the full example.

See also
evas_object_size_hint_aspect_set()
void evas::object::size_hint_aspect_set ( Evas_Aspect_Control  aspect_,
Evas_Coord  w_,
Evas_Coord  h_ 
) const

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.
See also
evas_object_size_hint_aspect_get() for more information.
::evas::object evas::object::clip_get ( ) const

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.

See also evas_object_clip_set(), evas_object_clip_unset() and evas_object_clipees_get().

Example:

if (evas_object_clip_get(d.img) == d.clipper)
{
evas_object_clip_unset(d.img);
fprintf(stdout, "off\n");
}
else
{
evas_object_clip_set(d.img, d.clipper);
fprintf(stdout, "on\n");
}
return;

See the full example.

void evas::object::clip_set ( ::evas::object  clip_) const

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 evas_object_show()), 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.

The following figure illustrates some clipping in Evas:

clipping.png
Note
At the moment the only objects that can validly be used to clip other objects are rectangle objects. All other object types are invalid and the result of using them is undefined. The clip object clip must be a valid object, but can also be NULL, in which case the effect of this function is the same as calling evas_object_clip_unset() on the obj object.

Example:

/* solid white clipper (note that it's the default color for a
* rectangle) - it won't change clippees' colors, then (multiplying
* by 255) */
d.clipper = evas_object_rectangle_add(d.canvas);
evas_object_move(d.clipper, WIDTH / 4, HEIGHT / 4);
evas_object_resize(d.clipper, WIDTH / 2, HEIGHT / 2);
evas_object_clip_set(d.img, d.clipper);
evas_object_show(d.clipper);

See the full example.

void evas::object::size_hint_padding_get ( Evas_Coord l_,
Evas_Coord r_,
Evas_Coord t_,
Evas_Coord b_ 
) const

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 space will be rendered transparent, naturally, as in the following figure:

padding-hints.png

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.

Example:

evas_object_size_hint_padding_set(
rect, r_data->padding_ptr->l, r_data->padding_ptr->r,
r_data->padding_ptr->t, r_data->padding_ptr->b);
fprintf(stdout, "Changing padding size hints for %s rect."
" to (%d, %d, %d, %d)\n",
name, r_data->padding_ptr->l, r_data->padding_ptr->r,
r_data->padding_ptr->t, r_data->padding_ptr->b);
return;

In this example the padding hints change the behavior of an Evas box when layouting its children. See the full example.

See also
evas_object_size_hint_padding_set()
void evas::object::size_hint_padding_set ( Evas_Coord  l_,
Evas_Coord  r_,
Evas_Coord  t_,
Evas_Coord  b_ 
) const

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.
See also
evas_object_size_hint_padding_get() for more information
bool evas::object::repeat_events_get ( ) const

Determine whether an object is set to repeat events.

Returns
whether obj is set to repeat events (EINA_TRUE) or not (EINA_FALSE)
See also
evas_object_repeat_events_set() for an example
evas_object_pass_events_get()
evas_object_propagate_events_get()
evas_object_freeze_events_get()
void evas::object::repeat_events_set ( bool  repeat_) const

Set whether an Evas object is to repeat events.

If repeat is EINA_TRUE, it will make events on obj to also be repeated for the next lower object in the objects' stack (see see evas_object_below_get()).

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

Example:

if (strcmp(ev->key, "r") == 0) /* toggle repeat events */
{
Eina_Bool repeat = evas_object_repeat_events_get(d.rects[d.cur_rect]);
evas_object_repeat_events_set(d.rects[d.cur_rect], !repeat);
fprintf(stdout, "%s rectangle is now set to%s repeat events\n",
name, repeat ? " NOT" : "");
return;
}

See the full example.

See also
evas_object_repeat_events_get()
evas_object_pass_events_set()
evas_object_propagate_events_set()
evas_object_freeze_events_set()
void evas::object::size_hint_weight_get ( double *  x_,
double *  y_ 
) const

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
See also
evas_object_size_hint_weight_set() for an example
void evas::object::size_hint_weight_set ( double  x_,
double  y_ 
) const

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.

Example:

evas_object_size_hint_weight_set(
rect, r_data->weight_ptr->x, r_data->weight_ptr->y);
fprintf(stdout, "Changing weight hints for %s rect. to (%f, %f)\n",
name, r_data->weight_ptr->x, r_data->weight_ptr->y);
return;

In this example the weight hints change the behavior of an Evas box when layouting its children. See the full example.

Note
Default weight hint values are 0.0, for both axis.
See also
evas_object_size_hint_weight_get() for more information
::efl::eina::string_view evas::object::name_get ( ) const

Retrieves the name of the given Evas object.

Returns
The name of the object or NULL, if no name has been given to it.

Example:

fprintf(stdout, "An object got focused: %s\n",
evas_object_name_get(event_info));
fprintf(stdout, "Let's recheck it: %s\n",
evas_object_name_get(evas_focus_get(e)));

See the full example.

void evas::object::name_set ( ::efl::eina::string_view  name_) const

Sets the name of the given Evas object to the given name.

There might be occasions where one would like to name his/her objects.

Example:

d.bg = evas_object_rectangle_add(d.canvas);
evas_object_name_set(d.bg, "our dear rectangle");

See the full example.

bool evas::object::focus_get ( ) const

Retrieve whether an object has the focus.

Returns
EINA_TRUE if the object has the focus, EINA_FALSE otherwise.

If the passed object is the currently focused one, EINA_TRUE is returned. EINA_FALSE is returned, otherwise.

Example:

fprintf(stdout, "And again: %s\n", evas_object_focus_get(event_info) ?
"OK!" : "Oops, something is bad.");

See the full example here.

See also
evas_object_focus_set
evas_focus_get
evas_object_key_grab
evas_object_key_ungrab
void evas::object::focus_set ( bool  focus_) const

Sets or unsets a given object as the currently focused one 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 EINA_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.

Example:

evas_object_focus_set(d.bg, EINA_FALSE);

See the full example here.

See also
evas_object_focus_get
evas_focus_get
evas_object_key_grab
evas_object_key_ungrab
bool evas::object::is_frame_object_get ( ) const
Since
1.2
void evas::object::is_frame_object_set ( bool  is_frame_) const
Since
1.2
bool evas::object::map_enable_get ( ) const

Get the map enabled state.

This returns the currently enabled state of the map on the object indicated. The default map enable state is off. You can enable and disable it with evas_object_map_enable_set().

Returns
the map enabled state
void evas::object::map_enable_set ( bool  enabled_) const

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.

void evas::object::size_hint_align_get ( double *  x_,
double *  y_ 
) const

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
See also
evas_object_size_hint_align_set() for more information
void evas::object::size_hint_align_set ( double  x_,
double  y_ 
) const

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.

See the following figure:

alignment-hints.png

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.

Example:

evas_object_size_hint_align_set(
rect, r_data->align_ptr->x, r_data->align_ptr->y);
fprintf(stdout, "Changing align hints for %s rect. to (%f, %f)\n",
name, r_data->align_ptr->x, r_data->align_ptr->y);
return;

In this example the alignment hints change the behavior of an Evas box when layouting its children. See the full example.

See also
evas_object_size_hint_align_get()
evas_object_size_hint_max_set()
evas_object_size_hint_padding_set()
bool evas::object::propagate_events_get ( ) const

Retrieve whether an Evas object is set to propagate events.

Returns
whether obj is set to propagate events (EINA_TRUE) or not (EINA_FALSE)
See also
evas_object_propagate_events_set()
evas_object_repeat_events_get()
evas_object_pass_events_get()
evas_object_freeze_events_get()
void evas::object::propagate_events_set ( bool  propagate_) const

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

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

If prop is EINA_TRUE, events occurring on this object will be propagated on to the smart object of which obj is a member. If prop is EINA_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 EINA_TRUE.

See also
evas_object_propagate_events_get()
evas_object_repeat_events_set()
evas_object_pass_events_set()
evas_object_freeze_events_set()
bool evas::object::pass_events_get ( ) const

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

Returns
pass whether obj is set to pass events (EINA_TRUE) or not (EINA_FALSE)

Example:

if (strcmp(ev->key, "p") == 0) /* toggle pass events */
{
Eina_Bool pass = evas_object_pass_events_get(d.rects[d.cur_rect]);
evas_object_pass_events_set(d.rects[d.cur_rect], !pass);
fprintf(stdout, "%s rectangle is now set to%s pass (ignore) events\n",
name, pass ? " NOT" : "");
return;
}

See the full example.

See also
evas_object_pass_events_set()
evas_object_repeat_events_get()
evas_object_propagate_events_get()
evas_object_freeze_events_get()
void evas::object::pass_events_set ( bool  pass_) const

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

If pass is EINA_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 evas_object_below_get()).

If pass is EINA_FALSE, events will be processed on that object as normal.

See also
evas_object_pass_events_get() for an example
evas_object_repeat_events_set()
evas_object_propagate_events_set()
evas_object_freeze_events_set()
::evas::object evas::object::smart_clipped_clipper_get ( ) const

Get the clipper object for the given clipped smart object.

Returns
the clipper object.

Use this function if you want to change any of this clipper's properties, like colors.

See also
evas_object_smart_clipped_smart_add()
::efl::eina::crange_list< ::evas::object > evas::object::clipees_get ( ) const

Return a list of objects currently clipped by obj.

Returns
a list of objects being 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 evas_object_clipees_get() 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().

Example:

extern Evas_Object *obj;
Evas_Object *clipper;
clipper = evas_object_clip_get(obj);
if (clipper)
{
Eina_List *clippees, *l;
Evas_Object *obj_tmp;
clippees = evas_object_clipees_get(clipper);
printf("Clipper clips %i objects\n", eina_list_count(clippees));
EINA_LIST_FOREACH(clippees, l, obj_tmp)
}
Evas_Display_Mode evas::object::size_hint_display_mode_get ( ) const

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 commpress or expand

void evas::object::size_hint_display_mode_set ( Evas_Display_Mode  dispmode_) const

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.

bool evas::object::no_render_get ( ) const

Returns the state of the "no-render" flag, which means, when true, that an object should never be rendered on the canvas.

This flag can be used to avoid rendering visible clippers on the canvas, even if they currently don't clip any object.

Since
1.15
void evas::object::no_render_set ( bool  enable_) const

Disable all rendering on the canvas.

This flag will be used to indicate to Evas that this object should never be rendered on the canvas under any circurmstances. In particular, this is useful to avoid drawing clipper objects (or masks) even when they don't clip any object. This can also be used to replace the old source_visible flag with proxy objects.

This is different to the visible property, as even visible objects marked as "no-render" will never appear on screen. But those objects can still be used as proxy sources or clippers. When hidden, all "no-render" objects will completely disappear from the canvas, and hide their clippees or be invisible when used as proxy sources.

Since
1.15