java-gnome 4.0.16 released

Ok, so this was a while ago; got a bit behind on my blogging, and it’s time to catch up. This post is an extract of the release note from the NEWS file which you can read online … or in the sources from Bazaar. We’ve also released 4.0.17-rc1.


java-gnome 4.0.16 (17 Jun 2010)

Accelerating is good for you

Accelerators

java-gnome now has full support for accelerators, the key bindings (such as Ctrl+Q for “quit”) typically used to activate MenuItems and Actions. The heart of the API is in the AcceleratorGroup class, although you actually use it care of MenuItem’s setAccelerator() and Action’s setAccelerator(). Huge thanks are due to Thijs Leibbrand for having navigating the almost incomprehensible native API and figured out how we could best add coverage for Java programs.

Cairo Operations

Though we’ve had support for Cairo’s various “operators” (different modes for combining what’s being drawn with what’s already on the surface) for some time, we didn’t really know what we were doing. Thanks to the careful work of Kenneth Prugh, we’ve now got full coverage in the Operator class along with a magnificent series of illustrations. These are the same pictures as are in the underlying Cairo documentation, but like our screenshots, ours are generated automatically by java-gnome programs whenever you build the documentation.

Miscellaneous improvements

The style CENTER has been added in ButtonBoxStyle.

Coverage of GTK’s new InfoBar Widget was added by Guillaume Mazoyer, who also made numerous touch ups to various core classes. The Activatable and Editable interfaces got some love. And methods to get “human readable” byte sizes have been added to the Glib utility class.

Finally, we exposed the code needed to force GDK to revert to the pre GTK 2.18 behaviour of using native X Windows for every Widget. This shouldn’t be necessary — the whole point of major changes like the “client-side windows” branch are is that they are supposed to Just Work (and more to the point Just Work better, over time) — but it does give a workaround for unusual corner cases where either GTK, java-gnome, or the developer is constrained and needs some help. You can call org.gnome.gdk[]‘s ensureNative() if you need it.


You can download java-gnome’s sources from ftp.gnome.org_, or easily checkout a branch from_ ‘mainline:

$ bzr checkout bzr://research.operationaldynamics.com/bzr/java-gnome/mainline java-gnome

though if you’re going to do that you’re best off following the instructions in the HACKING guidelines.

AfC