GtkNotebook question



Hi,
   When I was using GtkNoteBook such that I show the
Vbox containing the notebook, before creating the
notebook itself. I see the widgets in the second page
of notebook on the first page. But this becomes OK,
when I switch to second page and back to first page.
Here the source code that I was trying.  Note that, if
I put the gtk_widget_show(vbox) ath end, just before
gtk_main(), the problem does not reproduce.

Is this a known and intended behavior? If yesy why ?

void show_window()
{
  GtkWidget *window, *vbox, *hbox, *vbox2;
   GtkWidget *nb, *ent, *lbl, *lbl2;
                                                      
                         
  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_signal_connect(GTK_OBJECT(window),
"delete_event",
                     GTK_SIGNAL_FUNC(gtk_main_quit),
NULL);
  gtk_widget_set_size_request(window,400,400);
  gtk_widget_show(window);
  vbox = gtk_vbox_new(FALSE, 2);
  gtk_container_add(GTK_CONTAINER(window), vbox);
  gtk_widget_show(vbox);
                                                      
                         
  nb = gtk_notebook_new();
  gtk_box_pack_start(GTK_BOX(vbox), nb, TRUE,
TRUE,10);
  gtk_widget_show(nb);
  /* Add first page */
  vbox2 = gtk_vbox_new(FALSE, 2);
  lbl = gtk_label_new("First page ");
  gtk_notebook_append_page(GTK_NOTEBOOK(nb), vbox2,
lbl);
  gtk_widget_show(lbl);
  gtk_widget_show(vbox2);
                                                      
                         
  hbox = gtk_hbox_new(FALSE, 0);
  gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE,
FALSE, 10);
  gtk_widget_show(hbox);
  lbl2 = gtk_label_new("Text Field ");
  gtk_box_pack_start(GTK_BOX(hbox), lbl2, FALSE,
FALSE, 10);
  gtk_widget_show(lbl2);
                                                      
                         
  ent = gtk_entry_new();
  gtk_entry_set_text(GTK_ENTRY(ent),"DD");
  gtk_box_pack_start(GTK_BOX(hbox), ent, TRUE, TRUE,
10);
  gtk_widget_show(ent);
                                                      
                         
  /* Create the second page */
  vbox2 = gtk_vbox_new(FALSE, 2);
  lbl = gtk_label_new("Second page ");
  gtk_notebook_append_page(GTK_NOTEBOOK(nb), vbox2,
lbl);
  vbox2 = gtk_vbox_new(FALSE, 2);
  lbl = gtk_label_new("Second page ");
  gtk_notebook_append_page(GTK_NOTEBOOK(nb), vbox2,
lbl);
  gtk_widget_show(lbl);
  gtk_widget_show(vbox2);
                                                      
                         
  hbox = gtk_hbox_new(FALSE, 0);
  gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE,
FALSE, 10);
  gtk_widget_show(hbox);
  lbl2 = gtk_label_new("Second Field ");
  gtk_box_pack_start(GTK_BOX(hbox), lbl2, FALSE,
FALSE, 10);
  gtk_widget_show(lbl2);
                                                      
                         
  ent = gtk_entry_new();
  gtk_entry_set_text(GTK_ENTRY(ent),"SECOND LABEL");
  gtk_box_pack_start(GTK_BOX(hbox), ent, FALSE, FALSE,
10);
  gtk_widget_show(ent);
  ent = gtk_entry_new();
  gtk_entry_set_text(GTK_ENTRY(ent),"SECOND LABEL");
  gtk_box_pack_start(GTK_BOX(hbox), ent, FALSE, FALSE,
10);
  gtk_widget_show(ent);
                                                      
                         
  gtk_main();
}


main(int argc, char *argv[])
{
  gtk_init(&argc, &argv);
                                                      
                         
  show_window();
}




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]