java-gnome 4.1.1 (11 Jul 2011)
===============================
_To bump or not to bump; that is the question_
This is the first release in the 4.1 series. This introduces coverage of the
GNOME 3 series of libraries, notably GTK 3. There was a fairly significant API
change from GTK 2.x to 3.x, and we've done our best to accommodate it.
Drawing with Cairo, which you were already doing
------------------------------------------------
The biggest change has to do with drawing; if you have a custom widget (ie, a
DrawingArea) then you have to put your Cairo drawing code in a handler for the
[`Widget.Draw`][Widget.Draw] signal rather than what used to be
`Widget.ExposeEvent`. Since java-gnome has ever only exposed drawing via
Cairo, this change will be transparent to most developers using the library.
Other significant changes include colours: instead of the former `Color` class
there's now RGBA; you use this in calls in the `override...()` family instead
of `modify...()` family; for example see Widget's
[`overrideColor()`][Widget.overrideColor()].
* **`org.gnome.gdk.RGBA`**
* **`org.gnome.gtk.StateFlags`**
* **`org.gnome.gtk.Widget`**
* **`org.gnome.gtk.Widget.Draw`**
Orientation is allowed now
--------------------------
Widgets that had abstract base classes and then concrete horizontal and
vertical subclasses can now all be instantiated directly with an Orientable
parameter. The most notable example is Box's [`()`][Box.()] (the
idea is to replace [VBox][] and [HBox][], which upstream is going to do away
with). Others are [Paned][], various `Range` subclasses such as
[Scrollbar][]. [Separator][], [Toolbar][], and [ProgressBar][] now implement
Orientable as well.
* **`org.gnome.gtk.Scrollbar`**
* **`org.gnome.gtk.Toolbar`**
* **`org.gnome.gtk.Box`**
* **`org.gnome.gtk.Paned`**
* **`org.gnome.gtk.ProgressBar`**
* **`org.gnome.gtk.Separator`**
* **`org.gnome.gtk.Toolbar`**
There's actually a new layout Container, however. Replacing Box and Table
is [Grid][]. Grid is optimized for GTK's new height-for-width geometry
management and should be used in preference to other Containers.
* **`org.gnome.gtk.Grid`**
The [ComboBox][] API was rearranged somewhat. The text-only type is now
[ComboBoxText][]; the former ComboBoxEntry is gone and replaced by a ComboBox
property. This is somewhat counter-intuitive since the behaviour of the Widget
is so dramatically different when in this mode (ie, it looks like a
ComboBoxEntry; funny, that).
* **`org.gnome.gtk.ComboBox`**
* **`org.gnome.gtk.ComboBoxText`**
Other improvements
------------------
It's been some months since our last release, and although most of the work
has focused on refactoring to present GTK 3, there have been numerous other
improvements. Cairo in particular has seen some refinement in the area of
Pattern and [Filter][] handling thanks to Will Temperley, and coverage of
additional [TextView][] and [TextTag][] properties, notably relating to
paragraph spacing and padding.
* **`org.freedesktop.cairo.Filter`**
* **`org.freedesktop.cairo.Pattern`**
* **`org.gnome.gtk.TextTag`**
* **`org.gnome.gtk.TextView`**
Thanks to Kenneth Prugh, Serkan Kaba, and Guillaume Mazoyer for their help
porting java-gnome to GNOME 3.
AfC
[HBox]:
[VBox]:
[Paned]:
[Separator]:
[Scrollbar]:
[ProgressBar]:
[ToolBar]:
[Box.()]:
[Grid]:
[ComboBox]:
[ComboBoxText]:
[Widget.Draw]:
[Widget.overrideColor()]:
[TextTag]:
[Filter]: