GTK (Programmbibliothek)
Das GIMP-Toolkit (GTK+) ist eine Entwicklungsplattform für „Grafische Benutzerschnittstellen“ (GUI) und wurde am Anfang von Peter Mattis, Spencer Kimball und Josh MacDonald als „Ersatz“ für Motif entwickelt. Damit war es möglich, GIMP ohne Aufruf von Motif zum Laufen zu bringen. Es ist inzwischen eines der beiden erfolgreichsten Grafik-Toolkits für das X-Window-System (das andere ist die ehemals proprietäre Qt-Bibliothek von Trolltech). Auf Unix Systemen setzen sich im Moment zwei Desktop-Umgebungen durch. Auf der einen Seite GNOME, das auf GTK+ basiert, und auf der anderen Seite KDE, das auf Basis des anfangs nicht freien Qt entwickelt wird. Mittlerweile wird Qt aber auch unter der GPL lizenziert. GTK und Qt haben das in den frühen 1990er Jahren beliebte Motif inzwischen weitgehend abgelöst. GTK+ steht unter der LGPL (Lesser GNU Public License). Damit ist es auch zulässig, proprietäre Software gegen GTK+ zu linken, sofern eventuell geänderter Code von GTK+ sowie GTK+ an sich weiter unter der LGPL vertrieben wird.
Verwendete Sprache
GTK+ ist in C geschrieben, wurde jedoch mit einem objektorientierten Ansatz entwickelt, der in C anders als C++ nicht in der Syntax vorhanden ist. Es gibt Anbindungen an viele Programmiersprachen, darunter auch syntaktisch objektorientierte (z.B. C++, Java, Perl, Python und PHP).
Look and Feel
Das Aussehen des Toolkits ist zum größten Teil durch den Benutzer konfigurierbar. Dazu stehen verschiedene Themes zur Auswahl, von denen einige das Aussehen anderer Toolkits oder Plattformen emulieren, zum Beispiel Windows 95, Motif oder NextStep.
Umgebungen, die GTK benutzen
Der GNOME- und der XFCE-Desktop nutzen GTK+ als Grundlage, was bedeutet, dass die jeweiligen Programme GTK+ als ihr Toolkit verwenden. GTK+ ist aber nicht nur auf diese Desktops beschränkt; jedes GTK+-Programm kann auf komplett anderen Desktop-Umgebungen, wie zum Beispiel KDE oder CDE ausgeführt werden, wenn dort die GTK-Bibliotheken installiert sind. GTK+ ist auch für Microsoft Windows verfügbar und ermöglicht es damit, Anwendungen zu schreiben, die verhältnismäßig leicht zwischen Unix und Windows portiert werden können. GTK+ läuft mit Hilfe eines X-Servers auch auf Macs. Eine Portierung die GTK+ Anwendungen nativ auf Mac OS X laufen lässt, ist aber in Arbeit.
Bestandteile der GTK-Bibliotheken
Die erste Version von GTK+ enthielt einige Hilfsroutinen, die strenggenommen nichts mit Grafikdarstellung zu tun hatten, wie zum Beispiel Datenstrukturen für verkettete Listen, Binärbäume oder „mitwachsende“ Strings. Diese erwiesen sich auch für Programme als nützlich, die eigentlich nicht GTK verwendeten, und wurden daher später in eine separate Bibliothek ausgelagert, die Glib library of C functions, die inzwischen auch häufig in Programmen verwendet wird, die gar keine grafische Oberfläche haben. Die neue Version GTK+ 2 erhielt außerdem neue, verbesserte Funktionen zum Rendern von Text mit Hilfe der Pango-Bibliothek, eine neue Theme-Engine, eine flexiblere API und eine neuartige Bibliothek (ATK) zur Verbesserung der Zugänglichkeit des Toolkits für behinderte Menschen, mit der zum Beispiel Vorlese-Software, Vergrößerungstools und alternative Eingabegeräte angesprochen werden können. GTK+ 2 ist nicht kompatibel zu GTK+ 1, daher müssen bestehende Anwendungen portiert werden. Viele Programme verwenden noch immer GTK1, da sich eine Umstellung für sie nicht lohnt und GTK1 außerdem weniger komplex als GTK2 ist.
Der klassische Weg, um mit GTK zu programmieren ist, zunächst die Eigenschaften der verwendeten Grafikelemente festzulegen, sie dann zu gruppieren und mit bestimmten Ereignisbehandlungsroutinen zu verknüpfen (ein mögliches Ereignis wäre zum Beispiel der Klick auf einen Button). Es existiert allerdings auch ein grafischer Designer für GTK-Oberflächen mit dem Namen Glade, der einem die ersten beiden Schritte ersparen kann, GTK um Rapid-Prototyping-Fähigkeiten erweitert und es ermöglicht, Änderungen an der GTK-Oberfläche eines Programms vornehmen zu können, ohne den Quellcode der Software ändern zu müssen.