Originally designed for the GNU Image Manipulation Program, the GTK graphical application development toolkit provides an extensive assortment of widgets and controls for cross-platform software construction. The latest version, GTK 2.10.0, has been officially released. With plenty of exciting new features for users and developers, GTK 2.10.0 is a significant improvement over previous versions. The popular, cross-platform toolkit is widely used on a variety of platforms, and provides the foundation for the GNOME desktop environment. Available under the GNU’s highly permissive LGPL license, GTK has been adopted by numerous proprietary and open source software developers.
After receiving a steady litany of complaints about the absence of a visible file textbox in the GTK file chooser dialog, the GTK developers have finally relented and integrated a location entry. GTK 2.10 also includes long-awaited support for drag-and-drop tab reordering, a feature that has been independently implemented in virtually every major GTK application including the GNOME terminal, Gaim, Firefox, and Gedit. Inclusion of tab reordering in GTK will eliminate the need for a lot of redundant code, and it will ensure that tab reordering looks and feels consistent in all GTK applications. GTK 2.10 also includes many improvements to printing functionality, including a new cross-platform compatible, high-level printing API that will simplify a few of the challenges associated with maintaining portable GTK applications.
The theme system has received massive improvements in GTK 2.10. GTK now allows theme developers to use symbolic colors, a feature which could finally facilitate utilization of multiple color schemes with a single theme. This highly desirable feature will enable users to customize the colors used by GTK themes without having to alter the theme itself. New style properties have been added to a number of widgets, including tabs, menus, trees, and buttons.
GTK 2.10 includes several improvements to GDK, the portable drawing toolkit used by GTK, including an experimental, native OS X GDK backend that will eventually make it possible for GTK apps to run on OS X without X11. An experimental framebuffer GDK backend is also available in this release. A new function has been added that will enable GTK applications to detect the presence of a compositing manager like XGL, possibly a prelude to more extensive integration of translucency in various GNOME applications, like real transparency in the GNOME terminal.
I use GTK and the GNOME libraries for many of my own development projects, particularly for simple utilities. The Ruby and Python bindings for GTK are great, and extremely useful for rapid application development. Released earlier this week, the latest version of the Ruby GNOME bindings include support for the poppler PDF rendering library, and the VTE library used by the GNOME terminal. Look forward to GTK 2.10 in the upcoming GNOME 2.16 release!