diff options
author | James Henstridge <james@daa.com.au> | 2001-09-25 13:45:44 +0000 |
---|---|---|
committer | James Henstridge <jamesh@src.gnome.org> | 2001-09-25 13:45:44 +0000 |
commit | 1703c8495fcd611fbdb1ffe20eb27c536af9d2aa (patch) | |
tree | fddb49c450eca85e41002f4559e017a318427924 | |
parent | 6b87a28b01c8a6cf92be9272413fca2abcc97df6 (diff) | |
download | pygtk-python22-branch.tar.gz |
getter for __dict__ on GObject wrappers. (PyGObject_Type): include getsetspython22-branch
2001-09-25 James Henstridge <james@daa.com.au>
* gobjectmodule.c (pygobject_get_dict): getter for __dict__ on
GObject wrappers.
(PyGObject_Type): include getsets list.
* codegen/codegen.py (write_getsets): change "struct getsets" to
PyGetSetDef to match recent changes in python.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | codegen/codegen.py | 2 | ||||
-rw-r--r-- | gobject/gobjectmodule.c | 21 | ||||
-rw-r--r-- | gobjectmodule.c | 21 |
4 files changed, 46 insertions, 5 deletions
@@ -1,5 +1,12 @@ 2001-09-25 James Henstridge <james@daa.com.au> + * gobjectmodule.c (pygobject_get_dict): getter for __dict__ on + GObject wrappers. + (PyGObject_Type): include getsets list. + + * codegen/codegen.py (write_getsets): change "struct getsets" to + PyGetSetDef to match recent changes in python. + * gtk/gdk.override (_wrap_gdk_device__get_axes): change to getter. (_wrap_gdk_device__get_keys): turn into a getter. (_wrap_gdk_drag_context__get_targets): same here. diff --git a/codegen/codegen.py b/codegen/codegen.py index 00e392be..4a5c28b3 100644 --- a/codegen/codegen.py +++ b/codegen/codegen.py @@ -392,7 +392,7 @@ def write_getsets(parser, objobj, castmacro, overrides, fp=sys.stdout): #traceback.print_exc() if not getsets: return '0' - fp.write('static struct getsetlist %s[] = {\n' % getsets_name) + fp.write('static PyGetSetDef %s[] = {\n' % getsets_name) for getset in getsets: fp.write(getset) fp.write(' { NULL, (getter)0, (setter)0 },\n') diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 070dcbc7..14fe42ee 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -1472,6 +1472,23 @@ static PyMethodDef pygobject_methods[] = { { NULL, NULL, 0 } }; +static PyObject * +pygobject_get_dict(PyGObject *self, void *closure) +{ + if (self->inst_dict == NULL) { + self->inst_dict = PyDict_New(); + if (self->inst_dict == NULL) + return NULL; + } + Py_INCREF(self->inst_dict); + return self->inst_dict; +} + +static PyGetSetDef pygobject_getsets[] = { + { "__dict__", (getter)pygobject_get_dict, (setter)0 }, + { NULL, 0, 0 } +}; + static PyTypeObject PyGObject_Type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ @@ -1505,13 +1522,13 @@ static PyTypeObject PyGObject_Type = { (iternextfunc)0, /* tp_iternext */ pygobject_methods, /* tp_methods */ 0, /* tp_members */ - 0, /* tp_getset */ + pygobject_getsets, /* tp_getset */ (PyTypeObject *)0, /* tp_base */ (PyObject *)0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ offsetof(PyGObject, inst_dict), /* tp_dictoffset */ - (initproc)pygobject_init, /* tp_init */ + (initproc)pygobject_init, /* tp_init */ PyType_GenericAlloc, /* tp_alloc */ PyType_GenericNew, /* tp_new */ object_gc_free, /* tp_free */ diff --git a/gobjectmodule.c b/gobjectmodule.c index 070dcbc7..14fe42ee 100644 --- a/gobjectmodule.c +++ b/gobjectmodule.c @@ -1472,6 +1472,23 @@ static PyMethodDef pygobject_methods[] = { { NULL, NULL, 0 } }; +static PyObject * +pygobject_get_dict(PyGObject *self, void *closure) +{ + if (self->inst_dict == NULL) { + self->inst_dict = PyDict_New(); + if (self->inst_dict == NULL) + return NULL; + } + Py_INCREF(self->inst_dict); + return self->inst_dict; +} + +static PyGetSetDef pygobject_getsets[] = { + { "__dict__", (getter)pygobject_get_dict, (setter)0 }, + { NULL, 0, 0 } +}; + static PyTypeObject PyGObject_Type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ @@ -1505,13 +1522,13 @@ static PyTypeObject PyGObject_Type = { (iternextfunc)0, /* tp_iternext */ pygobject_methods, /* tp_methods */ 0, /* tp_members */ - 0, /* tp_getset */ + pygobject_getsets, /* tp_getset */ (PyTypeObject *)0, /* tp_base */ (PyObject *)0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ offsetof(PyGObject, inst_dict), /* tp_dictoffset */ - (initproc)pygobject_init, /* tp_init */ + (initproc)pygobject_init, /* tp_init */ PyType_GenericAlloc, /* tp_alloc */ PyType_GenericNew, /* tp_new */ object_gc_free, /* tp_free */ |