diff options
author | James Henstridge <james@daa.com.au> | 2002-01-12 06:49:46 +0000 |
---|---|---|
committer | James Henstridge <jamesh@src.gnome.org> | 2002-01-12 06:49:46 +0000 |
commit | 1b41a8ab0e347c30104e6c15195fa01416ebbdce (patch) | |
tree | df013fe4e4eb50abe9d0704181b13446c7ef8a8c | |
parent | d46539dd8f3db516cfe74f9bdfa2d4743a372259 (diff) | |
download | pygobject-1b41a8ab0e347c30104e6c15195fa01416ebbdce.tar.gz pygobject-1b41a8ab0e347c30104e6c15195fa01416ebbdce.tar.xz pygobject-1b41a8ab0e347c30104e6c15195fa01416ebbdce.zip |
convert None, int, long, float, str and object to GTypes.
2002-01-12 James Henstridge <james@daa.com.au>
* 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.
-rw-r--r-- | gobject/gobjectmodule.c | 18 |
1 files changed, 18 insertions, 0 deletions
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; } |