diff options
| author | James Henstridge <james@daa.com.au> | 2001-09-18 10:05:22 +0000 |
|---|---|---|
| committer | James Henstridge <jamesh@src.gnome.org> | 2001-09-18 10:05:22 +0000 |
| commit | bcaf62aab7e7dca0e9c8bbc5e45c848b96830d3e (patch) | |
| tree | 0d268f9726ff33747b4e77c5d03c5fc1f86d7bc4 /gobject/pygobject.h | |
| parent | ff56783b4e7c5569078681f325496c4bc684e53b (diff) | |
| download | pygobject-bcaf62aab7e7dca0e9c8bbc5e45c848b96830d3e.tar.gz pygobject-bcaf62aab7e7dca0e9c8bbc5e45c848b96830d3e.tar.xz pygobject-bcaf62aab7e7dca0e9c8bbc5e45c848b96830d3e.zip | |
export this function.
2001-09-18 James Henstridge <james@daa.com.au>
* pygobject.h (pyg_type_wrapper_new): export this function.
* codegen/argtypes.py (GTypeArg.write_return): wrap GType return
values as PyGTypeWrappers rather than ints.
* codegen/codegen.py (write_source): pass the typecode macros to
pygobject_register_class and pyg_register_interface rather than
references to the get_type functions.
* pygobject.h (_PyGObject_Functions): fix up prototypes.
* gobjectmodule.c (check_bases): check if the base class is an
extensionclass before poking around in class->bases.
(pyg_type_*): don't bother storing the _get_type() function for
lazy initialisation. Instead, just store the GType. Also, remove
code for coercing them into numbers.
(pygobject_register_class): take the type, rather that get_type
routine as an argument.
(pyg_register_interface): same here.
(pyg_type_from_object): don't accept types that convert to ints as
being equivalent to GTypes.
(pyg_register_boxed): set the __gtype__ attribute to a
PyGTypeWrapper.
(pyg_type_register): set __gtype__ to a PyGTypeWrapper.
(pyg_type_name): use pyg_type_from_name
(pyg_type_from_name): return a PyGTypeWrapper object.
(pyg_type_parent): update.
(pyg_type_is_a): update.
(pyg_type_children): update.
(pyg_type_interfaces): update.
(initgobject): set __gtype__ attributes to PyGTypeWrapper objects.
(initgobject): make type constants PyGTypeWrapper objects.
Diffstat (limited to 'gobject/pygobject.h')
| -rw-r--r-- | gobject/pygobject.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gobject/pygobject.h b/gobject/pygobject.h index db8e284..16fd37a 100644 --- a/gobject/pygobject.h +++ b/gobject/pygobject.h @@ -30,14 +30,16 @@ typedef struct { struct _PyGObject_Functions { void (* register_class)(PyObject *dict, const gchar *class_name, - GType (* get_type)(void), - PyExtensionClass *ec, PyObject *bases); + GType type, PyExtensionClass *ec, PyObject *bases); void (* register_wrapper)(PyObject *self); PyExtensionClass *(* lookup_class)(GType type); PyObject *(* new)(GObject *obj); GClosure *(* closure_new)(PyObject *callback, PyObject *extra_args, PyObject *swap_data); + GType (* type_from_object)(PyObject *obj); + PyObject *(* type_wrapper_new)(GType type); + gint (* enum_get_value)(GType enum_type, PyObject *obj, gint *val); gint (* flags_get_value)(GType flag_type, PyObject *obj, gint *val); void (* register_boxed_custom)(GType boxed_type, @@ -47,8 +49,7 @@ struct _PyGObject_Functions { PyObject *(* value_as_pyobject)(const GValue *value); void (* register_interface)(PyObject *dict, const gchar *class_name, - GType (* get_type)(void), - PyExtensionClass *ec); + GType type, PyExtensionClass *ec); PyExtensionClass *boxed_type; void (* register_boxed)(PyObject *dict, const gchar *class_name, @@ -76,6 +77,7 @@ struct _PyGObject_Functions *_PyGObject_API; #define pygobject_new (_PyGObject_API->new) #define pyg_closure_new (_PyGObject_API->closure_new) #define pyg_type_from_object (_PyGObject_API->type_from_object) +#define pyg_type_wrapper_new (_PyGObject_API->type_wrapper_new) #define pyg_enum_get_value (_PyGObject_API->enum_get_value) #define pyg_flags_get_value (_PyGObject_API->flags_get_value) #define pyg_register_boxed_custom (_PyGObject_API->register_boxed_custom) |
