Tomorrow is a national holiday here (May 1st), so the qooxdoo core developers at 1&1 will take the opportunity for a decently long weekend. We'll be back next Monday. ;-) Of course, we won't leave without providing our weekly status update, so here are the most prominent changes (only accounting for the last 3 days!):

qooxdoo 0.8 GUI toolkit

  • The API documentation for the new layout namespace was completed. Hurray. Finally, the best documentation of layout managers we ever had. So hopefully it is much easier for you to work with the new layout system.
  • Introduced caching to the layouts HBox, VBox and Dock in order to improve their overall performance. Especially for reflow situations where the outer dimensions changed.
  • Added support for margins to the layouts HBox, VBox, Dock, Canvas, Basic and Grow. HBox and VBox support the concept of margin collapsing as well. Negative margins are also possible in all mentioned layouts except the Grow layout. The margin is a property of each layout item, so every layout should respect the margin property accordingly.
  • The Dock layout supports the new margin property (as mentioned) and introduces support for horizontal spacing and vertical spacing. These allow to add grid-like customizable separators to the layout.
  • Major rework of alignment support. Both box layouts now support alignment for each axis, when set directly on the layout. They also respect the individual alignment properties as configured on the layout item itself (which have a higher priority than the values on the layout itself).
  • All supported layout properties are now validated by the layout managers. This means that unsupported values or their combination trigger immediate developer feedback using exceptions.
  • The selection handling on the List widget was fixed.
  • Focus handling for complex nested widgets like the Spinner was improved. The focus style should work for these with the latest revision as well.

qooxdoo 0.8 Build process

  • Generator2: There was a major overhaul of the wiki page for the generator config files. The old tabular view for the various config keys was - albeit good looking - neither easy to read nor to maintain. Keys were easy to look up, but then lacked context, so sub-keys were hidden under the main keys in an unintuitive (and less expandable) way. The old table now only holds an overview listing for quick orientation, and the real documentation of the config keys is done in a nested list structure that represents the various contexts. We are aware that the whole issue around the new generator's configuration is a learning hurdle, so any comments on readability and accessibility of this piece of documentation are warmly welcome.

qooxdoo-contrib

  • HtmlArea: Inital work on porting the widget to the upcoming qooxdoo 0.8 version began. We fixed some glitches which were reported on the mailing list (thanks to Hugh, Siarhei and Dietrich) and improved text formatting support for Webkit.

Contribution of the Week

  • Thanks to our fellow framework developer Derrell Lipman, there is cool contribution, which is both educational and entertaining. From his post to the mailing list: "For a long time, I've been wanting to write a somewhat more practical example of using the Finite State Machine module in qooxdoo. A mouse solving a maze maps very well to a Finite State Machine. Each mouse is driven by a finite state machine. I actually derived the Mouse class from the FSM class in this case. This example demonstrates only a small part of the capability of qooxdoo's FSM implementation, so look at the FSM documentation for more info". Enjoy the example that has been checked into the demobrowser of the 0.7 development branch as FsmMiceMaze!