Struttura
di un'applicazione GTK+
Abbiamo già evidenziato la differenza tra Gnome e Gtk+ per chi non l'avesse ancora chiara rimandiamo alla lettura dell'articolo che si trova nella specifica sezione.
Qui basti rilevare che Gnome comprende Gtk+ quindi un'applicazione Gnome comprenderà automaticamente le librerie
Gtk+, ma non il contrario. Si possono quindi realizzare applicazioni usando il solo Gtk+ e si avranno egualmente a disposizione tutti i widget necessari per la costruzione dell'interfaccia grafica. In questo caso non avremo bisogno di includere gnome.h ma sarà sufficiente inserire nella nostra applicazione:
#include <gtk/gtk.h> .
Inizializzazione di
Gtk+.
All'avvio l'applicazione deve inizializzare le librerie
Gtk+.
Ciò avviene attraverso la chiamata:
gtk_init(&argc, &argv);
Questa chiamata permette la connessione ad un server X, e analizza alcuni argomenti da riga di comando.
gtk_init() inoltre registra una funzione di cleanup utilizzando atexit(). In pratica questo diventa importante unicamente quando si utilizza una
fork(): il processo figlio deve uscire utilizzando una chiamata a_exit() anzichè exit() per evitare di chiudere Gtk+ nel processo padre.
Una volta inizializzato Gtk avrete a disposizione una serie di oggetti chiamati
widget. Tutti i widget sono delle sottoclassi della classe base GtkWidget, in modo che potete usare un
"GtkWidget *" per riferirvi ad essi.
Ciascun widget fornisce una funzione
nomedelwidget_new() che alloca un nuovo oggetto lo inizializza e restituisce un puntatore al medesimo.
Una volta ottenuto un GtkWidget rappresentante un oggetto è possibile manipolarlo usando i suoi metodi che saranno illustrati nelle successive sezioni del
tutorial.