OpenWay

L’editor di GUI “illuminato”

Posted in Software by Simone Urbinati on 23 ottobre, 2009

Avete mai sentito parlare di Enligthment? Per chi non me avesse mai sentito parlare si tratta di una desktop shell, come amano definirla i suoi creatori, in parole povere stiamo parlando di un’alternativa ai più noti Gnome e Kde. È da molto tempo che seguo l’evoluzione di questo progetto che reputo molto interessante anche se dopo diversi anni ancora non é ancora stabile, da sempre sono rimasto colpito dalla qualità delle librerie grafiche su cui si basa, le Efl (Enligthment foundation library). Oggi vi voglio parlare di una cosa molto interessante che ho scoperto navigando fra i vari siti che sperimentano le efl: esiste la possibilità di utilizzare il noto disegnatore di interfacce grafiche “glade” per disegnare gui, da importare all’interno di progetti che fanno uso delle Etk (Enlightment toolkit library), una libreria per la gestione di widget simile come approccio alle gtk di gnome. I programmatori delle efl hanno inserito una libreria (enhance) che permette di importare i file di glade. L’unico lato negativo di questa tecnica è che, a quanto ho capito attraverso il file xml di glade non viene generato del codice c da compilare ma è la libreria enhance che in runtime interpreta ogni volta il file xml di glade. Infatti, se modifichiamo il file glade che definisce l’interfaccia, la gui si modifica senza ricompilare il sorgente.


Bene veniamo al dunque, dopo aver installato le etk con relative dipendenze (forse scriverò un articolo per spiegare come), vi basterà aprire glade, creare una semplice finestra che chiameremo “window1” ed un bottone che chiameremo “button1”, a questo punto dovremo associare una azione allo stato “cliccato” del bottone, per fare questo selezionate il bottone e, nella finestra delle proprietà selezionate l’etichetta segnali poi GtkButton –> clicked nella colonna gestore scrivete “button1_clicked_cb” che indica il nome della callback che si dovrà attivare alla pressione del tasto.

A questo punto aprite il vostro editor di testo preferito e incollate dentro questo codice c:

#include // invece delle virgolette mettete maggiore e minore

#include “etk/Etk.h” // come sopra

#include “stdio.h” // idem

Enhance *en;

int main(int argc, char *argv[]){

enhance_init();

etk_init(argc, argv);

en=enhance_new();

enhance_file_load(en, “window1”, “project1.glade”);

etk_main();

enhance_free(en);

enhance_shutdown();

etk_shutdown();

return 0;

}

// questa è la funzione che collega il tasto disegnato in glade con una azione

void button1_clicked_cb(Etk_Object *object, void *data){

printf(“ciao mondo!\n”);

}

PS: se conoscete un modo piu comodo per scrivere del codice su wordpress ditemelo non sono riuscito a mettere le parentesi giuste sugli include

A questo punto compilate con :

gcc -g hello.c -o hello `pkg-config –libs –cflags enhance etk`

e avrete compilato la vostra prima applicazione in etk!

Lascia un commento