From 6a1807bcce49bf88eb786a78478e7780801c7a36 Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Fri, 8 Jul 2005 14:27:30 +0000 Subject: Add GObject support, patch mostly based on Iņaki and Gustavos work. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gobject/gobjectmodule.c: (initgobject): * gobject/pygobject-private.h: * gobject/pygobject.c: (pyg_props_iter_dealloc), (pygobject_props_iter_next), (PyGProps_dealloc), (build_parameter_list), (PyGProps_getattro), (PyGProps_setattro), (pygobject_props_traverse), (pygobject_props_get_iter), (PyGProps_length), (pyg_props_descr_descr_get): * tests/Makefile.am: Add GObject support, patch mostly based on Iņaki and Gustavos work. Unittests added, fixes #81879 --- gobject/gobjectmodule.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'gobject/gobjectmodule.c') diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index ad00845..e151306 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -2542,6 +2542,7 @@ DL_EXPORT(void) initgobject(void) { PyObject *m, *d, *o, *tuple; + PyObject *descr; PyGParamSpec_Type.ob_type = &PyType_Type; m = Py_InitModule("gobject", pygobject_functions); @@ -2574,7 +2575,7 @@ initgobject(void) PyGObject_MetaType.tp_is_gc = PyType_Type.tp_is_gc; PyType_Ready(&PyGObject_MetaType); PyDict_SetItemString(d, "GObjectMeta", (PyObject *) &PyGObject_MetaType); - + PyGObject_Type.tp_alloc = PyType_GenericAlloc; PyGObject_Type.tp_new = PyType_GenericNew; pygobject_register_class(d, "GObject", G_TYPE_OBJECT, @@ -2582,6 +2583,16 @@ initgobject(void) PyDict_SetItemString(PyGObject_Type.tp_dict, "__gdoc__", pyg_object_descr_doc_get()); + /* GObject properties descriptor */ + if (PyType_Ready(&PyGProps_Type) < 0) + return; + if (PyType_Ready(&PyGPropsDescr_Type) < 0) + return; + if (PyType_Ready(&PyGPropsIter_Type) < 0) + return; + descr = PyObject_New(PyObject, &PyGPropsDescr_Type); + PyDict_SetItemString(PyGObject_Type.tp_dict, "props", descr); + REGISTER_GTYPE(d, PyGInterface_Type, "GInterface", G_TYPE_INTERFACE); PyDict_SetItemString(PyGInterface_Type.tp_dict, "__doc__", pyg_object_descr_doc_get()); -- cgit