Using Unified and Legacy APIs together

The process of moving an application from our old stable API to the new Unified EFL may take some time. Enlightenment is probably the largest EFL application so we know how complicated this could be! To ease the transition we are ensuring that the APIs are interchangeable.

Object Compatibility

Our main approach to ensure compatibility is making sure that our legacy API can work with Unified EFL objects. That means that an Eo * created with the new Unified API will work with the equivalent APIs from the legacy API.

For example:

  • Efl_Canvas objects can be passed to evas_object_* methods
  • Efl_Canvas_Layout objects can be passed to edje_object_* methods
  • Efl_Ui objects work with elm_object_* methods

Also the eina and eo namespaces are retained over these versions so you can continue to pass Eina_Bool or Eo * where you previously did.

Combined Releases

For the foreseeable future all EFL releases will contain both the Legacy and the Unified APIs meaning that you can upgrade once you feel that our new APIs are ready for your usage. The benefits of moving over should be compelling, but as usage varies between apps we will continue to support the legacy API for all our users.