[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[E-devel] ewl layer handling

Hi all,

While I'm playing around with ewl_embed to replace my old context menu in elitaire, I recognize that this is nearly impossible, because ewl spreads its objects over the whole layer range, starting with -1000 upto 1000 (I'm not sure if the number are really correct). And swallow it in a edje is indeed impossible. So the the current layer system may work well for stand alone ewl apps, but it is useless when you want overlap an ewl_embed and some evas_objects. I think it would make sense to switch to the "new" (perhaps six month old) evas_smart_object layer system, so that every ewl widget is a smart member of the ewl_embed smart object and all ewl's magic happens in only one layer. I know this is not an easy step or an one-day-job, I've already done this in elitaire. On the other hand the most code I've seen in ewl concerning to layering was put this object over another or put this object to the top and that is easily done with stack_above() and raise().

I see two ways to do this:
1. Trying to stay as nearly as possible to the current system. E.g. just replacing the evas_object_layer_set(o, 1000) with evas_object_raise(o). This should be possible but might become tricky in the detail. 2. Every widget get a dummy smart object, with no callbacks. So this smart object holds in a "normal" widget the clip and the edje theme and in the case of a container also the smart object of the children. This approach would be cleaner and easier, but I don't know if it cause extra overhead.

Would do you think about it ? Have I missed anythink or should I try a start (without guaranty of success)?

Thanks for your attention and sorry for my linguistic mistakes