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

Reply via email to