/** notebook.c **/ #include GtkWidget *makeNotebook(); GtkWidget *makeButtonPage(gchar *str); GtkWidget *makeTextPage(gchar *str); gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data); gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data); int main(int argc,char *argv[]) { GtkWidget *window; GtkWidget *notebook; gnome_init("notebook","1.0",argc,argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(window), 200,200); 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); notebook = makeNotebook(); gtk_container_add(GTK_CONTAINER(window),notebook); gtk_widget_show_all(window); gtk_main(); exit(0); } GtkWidget *makeNotebook() { GtkWidget *notebook; GtkWidget *page; GtkWidget *label; notebook = gtk_notebook_new(); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_TOP); page = makeButtonPage("First Button Page"); label = gtk_label_new("Front"); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page,label); page = makeTextPage("first"); label = gtk_label_new("Second"); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page,label); page = makeButtonPage("Second Button Page"); label = gtk_label_new("Third"); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page,label); page = makeTextPage("second"); label = gtk_label_new("Fourth"); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page,label); page = makeButtonPage("Third Button Page"); label = gtk_label_new("Back"); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page,label); return(notebook); } GtkWidget *makeButtonPage(gchar *str) { GtkWidget *alignment; GtkWidget *button; alignment = gtk_alignment_new(0.5,0.5,0.5,0.5); button = gtk_button_new_with_label(str); gtk_container_add(GTK_CONTAINER(alignment),button); return(alignment); } GtkWidget *makeTextPage(gchar *str) { int i; GtkWidget *text; gchar string[80]; text = gtk_text_new(NULL,NULL); sprintf(string, "This is the text of the %s text page. ",str); for(i=0; i<80; i++) { gtk_text_insert(GTK_TEXT(text),NULL,NULL,NULL, string,-1); } return(text); } gint eventDelete(GtkWidget *widget, GdkEvent *event,gpointer data) { return(FALSE); } gint eventDestroy(GtkWidget *widget, GdkEvent *event,gpointer data) { gtk_main_quit(); return(0); }