Release Digest: GNOME, April 1, 2004

GNOME Platform Bindings 2.5.7 (Release Candidate)

GNOME Platform Bindings

Please note that the GNOME Platform Bindings are now in API
freeze, so only very important API changes will be allowed before
the fully-frozen GNOME Platform Bindings 2.6.0 release, on April

(See the big list of changes below if you’ve read this blurb

This is a scheduled developement release of the GNOME Platform
Bindings, which provide a stable GNOME development platform for
programming languages other than C, in the style of those
languages. We very much hope that Linux distributions will
distribute these bindings as a supported development platform.

For the GNOME 2.5/2.6 schedule, we have bindings for C++, Java,
and Perl: http://www.gnome.org/start/2.5/bindings/modules.html

These bindings follow these rules:

and this schedule:

Note that those rules do not guarantee 100% API coverage, but
they do guarantee API/ABI stability.

There are also “Beta Bindings” for C#, which are likely to be on
the full release schedule for GNOME 2.7/2.8, but they are not yet
following the official schedule or rules for 2.5/2.6.

Note that other bindings also exist:

but they are not on this release schedule and they do not
necessarily follow the same rules.

If you have questions about the GNOME Platform Bindings release
set please send email to language-bindings@gnome.org.
If you have questions about the individual bindings, please send
email to their own mailing lists. You can find links to the
individual projects here:


You can download source tarballs from

  • Changes, for each binding:
    • C++ (gtkmm):

glibmm 2.3.8:

  • Fix crash when using Glib::Main signals. (Martin Schulze)
  • Corrected the configure-time SUN compiler check. (Murray
    Cumming, Alexander Nedotsukov)

gtkmm 2.3.7:

  • Gtk:
    • Action:
      • create_tool_item(), create_menu(), and create_icon() return
        specific types. (Bryan Forbes)
      • Constructors: Give 0 instead of “” to GTK+ for empty strings,
        to make stock items work. (Murray Cumming)
    • Container: Keep managed child widgets alive when remove()ing
      them. (Murray Cumming)
    • IconTheme: Wrapped the changed signal. (Murray Cumming)
    • FileFilter: It’s a Gtk::Object, not a Glib::Object. (Murray
    • TreeView: Added move_column_to_start(). (Andrew E. Makeev)
    • UIManager: Fixed typo in disconnect_proxy signal name. (Bryan
    • many: Do the extra reference for several get_*() methods.
      (Bryan Forbes, Murray Cumming)
  • Documentation:
    • Reference documentation: Corrected some mention of null
      parameters, and g_free(), in generated-from-C docs. (Murray
    • Book: Corrected typos and updated libsigc++ syntax. (Elijah
    • FAQ: Don’t mention gtkmm 1.2 so much. (Elijah Newren)
    • Examples: Adde book/menus_and_toolbars, to show UIManager.
      (Murray Cumming)

libglademm 2.3.3:

  • get_widget():
    • Don’t create a C++ object with a null C object, when the C
      object can not be found. (jdhall)
    • Really return existing widget wrappers. (Murray Cumming)
  • Stop accidental need for doxygen when building from tarballs.
    (Murray Cumming)
  • win32: Test for -mms-bitfields / -fnative-struct.

gnome-vfsmm 2.5.3:

  • Added utility functions, such as escaping/unescaping of
    strings. (Murray Cumming)
  • Added Glib::Value specializations for enums. (Bryan

libgnomeuimm 2.5.3:

  • Stock items: Fix linker error when using these. (Bryan
  • PixmapEntry: Correct the base class.
  • Entry: Really deprecate it. (Bryan Forbes)
    • Java (java-gnome):

2.5.7 (2.6 Beta 2)
Updated Classes:
glib.CustomEvents – Reverted implementation to original
implementation plus a

fix for the update bug. (far better performance when adding
events) [Mark Howard]
glib.Boxed & glib.GObject – implemented hashCode & equals
methods [Jonas
glib.Enum & glib.Flags – Fixed memory leak in equals method
[Jonas Berlin]
gdk.Color – Fixed handle allocation bug [Jonas Berlin] gdk.Drawable
– added the following methods: [Jeffrey Morgan] drawRGBImage
gtk.ComboBox – fixed problem with no-op constructor so it now uses
simpler API when not supplying model [Jeffrey Morgan]
gtk.ComboBoxEntry – fixed problem with no-op constructor so it now

simpler API when not supplying model [Jeffrey Morgan]
gtk.Expander – fixed signature of native set_expanded method
[Jeffrey Morgan]
gtk.FileChooserDialog – updated API due to gtk change [Jeffrey
gtk.FileChooserWidget – updated API due to gtk change [Jeffrey
gtk.Item – fixed bug with no-op constructor setting up events prior
object creation [Jeffrey Morgan]
gtk.TextBuffer – fixed selectRange method [Mark Howard]

  • fixed set/get acceptsTab/overwrite [Mark Howard]
  • Fixed problem when creating TreeView via glade [Jeffrey Morgan]
    gtk.ToolButton – fixed bug when handling null Icons in object
    creation. [Jeffrey Morgan] gtk.ToolItem – fixed bug that caused
    failure in creating subclasses Fixes #917565

    [Jeffrey Morgan] gtk.TreeIter – Fixed bug in TreeIter object
    construction. Fixes: #914500 [Mark Howard] gtk.UIManager

  • fixed object creation bug [Jeffrey Morgan]
  • enabled event handling [Jeffrey Morgan] glib.Value – Fixed
    Pixbuf handling [Mark Howard] Updated Interfaces: gtk.FileChooser –
    updated API due to gtk change [Jeffrey Morgan] Other:

    • Added dynamic loading of gconf and gtkhtml libraries. [Jeffrey
    • fixed gnome api doc linkoffline setting
    • Updated example applications to use new widgets.
    • Removed all empty generated JNI/C files. [Jeffrey Morgan]
    • Added tutorial examples to eclipse classpath [Jeffrey
    • Updated the tutorial to reflect new API [Jeffrey Morgan]
    • Fixed native widget to multiple java object mapping problems
      (and hence

      memory leak)

    • Fixed memory leak with Strings in signals [Mark Howard]
    • Fixed event intialisation [Mark Howard]
    • Added shell script to help run example apps [Mark Howard]
      • Perl (gtk2-perl):

Overview of Changes in Gnome2::Canvas

  • Require stable Glib/Gtk2 1.040
  • Add import version checking.
  • Spit and polish.

Overview of changes in Gnome2-VFS

  • Made all version checks refer to stable releases.
  • Made the test suite more robust.

Overview of changes in Gnome2::GConf

  • New test suite for GConfClient. [Emmanuele]
  • Adapted version information methods to the current policy.
  • Updated documentation. [Emmanuele]
  • Require Glib 1.040. [Emmanuele]

Overview of Changes in Gtk2::GladeXML

  • Import version checking.
  • Build improvements.

Overview of changes in Gnome2

  • Depend on Glib 1.04, Gnome2::Canvas 1.00, and Gnome2::VFS

Overview of Changes in Glib 1.040

Since 1.02x (the previous stable

  • Updated build requirement
    • ExtUtils::Depends >= 0.2
  • Support for a few new API features in glib-2.4.x.
  • Functions that use GErrors in C throw magical Glib::Error
    exception objects; these objects overload the stringification
    operator, so old code won’t be broken, but new code can match
    errors without worrying about translated error messages. User code
    and other extensions can register their own error domains. See the
    Glib::Error manpage for more info.
  • Glib::Type enhancements
    • Perl code can register enum and flags types for use as

      property types.

    • During Glib::Object class initialization, invoke INIT_BASE in
      the object’s package, if it exists. (Analogue for GTypeClass’s
    • It is now possible to add GInterface implementations to
      Glib::Object types derived in Perl code.
    • New param spec, Glib::ParamSpec::scalar
  • Glib::MakeHelper is generally more helpful.
  • The POD generation tools allow specification of cumulative data
    type descriptions, and much finer control over the format and
    content of the generated documentation.
  • Glib can now export useful constants on request.
  • New versioning API, see Glib::version.

Since 1.0391

  • Nothing. 🙂

Overview of Changes in Gtk2 1.040

Since 1.02x (the previous stable

  • Updated requirements:
    • Glib >= 1.040
    • ExtUtils::Depends >= 0.2 (required only at build time)
    • ExtUtils::PkgConfig >= 1.03 (require only at build
  • Add support for new objects and API in gtk+-2.4.0.
  • Derivation of Gtk2::CellRenderer has been reworked; it’s much
    more sane now, but we retain backward compatibility with the 1.02x
  • It is now possible to implement GInterfaces in Perl code, so
    you can now implement your own Gtk2::TreeModels and
    Gtk2::CellEditables. Examples are included.
  • The SPLICE operation is now supported on Gtk2::SimpleList’s
    tied data.
  • New, standardized versioning API and documentation.
  • Documentation enhancements all around.
  • Huge test suite expansion and amazing increase in API
  • New utility module Gtk2::TestHelper wraps up some of the
    boilerplate involved in testing Gtk2-based modules.

Since 1.0391

  • Test fixes. [Torsten]
  • Use INT2PTR to quell cast warnings. [muppet]
  • Documentation updates. [all]
  • Hide private symbols from ABI. [muppet]
  • Add examples/dialog.pl [Ross]
  • Assorted bits of code cleanup. [muppet]

Murray Cumming

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends, & analysis