GTK (GIMP Toolkit) è stato orginariamente sviluppato come toolkit per il programma GIMP (General Image Manipulation Program). GTK è costruito sulla base del kit di disegno di GIMP, il GDK (GIMP Drawing Kit) il quale è costruito a sua volta attorno alle funzioni della Xlib. E' chiamato ``toolkit di GIMP'' perché era inizialmente scritto per sviluppare GIMP, ma ora viene utilizzato nello sviluppo di molti progetti software ``free''. Gli autori sono
petm@xcf.berkeley.edu
spencer@xcf.berkeley.edu
jmacd@xcf.berkeley.edu
GTK è essenzialmente una API (application programmers interface) orientata agli oggetti. Anche se scritto completamente in C, è implementato usando l'idea delle classi e delle funzioni di callback (puntatori a funzioni).
C'è anche una terza componente chiamata glib che contiene una serie di implementazioni differenti di alcune chiamate di funzioni standard e anche alcune funzioni aggiuntive, per esempio per la manipolazione delle liste collegate. Le funzioni sostitutive sono usate per migliorare la portabilità di GTK. Alcune delle funzioni implementate qui non sono disponibili o non sono standard, altre sono uniche come g_strerror(). Altre contengono miglioramenti alle stesse della libc come g_malloc che ha delle utility di debugging migliorate.
Questo tutorial è un tentativo di documentare il meglio possibile la libreria gtk e non pretende di essere completo. Questo tutorial suppone una buona conoscenza del linugaggio C e di come creare programmi in C. Saranno facilitati i lettori che hanno una precedente esperienza nella programmazione in X. Se il GTK è il primo insieme di widget che studiate, vi prego di dirmi come avete trovato questo tutorial e che tipo di problemi avete avuto. Notate che c'è anche una versione per il C++ della libreria GTK (chiamata GTK--), quindi se preferite utilizzare questo linguaggio al posto del C potreste cercare questa versione al posto della GTK normale. Ci sono poi un ``wrapper'' Objective C e un collegamento a Guile, ma non ne seguo l'evoluzione.
Mi farebbe molto piacere conoscere qualsiasi problema che abbiate avuto nell'imparare il GTK da questo documento e apprezzerei anche critiche sul come migliorarlo.