Yes, a invisible page are added every time. Adding this, it works: gtk_widget_show_all(vbox); gtk_notebook_remove_page(GTK_NOTEBOOK(notebook), 0); gtk_notebook_insert_page(GTK_NOTEBOOK(notebook), vbox, label, 0); Thanks everyone. 2010/2/3 Tristan Van Berkom <tvb@xxxxxxxxx>: > a.) you dont show the widgets you add in generateButtons > b.) you dont remove the original page either > > maybe it works and adds an invisible page every time ? > > And... maybe it will be easier if you hold on to a GtkBox > child of the first page and reconstruct the contents of > that instead (so as to be sure not to muck up page indexes). > > Cheers, > -Tristan > > On Tue, Feb 2, 2010 at 9:13 PM, frederico schardong <frede.sch@xxxxxxxxx> wrote: >> Hi, >> >> I'm trying to reconstruct the first page of a notebook on a click of a >> button in second page. >> >> The problem is that when click, nothing happen. The function works >> because the page is constructed when calling from the function main(). >> >> Code: >> >> #include <gtk/gtk.h> >> >> void end (GtkWidget*, gpointer); >> void generateButtons(GtkWidget*, gpointer); >> >> int main(int argc, char *argv[]) >> { >> gint i; >> GtkWidget *window, *label, *button, *notebook; >> >> gtk_init (&argc, &argv); >> >> window = gtk_window_new (GTK_WINDOW_TOPLEVEL); >> gtk_window_set_title (GTK_WINDOW (window), "Box example"); >> gtk_widget_set_size_request (window, 300, 100); >> >> g_signal_connect (G_OBJECT(window), "destroy", G_CALLBACK (end), NULL); >> >> label = gtk_label_new("Page Two"); >> >> button = gtk_button_new_with_label("Click to reconstruct the page one"); >> >> /* Append to pages to the notebook container. */ >> notebook = gtk_notebook_new(); >> >> generateButtons(NULL, (gpointer)notebook); >> gtk_notebook_insert_page (GTK_NOTEBOOK (notebook), button, label, 1); >> >> gtk_container_add (GTK_CONTAINER (window), notebook); >> gtk_widget_show_all (window); >> >> g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK >> (generateButtons), (gpointer)notebook); >> >> gtk_main(); >> return 0; >> } >> >> void generateButtons(GtkWidget *widget, gpointer data) >> { >> GtkWidget *vbox, *button, *button1, *label, *notebook = GTK_WIDGET(data); >> vbox = gtk_vbox_new (TRUE, 5); >> >> button = gtk_button_new_with_label ("John"); >> gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); >> >> g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK >> (gtk_widget_destroy), (gpointer) button); >> >> button1 = gtk_button_new_with_label ("Maria"); >> gtk_box_pack_start (GTK_BOX (vbox), button1, FALSE, TRUE, 0); >> >> g_signal_connect (G_OBJECT (button1), "clicked", G_CALLBACK >> (gtk_widget_destroy), (gpointer) button1); >> >> label = gtk_label_new("Page One"); >> >> gtk_notebook_insert_page(GTK_NOTEBOOK(notebook), vbox, label, 0); >> } >> >> void end(GtkWidget *window, gpointer data) >> { >> gtk_main_quit(); >> } >> >> -- >> Thanks, >> Frederico Schardong, >> SOLIS - Open source solutions >> www.solis.coop.br >> Linux registered user #500582 >> _______________________________________________ >> gtk-list mailing list >> gtk-list@xxxxxxxxx >> http://mail.gnome.org/mailman/listinfo/gtk-list >> > -- Thanks, Frederico Schardong, SOLIS - Open source solutions www.solis.coop.br Linux registered user #500582 _______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list