Hello, I have a bit of a technical question here. You may want to skip this if you're not familiar with efl_part and efl_composite_attach.
I'm currently working on T5315 also known as "Refactoring Edje/Elm_Layout". The goal is to provide a uniform, simple API for both edje and elm_layout objects. Yesterday I've worked on EO API for EXTERNAL parts. Those parts are similar to swallows except that they are filled in automatically with widgets such as "elm/button" or "elm/slider". As a consequence, each EXTERNAL will support a certain, unknown, set of APIs. There is a "param_set" API that allows setting specific parameters on those externals, such as "label" which is the text of a button. But those APIs (currently) don't cover all the APIs supported by a widget, and anyway are limited to int/bool/double/string values (eina_value in a more general case). So a solution to exposing as much functionality as possible is to expose the internal widget directly. This is edje_object_part_external_object_get(). All "part" APIs in Edje.Object are meant to be implemented with efl_part(). Going forward with EO API I see 3 solutions: #1. Do not expose the widget at all, hope that someday we can expose all useful features through generic parameter API. #2. Expose the internal widget directly (i.e. edje_object_part_external_object_get () or efl_content_get()) #3. Expose the widget API through composition, but not the widget itself. Point #3 requires explanation: efl_part(edje, "partname") returns a temporary object of a subtype of class Efl.Canvas.Layout.Part. This object is meant to be used for a single function call. But in this case, we can compose it with the real widget with efl_composite_attach(). Then all the functions of the widget are available on the part handle, except Efl.Object base functions (eg. wref, data, events, etc...) Right now I've implementewd both #2 and #3. I'm kind of happy with both, but would like your opinions. In particular, #3 could be used as a common pattern with efl_part() but it has the downside of overexposing internal features. Thanks in advance! -- Jean-Philippe André ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel