In questi giorni sto dando un’occhiata alle gtk: siccome mi interessava la finestra per la selezione di un file o di una cartella, ho provato http://www.fifi.org/doc/libgtk1.2-doc/gtk-tutorial-it-html/gtk_tut_it-7.html#ss7.10 esempio:
#include <gtk/gtk.h>
/* Recupera il nome di file selezionato e stampalo a console */
void file_ok_sel(GtkWidget *w,GtkFileSelection *fs)
{g_print("%s\n",gtk_file_selection_get_filename(GTK_FILE_SELECTION(fs)));}
void destroy(GtkWidget *widget,gpointer data)
{gtk_main_quit();}
int main(int argc,char *argv])
{
GtkWidget *filew;
gtk_init(&argc,&argv);
/* Crea un nuovo widget di selezione file */
filew=gtk_file_selection_new("File selection");
gtk_signal_connect(GTK_OBJECT(filew),"destroy",(GtkSignalFunc)destroy,&filew);
/* Connette ok_button alla funzione file_ok_sel */
gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filew)->ok_button),"clicked",(GtkSignalFunc)file_ok_sel,filew);
/* Connette cancel_button alla funzione di distruzione del widget */
gtk_signal_connect_object(GTK_OBJECT(GTK_FILE_SELECTION(filew)->cancel_button),"clicked",(GtkSignalFunc)gtk_widget_destroy,GTK_OBJECT(filew));
/* Preassegnamo un nome di file, come se stessimo dando un valore per difetto in dialogo di tipo `` salva con nome '' */
gtk_file_selection_set_filename(GTK_FILE_SELECTION(filew),"penguin.png");
gtk_widget_show(filew);
gtk_main();
return 0;
}
Per compilarlo, ho seguito le indicazioni di http://developer.gnome.org/gtk3/3.0/gtk-getting-started.html pagina:
gcc `pkg-config --cflags gtk+-3.0` -o selectFile selectFile.c `pkg-config --libs gtk+-3.0`
selectFile.c:4:31: error: unknown type name ‘GtkFileSelection’
selectFile.c: In function ‘main’:
selectFile.c:15:8: warning: assignment makes pointer from integer without a cast [enabled by default]
selectFile.c:16:51: error: ‘GtkSignalFunc’ undeclared (first use in this function)
selectFile.c:16:51: note: each undeclared identifier is reported only once for each function it appears in
selectFile.c:16:65: error: expected ‘)’ before ‘destroy’
selectFile.c:18:58: error: invalid type argument of ‘->’ (have ‘int’)
selectFile.c:18:96: error: expected ‘)’ before ‘file_ok_sel’
selectFile.c:20:65: error: invalid type argument of ‘->’ (have ‘int’)
selectFile.c:20:107: error: expected ‘)’ before ‘gtk_widget_destroy’
Come vedete, però, ottengo una serie di errori.
Dove sbaglio? Scusate, ma vengo da java e non sono ancora molto pratico di c…