Am Wed, 22 Aug 2007 09:03:07 +1000 schrieb Brett Nash: > > > I disagree here. You are correct in that 95+% of cases are just > > > hide/show the clip and the like. However we have a number of > > > widgets that do things like stop animations, release resources or > > > similar actions on hide calls, also more complex widgets delay > > > layout recalculations until the show call. > > About doing stuff on show, you'll still be able to do this. You'll > > just need to have a callback to the SHOW event of the smart-object > > (with evas_object_event_callback_add()). > > The advantage of doing stuff with the smart callback is that it is > called first. There are no guarantees that what order event callbacks > are invoked, at least not any useful ones. If I recall correctly > there were discussions of moving event callbacks to asynchronous > events (obviously a massive API change). > > > As for evas_object_hide(), maybe you just shouldn't call it for what > > you are doing. You could have a function my_smart_object_hide() that > > will do all the animations, and that will finally call > > evas_object_hide() on the smart-object at the end of the animations. > > That idea breaks the whole idea of smart objects. They are supposed > to abstract the whole idea of Evas_Objects so there is a uniform > API. [I still have code here from pre-smart-object evas here, and > they all have <widget>_hide, <widget>_show, <widget>_move calls > etc]. Stopping animations or releasing some resources. > > Just to be clear, I'm NOT referring to animations being triggered on a > hide call, just about stopping internal work on the hide. So I think > my original post may not have been clear on this, as I believe we are > in agreement on these points. > > > Imho, evas_object_hide() should really hide the object. And since > > smart-objects have been designed to form a logical group from > > compound evas-objects, evas_object_hide() should hide the > > smart-object and all its member-objects. It wouldn't be coherent to > > have evas_object_visible_get(smart) returning 0, and still have a > > member-object being visible. The state of the member-objects should > > automatically inherit from the state of their parents if we want to > > keep things logical imho. > > I agree with this, evas_object_hide doing things aside from hiding > objects is (generally) stupid. But releasing resources, or to stop > doing work because it's not visible is useful (waiting for pixel_get > is good for videos, but not for a lot of other things).
I've also another argument. My application implements multiple "screens" with Evas_Smart objects. This means I do various tricky things in the show function. A show() doesn't in each case force a show() of all elements inside the Evas_Smart based on some other properties. I'm sure if the show/hide is removed I find a way to work around this. But I like to mention it... regards Andreas ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel