LWN.net Logo

GTK+ user interface libraries, version 2.4

From:  Owen Taylor <otaylor-AT-redhat.com>
To:  gnome-announce-list-AT-gnome.org, gtk-list-AT-gnome, gtk-app-devel-list-AT-gnome.org, gtk-devel-list-AT-gnome.org
Subject:  GTK+ user interface libraries, version 2.4
Date:  Tue, 16 Mar 2004 16:52:30 -0500

The GTK+ team is pleased to announce the release of version 2.4 of the
GTK+ widget toolkit and associated libraries (GLib, Pango, and
ATK). GTK+-2.4 continues to enhance the state of the art of free
software user interface toolkits while maintaining binary and
interface compatibility with GTK+-2.2 and GTK+-2.0

What is GTK+
============

GTK+ is a multi-platform toolkit for creating graphical user
interfaces. Offering a complete set of widgets, GTK+ is suitable for
projects ranging from small one-off projects to complete application
suites.

GTK+ is based on three libraries developed by the GTK+ team:

 - GLib is the low-level core library that forms the basis of GTK+ and
   GNOME. It provides data structure handling for C, portability
   wrappers, and interfaces for such runtime functionality as an event
   loop, threads, dynamic loading, and an object system.
 
 - Pango is a library for layout and rendering of text, with an 
   emphasis on internationalization. It forms the core of
   text and font handling for GTK+

 - The ATK library provides a set of interfaces for accessibility.
   By supporting the ATK interfaces, an application or toolkit can
   be used with such tools as screen readers, magnifiers,
   and alternative input devices.

GTK+ has been designed from the ground up to support a range of
languages, not only C/C++. Using GTK+ from languages such as Perl and
Python (especially in combination with the Glade GUI builder) provides
an effective method of rapid application development.

GTK+ is free software and part of the GNU Project. However, the
licensing terms for GTK+, the GNU LGPL, allow it to be used by all
developers, including those developing proprietary software, without
any license fees or royalties. GTK+ is the only 100% free-of-cost open
source industrial-strength GUI toolkit available today.

Since its origins as the toolkit for the GNU Image Manipulation
Program (GIMP), GTK+ has been used in a wide range of software.
Notably, GTK+ is the foundation of the GNOME desktop; GTK+-2.4
will be incorporated into the soon-to-be-released version 2.6
of the GNOME desktop.


What's new in GTK+-2.4
======================

More extensive information about new features in GLib-2.4, Pango-1.4,
and GTK+-2.4 can be found in the individual release
announcements; to list just a few of the major highlights:

New file selector widget
 
 The new GtkFileChooser widgets provide a radically simplified
 and improved way for users to select files. Application writers
 now are provided with such capabilities such as customizable
 filters and previews. The filesystem access is encapsulated
 as a dynamically loaded module; as an example of what this 
 allows, libgnomeui now provides a gnome-vfs backend for 
 GtkFileChooser so that it has the same view of remote
 filesystems as applications such Nautilus.

New drop-down selection widget

 The GtkComboBox widget replaces the old GtkOptionMenu and 
 GtkCombo widgets with a single unified appearance 
 and programming interface for both editable and non-editable
 dropdowns. Other enhancements provided include customizability
 of the main display widget and grid layouts for the drop-down 
 menu.

Action-based toolbar and menu API

 GtkUIManager allows the application to specify a set of
 "actions", then create menus and toolbars using those actions
 from an XML-like interface description. This separation makes it
 easier to coordinate having the same item both in a menu and in
 a toolbar and simplifies the implementation of toolbar editing.

Unicode-4.0 support

 Glib and Pango now fully support characters outside the
 basic-multilingual-plane of Unicode; character properties
 have been updated to match Unicode-4.0.

Bidirectional editing and interface flipping improvements

 GTK+ now automatically determines the base direction for
 label and text-entry widgets based on their contents, rather
 than requiring it to be specified by the application; this
 gives a much better user experience when editing mixed
 right-to-left and left-to-right text. Support for user-interface 
 mirroring in right-to-left locales has now been extended to 
 cover virtually all widgets.


Where to get more information about GTK+-2.4
============================================

Information about GTK+ including links to documentation can be
found at http://www.gtk.org/

More information about Pango can be found at http://www.pango.org/

More information about ATK can be found at 
http://developer.gnome.org/projects/gap/

- GLib-2.4.0 release announcement 
     http://mail.gnome.org/archives/gtk-list/2004-March/msg00109.html
- Pango-1.4.0 release announcement
     http://mail.gnome.org/archives/gtk-list/2004-March/msg00110.html
- Complete GTK+-2.4.0 release announcement 
     http://mail.gnome.org/archives/gtk-list/2004-March/msg00111.html

An installation guide for GTK+-2.4 is found at:

 http://developer.gnome.org/doc/API/2.4/gtk/gtk-building.html

16 March 2004


(Log in to post comments)

Aaaahhhh! I can't keep up!

Posted Mar 17, 2004 0:18 UTC (Wed) by rknop (guest, #66) [Link]

I'm still using gtk--1.2, and live in fear of having to convert. I'm way behind, but shoot, this old version pretty much does what I need.

For the time being, that makes much more sense, as it's the only thing with the C++ bindings that is likely to be found on any distribution in use (I use Debian Stable myself). Yeah, you can compile the libraries, but I want to save my collaborators the effort of having to track down and install more libraries than are strictly necessary to run the code I've written. (And I already bug them with several.)

-Rob

Aaaahhhh! I can't keep up!

Posted Mar 17, 2004 2:15 UTC (Wed) by elanthis (guest, #6227) [Link]

GNOME 2.6 is making a GNOME Bindings Release, which includes C++, Java, and Perl bindings for GTK 2.4. (Python isn't included because the pygtk developers have only just reached GTK 2.2 support.)

Aaaahhhh! I can't keep up!

Posted Mar 17, 2004 2:26 UTC (Wed) by allesfresser (subscriber, #216) [Link]

When I built gnome 2.6-beta2 today (with garnome), there were pygtk and gnome-python directories included in the build.

Aaaahhhh! I can't keep up!

Posted Mar 17, 2004 3:33 UTC (Wed) by elanthis (guest, #6227) [Link]

Garnome is not in any way an indicator of what is part of official GNOME. It's just a set of packages including GNOME and tons of periphiary stuff the Garnome developers liked.

And it still stands that pygtk has only just made a release which utilized the GTK+ 2.2 APIs. The GNOME Bindings Release does is not going to include any bindings which do not track the libraries present in the GNOME 2.6 release, and thus pygtk and pygnome are excluded.

Both pygtk and pygnome work wonderfully, of course, and I highly recommend them to anyone wanting to develop applications. They are excellent bindings. Just bindings which don't provide access to the latest releases' features.

GtkFileSelector: copy'n'paste from MacOS X?

Posted Mar 17, 2004 9:00 UTC (Wed) by philips (guest, #937) [Link]

I do not have gtk2.4 installed, but from screen shots from here:

http://www.gnome.org/~seth/filechooser-spec/

I glad to see that GNOME people (in contrast to KDE people) started to copy more and more innovations from MacOS X (KDE/Qt seems to be more Windows centric).

I can only welcome this move - but still in long run I shall encourage more innovations on its own, rather than copy'n'pasting from another OSs.

The main problem of GNOME/GTK is their weak relations with end-users (due heavy corporate influence e.g. from Sun). Influence of end-users on KDE/Qt is sensed in all aspects (probably that's why it feels and looks much like improved MS Windoz).

And for MacOS - integration of end-user feedback is must - or it (MacOS) had died long time ago. That's actually what make MacOS that innovative: they ability to listen to feedback of users and find right solution for expressed problem. Not dumbly implement from words from user (like MS likes to do sometimes), not send feedback to /dev/null (like Havoc Pennington on gnome/gtk on mailing lists).

So, boys and girls, keep your ears and eyes open more to feedback of users, than your corporate patrons. Good luck.

GtkFileSelector: copy'n'paste from MacOS X?

Posted Mar 17, 2004 14:58 UTC (Wed) by trutkin (guest, #3919) [Link]

I wonder how well it works if you don't use Gnome. I saw that the GtkFileSelector had special
slots for a Desktop directory. I hope it's usable if that's not present.

Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds