[Glade-users] how to replicate a glade designed window?

dcottingham00 at comcast.net dcottingham00 at comcast.net
Tue May 20 13:59:18 EDT 2008


Tristan -

Thanks, this does just what I need.  So I see the way this works is that if you call glade_xml_new once, then calling glade_xml_get_widget multiple times keeps giving you the same widget; but calling glade_xml_new again gives you a whole new set of widgets.

Thanks,
Dave Cottingham

 -------------- Original message ----------------------
From: "Tristan Van Berkom" <tristan.van.berkom at gmail.com>
> On Mon, May 19, 2008 at 7:46 PM,  <dcottingham00 at comcast.net> wrote:
> > Suppose I have used glade to design a window for displaying a view, but I want 
> my application to be able to fire up multiple of these windows at the same time, 
> each showing this kind of view of a different object instance.  I confess I 
> cannot figure out how to do this.  It seems you'd need to somehow clone the 
> whole widget tree.
> >
> > Can someone take pity on me and explain how this is done?  This has to be a 
> really elementary question, but I can't find the answer.
> 
> Just do something like this:
> 
> for (i = 0...items) {
>    xml = glade_xml_new (...);
> 
>    if ((widgets[i] = glade_xml_get_widget (...)) == NULL)
>        error ();
> 
>    /* Here you need to deal with the limitation of having to use a
> GtkWindow toplevel,
>     * so assuming its a normal widget you'll have to do something like this:
>     */
>    toplevel = glade_xml_get_widget (...);
>    g_object_ref (widgets[i]);
>    gtk_container_remove (widget from the toplevel);
>    gtk_widget_destroy (the toplevel);
> 
>    /* and always dont forget to not leek the GladeXML */
>    g_object_unref (xml);
> }
> 
> Note that in the GtkBuilder api you can do exactly the same.
> 
> Cheers,
>                    -Tristan



More information about the Glade-users mailing list