Mano a mano che si inseriscono oggetti grafici è possibile vedere i sorgenti generati. Selezionando dal menù Edit, Show Source Code viene mostrata una finestra con due tab che permettono di scegliere la visualizzazione del codice sorgente (tab Source) o quella del file di intestazione (tab Header). Il codice evidenziato è quello che traduce l'elemento grafico selezionato nella Widget Browser di FLUID.
L'esame del contenuto dei due più importanti, per il programmatore, file (prova.h e prova.cxx) permette di avere una idea generale, utile per quando si costruiranno i programmi, dell'uso di FLTK. Il terzo file (prova.fl), anche questo file di testo, è importante solo per FLUID perché gli permette di ricostruire, in un secondo tempo, la GUI che è stata creata ed è utilizzato anche per generare il codice.
// generated by Fast Light User Interface Designer (fluid) version 1.0302 #ifndef prova_h #define prova_h #include <FL/Fl.H> /*1*/ #include <FL/Fl_Double_Window.H> /*2*/ #endif
Il file di intestazione prova.h contiene l'inclusione del file di intestazione principale (1) e del file dove è definita, in questo esempio, la classe cui appartiene l'unico oggetto utilizzato nel progetto della GUI (2).
// generated by Fast Light User Interface Designer (fluid) version 1.0302 #include "prova.h" int main(int argc, char **argv) { Fl_Double_Window* w; /*1*/ { Fl_Double_Window* o = new Fl_Double_Window(150, 125, "Prova"); /*2*/ w = o; o->end(); /*3*/ } // Fl_Double_Window* o w->show(argc, argv); /*4*/ return Fl::run(); /*5*/ }
Nella 1 del file prova.cxx viene dichiarato il puntatore ad un oggetto della classe Fl_Double_Window (il nome di qualsiasi classe definita in FLTK comincia con il prefisso Fl_).
Dalla 2 vengono specificate le caratteristiche dell'oggetto che fa parte della GUI. Qui vengono inseriti anche gli altri elementi della GUI, assenti in questo caso, che fanno parte della finestra. Il richiamo del metodo della 3 chiude la definizione della finestra e del suo contenuto.
Le ultime due righe sono fondamentali: il metodo show richiamato nella 4 permette la visualizzazione della GUI (la window con tutto il suo contenuto). La 5 richiama il loop di attesa (run): il programma si pone in attesa di eventi da parte dell'utente cui risponderà con gli opportuni comportamenti definiti nelle funzioni callback associate ai vari oggetti. Dal loop si esce se la finestra della GUI viene chiusa.
Prima di passare all'esame di programmi più complessi è opportuna qualche precisazione:
Quando si vuole definire un nuovo elemento dentro la finestra principale, questa deve essere selezionata: l'ordine degli elementi rispecchia l'ordine del codice generato. Gli elementi possono essere spostati, dopo la selezione e nella Widget Browser, utilizzando i tasti F2 ed F3. Un elemento esistente si può cancellare selezionandolo e premendo la combinazione di tasti Ctrl-x.
Per avere disponibile e in un unico posto tutto quello che può servire per sviluppare propri programmi, indipendentemente dagli esempi proposti, si possono trovare in appendice alla fine di questi appunti, le classi e i metodi utilizzati dagli oggetti dichiarati negli esempi.