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 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 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+-2.0.
- 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.
Product's homepage
What's New in This Release: [ read full changelog ]
· Noteworthy new APIs
· GtkOrientable is a new interface implemented by all widgets that have horizontal and vertical variants
· GtkActivatable is a new interface that must be implemented by widgets that are used as action proxies
· Changes in GtkEntry
· GtkEntry can show icons at either side of the entry, which can bemade clickable, drag sources, etc.
· GtkEntry can show progress information behind the text.
· GTK+ picks the best available placeholder character for password entries unless one is explicitly set.
· GTK+ displays a Caps Lock warning in password entries.
· Input methods can now be selected per-widget with the "im-module" property.
· Changes in GtkScale
· GtkScale can now display annotated marks for certain values.
· Changes in GtkStatusIcon
· GTK+ uses an extension of the tray icon specification to negotiate RGBA support. This is also supported by the GNOME panel.
· GtkStatusIcon now supports scroll events, middle clicks and rich tooltips if the platform allows it.
· Changes in file chooser
· The file chooser can optionally show file sizes.
· Volumes are mounted when necessary.
· GTK+ remembers the file chooser's window size across invocations.
· Non-local uris can be entered in the location entry.
· Changes in printing support
· Page rendering can be deferred to a thread.
· Internationalization support
· Keyboard shortcut handling has been changed, to help with a longstanding complaint about the way in which GTK+ handles multiple keyboard
· layouts. GTK+ now only uses keys from groups other than the current group if they are not present in the current group.
· GDK changes
· GdkKeymap emits a state-changed signal when the Caps Lock state changes.
· There is a predefined type for blank cursors, GDK_BLANK_CURSOR.