The week in qooxdoo (2009-10-02)

Lets take a look back at another enjoyable week in qooxdoo:

Native Scroll Bars

Since qooxdoo 0.8 we render the scroll bars as pure qooxdoo widgets. This has the advantage that one has full control over the behavior and theming of scroll bars. Unfortunately, it is not possible to always replace the scroll bars with qooxdoo scroll bars. Especially the areas that are not fully under control of the layout engine still show the native scroll bars. Examples for that are HTML embed, IFrame and TextArea widgets. Since this mixed look in a more complex app can potentially irritate users we have now added an option to render all scroll bars as native scroll bars. There is a global setting qx.nativeScrollBars which determines the kind of scroll bars used throughout the application.

Both kinds of scroll bars

Both kinds of scroll bars

Drag and Drop events now bubbling

We only recently realized that drag and drop events in qooxdoo 0.8.x were not bubbling. This is different to the drag and drop events in qooxdoo 0.7 and the proposed drag and drop specification in HTML5. Since there are several uses cases which require bubbling drag and drop events, we have now turned those events into bubbling events. Note that this fix changes behavior and can lead to problems with existing code if draggable or droppable widgets are nested. In these cases the old behavior can be restored by adding stopPropagation() calls to the end of drag and drop event handlers.

Label API adjustments

In order to further standardize the API, the methods getContent() and setContent()in and qx.html.Label have been deprecated in favor of getValue() and setValue(), bringing them in line with qx.ui.basic.Label. Unfortunately, this inconsistency hasn’t been noticed earlier, but we felt it needed to be corrected asap to account for all the cleanups in this area made towards 0.8.3.

SVN trunk cleanup

Talking of 0.8.3: in that release we had quite a number of API changes as mentioned, and to support the transition of existing code had included a lot of run-time deprecations. While working towards the 1.0 release now, it was time to get rid of all deprecated code and also the legacy sources that were kept in the framework from 0.7.x. It was quite some work but finally and successfully, we got the SVN trunk almost deprecation free, including all the qooxdoo apps and components. The SVN revision before removals is r20219 just in case you’d need it. If you encounter any problems, please do not hesitate to file bug reports, thanks.


For a complete list of bugs fixed during the last working week, use this bugzilla query.

Tartan Blueprint

Dan Hummon from Tartan Solutions has added the Tartan Blueprint contrib. Blueprint is about form serialization to JSON. In his announcement, Dan writes

“This is primarily a serialization engine for the creation of forms. We have
created a JSON format that describes forms, scripts and functions on
objects. This is a similar approach to some of the UIDeclaration or
qxTransformer work. I’m hoping to get some feedback on our solution.”

See here for the full announcement. Among other things, Dan has created a specialized Playground application that let’s you evaluate Blueprint JSON data immediately. The project’s current home page is here.

Not surprisingly, but impressive nevertheless, there is a designer component that lets you create forms interactively, and which creates Blueprint JSON in the background. – Way to go, Dan!


In next week’s blog post we’ll try to showcase some of the other contributions that have entered qooxdoo-contrib just recently or are currently being completed. It’s great to see so many high-quality contributions for qooxdoo to appear. If you feel like contributing a project yourself, feel free to do so. Keep in mind that it doesn’t need to be big, though, just useful for or “colorful” within the qooxdoo community.

That’s it for the moment, see you around next week.