One of the lovely things that happens in open source is the opportunity to work with people from around the world. I was in Spain last month and took the time to go a bit off the beaten track up to A Coruña in Galicia where Vreixo Formoso Lopes lives. Vreixo was the original architects of java-gnome and one of the most prolific contributors to ensuring the internals and memory management work right. It was a pleasure to finally meet him!
java-gnome 4.0.17 (18 Nov 2010)
All dictionaries are equal. But some dictionaries are more equal than others!
After some 6 months of development, this release includes substantial improvements across the library. Thanks to Guillaume Mazoyer, Michael Culbertson, Douglas Goulart, Vreixo Formoso, Mauro Galli, Thijs Leibbrand, and Andrew Cowie for their contributions to the library, and also to Yaakov Selkowitz, and Alexander Boström for their updates to the build system.
Improve the utility of the Enchant library by exposing functionality to test wither a dictionary exists for a given “language tag”, and to list all available dictionaries. Add speciality functions to the Internationalization class facilitating the translation of language and country names so you can present the list of available languages properly translated in the user’s language.
Introduce Icon as a strongly typed class to wrap “named icons” available in an
icon theme, complementing the previous coverage of “stock icons” provided by
the Stock class. Add methods to DataColumn, TreeModel, Image, and Entry making
these available. Also in TreeView land, Vreixo Foromso contributed a change to make
DataColumnReference generic, noting that this was his “one great irritation”
with java-gnome. Itch scratched, apparently.
A fair bit of work went into polishing coverage in various classes. We now
have coverage for Adjustment’s various properties (necessary if you want to
drive a scroll bar around yourself without using one built into a
ScrolledWindow). We’ve also introduced a new signal in the Assistant. You can now define
the behaviour of an Assistant using the
ForwardPage signal with the
setForwardPageCallback() method. It can help you to skip pages when you need
to. When going back, the Assistant will also skip the previously skipped page. java-gnome now supports GTK+ 2.20 and introduces the new Spinner widget
that can be used to display an unknown progress. We added coverage for another utility function, this time the one that
escapes text in strings so that it can be safely
included when Pango markup is being used. And meanwhile if you need to ensure whatever has been copied to the clipboard is available
after your application terminates, you can call Clipboard’s
Fixed a fairly serious bug in the interaction between the memory management code and the thread safety mechanism. Amazing we got away with this one so long, really. Thanks to Vreixo Formoso for helping with analysis of the crash dumps, confirming the diagnosis, and double checking the proposed solution. The problem only showed up if you were making extensive use of something like TextViews which (internal to GTK) did its drawing in a background idle handler.
Also fixed a crasher that turned up if your cursor theme didn’t have a certain
ENOTGNOME, but anyway.
The Cairo graphics library continues to be a joy to use and we continue to
make minor improvements to our coverage as people use it more. In particular,
based on help from Benjamin Otte and others we’ve refined the way you create a
Context in a
Widget.ExposeEvent, improving efficiency and taking
advantage of some of the underlying support functions more effectively.
With GTK 3.0 coming closer to reality, we’re keeping close track of the activity there. GTK 3.0 is a pretty vast API and ABI break from 2.x with some fairly major changes to the way Widget sizing works, along with an overhaul of the drawing system. We’ll be updating java-gnome to meet these changes in the months to come.
You can download java-gnome’s sources from
ftp.gnome.org_, or easily checkout a branch from_ ‘
$ 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