1 /* -*- Mode: C; c-basic-offset: 4 -*- 2 * pygtk- Python bindings for the GTK toolkit. 3 * Copyright (C) 1998-2003 James Henstridge 4 * 2004-2008 Johan Dahlin 5 * pyginterface.c: wrapper for the gobject library. 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * This library is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this library; if not, see <http://www.gnu.org/licenses/>. 19 */ 20 21 #ifndef __PYGI_TYPE_H__ 22 #define __PYGI_TYPE_H__ 23 24 #include <Python.h> 25 #include <glib-object.h> 26 #include <girepository.h> 27 #include "pygobject-internal.h" 28 29 extern PyTypeObject PyGTypeWrapper_Type; 30 31 typedef PyObject *(* fromvaluefunc)(const GValue *value); 32 typedef int (*tovaluefunc)(GValue *value, PyObject *obj); 33 34 typedef struct { 35 fromvaluefunc fromvalue; 36 tovaluefunc tovalue; 37 } PyGTypeMarshal; 38 39 PyGTypeMarshal *pyg_type_lookup(GType type); 40 41 gboolean pyg_gtype_is_custom (GType gtype); 42 43 void pyg_register_gtype_custom(GType gtype, 44 fromvaluefunc from_func, 45 tovaluefunc to_func); 46 47 int pygi_type_register_types(PyObject *d); 48 49 PyObject *pyg_object_descr_doc_get(void); 50 PyObject *pyg_type_wrapper_new (GType type); 51 GType pyg_type_from_object_strict (PyObject *obj, gboolean strict); 52 GType pyg_type_from_object (PyObject *obj); 53 54 int pyg_pyobj_to_unichar_conv (PyObject* py_obj, void* ptr); 55 56 GClosure *pyg_closure_new(PyObject *callback, PyObject *extra_args, PyObject *swap_data); 57 GClosure *pyg_signal_class_closure_get(void); 58 void pyg_closure_set_exception_handler(GClosure *closure, 59 PyClosureExceptionHandler handler); 60 61 PyObject *pygi_type_import_by_g_type (GType g_type); 62 PyObject *pygi_type_import_by_name (const char *namespace_, const char *name); 63 PyObject *pygi_type_import_by_gi_info (GIBaseInfo *info); 64 PyObject *pygi_type_get_from_g_type (GType g_type); 65 66 #endif /* __PYGI_TYPE_H__ */ 67