Initially created for the graphics program the GIMP, the GIMP Toolkit — abbreviated as GTK+ — is one of the two most popular widget toolkits for the X Window System, intended for creating graphical user interfaces.
GTK+ and Qt have supplanted Motif, previously the most widely-used X widget toolkit.
Licensed under the LGPL, GTK+ is free (and open source) software, and is part of the GNU Project.
Language
GTK+ uses the C programming language, although its designers use an object-oriented paradigm. The GNOME platform bindings provide for C++, Perl, Ruby, Java and Python bindings; others have written bindings for many other programming languages.
Look and feel
The end-user can configure the look of the toolkit, down to offering a number of different display engines. Engines exist which emulate the look of other popular toolkits or platforms, like Windows 95, Motif, Qt or NEXTSTEP.
Environments that use GTK+
Screenshot of the GIMP 2.0 on XFce4
The GNOME environment uses GTK+ as a base, which means that programs written for GNOME use GTK+ as their toolkit. Not only GNOME applications use it, though, and any GTK+ program (or GNOME program, for that matter) can run on top of other desktop environments, such as KDE or XFce. The GPE Palmtop Environment also uses GTK+ as a base. GTK+ can also run under Microsoft Windows. Some of the more unusual ports include DirectFB and ncurses.
Non-graphics-related code
GTK+ initially contained some utility routines that did not strictly relate to graphics, for instance providing such data structures as linked lists and binary trees. Such general utilities, along with the object system called GObject, have now migrated into a separate library, Glib, which programmers use regularly to develop code that does not require a graphical interface.
GTK+ 2
GTK+ 2 developed with the intention of succeeding GTK+. Its new features include improved text rendering using Pango, a new theme engine, improved accessibility using ATK , complete transition to Unicode using UTF-8 strings and a more flexible API. However, GTK+ 2 lacks compatibility with GTK+ 1, and programmers must port applications to it. Some programs continue to use GTK+ 1, as the original version remains in use, offers less complexity than GTK+ 2, and is more suitable for embedded applications than GTK+ 2.
External links