/** closewin.c **/ #include gint downCount = 0; gint eventDelete(GtkWidget *widget,GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget,GdkEvent *event,gpointer data); int main(int argc,char *argv[]) { GtkWidget *topLevelWindow; gtk_init(&argc,&argv); topLevelWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_signal_connect(GTK_OBJECT(topLevelWindow), "delete_event", GTK_SIGNAL_FUNC(eventDelete), NULL); gtk_signal_connect(GTK_OBJECT(topLevelWindow), "destroy", GTK_SIGNAL_FUNC(eventDestroy), NULL); gtk_widget_show(topLevelWindow); gtk_main(); g_print("Done!\n"); exit(0); } gint eventDelete(GtkWidget *widget,GdkEvent *event,gpointer data) { g_print("Attempt number %d\n",++downCount); if(downCount > 2) return(FALSE); return(TRUE); } gint eventDestroy(GtkWidget *widget,GdkEvent *event,gpointer data) { g_print("Shutting down\n"); gtk_main_quit(); return(0); }