GTK+ is the Gimp Toolkit. It was originally written as part of the Gimp project, but it has grown into an excellent general purpose widget set. Find out more at http://www.gtk.org
GTK+ is the interface which GNOME applications use to interact with the user. It is similar to the role of Motif in CDE, Qt in KDE or the-widget-set-which-has-no-name in Win32.
You can write GTK+ programs in tons of languages! Your humble FAQ author knows of the following bindings:
C (original) |
C++ |
Objective C |
Python |
Perl 5 |
Scheme (Guile) |
TOM |
Gwydion Dylan |
Ada95 |
Pike |
Pascal (Free Pascal Compiler) |
If there are others, then please let us know about them. (See Contact the FAQ Maintainer)
You are encouraged to add bindings to other languages should the fancy strike you. N.b., that the Scheme bindings already have a formalized representation of the API, so if you want to start working on new bindings, then you might want to start from here.
Having written that, I have to wonder if we can't somehow use CORBA to cut this Gordian knot. If the ORBit developers can get the cost of a local CORBA call down to that of a normal shared-library call, then why not CORBify GTK and work on adding bindings for new languages to ORBit? I know, the conventional wisdom is that CORBA is too heavyweight for high-volume stuff like X calls. Hey, don't blame me for throwing out crazy ideas: the reason I maintain the FAQ is that I can't program!
Along with GTK, GNOME uses imlib, an image library for X which supports multiple image formats transparently to the programmer. Imlib can even use external converter programs like ImageMagick or pmbplus to convert unknown image formats to known formats, so if a converter exists for an image type, you can almost certainly use that image type in your application! Imlib also supports multiple bit-depths, from 24-bit down to 1-bit monochrome, again transparently to the programmer, and does intelligent color map allocation and automatic dithering to get the best possible performance out of your display. Anyone who has ever tried to do this in their X apps, or who has had to endure their screen flashing when apps have to allocate a private color map, you will especially like this feature.
You can find out more about imlib at