[Glade-users] Generate c-file in glade3?? from Aug 15 2006



On Wed, 2006-12-06 at 21:05 +1100, Derek Law wrote:
Hi, I'm a new comer to this list.  

I was about to write about something concerning a
strange behavior in libglade + Glade-2 but just when I
was looking at the archive to see if someone came
across the same problem I actually stumbled across
this thread.  This brought back memories of reading a
reasonably big discussion several months ago about
abandoning C code generation.  While I could see both
sides of the argument I actually sided with leaving
the feature there at that time, as I had a similar
problem to one of the authors (I couldn't seem to find
where the thread is):


There were a few threads, this one [1] is quite extensive
but a little repetetive.

In one of the applications I wrote, there's a dialogue
with the following layout:

Label   Spinbutton
Label   Spinbutton
...

The problem is the number of Label-Spinbutton pairs is
determined at run time.  I cannot have a single glade
file with just the two widgets and apply it multiple
times because each widget has to have a unique name.
Therefore I'm just curious if there are more "libglade
friendly" ways of doing that in Glade-3, or I'd need
to code it - in which case a code generator will
actually ease the process quite a bit.


Well, how are they packed ? you can generate them more than once
from the glade file... i'd say the code you're looking for
should look something like the following:

void
fill_box (GtkWidget *box)
{
   for (something about entries) {
      GladeXML *xml;

      if ((xml = glade_xml_new (gladefile, "label-spin-box")) != NULL) {
          GtkWidget *hbox = glade_xml_get_widget (xml, 
                                                  "label-spin-box");

          /* dynamicly append a label/spin pair to the box. */
          gtk_box_pack_end (box, hbox, FALSE, FALSE);

          /* free unneeded resources */
          g_object_unref (xml);
      }

   }
}

That should give you a general idea of how to do what 
you need to do using libglade, ofcourse your implementation
will vary because you probably pack things in a specific way.

Cheers,
                  -Tristan

[1]http://mail.gnome.org/archives/gtk-app-devel-list/2006-October/msg00182.html






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