Efl.Ui.Widget (class)


Base class for all Efl.Ui.* widgets

The class here is designed in a way that widgets can be expressed as a tree. The parent relation in the tree can be fetched via Efl.Ui.Widget.widget_parent . The parent relation should never be modified directly, instead you should use the APIs of the widgets (Typically Efl.Pack_Linear, Efl.Pack_Table or Efl.Content).

Properties implemented here should be treated with extra care, some are defined for the sub-tree, others are defined for the widget itself, additional information for this can be fetched from the documentation in the implements section.

Since 1.22


Efl.Canvas.Group (class)Efl.Canvas.Object (class)Efl.Loop_Consumer (class)Efl.Object (class)

Full hierarchy


access_info (get, set)

Accessibility information.
const char *efl_ui_widget_access_info_get(const Eo *obj);
void efl_ui_widget_access_info_set(Eo *obj, const char *txt);

clipper (get, set) [Overridden from Efl.Canvas.Object]

Clip one object to another.
Efl_Canvas_Object *efl_canvas_object_clipper_get(const Eo *obj);
void efl_canvas_object_clipper_set(Eo *obj, Efl_Canvas_Object *clipper);

color (get, set) [Overridden from Efl.Gfx.Color]

This will set the color on every object in the sub-tree including those that are not Efl.Ui.Widget (like simple Efl.Canvas.Object objects that are added via Efl.Canvas.Group.group_member_add).
void efl_gfx_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
void efl_gfx_color_set(Eo *obj, int r, int g, int b, int a);

constructor [Overridden from Efl.Object]

Implement this method to provide optional initialization code for your object.
Efl_Object *efl_constructor(Eo *obj);

cursor (get, set)

The cursor to be shown when mouse is over the object
const char *efl_ui_widget_cursor_get(const Eo *obj);
Eina_Bool efl_ui_widget_cursor_set(Eo *obj, const char *cursor);

cursor_style (get, set)

A different style for the cursor.
const char *efl_ui_widget_cursor_style_get(const Eo *obj);
Eina_Bool efl_ui_widget_cursor_style_set(Eo *obj, const char *style);

cursor_theme_search_enabled (get, set)

Whether the cursor may be looked in the theme or not.
Eina_Bool efl_ui_widget_cursor_theme_search_enabled_get(const Eo *obj);
Eina_Bool efl_ui_widget_cursor_theme_search_enabled_set(Eo *obj, Eina_Bool allow);

debug_name_override [Overridden from Efl.Object]

Build a read-only name for this object used for debugging.
void efl_debug_name_override(Eo *obj, Eina_Strbuf *sb);

destructor [Overridden from Efl.Object]

Implement this method to provide deinitialization code for your object if you need it.
void efl_destructor(Eo *obj);

disabled (get, set)

Whether the widget is enabled (accepts and reacts to user inputs).
Eina_Bool efl_ui_widget_disabled_get(const Eo *obj);
void efl_ui_widget_disabled_set(Eo *obj, Eina_Bool disabled);

finalize [Overridden from Efl.Object]

Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.
Efl_Object *efl_finalize(Eo *obj);

focus (get, set) protected set [Overridden from Efl.Ui.Focus.Object]

Whether the widget is currently focused or not.
Eina_Bool efl_ui_focus_object_focus_get(const Eo *obj);
void efl_ui_focus_object_focus_set(Eo *obj, Eina_Bool focus);

focus_allow (get, set)

The ability for a widget to be focused.
Eina_Bool efl_ui_widget_focus_allow_get(const Eo *obj);
void efl_ui_widget_focus_allow_set(Eo *obj, Eina_Bool can_focus);

focus_geometry (get) [Overridden from Efl.Ui.Focus.Object]

Eina_Rect efl_ui_focus_object_focus_geometry_get(const Eo *obj);

focus_manager (get) [Overridden from Efl.Ui.Focus.Object]

Efl_Ui_Focus_Manager *efl_ui_focus_object_focus_manager_get(const Eo *obj);

focus_move_policy (get, set)

The widget's focus move policy.
Efl_Ui_Focus_Move_Policy efl_ui_widget_focus_move_policy_get(const Eo *obj);
void efl_ui_widget_focus_move_policy_set(Eo *obj, Efl_Ui_Focus_Move_Policy policy);

focus_move_policy_automatic (get, set)

Control the widget's focus_move_policy mode setting.
Eina_Bool efl_ui_widget_focus_move_policy_automatic_get(const Eo *obj);
void efl_ui_widget_focus_move_policy_automatic_set(Eo *obj, Eina_Bool automatic);

focus_parent (get) [Overridden from Efl.Ui.Focus.Object]

Efl_Ui_Focus_Object *efl_ui_focus_object_focus_parent_get(const Eo *obj);

group_calculate [Overridden from Efl.Canvas.Group]

Triggers an immediate recalculation of this object's geometry.
void efl_canvas_group_calculate(Eo *obj);

group_member_add [Overridden from Efl.Canvas.Group]

Set a canvas object as a member of a given group (or smart object).
void efl_canvas_group_member_add(Eo *obj, Efl_Canvas_Object *sub_obj);

group_member_remove [Overridden from Efl.Canvas.Group]

Removes a member object from a given smart object.
void efl_canvas_group_member_remove(Eo *obj, Efl_Canvas_Object *sub_obj);

i18n_name (get, set) [Overridden from Efl.Access.Object]

Accessible name of the object.
const char *efl_access_object_i18n_name_get(const Eo *obj);
void efl_access_object_i18n_name_set(Eo *obj, const char *i18n_name);

invalidate [Overridden from Efl.Object]

Implement this method to perform special actions when your object loses its parent, if you need to.
void efl_invalidate(Eo *obj);

mirrored (get, set) [Overridden from Efl.Ui.I18n]

Whether this object should be mirrored.
Eina_Bool efl_ui_mirrored_get(const Eo *obj);
void efl_ui_mirrored_set(Eo *obj, Eina_Bool rtl);

mirrored_automatic (get, set) [Overridden from Efl.Ui.I18n]

Whether the property Efl.Ui.I18n.mirrored should be set automatically.
Eina_Bool efl_ui_mirrored_automatic_get(const Eo *obj);
void efl_ui_mirrored_automatic_set(Eo *obj, Eina_Bool automatic);

model (get, set) [Overridden from Efl.Ui.View]

Model that is/will be
Efl_Model *efl_ui_view_model_get(const Eo *obj);
void efl_ui_view_model_set(Eo *obj, Efl_Model *model);

no_render (get, set) [Overridden from Efl.Canvas.Object]

Disables all rendering on the canvas.
Eina_Bool efl_canvas_object_no_render_get(const Eo *obj);
void efl_canvas_object_no_render_set(Eo *obj, Eina_Bool enable);

position (get, set) [Overridden from Efl.Gfx.Entity]

The 2D position of a canvas object.
Eina_Position2D efl_gfx_entity_position_get(const Eo *obj);
void efl_gfx_entity_position_set(Eo *obj, Eina_Position2D pos);

property_bind [Overridden from Efl.Ui.Property_Bind]

bind property data with the given key string. when the data is ready or changed, bind the data to the key action and process promised work.
Eina_Error efl_ui_property_bind(Eo *obj, const char *key, const char *property);

provider_find [Overridden from Efl.Object]

Searches upwards in the object tree for a provider which knows the given class/interface.
Efl_Object *efl_provider_find(const Eo *obj, const Efl_Class *klass);

scale (get, set) [Overridden from Efl.Gfx.Entity]

The scaling factor of an object.
double efl_gfx_entity_scale_get(const Eo *obj);
void efl_gfx_entity_scale_set(Eo *obj, double scale);


Pop scroller freeze
void efl_ui_widget_scroll_freeze_pop(Eo *obj);


Push scroller freeze
void efl_ui_widget_scroll_freeze_push(Eo *obj);


Pop scroller hold
void efl_ui_widget_scroll_hold_pop(Eo *obj);


Push scroll hold
void efl_ui_widget_scroll_hold_push(Eo *obj);

size (get, set) [Overridden from Efl.Gfx.Entity]

The 2D size of a canvas object.
Eina_Size2D efl_gfx_entity_size_get(const Eo *obj);
void efl_gfx_entity_size_set(Eo *obj, Eina_Size2D size);

style (get, set)

The widget style to use.
const char *efl_ui_widget_style_get(const Eo *obj);
Eina_Error efl_ui_widget_style_set(Eo *obj, const char *style);

visible (get, set) [Overridden from Efl.Gfx.Entity]

The visibility of a canvas object.
Eina_Bool efl_gfx_entity_visible_get(const Eo *obj);
void efl_gfx_entity_visible_set(Eo *obj, Eina_Bool v);

access_children (get) protected [Overridden from Efl.Access.Object]

Eina_List *efl_access_object_access_children_get(const Eo *obj);

attributes (get) protected [Overridden from Efl.Access.Object]

Eina_List *efl_access_object_attributes_get(const Eo *obj);

focus_grab protected [Overridden from Efl.Access.Component]

Focuses accessible widget.
Eina_Bool efl_access_component_focus_grab(Eo *obj);

focus_highlight_geometry (get) protected

Eina_Rect efl_ui_widget_focus_highlight_geometry_get(const Eo *obj);

focus_state_apply protected

Apply a new focus state on the widget.
Eina_Bool efl_ui_widget_focus_state_apply(Eo *obj, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State configured_state, Efl_Ui_Widget *redirect);

interest_region (get) protected

Eina_Rect efl_ui_widget_interest_region_get(const Eo *obj);

on_access_activate protected

Hook function called when widget is activated through accessibility.
Eina_Bool efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Activate act);

on_access_update protected

Hook function called when accessibility is changed on the widget.
void efl_ui_widget_on_access_update(Eo *obj, Eina_Bool enable);

on_focus_update protected [Overridden from Efl.Ui.Focus.Object]

Virtual function handling focus in/out events on the widget.
Eina_Bool efl_ui_focus_object_on_focus_update(Eo *obj);

part_get protected [Overridden from Efl.Part]

Efl_Object *efl_part_get(const Eo *obj, const char *name);

resize_object (set) protected

void efl_ui_widget_resize_object_set(Eo *obj, Efl_Canvas_Object *sobj);

state_set (get) protected [Overridden from Efl.Access.Object]

Efl_Access_State_Set efl_access_object_state_set_get(const Eo *obj);

theme_apply protected

Virtual function called when the widget needs to re-apply its theme.
Eina_Error efl_ui_widget_theme_apply(Eo *obj);

translation_update protected [Overridden from Efl.Ui.L10n]

This implements the calls to gettext() and text_set().
void efl_ui_l10n_translation_update(Eo *obj);

widget_input_event_handler protected

Virtual function handling input events on the widget.
Eina_Bool efl_ui_widget_input_event_handler(Eo *obj, const Efl_Event *eo_event, Efl_Canvas_Object *source);

widget_parent (get, set) protected

The internal parent of this widget.
Efl_Ui_Widget *efl_ui_widget_parent_get(const Eo *obj);
void efl_ui_widget_parent_set(Eo *obj, Efl_Ui_Widget *parent);

widget_sub_object_add protected

Virtual function customizing sub objects being added.
Eina_Bool efl_ui_widget_sub_object_add(Eo *obj, Efl_Canvas_Object *sub_obj);

widget_sub_object_del protected

Virtual function customizing sub objects being removed.
Eina_Bool efl_ui_widget_sub_object_del(Eo *obj, Efl_Canvas_Object *sub_obj);


protected accessible_at_point_get Gets top component object occupying space at given coordinates.
protected contains Contains accessible widget
protected extents (get, set) Geometry of accessible widget.
protected screen_position (get, set) Position of accessible widget.
protected z_order (get)
static access_root (get)
access_type (get, set) Type of accessibility object
attribute_append Add key-value pair identifying object extra attributes
attribute_del delete key-value pair identifying object extra attributes when key is given
attributes_clear Removes all attributes in accessible object.
description (get, set) Contextual information about object.
relationship_append Defines the relationship between two accessible objects.
relationship_remove Removes the relationship between two accessible objects.
relationships_clear Removes all relationships in accessible object.
role (get, set) The role of the object in accessibility domain.
translation_domain (get, set) The translation domain of "name" and "description" properties.
static protected event_emit Emit event
static protected event_handler_add Register accessibility event listener
static protected event_handler_del Deregister accessibility event listener
protected index_in_parent (get)
protected localized_role_name (get)
protected reading_info_type (get, set) Reading information of an accessible object.
protected relations_get Gets an all relations between accessible object and other accessible objects.
protected role_name (get)
group_change Marks the object as dirty.
group_member_is Finds out if a given object is a member of this group.
group_members_iterate Returns an iterator over the children of this object, which are canvas objects.
group_need_recalculate (get, set) Indicates that the group's layout needs to be recalculated.
paragraph_direction (get, set) 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.
protected group_clipper (get)
above (get)
anti_alias (get, set) Whether or not the given Evas object is to be drawn anti-aliased.
below (get)
clipped_objects (get)
clipped_objects_count Returns the number of objects clipped by obj
coords_inside (get)
event_freeze Freeze events of this object.
event_thaw Thaw events of object.
geometry (get, set) Rectangular geometry that combines both position and size.
gesture_manager_get Returns current canvas's gesture manager
has_fixed_size (get, set) A hint for an object that its size will not change.
hint_align (get, set) Hints for an object's alignment.
hint_aspect (get, set) Defines the aspect ratio to respect when scaling this object.
hint_fill (get, set) Hints for an object's fill property that used to specify "justify" or "fill" by some users. Efl.Gfx.Hint.hint_fill specify whether to fill the space inside the boundaries of a container/manager.
hint_margin (get, set) Hints for an object's margin or padding space.
hint_size_combined_max (get)
hint_size_combined_min (get)
hint_size_max (get, set) Hints on the object's maximum size.
hint_size_min (get, set) Hints on the object's minimum size.
protected set hint_size_restricted_max (get, set) Internal hints for an object's maximum size.
protected set hint_size_restricted_min (get, set) Internal hints for an object's minimum size.
hint_weight (get, set) Hints for an object's weight.
key_focus (get, set) Indicates that this object is the keyboard event receiver on its canvas.
key_grab Requests keyname key events be directed to obj.
key_ungrab Removes the grab on keyname key events by obj.
layer (get, set) The layer of its canvas that the given object will be part of.
loop (get)
lower_to_bottom Lower obj to the bottom of its layer.
pass_events (get, set) Whether an Evas object is to pass (ignore) events.
pointer_inside (get)
pointer_mode (get, set) Low-level pointer behaviour.
pointer_mode_by_device (get, set) Low-level pointer behaviour by device. See Efl.Canvas.Object.pointer_mode.get and Efl.Canvas.Object.pointer_mode.set for more explanation.
precise_is_inside (get, set) Whether to use precise (usually expensive) point collision detection for a given Evas object.
propagate_events (get, set) Whether events on a smart object's member should be propagated up to its parent.
raise_to_top Raise obj to the top of its layer.
render_op (get, set) Render mode to be used for compositing the Evas object.
repeat_events (get, set) Whether an Evas object is to repeat events to objects below it.
seat_event_filter (get, set) Whether input events from a given seat are enabled. If the filter list is empty (no seat is disabled) this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is not in the list.
seat_focus (get)
seat_focus_add Add a seat to the focus list.
seat_focus_check Check if this object is focused by a given seat
seat_focus_del Remove a seat from the focus list.
stack_above Stack obj immediately above
stack_below Stack obj immediately below
protected render_parent (get)
color_code (get, set) Hexadecimal color code of given Evas object (#RRGGBBAA).
lighting_3d Apply a lighting effect on the object.
lighting_3d_absolute Apply a lighting effect to the object.
mapping_alpha (get, set) Alpha flag for map rendering.
mapping_clockwise (get)
mapping_color (get, set) Color of a vertex in the map.
mapping_coord_absolute (get, set) A point's absolute coordinate on the canvas.
mapping_has Read-only property indicating whether an object is mapped.
mapping_point_count (get, set) Number of points of a map.
mapping_reset Resets the map transformation to its default state.
mapping_smooth (get, set) Smoothing state for map rendering.
mapping_uv (get, set) Map point's U and V texture source point.
perspective_3d Apply a perspective transform to the map
perspective_3d_absolute Apply a perspective transform to the map
rotate Apply a rotation to the object.
rotate_3d Rotate the object around 3 axes in 3D.
rotate_3d_absolute Rotate the object around 3 axes in 3D, using absolute coordinates.
rotate_absolute Apply a rotation to the object, using absolute coordinates.
rotate_quat Rotate the object in 3D using a unit quaternion.
rotate_quat_absolute Rotate the object in 3D using a unit quaternion, using absolute coordinates.
translate Apply a translation to the object using map.
zoom Apply a zoom to the object.
zoom_absolute Apply a zoom to the object, using absolute coordinates.
future_rejected Creates a new future that is already rejected to a specified error using the Efl.Loop_Consumer.loop.get.
future_resolved Creates a new future that is already resolved to a value.
parent (get, set) The parent of an object.
promise_new Create a new promise with the scheduler coming from the loop provided by this object.
allow_parent_unref (get, set) Allow an object to be deleted by unref even if it has a parent.
children_iterator_new Get an iterator on all children.
comment (get, set) A human readable comment for the object.
composite_attach Make an object a composite object of another.
composite_detach Detach a composite object from another object.
composite_part_is Check if an object is part of a composite object.
event_callback_forwarder_del Remove an event callback forwarder for a specified event and object.
event_callback_forwarder_priority_add Add an event callback forwarder that will make this object emit an event whenever another object (source) emits it. The event is said to be forwarded from source to this object.
event_callback_stop Stop the current callback call.
event_freeze_count (get)
static event_global_freeze Globally freeze events for ALL EFL OBJECTS.
static event_global_freeze_count (get)
static event_global_thaw Globally thaw events for ALL EFL OBJECTS.
finalized (get)
invalidated (get)
invalidating (get)
name (get, set) The name of the object.
name_find Find a child object with the given name and return it.
provider_register Will register a manager of a specific class to be answered by Efl.Object.provider_find.
provider_unregister Will unregister a manager of a specific class that was previously registered and answered by Efl.Object.provider_find.
drag_action_set Set the action for the drag
drag_cancel Cancel the on-going drag
drag_start Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE
drop_target_add Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.
drop_target_del Delete the dropable status from object
setup_order Tells the object that its children will be queried soon by the focus manager. Overwrite this to have a chance to update the order of the children. Deleting items in this call will result in undefined behaviour and may cause your system to crash.
protected child_focus (get, set) Indicates if a child of this object has focus set to true.
protected setup_order_non_recursive This is called when Efl.Ui.Focus.Object.setup_order is called, but only on the first call, additional recursive calls to Efl.Ui.Focus.Object.setup_order will not call this function again.
language (get, set) The (human) language for this object.
l10n_text (get, set) A unique string to be translated.
has_owner Determine whether the selection data has owner
selection_clear Clear the selection data from the object
selection_get Get the data from the object that has selection
selection_set Set the selection data to the object



Called when accessibility changed


Called when widget language changed


active,descendant,changed Called when active state of descendant has changed
added Called when item is added
bounds,changed Called when boundaries have changed
children,changed Called when children have changed
property,changed Called when property has changed
removed Called when item is removed
state,changed Called when state has changed
visible,data,changed Called when visibility has changed
member,added Called when a member is added to the group.
member,removed Called when a member is removed from the group.
animator,tick Animator tick synchronized with screen vsync if possible.
gesture,double_tap Emitted when a Double-tap gesture has been detected. A Double-tap gesture consists of two taps on the screen (or clicks of the mouse) in quick succession. If the second one is delayed for too long they will be detected as two independent Efl.Gesture.Events.gesture,tap events.
gesture,flick Emitted when a Flick gesture has been detected.
gesture,long_tap Emitted when a Long-tap gesture has been detected. A Long-tap gesture consists of a touch of the screen (or click of the mouse) followed by a release after some time. If the release happens too quickly a Efl.Gesture.Events.gesture,tap event will be emitted instead.
gesture,momentum Emitted when a Momentum gesture has been detected. A Momentum gesture consists of a quick displacement of the finger while touching the screen (or while holding down a mouse button).
gesture,tap Emitted when a Tap gesture has been detected. A Tap gesture consists of a touch of the screen (or click of the mouse) quickly followed by a release. If the release happens too late a Efl.Gesture.Events.gesture,long_tap event will be emitted instead.
gesture,triple_tap Emitted when a Triple-tap gesture has been detected. A Triple-tap gesture consists of three taps on the screen (or clicks of the mouse) in quick succession. If any of them is delayed for too long they will be detected as independent Efl.Gesture.Events.gesture,tap or Efl.Gesture.Events.gesture,double_tap events.
gesture,zoom Emitted when a Zoom gesture has been detected. A Zoom gesture consists of two fingers touching the screen and separating ("zoom in") or getting closer ("zoom out" or "pinch"). This gesture cannot be performed with a mouse as it requires more than one pointer.
position,changed Object was moved, its position during the event is the new one.
size,changed Object was resized, its size during the event is the new one.
visibility,changed Object's visibility state changed, the event value is the new state.
hints,changed Object hints changed.
stacking,changed Object stacking was changed.
finger,down Finger pressed (finger id is known).
finger,move Finger moved (current and previous positions are known).
finger,up Finger released (finger id is known).
focus,in A focus in event.
focus,out A focus out event.
hold All input events are on hold or resumed.
key,down Keyboard key press.
key,up Keyboard key release.
pointer,axis Pen or other axis event update.
pointer,cancel Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.
pointer,down Main pointer button pressed (button id is known).
pointer,in Pointer entered a window or a widget.
pointer,move Main pointer move (current and previous positions are known).
pointer,out Pointer left a window or a widget.
pointer,up Main pointer button released (button id is known).
pointer,wheel Mouse wheel event.
del Object is being deleted. See Efl.Object.destructor.
destruct Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.
invalidate Object is being invalidated and losing its parent. See Efl.Object.invalidate.
noref Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.
ownership,shared Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.
ownership,unique Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.
drag,accept accept drag data
drag,done drag is done (mouse up)
drag,drop called when the drag object dropped on this object
drag,enter called when the drag object enters this object
drag,leave called when the drag object leaves this object
drag,pos called when the drag object changes drag position
child_focus,changed Emitted if child_focus has changed.
focus,changed Emitted if the focus state has changed.
focus_geometry,changed Emitted if focus geometry of this object has changed.
focus_manager,changed Emitted when a new manager is the parent for this object.
focus_parent,changed Emitted when a new logical parent should be used.
properties,changed Event dispatched when a property on the object has changed due to a user interaction on the object that a model could be interested in.
property,bound Event dispatched when a property on the object is bound to a model. This is useful to avoid generating too many events.
wm_selection,changed Called when display server's selection has changed
model,changed Event dispatched when a new model is set.