GtkBuilder issue?



I'm trying to add gtkbuilder support to pike (pike.roxen.com).

In loading a glade3 file, it says Invalid Object 'blah', unless I create an 
instance of the object first.  I narrowed it down to (in gtkbuilder.c):

static GType
gtk_builder_real_get_type_from_name (GtkBuilder  *builder, 
                                     const gchar *type_name)
{
  GType gtype;

  gtype = g_type_from_name (type_name);
  if (gtype != G_TYPE_INVALID)
    return gtype;

  return _gtk_builder_resolve_type_lazily (type_name);
}

Which as you can see, calls _gtk_builder_resolve_type_lazily().  That function 
loads the module using GModule, using NULL to load the symbols of itself, find 
the *_get_type() function of the object, and calls it to get the type.  The 
type, of course, is not created until the first time it is used.

For some reason, my code doesn't do that.  The binding is a .so file that is 
dynamically loaded into the pike interpreter, so I'm hazarding a guess that it 
gets the symbols to the current module, which is not libgtk-x11.so (on linux 
anyway), so it can't find the *_get_type() function, so it gets G_TYPE_INVALID.  
I've been trying different things and so far nothing is working.

Does anybody have any idea how to get around this, to make it resolve properly?

Thanks


      



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