java-gnome 4.0.4 (26 Sep 2007) ============================== _Coverage increasing!_ Most of our work continues to be on infrastructure and architecture, improving the code generator that outputs the translation Java layer and JNI C layer which allow bindings hackers to reach the underlying native libraries. Nevertheless, there have been a number of publicly visible improvements across the board, so we wanted to push out a release highlighting these contributions! Documentation improvements -------------------------- Continuing our effort to have extensive developer friendly tutorial style documentation, there have been major additions to a number of existing classes. Of particular note is the Window class, containing the various utility methods used to ask the window manager to do things for you (we've also started exposing some of the deeper parts of the GTK toolkit, though only a few things that were immediately related to window management). * **`org.gnome.gtk.Window`** * **`org.gnome.gtk.Widget`** * **`org.gnome.gdk.Screen`** * **`org.gnome.gdk.Window`** While the topic of thread safety was discussed at considerable length in the last release, we have added some of the more relevant information to the code documentation to reinforce its importance. * **`org.gnome.gdk.Gdk`**'s `lock` New coverage ------------ Numerous people have been hard at work developing new coverage. The standards for accepting patches which expose public API are high, so it's awesome to see bundles accepted for being merged to `mainline` from new contributors Thomas Schmitz, Wouter Bolsterlee, and Nat Pryce. The infrastructure for a number of areas important to supporting applications including Menus, Toolbars, and Actions has been put in place: * **`org.gnome.gtk.Toolbar`** * **`org.gnome.gtk.ToolItem`** * **`org.gnome.gtk.ToolButton`** * **`org.gnome.gtk.ToggleToolButton`** * **`org.gnome.gtk.MenuToolButton`** * **`org.gnome.gtk.SeparatorToolItem`** * **`org.gnome.gtk.MenuItem`** * **`org.gnome.gtk.CheckMenuItem`** * **`org.gnome.gtk.SeparatorMenuItem`** * **`org.gnome.gtk.Action`** * **`org.gnome.gtk.ActionGroup`** A number of Container related Widgets have been added, though coverage is preliminary. There have, of course, also been a number of minor improvements in other existing classes, including: * **`org.gnome.gtk.Notebook`** * **`org.gnome.gtk.ScrolledWindow`** * **`org.gnome.gtk.Misc`** * **`org.gnome.gtk.ButtonBox`** * **`org.gnome.gtk.HButtonBox`** * **`org.gnome.gtk.VButtonBox`** * **`org.gnome.gtk.Label`** and even: * **`org.gnome.gtk.StatusIcon`** Along with these goes a variety of miscellaneous constants and wrappers around the stock item identifiers: * **`org.gnome.gtk.Alignment`** * **`org.gnome.gtk.ImageType`** * **`org.gnome.gtk.ButtonBoxStyle`** * **`org.gnome.gtk.Justification`** * **`org.gnome.gtk.Orientation`** * **`org.gnome.gtk.Stock`** * **`org.gnome.gdk.Gravity`** Internals --------- Vreixo Formoso carried out an important refactoring to the type database and Generator family of classes in the code generator, with the result that more of the array passing and out-parameter cases are now being handled correctly. This kind of work is usually thankless and taken for granted, but it's hugely appreciated! The real gains are in internal quality. A number of serious bugs and limitations have been overcome (`Glade` is working again, for example). The generated code now guards against improper use (you can't pass a `null` pointer unless it's allowed by the underlying library). Related to this is handling of "`GError`" -- Java side, bindings hackers will get `GlibException` which they can then re-throw as an appropriate Java Exception, say `FileNotFoundException` in the case of not being able to open a file. This all goes along with numerous build system fixes by Srichand Pendyala to make for an increasingly robust project. Thanks guys! Looking ahead ------------- As mentioned above, we have mostly been focused on areas other than public API, but it is expanding steadily. The hard work on infrastructure, however, is starting to pay off, and the next release should include coverage of TreeView, GTK's powerful but complex list Widget. AfC Gentoo packages =============== The java-gnome bindings suite is now available in [Gentoo Linux](http://www.gentoo.org/). An `.ebuild` for 4.0.3 has been merged to Portage in * `dev-java/java-gnome` If you need help installing it, see the the Gentoo page in the [download](/4.0/get/gentoo.php) section here. Thanks to the people who pushed this through: Xerces MC for having submitted an initial `.ebuild`, Petteri Räty (Gentoo dev and Java team lead) for having fixed it up, and Christoph Brill for testing. AfC