/** thrice.c **/ #include GtkWidget *makeTable(); gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data); #define HOMOGENEOUS FALSE #define ROWS 3 #define COLS 3 #define LOCATE_1N 0,1,0,1 #define LOCATE_2N 1,2,1,2 #define LOCATE_3N 2,3,2,3 #define LOCATE_1S "0,1,0,1" #define LOCATE_2S "1,2,1,2" #define LOCATE_3S "2,3,2,3" int main(int argc,char *argv[]) { GtkWidget *window; GtkWidget *table; gnome_init("thrice","1.0",argc,argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(eventDelete), NULL); gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(eventDestroy), NULL); table = makeTable(); gtk_container_add(GTK_CONTAINER(window),table); gtk_widget_show(window); gtk_main(); exit(0); } GtkWidget *makeTable() { GtkWidget *table; GtkWidget *button; table = gtk_table_new(ROWS,COLS,HOMOGENEOUS); gtk_widget_show(table); button = gtk_button_new_with_label(LOCATE_1S); gtk_table_attach_defaults(GTK_TABLE(table),button, LOCATE_1N); gtk_widget_show(button); button = gtk_button_new_with_label(LOCATE_2S); gtk_table_attach_defaults(GTK_TABLE(table),button, LOCATE_2N); gtk_widget_show(button); button = gtk_button_new_with_label(LOCATE_3S); gtk_table_attach_defaults(GTK_TABLE(table),button, LOCATE_3N); gtk_widget_show(button); return(table); } gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data) { return(FALSE); } gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_main_quit(); return(0); }