EFL Reference

Unified EFL API

The Enlightenment Foundation Libraries (EFL) cover a wide range of functions including inter-process communication (IPC), graphics, audio and even location services. Other powerful features include file handling utilities, widgets and user interface controls, thumbnailing and rendering via scene graph. You can discover more of EFL's capabilities by visiting the About EFL page.

The Unified EFL API (Currently in BETA) is a reworking of the old many-libraries API into a single (Efl) namespace. It is build on top of Eo (Enlightenment Object) class definitions to provide inheritance of objects and to bind more closely to higher level languages.

The Efl API is split into three main areas: Efl_Core, Efl_Net and Efl_Ui, each encompassing the one before so you can include a single reference in your app. For basic offline applications use Efl_Core, for additional network and connectivity use Efl_Net and if you are building a graphical application then use Efl_Ui. In the C language (the default for this documentation) you will also see reference to Eina which provides common data constructs missing in low level languages.


Classes Brief description
Efl.App Object representing the application itself.
Efl.Class Abstract Efl class
Efl.Composite_Model Efl model for all composite class which provide a unified API to set source of data.
Efl.Generic_Model Generic model that allows any property to be manually set. Also children of the same type can be added and deleted.
Efl.Loop_Consumer An Efl.Loop_Consumer is a class which requires one of the parents to provide an Efl.Loop interface when performing Efl.Object.provider_find. It will enforce this by only allowing parents which provide such an interface or NULL.
Efl.Loop_Model The Efl Loop Model class
Efl.Loop_Timer Timers are objects that will call a given callback at some point in the future and repeat that tick at a given interval.
Efl.Loop The Efl Main Loop
Efl.Object Abstract EFL object class.
Efl.Task EFL's abstraction for a task (process).
Interfaces Brief description
Efl.Container Common interface for objects (containers) that can have multiple contents (sub-objects).
Efl.Content Common interface for objects that have a single sub-object as content.
Efl.File_Save Efl file saving interface
Efl.Model Basic Model abstraction.
Efl.Pack_Layout Low-level APIs for objects that can lay their children out.
Efl.Pack_Linear Common interface for objects (containers) with multiple contents (sub-objects) which can be added and removed at runtime in a linear fashion.
Efl.Pack_Table Interface for 2D containers which arrange their elements on a table with rows and columns.
Efl.Pack Common interface for objects (containers) with multiple contents (sub-objects) which can be added and removed at runtime.
Efl.Part Interface for objects supporting named parts.
Efl.Player Efl media player interface
Efl.Screen Efl screen interface
Efl.Text Efl text interface
Mixins Brief description
Efl.File Efl file interface
Aliases Brief description
Efl.Callback_Priority Callback priority. Range is -32k - 32k. The lower the number, the higher the priority.
Structures Brief description
Efl.Event_Animator_Tick EFL event animator tick data structure
Efl.Event_Description This struct holds the description of a specific event.
Efl.File_Save_Info Info used to determine various attributes when saving a file.
Efl.Loop_Arguments EFL loop arguments data structure
Efl.Model_Changed_Event Every time the model is changed on the object.
Efl.Model_Property_Event EFL model property event data structure
Efl.Time This type is a alias for struct tm. It is intended to be a standard way to reference it in .eo files.
Efl.Version This type describes the version of EFL with an optional variant.
Enums Brief description
Efl.Task_Flags Flags to further customize task's behavior.
Efl.Task_Priority How much processor time will this task get compared to other tasks running on the same processor.
Efl.Text_Bidirectional_Type Bidirectionaltext type
Constants Brief description
Efl.Callback_Priority_After Slightly less prioritized than default.
Efl.Callback_Priority_Before Slightly more prioritized than default.
Efl.Callback_Priority_Default Default priority.


Classes Brief description
Efl.Canvas.Group A group object is a container for other canvas objects. Its children move along their parent and are often clipped with a common clipper. This is part of the legacy smart object concept.
Efl.Canvas.Object Efl canvas object abstract class
Interfaces Brief description
Efl.Canvas.Pointer Efl Canvas Pointer interface
Efl.Canvas.Scene Interface containing basic canvas-related methods and events.


Interfaces Brief description
Efl.Gfx.Entity Efl graphics interface
Efl.Gfx.Hint Efl graphics hint interface
Efl.Gfx.Image_Load_Controller Common APIs for all loadable 2D images.
Efl.Gfx.Image_Orientable Interface for images which can be rotated or flipped (mirrored).
Efl.Gfx.Image This interface defines a set of common APIs which should be implemented by image objects.
Efl.Gfx.Stack Efl graphics stack interface
Mixins Brief description
Efl.Gfx.Color Efl Gfx Color mixin class
Efl.Gfx.Mapping Texture UV mapping for all objects (rotation, perspective, 3d, ...).
Structures Brief description
Efl.Gfx.Dash Type describing dash. Efl.Gfx.Shape.stroke_dash.set
Efl.Gfx.Event.Render_Post Data sent along a "render,post" event, after a frame has been rendered.
Efl.Gfx.Gradient_Stop Type defining gradient stops. Describes the location and color of a transition point in a gradient.
Efl.Gfx.Image_Stretch_Region This struct holds the description of a stretchable region in one dimension (vertical or horizontal). Used when scaling an image.
Enums Brief description
Efl.Gfx.Cap These values determine how the end of opened sub-paths are rendered in a stroke. Efl.Gfx.Shape.stroke_cap.set
Efl.Gfx.Center_Fill_Mode How an image's center region (the complement to the border region) should be rendered by EFL
Efl.Gfx.Change_Flag What property got changed for this object
Efl.Gfx.Gradient_Spread Specifies how the area outside the gradient area should be filled. Efl.Gfx.Gradient.spread.set
Efl.Gfx.Hint_Aspect Aspect types/policies for scaling size hints.
Efl.Gfx.Image_Content_Hint How an image's data is to be treated by EFL, for optimization.
Efl.Gfx.Image_Orientation An orientation type, to rotate and flip images.
Efl.Gfx.Image_Scale_Hint How an image's data is to be treated by EFL, with regard to scaling cache.
Efl.Gfx.Image_Scale_Method Enumeration that defines scaling methods to be used when rendering an image.
Efl.Gfx.Join These values determine how two joining lines are rendered in a stroker. Efl.Gfx.Shape.stroke_join.set
Efl.Gfx.Path_Command_Type These values determine how the points are interpreted in a stream of points.
Efl.Gfx.Render_Op Graphics render operation mode
Constants Brief description
Efl.Gfx.Hint_Align_Bottom Use with Efl.Gfx.Hint.hint_align.
Efl.Gfx.Hint_Align_Center Use with Efl.Gfx.Hint.hint_align.
Efl.Gfx.Hint_Align_Left Use with Efl.Gfx.Hint.hint_align.
Efl.Gfx.Hint_Align_Right Use with Efl.Gfx.Hint.hint_align.
Efl.Gfx.Hint_Align_Top Use with Efl.Gfx.Hint.hint_align.
Efl.Gfx.Hint_Expand Use with Efl.Gfx.Hint.hint_weight.
Efl.Gfx.Stack_Layer_Max top-most layer number
Efl.Gfx.Stack_Layer_Min bottom-most layer number


Classes Brief description
Efl.Input.Device Represents a pointing device such as a touch finger, pen or mouse.
Efl.Input.Focus Represents a focus event.
Efl.Input.Hold Event data sent when inputs are put on hold or resumed.
Efl.Input.Key Represents a single key event from a keyboard or similar device.
Efl.Input.Pointer Event data carried over with any pointer event (mouse, touch, pen, ...)
Interfaces Brief description
Efl.Input.Interface An object implementing this interface can send pointer events.
Efl.Input.State Efl input state interface.
Mixins Brief description
Efl.Input.Clickable Efl input clickable interface.
Efl.Input.Event Represents a generic event data.
Structures Brief description
Efl.Input.Clickable_Clicked A struct that expresses a click in elementary.
Enums Brief description
Efl.Input.Device_Type General type of input device.
Efl.Input.Flags Special flags set during an input event propagation.
Efl.Input.Lock Key locks such as Num Lock, Scroll Lock and Caps Lock.
Efl.Input.Modifier Key modifiers such as Control, Alt, etc...


Interfaces Brief description
Efl.Io.Closer Generic interface for objects that can close themselves.
Efl.Io.Reader Generic interface for objects that can read data into a provided memory.
Efl.Io.Writer Generic interface for objects that can write data from a provided memory.


Interfaces Brief description
Efl.Layout.Calc This interface defines a common set of APIs used to trigger calculations with layout objects.
Efl.Layout.Group APIs representing static data from a group in an edje file.
Efl.Layout.Signal Layouts asynchronous messaging and signaling interface.


Classes Brief description
Efl.Ui.Alert_Popup A variant of Efl.Ui.Popup which uses a layout containing a content object and a variable number of buttons (up to 3 total).
Efl.Ui.Bg The bg (background) widget is used for setting (solid) background decorations for a window (unless it has transparency enabled) or for any container object. It works just like an image, but has some properties useful for backgrounds, such as setting it to tiled, centered, scaled or stretched.
Efl.Ui.Box_Flow A Flow Box is a customized type of Efl.Ui.Box. It will fill along the axis selected with Efl.Ui.Layout_Orientable.orientation (which defaults to Horizontal), until items will no longer fit in the available space, at which point it will begin filling items in a new row/column after the current one. This is useful if an application wants to e.g., present a group of items and wrap them onto subsequent lines when the number of items grows too large to fit on the screen. Adding or removing items in the middle re-arrange the rest of the items as expected.
Efl.Ui.Box_Stack A custom layout engine for Efl.Ui.Box that stacks items.
Efl.Ui.Box A container that arranges children widgets in a vertical or horizontal fashion.
Efl.Ui.Button Push-button widget
Efl.Ui.Check Check widget.
Efl.Ui.Collection_View This widget displays a list of items in an arrangement controlled by an external Efl.Ui.Collection_View.position_manager object. By using different Efl.Ui.Collection_View.position_manager objects this widget can show unidimensional lists or two-dimensional grids of items, for example.
Efl.Ui.Collection This widget displays a list of items in an arrangement controlled by an external Efl.Ui.Collection.position_manager object. By using different Efl.Ui.Collection.position_manager objects this widget can show unidimensional lists or two-dimensional grids of items, for example.
Efl.Ui.Datepicker Datepicker widget
Efl.Ui.Default_Item Default Item Class.
Efl.Ui.Grid_Default_Item Default Item class to be used inside Efl.Ui.Grid containers. The icon part is in the middle, the extra part overlaps it on its upper-right corner. The text part is centered below the icon. Theming can change this arrangement.
Efl.Ui.Grid A scrollable grid of Efl.Ui.Item objects, typically Efl.Ui.Grid_Default_Item objects.
Efl.Ui.Image_Zoomable Elementary Image Zoomable class
Efl.Ui.Image Efl UI image class
Efl.Ui.Item Selectable Item abstraction.
Efl.Ui.Layout_Base EFL layout widget abstract.
Efl.Ui.Layout_Part_Bg Elementary layout internal part background class
Efl.Ui.Layout_Part_Box Represents a Box created as part of a layout.
Efl.Ui.Layout_Part_Content Elementary layout internal part class
Efl.Ui.Layout_Part_Table Represents a Table created as part of a layout.
Efl.Ui.Layout_Part_Text Elementary layout internal part class
Efl.Ui.Layout_Part Elementary layout internal part class
Efl.Ui.Layout EFL layout widget class.
Efl.Ui.List_Default_Item Default Item class to be used inside Efl.Ui.List containers. It displays the three parts in horizontal order: icon, text and extra. Theming can change this arrangement.
Efl.Ui.List A scrollable list of Efl.Ui.Item objects, typically Efl.Ui.List_Default_Item objects.
Efl.Ui.Popup_Part_Backwall A Popup backwall is the background object for an Efl.Ui.Popup widget. It can be returned from a given Popup widget by using the Efl.Part API to fetch the "backwall" part.
Efl.Ui.Popup A styled container widget which overlays a window's contents.
Efl.Ui.Radio_Group_Impl Object with the default implementation for Efl.Ui.Radio_Group.
Efl.Ui.Radio Elementary radio button class.
Efl.Ui.Scroller Widget container that allows objects bigger than itself to be put inside it, and provides scrolling functionality so the whole content is visible.
Efl.Ui.Slider Elementary slider class
Efl.Ui.Spin_Button A Button Spin.
Efl.Ui.Spin A Spin.
Efl.Ui.Table Widget container that arranges its elements in a grid.
Efl.Ui.Timepicker Timepicker widget
Efl.Ui.View_Model Efl model providing helpers for custom properties used when linking a model to a view and you need to generate/adapt values for display.
Efl.Ui.Widget_Factory Efl Ui Factory that provides Efl.Ui.Widget.
Efl.Ui.Widget_Part_Bg Elementary widget internal part background class
Efl.Ui.Widget_Part_Shadow A drop-shadow or glow effect around any widget.
Efl.Ui.Widget_Part This is the base class for all "Part" handles in Efl.Ui widgets.
Efl.Ui.Widget Base class for all Efl.Ui.* widgets
Efl.Ui.Win Efl UI window class.
Interfaces Brief description
Efl.Ui.Autorepeat Interface for autorepeating clicks.
Efl.Ui.Factory_Bind Efl UI Property interface. view object can have Efl.Model and need to set cotent with those model stored data. the interface can help binding the factory to create object with model property data. see Efl.Model see Efl.Ui.Factory
Efl.Ui.Factory Interface for factory-pattern object creation.
Efl.Ui.Focus.Manager_Window_Root An interface to indicate the end of a focus chain.
Efl.Ui.Focus.Manager Interface for managing focus objects.
Efl.Ui.Layout_Orientable Interface for UI objects which can have more than one orientation.
Efl.Ui.Property_Bind Efl UI Property_Bind interface. view object can have Efl.Model to manage the data, the interface can help loading and tracking child data from the model property. see Efl.Model see Efl.Ui.Factory
Efl.Ui.Radio_Group Interface for manually handling a group of Efl.Ui.Radio buttons.
Efl.Ui.Range_Display Interface that contains properties regarding the displaying of a value within a range.
Efl.Ui.Range_Interactive Interface that extends the normal displaying properties with usage properties.
Efl.Ui.Scrollable Interface for widgets capable of displaying content through a viewport, which might be smaller than the actual content. This interface does not control how the content is added. This is typically done through Efl.Content.
Efl.Ui.Scrollbar Interface used by widgets which can display scrollbars, enabling them to hold more content than actually visible through the viewport. A scrollbar contains a draggable part (thumb) which allows the user to move the viewport around the content. The size of the thumb relates to the size of the viewport compared to the whole content.
Efl.Ui.Selectable Selectable interface for UI objects
Efl.Ui.Single_Selectable Interface for getting access to a single selected item in the implementor.
Efl.Ui.View Efl UI view interface.
Mixins Brief description
Efl.Ui.Focus.Object Functions of focusable objects.
Efl.Ui.Format Helper mixin that simplifies converting numerical values to text.
Efl.Ui.Widget_Focus_Manager Helper mixin for widgets which also can act as focus managers.
Aliases Brief description
Efl.Ui.Format_Func A function taking an Eina.Value and producing its textual representation. See Efl.Ui.Format.format_func.
Structures Brief description
Efl.Ui.Alert_Popup_Button_Clicked_Event Information for Efl.Ui.Alert_Popup.button,clicked event.
Efl.Ui.Factory_Item_Created_Event EFL UI Factory event structure provided when an item was just created.
Efl.Ui.Focus.Manager_Logical_End_Detail Structure holding the focus object with extra information on logical end.
Efl.Ui.Format_Value A value which should always be displayed as a specific text string. See Efl.Ui.Format.format_values.
Efl.Ui.Property_Event EFL Ui property event data structure triggered when an object property change due to the interaction on the object.
Efl.Ui.Widget_Focus_State All relevant fields needed for the current state of focus registration
Enums Brief description
Efl.Ui.Alert_Popup_Button Defines the type of the alert button.
Efl.Ui.Focus.Direction Focus directions.
Efl.Ui.Focus.Move_Policy Focus Movement Policy.
Efl.Ui.Format_String_Type Type of formatting string.
Efl.Ui.Layout_Orientation Orientation for UI objects and layouts that can have multiple configurations.
Efl.Ui.Popup_Align This is the alignment method for positioning Popup widgets.
Efl.Ui.Scrollbar_Mode When should the scrollbar be shown.
Efl.Ui.Win_Indicator_Mode Defines the type indicator that can be shown.
Efl.Ui.Win_Move_Resize_Mode Define the move or resize mode of a window.