/** xgtkfileselection.c **/ #include gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data); static void makeWidget(); void eventOk(GtkWidget *widget,gpointer data); void eventCancel(GtkWidget *widget,gpointer data); int main(int argc,char *argv[]) { GtkWidget *app; gnome_init("xgtkfileselection","1.0",argc,argv); app = gnome_app_new("xgtkfileselection","GtkFileSelection"); gtk_container_set_border_width(GTK_CONTAINER(app),20); gtk_signal_connect(GTK_OBJECT(app),"delete_event", GTK_SIGNAL_FUNC(eventDelete),NULL); gtk_signal_connect(GTK_OBJECT(app),"destroy", GTK_SIGNAL_FUNC(eventDestroy),NULL); makeWidget(); gtk_main(); exit(0); } gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data) { return(FALSE); } gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_main_quit(); return(0); } static void makeWidget() { GtkWidget *fileselection; GtkWidget *okButton; GtkWidget *cancelButton; fileselection = gtk_file_selection_new("GtkFileSelection"); okButton = GTK_FILE_SELECTION(fileselection)->ok_button; cancelButton = GTK_FILE_SELECTION(fileselection)->cancel_button; gtk_signal_connect (GTK_OBJECT(fileselection),"destroy", (GtkSignalFunc)gtk_widget_destroy, fileselection); gtk_signal_connect(GTK_OBJECT(okButton),"clicked", (GtkSignalFunc)eventOk,fileselection); gtk_signal_connect(GTK_OBJECT(cancelButton),"clicked", (GtkSignalFunc)eventCancel,fileselection); gtk_file_selection_set_filename( GTK_FILE_SELECTION(fileselection), "xgtkfileselection.c"); gtk_widget_show(fileselection); } void eventOk(GtkWidget *widget,gpointer data) { GtkFileSelection *fileselection; gchar *filename; fileselection = GTK_FILE_SELECTION(data); filename = gtk_file_selection_get_filename(fileselection); g_print("Selected File: %s\n",filename); gtk_main_quit(); } void eventCancel(GtkWidget *widget,gpointer data) { gtk_main_quit(); }