Re: [E-devel] Proposed evas gfx api changes and additions - part I.
Just a couple of other remarks on these two (parts I, II) proposals: Like the proposed gradient obj api function that sets an (affine) "fill_transform", there would be a similar one to set such on an image object: void evas_object_image_fill_transform_set(obj, Evas_Transform *t); Note that this is NOT the same as transforming the object itself.. that's a separate thing (as would be raster-based filters one could apply on general objects). Such 'fill_transforms' should be used mostly for the purposes of using the image object as a texture - not for transforming "an image". The best way to do that would be via an object transform (which can then be a general projective one) and by having an image api func that would set the image obj's 'fill-policy' to none (or something like that), meaning that all image 'fill' attributes are ignored and the image is then always scaled to the size of the obj - ie. the image obj then acts like "an image" rather than like a plain rect which is being fill-textured with an image. But all this will take a bit longer to be implemented due to the fair amount of re-structuring of evas image internals needed to add support for it. If anyone is willing to try and work on that part in the meantime, let me know. One other api func that will be needed with general stroking (and also later when objects might support transforms or filters) is an api func to obtain an object's 'bounds' - ie. the actual bounding rectangle of the obj as drawn on the canvas. void evas_object_bounding_rect_get(obj, Evas_Coord *x, *y, *w, *h); This will be needed internally as well for correct 'hit detection' of such modified objects (eg. of thick stroked lines, polys,... transformed objs, etc). Great pay, great benefits, rewarding. Click for information on a healthcare career. http://thirdpartyoffers.juno.com/TGL2141/fc/Ioyw6i3oH0aMuCCxm9AWWu0rLnlZhHMOGuyhEcYIxHg0zbWPFduCZi/ - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Shared Strings
Cedric BAIL schrieb: > > I think we didn't understand together. When I say slowly move stuff > around, it include changing and improving Eina to fit our needs also. > Eina is not a finished library, but an ongoing development. It's just > a good starting point imho to get stuff done faster. > Ok, then I really misunderstood you. I thought you want to throw it in to cvs and porting evas to use it immediately. If I understand you now right, you want to put it into cvs (maybe in proto), bringing it in shape and once it is finished, i.e. as we want it. You'll go to port evas et al. to it. > >> For example in eina the evas_hash implementation is called eina_hash. I think >> it'd be better to reserve this name for the ecore_hash implementation, >> because >> it is much more general. For the evas_hash implementation another name like >> eina_strhash would imho then be better. >> > > I agree with your rename it make sense. But I still think that doing > this review with the code in CVS would be faster. Instead of just > discussing we will have code progressing at the same time and every > one following development on the CVS will be able to participate in > this review and get stuff done faster. > > >> And I'm still not convinced if there is a general need to have a >> fixed-point implementation in the base data types lib, just to mention my >> concerns. Maybe someone else, with more authority then me :), will join this >> discussion. >> > > In my opinion, it's easier to remove code than to write :-) I don't > see any direct user for this feature right now, but with the planned > evolution of evas, their could be some. So I d > > Not if apps/libs already depend on it :) >> I'm sure turran took care in doing eina, but you'll get more agreement if >> things are discussed before. >> > > The idea of moving eina inside the efl librarry CVS repository is to > take care of it as a group and use this as a fast starter. It's a lot > of work to move data type out of Evas, preserving speed, feature and > stability. So that what we win by using eina as a starting point. Then > as a group we can change and update this stuff according to our need. > I am sure Turran will agree on this. > > - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Esmart container clipping
Sevcsik András schrieb: > Thanks for the help guys, here's my second version, that deals with > show/hide and applies clip_elements_set() to all elements. > @@ -444,9 +485,12 @@ 485 evas_object_repeat_events_set(el->grabber, 1); 486 evas_object_color_set(el->grabber, 0, 0, 0, 0); 487 evas_object_show(el->grabber); -447 +488 489 el->container = cont; -449 evas_object_clip_set(el->obj, cont->clipper); +490 +491 if (cont->clip_elements) +492 evas_object_clip_set(el->obj, cont->clipper); +493 I think this should be: if (cont->clip_elemets || !evas_object_visible_get(cont->obj)) evas_object_clip_set(el->obj, cont->clipper); Besides that looks good to me. - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Esmart container clipping
On Fri, Jul 18, 2008 at 4:48 PM, Peter Wehrfritz <[EMAIL PROTECTED]> wrote: > Sevcsik András schrieb: > >> Thanks for the help guys, here's my second version, that deals with >> show/hide and applies clip_elements_set() to all elements. >> >> > @@ -444,9 +485,12 @@ > > 485 evas_object_repeat_events_set(el->grabber, 1); > 486 evas_object_color_set(el->grabber, 0, 0, 0, 0); > 487 evas_object_show(el->grabber); > -447 > +488 > 489 el->container = cont; > -449 evas_object_clip_set(el->obj, cont->clipper); > +490 > +491 if (cont->clip_elements) > +492 evas_object_clip_set(el->obj, cont->clipper); > +493 I think this should be: if (cont->clip_elemets || > !evas_object_visible_get(cont->obj)) evas_object_clip_set(el->obj, > cont->clipper); Besides that looks good to me. You've got a point. I attached the fixed version. -- Minden jót, Sevcsik András Index: src/lib/esmart_container/Esmart_Container.h === RCS file: /var/cvs/e/e17/libs/esmart/src/lib/esmart_container/Esmart_Container.h,v retrieving revision 1.11 diff -u -r1.11 Esmart_Container.h --- src/lib/esmart_container/Esmart_Container.h 12 Jul 2008 06:40:36 - 1.11 +++ src/lib/esmart_container/Esmart_Container.h 18 Jul 2008 15:01:15 - @@ -147,6 +147,18 @@ EAPI int esmart_container_layout_plugin_set(Evas_Object *container, const char *name); +/*! \brief Set that container should clip elements + * @param container Object + * @param val Boolean value: 1 to clip elements (default), 0 to not + */ +EAPI void esmart_container_clip_elements_set(Evas_Object *container, + unsigned char val); + +/*! \brief Checks that container clips elements or not + * @param container Object + * @return Boolean value: 1 if clip elements, 0 if not + */ +EAPI unsigned char esmart_container_clip_elements_get(Evas_Object *container); #ifdef __cplusplus } Index: src/lib/esmart_container/esmart_container.c === RCS file: /var/cvs/e/e17/libs/esmart/src/lib/esmart_container/esmart_container.c,v retrieving revision 1.16 diff -u -r1.16 esmart_container.c --- src/lib/esmart_container/esmart_container.c 12 Jul 2008 06:40:36 - 1.16 +++ src/lib/esmart_container/esmart_container.c 18 Jul 2008 15:01:16 - @@ -419,6 +419,47 @@ return length; } +EAPI void +esmart_container_clip_elements_set(Evas_Object *container, unsigned char val) +{ + Container *cont; + Evas_List *l; + + cont = _container_fetch(container); + if (val) + evas_object_show(cont->clipper); + else + evas_object_hide(cont->clipper); + cont->clip_elements = val; + + if (val) + { /* Clip all elements */ + for (l = cont->elements; l; l = l->next) + { + Container_Element *el = l->data; + + evas_object_clip_set(el->obj, cont->clipper); + } + } + else + { /* Unclip all elements */ + for (l = cont->elements; l; l = l->next) + { + Container_Element *el = l->data; + + evas_object_clip_unset(el->obj); + } + } +} + +EAPI unsigned char +esmart_container_clip_elements_get(Evas_Object *container) +{ + Container *cont; + + cont = _container_fetch(container); + return cont->clip_elements; +} / internal functions ***/ @@ -435,7 +476,7 @@ el->obj = obj; evas_object_data_set(obj, "Container_Element", el); evas_object_show(obj); - + evas_object_geometry_get(obj, NULL, NULL, &w, &h); el->orig_w = w; el->orig_h = h; @@ -444,9 +485,12 @@ evas_object_repeat_events_set(el->grabber, 1); evas_object_color_set(el->grabber, 0, 0, 0, 0); evas_object_show(el->grabber); - + el->container = cont; - evas_object_clip_set(el->obj, cont->clipper); + + if (cont->clip_elements || !evas_object_visible_get(cont->obj)) + evas_object_clip_set(el->obj, cont->clipper); + evas_object_clip_set(el->grabber, cont->clipper); /* evas_object_layer_set(el->obj, evas_object_layer_get(cont->obj)); @@ -456,6 +500,7 @@ evas_object_stack_above(el->obj, cont->obj); */ evas_object_smart_member_add(el->obj, cont->obj); + evas_object_smart_member_add(el->grabber, cont->obj); evas_object_event_callback_add(el->grabber, EVAS_CALLBACK_MOUSE_DOWN, _cb_element_down, el); Index: src/lib/esmart_container/esmart_container_private.h === RCS file: /var/cvs/e/e17/libs/esmart/src/lib/esmart_container/esmart_container_private.h,v retrieving revision 1.7 diff -u -r1.7 esmart_container_private.h --- src/lib/esmart_container/esmart_container_private.h 12 Jul 2008 06:40:36 - 1.7 +++ src/lib/esmart_container/esmart_container_private.h 18 Jul 2008 15:01:16 - @@ -48,6 +48,9 @@ void *data_order_change; unsigned char changed : 1; + + unsigned char clip_elements : 1; /* decide wether to clip elements to container +
[E-devel] Nightly build log for E17 on 2008-07-18 06:52:45 -0700
Build log for Enlightenment DR 0.17 on 2008-07-18 06:52:45 -0700 Build logs are available at http://download.enlightenment.org/tests/logs Packages that failed to build: alarm http://download.enlightenment.org/tests/logs/alarm.log bling http://download.enlightenment.org/tests/logs/bling.log calendar http://download.enlightenment.org/tests/logs/calendar.log cpu http://download.enlightenment.org/tests/logs/cpu.log deskshow http://download.enlightenment.org/tests/logs/deskshow.log echo http://download.enlightenment.org/tests/logs/echo.log eclair http://download.enlightenment.org/tests/logs/eclair.log ecore_li http://download.enlightenment.org/tests/logs/ecore_li.log ecore http://download.enlightenment.org/tests/logs/ecore.log e_dbus http://download.enlightenment.org/tests/logs/e_dbus.log edje_editor http://download.enlightenment.org/tests/logs/edje_editor.log edje http://download.enlightenment.org/tests/logs/edje.log edje_viewer http://download.enlightenment.org/tests/logs/edje_viewer.log edvi http://download.enlightenment.org/tests/logs/edvi.log eflame http://download.enlightenment.org/tests/logs/eflame.log eflpp http://download.enlightenment.org/tests/logs/eflpp.log efm_nav http://download.enlightenment.org/tests/logs/efm_nav.log efm_path http://download.enlightenment.org/tests/logs/efm_path.log efreet http://download.enlightenment.org/tests/logs/efreet.log elapse http://download.enlightenment.org/tests/logs/elapse.log elation http://download.enlightenment.org/tests/logs/elation.log elicit http://download.enlightenment.org/tests/logs/elicit.log elitaire http://download.enlightenment.org/tests/logs/elitaire.log e http://download.enlightenment.org/tests/logs/e.log embrace http://download.enlightenment.org/tests/logs/embrace.log emotion http://download.enlightenment.org/tests/logs/emotion.log emphasis http://download.enlightenment.org/tests/logs/emphasis.log empower http://download.enlightenment.org/tests/logs/empower.log emprint http://download.enlightenment.org/tests/logs/emprint.log emu http://download.enlightenment.org/tests/logs/emu.log engrave http://download.enlightenment.org/tests/logs/engrave.log engycad http://download.enlightenment.org/tests/logs/engycad.log enhance http://download.enlightenment.org/tests/logs/enhance.log enity http://download.enlightenment.org/tests/logs/enity.log enna http://download.enlightenment.org/tests/logs/enna.log enterminus http://download.enlightenment.org/tests/logs/enterminus.log enthrall http://download.enlightenment.org/tests/logs/enthrall.log entrance_edit_gui http://download.enlightenment.org/tests/logs/entrance_edit_gui.log entrance http://download.enlightenment.org/tests/logs/entrance.log entropy http://download.enlightenment.org/tests/logs/entropy.log envision http://download.enlightenment.org/tests/logs/envision.log epdf http://download.enlightenment.org/tests/logs/epdf.log ephoto http://download.enlightenment.org/tests/logs/ephoto.log e_phys http://download.enlightenment.org/tests/logs/e_phys.log epsilon http://download.enlightenment.org/tests/logs/epsilon.log equate http://download.enlightenment.org/tests/logs/equate.log esmart http://download.enlightenment.org/tests/logs/esmart.log estickies http://download.enlightenment.org/tests/logs/estickies.log etk_extra http://download.enlightenment.org/tests/logs/etk_extra.log etk http://download.enlightenment.org/tests/logs/etk.log etk-perl http://download.enlightenment.org/tests/logs/etk-perl.log evfs http://download.enlightenment.org/tests/logs/evfs.log evolve http://download.enlightenment.org/tests/logs/evolve.log ewl http://download.enlightenment.org/tests/logs/ewl.log examine http://download.enlightenment.org/tests/logs/examine.log execwatch http://download.enlightenment.org/tests/logs/execwatch.log exhibit http://download.enlightenment.org/tests/logs/exhibit.log exml http://download.enlightenment.org/tests/logs/exml.log expedite http://download.enlightenment.org/tests/logs/expedite.log express http://download.enlightenment.org/tests/logs/express.log exquisite http://download.enlightenment.org/tests/logs/exquisite.log extrackt http://download.enlightenment.org/tests/logs/extrackt.log flame http://download.enlightenment.org/tests/logs/flame.log forecasts http://download.enlightenment.org/tests/logs/forecasts.log gevas2 http://download.enlightenment.org/tests/logs/gevas2.log iconbar http://download.enlightenment.org/tests/logs/iconbar.log iiirk http://download.enlightenment.org/tests/logs/iiirk.log language http://download.enlightenment.org/tests/logs/language.log mail http://download.enlightenment.org/tests/logs/mail.log mem http://download.enlightenment.org/tests/logs/mem.log mixer http://download.enlightenment.org/tests/logs/mixer.log moon http://download.enlightenment.org/tests/logs/moon.log mpdule http://download.enlightenment.org/tests/logs/mpdule.log net http://download.enlightenment.org/tests/logs/net.log news http://download.enligh
Re: [E-devel] Esmart container clipping
I hope this version works with the current cvs. On Fri, Jul 18, 2008 at 5:02 PM, Sevcsik András <[EMAIL PROTECTED]> wrote: > > > On Fri, Jul 18, 2008 at 4:48 PM, Peter Wehrfritz <[EMAIL PROTECTED]> > wrote: > >> Sevcsik András schrieb: >> >>> Thanks for the help guys, here's my second version, that deals with >>> show/hide and applies clip_elements_set() to all elements. >>> >>> >> @@ -444,9 +485,12 @@ >> >> 485 evas_object_repeat_events_set(el->grabber, 1); >> 486 evas_object_color_set(el->grabber, 0, 0, 0, 0); >> 487 evas_object_show(el->grabber); >> -447 >> +488 >> 489 el->container = cont; >> -449 evas_object_clip_set(el->obj, cont->clipper); >> +490 >> +491 if (cont->clip_elements) >> +492 evas_object_clip_set(el->obj, cont->clipper); >> +493 I think this should be: if (cont->clip_elemets || >> !evas_object_visible_get(cont->obj)) evas_object_clip_set(el->obj, >> cont->clipper); Besides that looks good to me. > > > You've got a point. I attached the fixed version. > > > > -- > Minden jót, > Sevcsik András > -- Minden jót, Sevcsik András Index: src/lib/esmart_container/Esmart_Container.h === RCS file: /var/cvs/e/e17/libs/esmart/src/lib/esmart_container/Esmart_Container.h,v retrieving revision 1.11 diff -u -r1.11 Esmart_Container.h --- src/lib/esmart_container/Esmart_Container.h 12 Jul 2008 06:40:36 - 1.11 +++ src/lib/esmart_container/Esmart_Container.h 18 Jul 2008 15:59:30 - @@ -147,6 +147,18 @@ EAPI int esmart_container_layout_plugin_set(Evas_Object *container, const char *name); +/*! \brief Set that container should clip elements + * @param container Object + * @param val Boolean value: 1 to clip elements (default), 0 to not + */ +EAPI void esmart_container_clip_elements_set(Evas_Object *container, + unsigned char val); + +/*! \brief Checks that container clips elements or not + * @param container Object + * @return Boolean value: 1 if clip elements, 0 if not + */ +EAPI unsigned char esmart_container_clip_elements_get(Evas_Object *container); #ifdef __cplusplus } Index: src/lib/esmart_container/esmart_container.c === RCS file: /var/cvs/e/e17/libs/esmart/src/lib/esmart_container/esmart_container.c,v retrieving revision 1.17 diff -u -r1.17 esmart_container.c --- src/lib/esmart_container/esmart_container.c 16 Jul 2008 21:37:49 - 1.17 +++ src/lib/esmart_container/esmart_container.c 18 Jul 2008 15:59:30 - @@ -419,6 +419,47 @@ return length; } +EAPI void +esmart_container_clip_elements_set(Evas_Object *container, unsigned char val) +{ + Container *cont; + Evas_List *l; + + cont = _container_fetch(container); + if (val) + evas_object_show(cont->clipper); + else + evas_object_hide(cont->clipper); + cont->clip_elements = val; + + if (val) + { /* Clip all elements */ + for (l = cont->elements; l; l = l->next) + { + Container_Element *el = l->data; + + evas_object_clip_set(el->obj, cont->clipper); + } + } + else + { /* Unclip all elements */ + for (l = cont->elements; l; l = l->next) + { + Container_Element *el = l->data; + + evas_object_clip_unset(el->obj); + } + } +} + +EAPI unsigned char +esmart_container_clip_elements_get(Evas_Object *container) +{ + Container *cont; + + cont = _container_fetch(container); + return cont->clip_elements; +} / internal functions ***/ @@ -435,7 +476,7 @@ el->obj = obj; evas_object_data_set(obj, "Container_Element", el); evas_object_show(obj); - + evas_object_geometry_get(obj, NULL, NULL, &w, &h); el->orig_w = w; el->orig_h = h; @@ -444,9 +485,12 @@ evas_object_repeat_events_set(el->grabber, 1); evas_object_color_set(el->grabber, 0, 0, 0, 0); evas_object_show(el->grabber); - + el->container = cont; - evas_object_clip_set(el->obj, cont->clipper); + + if (cont->clip_elements || !evas_object_visible_get(cont->obj)) + evas_object_clip_set(el->obj, cont->clipper); + evas_object_clip_set(el->grabber, cont->clipper); /* evas_object_layer_set(el->obj, evas_object_layer_get(cont->obj)); @@ -456,6 +500,7 @@ evas_object_stack_above(el->obj, cont->obj); */ evas_object_smart_member_add(el->obj, cont->obj); + evas_object_smart_member_add(el->grabber, cont->obj); evas_object_event_callback_add(el->grabber, EVAS_CALLBACK_MOUSE_DOWN, _cb_element_down, el); Index: src/lib/esmart_container/esmart_container_private.h === RCS file: /var/cvs/e/e17/libs/esmart/src/lib/esmart_container/esmart_container_private.h,v retrieving revision 1.7 diff -u -r1.7 esmart_container_private.h --- src/lib/esmart_container/esmart_container_private.h 12 Jul 2008 06:40:36 - 1.7 +++ src/lib/esmart_container/esmart_container_private.h 18 Jul 2008 1
Re: [E-devel] Esmart container clipping
Sevcsik András schrieb: > I hope this version works with the current cvs. > > Yup, thanks. In cvs. - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel