From 1b41a8ab0e347c30104e6c15195fa01416ebbdce Mon Sep 17 00:00:00 2001 From: James Henstridge Date: Sat, 12 Jan 2002 06:49:46 +0000 Subject: convert None, int, long, float, str and object to GTypes. 2002-01-12 James Henstridge * gobjectmodule.c (pyg_type_from_object): convert None, int, long, float, str and object to GTypes. * gtk/gtkmodule.c (init_gtk): only raise a runtime error if we can't initialise gtk. --- gobject/gobjectmodule.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'gobject') diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 2532709..1fddfea 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -676,6 +676,24 @@ pyg_type_from_object(PyObject *obj) return 0; } + /* map some standard types to primitive GTypes ... */ + if (obj == Py_None) + return G_TYPE_NONE; + if (PyType_Check(obj)) { + PyTypeObject *tp = (PyTypeObject *)obj; + + if (tp == &PyInt_Type) + return G_TYPE_INT; + else if (tp == &PyLong_Type) + return G_TYPE_LONG; + else if (tp == &PyFloat_Type) + return G_TYPE_DOUBLE; + else if (tp == &PyString_Type) + return G_TYPE_STRING; + else if (tp == &PyBaseObject_Type) + return PY_TYPE_OBJECT; + } + if (obj->ob_type == &PyGTypeWrapper_Type) { return ((PyGTypeWrapper *)obj)->type; } -- cgit