diff options
Diffstat (limited to 'gobject/pygobject.h')
| -rw-r--r-- | gobject/pygobject.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/gobject/pygobject.h b/gobject/pygobject.h index 9918dd3..69af1af 100644 --- a/gobject/pygobject.h +++ b/gobject/pygobject.h @@ -25,9 +25,18 @@ typedef struct { gboolean free_on_dealloc; } PyGBoxed; +typedef struct { + PyObject_HEAD + gpointer pointer; + GType gtype; +} PyGPointer; + #define pyg_boxed_get(v,t) ((t *)((PyGBoxed *)(v))->boxed) #define pyg_boxed_check(v,typecode) (PyObject_TypeCheck(v, &PyGBoxed_Type) && ((PyGBoxed *)(v))->gtype == typecode) +#define pyg_pointer_get(v,t) ((t *)((PyGPointer *)(v))->pointer) +#define pyg_pointer_check(v,typecode) (PyObject_TypeCheck(v, &PyGPointer_Type) && ((PyGPointer *)(v))->gtype == typecode) + typedef void (*PyGFatalExceptionFunc) (void); typedef void (*PyGThreadBlockFunc) (void); @@ -62,6 +71,11 @@ struct _PyGObject_Functions { PyObject *(* boxed_new)(GType boxed_type, gpointer boxed, gboolean copy_boxed, gboolean own_ref); + PyTypeObject *pointer_type; + void (* register_pointer)(PyObject *dict, const gchar *class_name, + GType pointer_type, PyTypeObject *type); + PyObject *(* pointer_new)(GType boxed_type, gpointer pointer); + void (* enum_add_constants)(PyObject *module, GType enum_type, const gchar *strip_prefix); void (* flags_add_constants)(PyObject *module, GType flags_type, @@ -105,9 +119,12 @@ struct _PyGObject_Functions *_PyGObject_API; #define PyGBoxed_Type (*_PyGObject_API->boxed_type) #define pyg_register_boxed (_PyGObject_API->register_boxed) #define pyg_boxed_new (_PyGObject_API->boxed_new) +#define PyGPointer_Type (*_PyGObject_API->pointer_type) +#define pyg_register_pointer (_PyGObject_API->register_pointer) +#define pyg_pointer_new (_PyGObject_API->pointer_new) #define pyg_enum_add_constants (_PyGObject_API->enum_add_constants) #define pyg_flags_add_constants (_PyGObject_API->flags_add_constants) -#define pyg_constant_strip_prefix (_PyGObject_API->constant_strip_prefix) +#define pyg_constant_strip_prefix (_PyGObject_API->constant_strip_prefix) #define pyg_error_check (_PyGObject_API->error_check) #define pyg_set_thread_block_funcs (_PyGObject_API->set_thread_block_funcs) |
