Why functions that receive GtkLabel don't need casting? 2010/2/3 frederico schardong <[email protected]>
> 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 <[email protected]>: > > 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 <[email protected]> > 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 > >> [email protected] > >> 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 > [email protected] > http://mail.gnome.org/mailman/listinfo/gtk-list >
_______________________________________________ gtk-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtk-list
