On Sat, Apr 17, 2010 at 7:10 PM, Gustavo Sverzut Barbieri <
[email protected]> wrote:

> On Sat, Apr 17, 2010 at 1:26 PM, Andreas Volz <[email protected]> wrote:
> > Hello,
> >
> > I search an simple C example for the edje external type. I found
> > something, but it doesn't compile and after I got it to compile it
> > doesn't work (crash).
> >
> > Does someone know a good example?
>
>
Don't forget to look at trunk/EXAMPLES/elementary/*.
There you'll find themes made with Editje and whose edcs can be recovered
for study.


>  Well, I don't understand your question/requirement, but maybe is due
> edje EXTERNAL not having a clear public introduction yet :-)
>
> First, Edje EXTERNAL is our hope to automatize object creation +
> SWALLOW, as it tend to be quite tedious. It's almost the same as the
> GROUP type, but it work with non-Edje as well, like Emotion and
> Elementary, in future EPDF/EDVI/EPS and so on.
>
> In essence it is just an automatic swallow, using the "source: name"
> part-level entry to specify the object to load. The "name" string will
> be looked up in a hash table that is either registered by the
> application itself using
> edje_external_type_register()/edje_external_type_array_register() or
> automatically by edje using the externals {} block that will load the
> module from ${prefix}/lib/edje/    Editje, for instance, add the used
> external modules to the file with:
>
>    externals {
>        external: "elm";
>    }
>
> Then you can load that file with any program, and /usr/lib/edje/elm.so
> will be called the eina module init, that in turn will call
> edje_external_type_array_register() automatically, making all "elm/*"
> strings available to EXTERNAL parts. You can try these things in
> edje_player or edje_viewer, or even e17 borders :-D (border
> decorations that play video!? :-P)
>
> In order to help with common tasks even further, like define the video
> path (if fixed), button label/icon and such common initialized
> elements, Edje EXTERNAL parts take parameters per-state. So you can
> even specify multiple states that have different parameters. Upon
> state change these parameters will be applied, reducing requirement
> for C/C++/Python code even further.
>
> Basically that is Edje EXTERNAL support for a "UI Designer" point of
> view, you specify non-native objects to be loaded there and you say
> how they should look like. Try editje to get some files, or use its
> own example in  editje/test/sample.edc.  You can see example of
> Emotion usage in my email
>
> http://www.mail-archive.com/[email protected]/msg24939.html
>
>
> For the application developer point of view, you can just handle it as
> other part, ignoring it if it was not expected by you, or using
> edje_object_part_external_object_get(), or other functions to set
> basic parameters with edje_object_part_external_param_set(). However,
> it is advised that if the application developer knows it should be a
> specific object type, say elm/button, then user should use the
> edje_object_part_external_object_get() followed by native calls as
> elm_button_label_set(). This is important for performance reasons.
> The helper edje_object_part_external_param_set() in the case
> applications do not need performance or they can deal with multitude
> of object types that have the same property names (like we do in Edje
> itself with TEXT and TEXTBLOCK, edje_object_part_text_set() works for
> both).  The multitude of objects, in this case, would be defined by
> the UI designer, like a using a a elm/button or elm/radio, they all
> have "label" property.
>
> Not all methods are supported by Edje EXTERNAL, and they will likely
> remain as it. For instance, we support elm/list, but you need to add
> the list items from C code.
>
> Last but not least, you have the developer that provides EXTERNAL
> objects, that are used by the above cases. This is being done by
> ProFUSION for most of Elementary widgets and is quite complete, maybe
> too much to use as learning base. So I did the Emotion version in
> emotion/src/edje_external. It is quite simple to understand.
> Basically you expose some meta-information targeted at Editors (like
> Editje) so it can show label, description, icon... It also provides
> some callbacks to let you do your work, like creating the object and
> set/get of properties.
>
> Overall we already noticed some missing bits, like a way to instruct
> the Editors that some properties are read-only, write-only or should
> be used just once for construction of the objects. These flags will
> come with time.
>
> BR,
>
> --
> Gustavo Sverzut Barbieri
> http://profusion.mobi embedded systems
> --------------------------------------
> MSN: [email protected]
> Skype: gsbarbieri
> Mobile: +55 (19) 9225-2202
>
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>



-- 
Gustavo Lima Chaves
Computer Engineer @
ProFUSION Embedded Systems
------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to