/** opset.c **/ #include GtkWidget *makeTable(); gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data); #define HOMOGENEOUS FALSE #define X_MARGIN 0 #define Y_MARGIN 0 struct { gint setting; gchar *text; } op[] = { { 0, "0" }, { GTK_EXPAND, "Ex" }, { GTK_FILL, "Fi" }, { GTK_SHRINK, "Sh" }, { GTK_FILL | GTK_EXPAND, "FiEx" }, { GTK_SHRINK | GTK_EXPAND, "ShEx" }, { GTK_FILL | GTK_SHRINK, "FiSh" }, { GTK_SHRINK | GTK_FILL | GTK_EXPAND, "ShFiEx" } }; int main(int argc,char *argv[]) { GtkWidget *window; GtkWidget *table; gnome_init("opset","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() { int r; int c; int index; GtkWidget *table; GtkWidget *button; table = gtk_table_new(2,4,HOMOGENEOUS); gtk_widget_show(table); for(r=0; r<2; r++) { for(c=0; c<4; c++) { index = (r * 4) + c; button = gtk_button_new_with_label( op[index].text); gtk_table_attach(GTK_TABLE(table),button, c,c+1,r,r+1, op[index].setting, op[index].setting, X_MARGIN, Y_MARGIN); 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); }