Re: [E-devel] Clipped Smart Object draft
It's in SVN now. On Mon, May 26, 2008 at 1:53 PM, Kenneth Christiansen [EMAIL PROTECTED] wrote: I guess that if it is not in evas, people wont really use it, either because they don't know about it or because they don't like adding yet another library. Kenneth No radical changes? Well that certainly puts a damper on things Gustavo.. where's the fun in that? :) Ok, I took a look at your ehelpers/evas_object_smart_clipped.[ch] and that's definitely not radical. On a more serious note: If you're not going to really extend evas per-se, just add some convenience constructs for dealing with 'common' kinds of smart objects, then why put this into evas? Why not add it to the esmart lib instead, that's a lib that's used for exactly these kinds of things (it has many useful kinds of smart classes for various things - more should be added). - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 - 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=100url=/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Clipped Smart Object draft
On Tue, May 20, 2008 at 12:10 AM, Jose Gonzalez [EMAIL PROTECTED] wrote: Gustavo wrote: Anyone else looked at this? May I add the clipped smart object (no layout stuff!) to evas? I can add some docs and even change basic smart object to refer to this one for simple implementations. For those who are irc challenged, maybe you could give a short overview of what it is this is supposed to help address, why it should be 'added' to evas, etc. :) It's just a way to help implementation of smart objects. Most common use smart objectcase: create an internal clipper, clip every child to it, move will move children relatively to parent, clip/clip_unset/color/show/hide will all go to the internal clipper. Resize is undefined. What this code provide is this set of default method implementation and an easy to extend base class, just do like in the examples and provide your own methods (be it constructor or resize or show... you name it), which can call the parent. I exposed all the base methods to make it easier to use, one can override show() to do fancy stuff and still call the original to do real work, this could be done differently, having users to copy (ie: parent_class) Smart_Class after evas_object_smart_clipped_smart_set() Why should it be added to Evas: because it's very simple, it's useful and can serve as base for other things. Actually the idea of such component was born while I was teaching INdT guys and after documenting that you should always do the same stuff for most of methods I opted to add such default implementation and errors went down by a huge factor... actually nowadays it's hard to find a good case to use plain smart object itself. Al, one of things that I failed to figure in the past why show, hide, color_set, clip_set and color_set are ALL marked as DELETE ME. I don't remember for sure, but I think it was rephorm that did say that the common use case is like that and maybe these methods would be replaced with this default implementation only. So it's a good thing in that direction. -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Clipped Smart Object draft
Anyone else looked at this? May I add the clipped smart object (no layout stuff!) to evas? I can add some docs and even change basic smart object to refer to this one for simple implementations. For those who are irc challenged, maybe you could give a short overview of what it is this is supposed to help address, why it should be 'added' to evas, etc. :) It's just a way to help implementation of smart objects. Most common use smart objectcase: create an internal clipper, clip every child to it, move will move children relatively to parent, clip/clip_unset/color/show/hide will all go to the internal clipper. Resize is undefined. What this code provide is this set of default method implementation and an easy to extend base class, just do like in the examples and provide your own methods (be it constructor or resize or show... you name it), which can call the parent. I exposed all the base methods to make it easier to use, one can override show() to do fancy stuff and still call the original to do real work, this could be done differently, having users to copy (ie: parent_class) Smart_Class after evas_object_smart_clipped_smart_set() Why should it be added to Evas: because it's very simple, it's useful and can serve as base for other things. It's definitely useful to have such a ready-made simplifying smart-class construction mechanism that could be 'overriden' - and if you could couple that with some kind of object system for smart data it might even be close to some aspects that the gui toolkits already have. ;) But I'm not sure what you're proposing about doing with it in evas itself..? Do you want to add a new 'clipped smart' object type, or do you want to re-do the current smart stuff so that they have default internal implementations for these smart functions but if the functions are user-specified, then those are used rather than the built-in default ones.. or something of that sort, or what? Actually the idea of such component was born while I was teaching INdT guys and after documenting that you should always do the same stuff for most of methods I opted to add such default implementation and errors went down by a huge factor... actually nowadays it's hard to find a good case to use plain smart object itself. Al, one of things that I failed to figure in the past why show, hide, color_set, clip_set and color_set are ALL marked as DELETE ME. I don't remember for sure, but I think it was rephorm that did say that the common use case is like that and maybe these methods would be replaced with this default implementation only. So it's a good thing in that direction. I've been one who's pointed out issues with these in the past as well, but the truth is that evas is not quite done with exploring those things in full and it may well be that one could want to have other implementations of such methods, or at least 'override' whatever the default ones were.. so it may not be wise to remove them altogether, no matter what jose, rephorm, raster, others may have said in the past :) - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Clipped Smart Object draft
On Tue, May 20, 2008 at 3:37 PM, Jose Gonzalez [EMAIL PROTECTED] wrote: Anyone else looked at this? May I add the clipped smart object (no layout stuff!) to evas? I can add some docs and even change basic smart object to refer to this one for simple implementations. For those who are irc challenged, maybe you could give a short overview of what it is this is supposed to help address, why it should be 'added' to evas, etc. :) It's just a way to help implementation of smart objects. Most common use smart objectcase: create an internal clipper, clip every child to it, move will move children relatively to parent, clip/clip_unset/color/show/hide will all go to the internal clipper. Resize is undefined. What this code provide is this set of default method implementation and an easy to extend base class, just do like in the examples and provide your own methods (be it constructor or resize or show... you name it), which can call the parent. I exposed all the base methods to make it easier to use, one can override show() to do fancy stuff and still call the original to do real work, this could be done differently, having users to copy (ie: parent_class) Smart_Class after evas_object_smart_clipped_smart_set() Why should it be added to Evas: because it's very simple, it's useful and can serve as base for other things. It's definitely useful to have such a ready-made simplifying smart-class construction mechanism that could be 'overriden' - and if you could couple that with some kind of object system for smart data it might even be close to some aspects that the gui toolkits already have. ;) But I'm not sure what you're proposing about doing with it in evas itself..? Do you want to add a new 'clipped smart' object type, or do you want to re-do the current smart stuff so that they have default internal implementations for these smart functions but if the functions are user-specified, then those are used rather than the built-in default ones.. or something of that sort, or what? just check ehelpers/evas_object_smart_clipped.[ch], they should go to evas/src/lib/canvas (and .h to Evas.h) no radical change, it's just an extensible way on top of what we have now, that I really feel is enough for our case: you can _VERY_ easily integrate that with other object systems. I did that for Python-EFL. Actually the idea of such component was born while I was teaching INdT guys and after documenting that you should always do the same stuff for most of methods I opted to add such default implementation and errors went down by a huge factor... actually nowadays it's hard to find a good case to use plain smart object itself. Al, one of things that I failed to figure in the past why show, hide, color_set, clip_set and color_set are ALL marked as DELETE ME. I don't remember for sure, but I think it was rephorm that did say that the common use case is like that and maybe these methods would be replaced with this default implementation only. So it's a good thing in that direction. I've been one who's pointed out issues with these in the past as well, but the truth is that evas is not quite done with exploring those things in full and it may well be that one could want to have other implementations of such methods, or at least 'override' whatever the default ones were.. so it may not be wise to remove them altogether, no matter what jose, rephorm, raster, others may have said in the past :) i'm fine with leaving them there, but if people can just avoid using it, we can check if there is any use case left in future and if not, maybe drop it. -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Clipped Smart Object draft
Gustavo wrote: It's definitely useful to have such a ready-made simplifying smart-class construction mechanism that could be 'overriden' - and if you could couple that with some kind of object system for smart data it might even be close to some aspects that the gui toolkits already have. ;) But I'm not sure what you're proposing about doing with it in evas itself..? Do you want to add a new 'clipped smart' object type, or do you want to re-do the current smart stuff so that they have default internal implementations for these smart functions but if the functions are user-specified, then those are used rather than the built-in default ones.. or something of that sort, or what? just check ehelpers/evas_object_smart_clipped.[ch], they should go to evas/src/lib/canvas (and .h to Evas.h) no radical change, it's just an extensible way on top of what we have now, that I really feel is enough for our case: you can _VERY_ easily integrate that with other object systems. I did that for Python-EFL. No radical changes? Well that certainly puts a damper on things Gustavo.. where's the fun in that? :) Ok, I took a look at your ehelpers/evas_object_smart_clipped.[ch] and that's definitely not radical. On a more serious note: If you're not going to really extend evas per-se, just add some convenience constructs for dealing with 'common' kinds of smart objects, then why put this into evas? Why not add it to the esmart lib instead, that's a lib that's used for exactly these kinds of things (it has many useful kinds of smart classes for various things - more should be added). - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Clipped Smart Object draft
I am for it, you already added this to the python bindings back in the days and it has really proved useful for developing Canola. Cheers, Kenneth On Sun, May 18, 2008 at 5:11 PM, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: Anyone else looked at this? May I add the clipped smart object (no layout stuff!) to evas? I can add some docs and even change basic smart object to refer to this one for simple implementations. On Mon, Mar 24, 2008 at 9:12 PM, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: http://staff.get-e.org/~barbieri/ehelpers.tar.gz This should provide what I said these days in IRC. It's a draft, for real code things like member_add() should check if's really a smart and maybe check if this Evas_Object_Smart_Clipped_Data is correct, maybe using an integer there with a magic number... I just left this out as if we use hooks then it goes away. As you can see the implementation is still generic enough and we could write our layout stuff on top of that easily, just implement the resize() callback to call reconfigure(), a function that would be called internally on child_add() and whenever things changed (ie: child size). If you agree with that I'll provide a layout example on top of it. -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Clipped Smart Object draft
On Mon, May 19, 2008 at 9:13 AM, Kenneth Christiansen [EMAIL PROTECTED] wrote: I am for it, you already added this to the python bindings back in the days and it has really proved useful for developing Canola. yes, basically most of smart object users will just need constructor + resize to be defined. Possible users of hide/show are optimizations for heavy-wait objects... it's hard to imagine interesting use for move, color_set, clip_set, clip_unset... -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Clipped Smart Object draft
On Mon, 19 May 2008 09:13:35 -0300 Kenneth Christiansen [EMAIL PROTECTED] babbled: this is in my mail queue. i killed some of it today - more tomorrow :) I am for it, you already added this to the python bindings back in the days and it has really proved useful for developing Canola. Cheers, Kenneth On Sun, May 18, 2008 at 5:11 PM, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: Anyone else looked at this? May I add the clipped smart object (no layout stuff!) to evas? I can add some docs and even change basic smart object to refer to this one for simple implementations. On Mon, Mar 24, 2008 at 9:12 PM, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: http://staff.get-e.org/~barbieri/ehelpers.tar.gz This should provide what I said these days in IRC. It's a draft, for real code things like member_add() should check if's really a smart and maybe check if this Evas_Object_Smart_Clipped_Data is correct, maybe using an integer there with a magic number... I just left this out as if we use hooks then it goes away. As you can see the implementation is still generic enough and we could write our layout stuff on top of that easily, just implement the resize() callback to call reconfigure(), a function that would be called internally on child_add() and whenever things changed (ie: child size). If you agree with that I'll provide a layout example on top of it. -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)[EMAIL PROTECTED] - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Clipped Smart Object draft
Gustavo wrote: Anyone else looked at this? May I add the clipped smart object (no layout stuff!) to evas? I can add some docs and even change basic smart object to refer to this one for simple implementations. For those who are irc challenged, maybe you could give a short overview of what it is this is supposed to help address, why it should be 'added' to evas, etc. :) On Mon, Mar 24, 2008 at 9:12 PM, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: http://staff.get-e.org/~barbieri/ehelpers.tar.gz This should provide what I said these days in IRC. It's a draft, for real code things like member_add() should check if's really a smart and maybe check if this Evas_Object_Smart_Clipped_Data is correct, maybe using an integer there with a magic number... I just left this out as if we use hooks then it goes away. As you can see the implementation is still generic enough and we could write our layout stuff on top of that easily, just implement the resize() callback to call reconfigure(), a function that would be called internally on child_add() and whenever things changed (ie: child size). If you agree with that I'll provide a layout example on top of it. - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Clipped Smart Object draft
Anyone else looked at this? May I add the clipped smart object (no layout stuff!) to evas? I can add some docs and even change basic smart object to refer to this one for simple implementations. On Mon, Mar 24, 2008 at 9:12 PM, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: http://staff.get-e.org/~barbieri/ehelpers.tar.gz This should provide what I said these days in IRC. It's a draft, for real code things like member_add() should check if's really a smart and maybe check if this Evas_Object_Smart_Clipped_Data is correct, maybe using an integer there with a magic number... I just left this out as if we use hooks then it goes away. As you can see the implementation is still generic enough and we could write our layout stuff on top of that easily, just implement the resize() callback to call reconfigure(), a function that would be called internally on child_add() and whenever things changed (ie: child size). If you agree with that I'll provide a layout example on top of it. -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Clipped Smart Object draft
http://staff.get-e.org/~barbieri/ehelpers.tar.gz This should provide what I said these days in IRC. It's a draft, for real code things like member_add() should check if's really a smart and maybe check if this Evas_Object_Smart_Clipped_Data is correct, maybe using an integer there with a magic number... I just left this out as if we use hooks then it goes away. As you can see the implementation is still generic enough and we could write our layout stuff on top of that easily, just implement the resize() callback to call reconfigure(), a function that would be called internally on child_add() and whenever things changed (ie: child size). If you agree with that I'll provide a layout example on top of it. -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Clipped Smart Object draft
On Mon, Mar 24, 2008 at 9:12 PM, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: http://staff.get-e.org/~barbieri/ehelpers.tar.gz This should provide what I said these days in IRC. It's a draft, for real code things like member_add() should check if's really a smart and maybe check if this Evas_Object_Smart_Clipped_Data is correct, maybe using an integer there with a magic number... I just left this out as if we use hooks then it goes away. As you can see the implementation is still generic enough and we could write our layout stuff on top of that easily, just implement the resize() callback to call reconfigure(), a function that would be called internally on child_add() and whenever things changed (ie: child size). If you agree with that I'll provide a layout example on top of it. Ok, since it was fresh in my mind I hacked a simple layout api + vbox implementation. It's very raw, just a proof of concept that with such api implementations are really simple. One of the things that it doesn't do is care about dirty/clean state, as we discussed here and some other places that if we had smart_pre_render exposed like for other regular objects, we could do the recalcs there, so this per object freeze/thaw would not be required anymore. From evas_object_layout_basic.c you can see that doing a real vbox is just a matter of doing the math there to align, add borders/margins, considering size hints/policy (once they're in Evas_Object*) Also, one thing left out is a call to return the required size to fit all children in that layout. We'd need this to allocate size properly and also to align the bounding box of items inside the object area, if the layout wants so... this would be like edje_object_size_min_get(). For some layouts, ie: vbox, is just to sum all the object's height and their spacing/padding. For some others, like flow, it would require more complex calculation that could be cached/shared with reconfigure. -- Gustavo Sverzut Barbieri http://profusion.mobi Embedded Systems -- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel