Here is the implementation of gtk_tree_item_get_subtree:
static PyObject *_wrap_gtk_tree_item_get_subtree(PyObject *self, PyObject *args)
{
PyObject *obj;
if (!PyArg_ParseTuple(args, "O!:gtk_tree_item_get_subtree", &PyGtk_Type, &ob
j))
return NULL;
return PyGtk_New((GtkObject *)GTK_TREE_ITEM(PyGtk_Get(obj))->subtree);
}
The function is just an accessor for the subtree attribute. Of course,
this has some problems if the tree item doesn't have a subtree, which will
have to be fixed for the next release.
James.
--
Email: [EMAIL PROTECTED]
WWW: http://www.daa.com.au/~james/
On Sat, 18 Dec 1999, Mike Kestner wrote:
> Both this patch and the latest version's gtk.py file
> call the function _gtk.gtk_tree_item_get_subtree to
> access the item's subtree. Where is this function
> defined/generated? I see a "set_subtree" gtk function,
> but the 'get' operation seems to be provided by the
> GTK_TREE_ITEM_SUBTREE(item) macro.
>
> Am I totally daft, or is the wrapper trying to access a
> function that doesn't exist?
>
> Regards,
> Mike
>
> ----- Original Message -----
> From: John Ehresman <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, December 09, 1999 1:15 PM
> Subject: [pygtk] Patches for GtkTreeItem.subtree
>
>
> >
> > Hi,
> >
> > I encountered problems when I tried to access the subtree attribute of
> > a GtkItem instance. I think I've solved them (I solved my immediate
> > problems, at least) by making several changes to pygtk. I've attached
> > diffs for gtk.py and generate/generate.py made against the pygtk 0.6.3
> > distribution. The changes are:
> >
> > * A typo corrected in GtkTreeItem.__getattr__ and a wrapper around
> > _gtk.gtk_tree_item_get_subtree to convert the C extension object ref to
> > a Python class instance.
> > * Modified generate.py to emit C code to check for a NULL GtkObject when
> > returning a field of the GtkObject. If NULL is found, a reference to
> > the Python None object is returned.
> > * Modified _obj2inst in gtk.py to return None if the input argument is
> > None.
> >
> > With these changes, the subtree attribute will be None if the item does
> > not have a subtree, and a GtkTree instance if it does.
> >
> > Thanks to all the people who have contributed to pygtk, especially James
> > Henstridge.
> >
> > John
> >
> > diff -c for gtk.py
> > *** gtk.py Fri Dec 3 15:32:24 1999
> > --- /home/jpe/down/pygtk-0.6.3/gtk.py Thu Sep 30 01:33:14 1999
> > ***************
> > *** 782,791 ****
> > self._o = _gtk.gtk_tree_item_new_with_label(label)
> > def __getattr__(self, attr):
> > attrs = {
> > ! 'subtree': (lambda o:
> > ! _obj2inst(_gtk.gtk_tree_item_get_subtree(o)))
> > }
> > ! if attrs.has_key(attr):
> > return attrs[attr](self._o)
> > return GtkItem.__getattr__(self, attr)
> > def set_subtree(self, subtree):
> > --- 782,790 ----
> > self._o = _gtk.gtk_tree_item_new_with_label(label)
> > def __getattr__(self, attr):
> > attrs = {
> > ! 'subtree': _gtk.gtk_tree_item_get_subtree,
> > }
> > ! if attrs.has_key(attrs):
> > return attrs[attr](self._o)
> > return GtkItem.__getattr__(self, attr)
> > def set_subtree(self, subtree):
> > ***************
> > *** 2484,2491 ****
> > _gtk.gtk_accel_group_remove(self._ag, key, mods, obj._o)
> >
> > def _obj2inst(obj):
> > - if obj == None:
> > - return None
> > objname = _gtk.gtk_type_name(_gtk.GTK_OBJECT_TYPE(obj))
> > if _name2cls.has_key(objname):
> > return _name2cls[objname](_obj=obj)
> > --- 2483,2488 ----
> >
> > diff -c for generate/generate.py:
> > *** generate/generate.py Fri Dec 3 15:24:46 1999
> > --- /home/jpe/down/pygtk-0.6.3/generate/generate.py Thu Sep 30
> > 01:33:15 1999
> > ***************
> > *** 421,435 ****
> > impl.write(funcCall)
> > impl.write(');\n')
> > elif retType in objects.keys():
> > ! impl.write(' {\n')
> > ! impl.write(' GtkObject* _o = (GtkObject*)')
> > ! impl.write(funcCall)
> > ! impl.write(';\n')
> > ! impl.write(' if ( _o != NULL )\n')
> > ! impl.write(' return PyGtk_New(_o);\n')
> > ! impl.write(' Py_INCREF(Py_None);\n')
> > ! impl.write(' return Py_None;\n')
> > ! impl.write(' }\n')
> > else:
> > print "%s: unknown return type '%s'" % (name,
> retType)
> > return 1
> > --- 421,429 ----
> > impl.write(funcCall)
> > impl.write(');\n')
> > elif retType in objects.keys():
> > ! impl.write(' return PyGtk_New((GtkObject *)')
> > ! impl.write(funcCall)
> > ! impl.write(');\n')
> > else:
> > print "%s: unknown return type '%s'" % (name,
> retType)
> > return 1
> >
> >
> >
> >
> >
> > To unsubscribe: echo "unsubscribe" | mail [EMAIL PROTECTED]
> >
>
> To unsubscribe: echo "unsubscribe" | mail [EMAIL PROTECTED]
>
To unsubscribe: echo "unsubscribe" | mail [EMAIL PROTECTED]