[pygtk] objects not using GObjectMeta when auto-generated with codegen.py

Luke Kenneth Casson Leighton lkcl at lkcl.net
Wed Sep 24 20:24:49 WST 2008


folks, hi,
i'm finding that the functionality offered by GObjectMeta - namely
that of making gobject attributes appear as member variables of a
class - does not... materialise.
these are the debian version numbers of packages being used:
  python-gobject                       2.14.2-1
  python-gtk2                          2.12.1-6
without this functionality, examples of usage includes doing
ridiculous things like:
   doc.props.body.props.child[0].props.style.props.text.props.length
instead of
   doc.body.child[0].style.text.length
which, whilst it's a fictitious example it's not _that_ far off from
what's actually in real-world use!

straight from the header files of the (300) c-based glib-objects, i
used h2defs.py to create a .defs file - with no additional arguments.
the entry in Makefile.am looks pretty straightforward:
.defs.c:
    (cd $(srcdir) \
     && $(PYGTK_CODEGEN) \
        --register $(PYGTK_DEFSDIR)/gdk-types.defs \
        --register $(PYGTK_DEFSDIR)/gtk-types.defs \
        --override $*.override \
        --prefix py$* $*.defs)

so... why is GObjectMeta not being "activated"?  why do i need to use
the laborious props props props instead of the much more sensible
member-of-class functionality?

many thanks,
l.


More information about the pygtk mailing list