summaryrefslogtreecommitdiffstats
path: root/gobject/gobjectmodule.c
diff options
context:
space:
mode:
authorJohan Dahlin <johan@src.gnome.org>2005-07-08 14:27:30 +0000
committerJohan Dahlin <johan@src.gnome.org>2005-07-08 14:27:30 +0000
commit6a1807bcce49bf88eb786a78478e7780801c7a36 (patch)
tree0dc48567a7cc88c7c93560aabddffc08d028dada /gobject/gobjectmodule.c
parent302a0be1855356577a8869c34fa90bface8d4f00 (diff)
downloadpygobject-6a1807bcce49bf88eb786a78478e7780801c7a36.tar.gz
pygobject-6a1807bcce49bf88eb786a78478e7780801c7a36.tar.xz
pygobject-6a1807bcce49bf88eb786a78478e7780801c7a36.zip
Add GObject support, patch mostly based on Iņaki and Gustavos work.
* 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
Diffstat (limited to 'gobject/gobjectmodule.c')
-rw-r--r--gobject/gobjectmodule.c13
1 files changed, 12 insertions, 1 deletions
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());