Charlie schrieb: > Ok, I think I auto-solved my problem, digging the framework codes, I > end up overriding the _changeInnerWidth() method to trigger my own > "innerWidthChanged" event on the TabLayout. > Is it the right way this time? More, why does the code of this > function *must *be in a window.setTimeout(...., 0) ? > Thanks > Charlie > There is no clean way to detect layout resize events. The way you do it is the cleanest hack to detect them. The timeout is necessary because the method _changeInnerWidth() is called during the layout flush. If you do any modification, which influences the layout, the whole mechanism may break. The timeout ensures that all changes are applied after the layout flush.
In 0.8 there will be a "resize" and "move" event but until then you will have to live with this solution. Best Fabian BTW This is definitely no dummy question :-) > Charlie a écrit : >> Hi >> once again, i hope i'm not asking a too dummy question... >> Here is my generic problem : what is the approach to detect a "resize" >> event of a Widget inside a complex layout? >> >> I explain my case : >> I've developped an extended TabLayout that can hide some tabs if there >> are too many to be displayed for the width of the bar, and show the >> hidden ones in a popup menu (exactely like the FF personal toolbar, with >> the arrows button at the end.). For this, I have a handler that computes >> what should be displayed or not, depending on the tab bar "widthValue". >> Naturally, if the user resizes the browser window, or in my case any >> splitpane impacting on the TabLayout width, I have to trigger the >> handler to recompute the tabs. Since my TabLayout width property is set >> to '100%', i cannot observe the "changeWidth" property on this, it never >> changes. And there is no event like "changeWidthValue", so I find myself >> using a recursive function searching for the first parent that has a >> "width" property that is not a percentage, then attach a listener to it >> to check if the width is changing. >> >> It's working, but I'm quite sure this is not a really clean approach, is >> it? Could you tell me how to do this in a better way? >> Thanks again for the work >> Charlie >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2008. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> qooxdoo-devel mailing list >> qooxdoo-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel >> >> >> > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > ------------------------------------------------------------------------ > > _______________________________________________ > qooxdoo-devel mailing list > qooxdoo-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel > -- Fabian Jakobs JavaScript Framework Developer 1&1 Internet AG Brauerstraße 48 76135 Karlsruhe Amtsgericht Montabaur HRB 6484 Vorstand: Henning Ahlert, Ralph Dommermuth, Matthias Ehrlich, Andreas Gauger, Thomas Gottschlich, Matthias Greve, Robert Hoffmann, Markus Huhn, Achim Weiss Aufsichtsratsvorsitzender: Michael Scheeren ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel