Ahh you mean it shows up and everything the first time, I see. I think you are missing a reference to the generalpage widget.
Its initially built as a floating, and then the floating reference is "sink"ed the first time you add it somewhere, when you remove it the first time; its destroyed because you dont have a reference. Cheers, -Tristan On Thu, Dec 24, 2009 at 7:06 PM, Tristan Van Berkom <t...@gnome.org> wrote: > On Thu, Dec 24, 2009 at 6:40 PM, Andrew Wood <ajw...@theiet.org> wrote: >> But that bit of code only runs the first time and the first time it works. >> >> >> On 24 Dec 2009, at 19:09, Tristan Van Berkom wrote: >> >>> From the assertions it *looks* like glade_xml_get_widget() is >>> returning NULL for "mainvbox". > > You mean "it works" or you mean the code executes and assigns a > NULL pointer to your widget pointer the first time around ? > > From the warnings you printed, 'generalpage' is not a widget, > so maybe it was not found in the glade file, or maybe it was somehow > destroyed by some other code fragment in your app along the way. > > Cheers, > -Tristan > >>> >>> Cheers, >>> -Tristan >>> >>> On Thu, Dec 24, 2009 at 11:29 AM, Andrew Wood <ajw...@theiet.org> wrote: >>>> >>>> The following function is called to display a vbox, which is read from a >>>> glade file, in a scrollview. >>>> >>>> If the vbox or 'page' hasnt been displayed before then >>>> generalpageinitialised will be false. >>>> >>>> There are other 'pages' in the app which are vboxes read from a glade >>>> file >>>> in the same way. The app always shows the vbox called rightpanevbox and >>>> it >>>> swaps this variable to point to the appropriate one read from glade. >>>> >>>> The first time the function is called the page shows perfectly. The >>>> second >>>> time I get errors such as: >>>> >>>> Showing General Page >>>> doing gtk_container_remove >>>> >>>> (a.out:21153): Gtk-CRITICAL **: gtk_container_remove: assertion >>>> `GTK_IS_WIDGET (widget)' failed >>>> done gtk_container_remove >>>> >>>> >>>> (a.out:21153): GLib-GObject-WARNING **: invalid unclassed pointer in cast >>>> to >>>> `GtkWidget' >>>> >>>> (a.out:21153): Gtk-CRITICAL **: gtk_scrolled_window_add_with_viewport: >>>> assertion `GTK_IS_WIDGET (child)' failed >>>> >>>> >>>> (a.out:21153): GLib-GObject-WARNING **: invalid unclassed pointer in cast >>>> to >>>> `GtkWidget' >>>> >>>> (a.out:21153): Gtk-CRITICAL **: gtk_widget_show_all: assertion >>>> `GTK_IS_WIDGET (widget)' failed >>>> >>>> >>>> I cant understand why its happy the first time its called but not on >>>> subsequent calls. If anyone can enlighten me Id be very grateful >>>> >>>> Thanks >>>> >>>> >>>> void showGeneralPage() >>>> { >>>> g_print("Showing General Page\n"); >>>> if (generalpageinitialised==false) >>>> { >>>> generalpage= glade_xml_get_widget(generalpagexml,"mainvbox"); >>>> glade_xml_signal_autoconnect(generalpagexml); >>>> generalpageinitialised=true; >>>> } >>>> if (pagedisplayed!="INIT") >>>> { >>>> //a previous page is shown so we need to remove it first >>>> g_print("doing gtk_container_remove\n"); >>>> gtk_container_remove (GTK_CONTAINER >>>> (rightpanescrollview),gtk_bin_get_child(GTK_BIN(rightpanescrollview))); >>>> g_print("done gtk_container_remove\n"); >>>> } >>>> rightpanevbox=generalpage; //make generalpage the one currently on show >>>> pagedisplayed = "General"; >>>> >>>> >>>> >>>> gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(rightpanescrollview),GTK_WIDGET(rightpanevbox)); >>>> gtk_widget_show_all(GTK_WIDGET(rightpanevbox)); >>>> } >>>> _______________________________________________ >>>> gtk-app-devel-list mailing list >>>> gtk-app-devel-list@gnome.org >>>> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list >>>> >>> >>> ______________________________________________________________________ >>> This email has been scanned by the MessageLabs Email Security System. >>> For more information please visit http://www.messagelabs.com/email >>> ______________________________________________________________________ >> >> _______________________________________________ >> gtk-app-devel-list mailing list >> gtk-app-devel-list@gnome.org >> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list >> > _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list