f21cf1f7de38165c0e9438da0b2a79872b2344ba
[platform/upstream/python-gobject.git] / gi / pygtype.h
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 __PYGOBJECT_TYPE_H__ 
22 #define __PYGOBJECT_TYPE_H__
23
24 #include <glib-object.h>
25 #include <Python.h>
26
27 typedef PyObject *(* fromvaluefunc)(const GValue *value);
28 typedef int (*tovaluefunc)(GValue *value, PyObject *obj);
29
30 typedef struct {
31     fromvaluefunc fromvalue;
32     tovaluefunc tovalue;
33 } PyGTypeMarshal;
34
35 PyGTypeMarshal *pyg_type_lookup(GType type);
36
37 void pyg_register_gtype_custom(GType gtype,
38                                fromvaluefunc from_func,
39                                tovaluefunc to_func);
40
41 void pygobject_type_register_types(PyObject *d);
42
43 #endif /* __PYGOBJECT_TYPE_H__ */