GTK+ is an object-oriented widget kit.
Considering they managed to do this in C, that's quite an acheivement. (Hint: Macros...thousands of 'em)

If you've ever written any code in AWT or other GUI toolkits, it should be quite easy for you to pick up. There's an excellent tutorial at the GTK+ website (

GTK+ is used to build the GUI for the GNOME desktop, and there are also a lot of pure GTK+ apps out there.
The best thing about GTK+ is it's themability - GTK themes are much more versatile than KDE ones (although KDE 2.0 has better theming than KDE1.X, the beta version I tried recently became unstable running with flashy themes).

The GIMP Toolkit. Originally developed as a Motif replacement for the GIMP, GTK rapidly became one of the best, most popular and most important GUI toolkits in the X11 world, especially since it is now the foundation of the GNOME desktop environment. By the way: GTK became GTK+ when the object orientation was added. Sort of like the relationship between C and Objective C or C++.

Thus, the architecture is object-oriented, but using plain C without stapled-on syntax extensions such as the signal/slot keywords in Qt. All the object orientation work is done at runtime by a special library called GObject, which is very well-suited for scripting language bindings. Indeed, GTK+ now has bindings for a large two-digit number of languages, and so has GNOME.

GTK+ tries to wrap as much as possible of the underlying platform. GLib, a utility library, provides platform-independent data types and structures as well as general-purpose routines and the GObject OO framework; GDK, the drawing kit, wraps the drawing backend, be it X11, Win32, the Linux framebuffer, whatever.

With the recent GTK+ 2.0 release, a quantum leap has occured: the object model, GObject, is now separate from GTK+ and not dependent on X11 anymore; the pluggable graphics backend architecture was introduced; and an internationalisation toolkit, Pango, now provides the capability to handle text in all languages, non-latin, right-to-left, everything you need. From GNOME, stuff such as the stock pixmaps for decorating menus and buttons has been moved into GTK+; the most important of these additions is GdkPixbuf, a fast image manipulation library that now does all the pixel diddling in GTK+. Which means that GTK+ now has alpha-blending and such. Sweet.

Besides, GTK+ 2.x is much faster than GTK+ 1.x, too. It does anti-aliased fonts now. And it's prettier ;)

GTK+ (Gimp Tool Kit) is written in C. It is built upon glib and GDK. GTK does not call any windowing system directly, instead it calls the GDK wrappers. Because of this, GTK+ has been ported to Linux, most flavors of UNIX, BeOS, Win32, and the Linux DirectFB.

GTK+ has a number of progamming language bindings. In addition to C, GTK+ can be called from Ada, C++, Perl, Python, Eiffel, Guile, Haskell, JavasSript, Objective-C, Objective-Caml, Objective-Label, Pascal, and TOM.

GTK+ is essentially an object oriented API. Even though C does not support classes, GTK+ has an entire object system. The object system supports inheritance, type checking, and callbacks. GTK+ has a dynamic type system, and a Widget hierarchy.

GTK+ is the toolkit used in the construction of GNOME.

Log in or register to write something here or to contact authors.