summaryrefslogtreecommitdiffstats
path: root/gobject/gobjectmodule.c
diff options
context:
space:
mode:
authorJames Henstridge <james@daa.com.au>2002-02-05 07:13:20 +0000
committerJames Henstridge <jamesh@src.gnome.org>2002-02-05 07:13:20 +0000
commita8aff2c7e2887e7b6454b2fb80acac96ad362e59 (patch)
tree1ddb8f876ce9b4e905077b609c05129e10846f73 /gobject/gobjectmodule.c
parent88c8c2e51fa241063b3b920c52ba8d63334ad142 (diff)
downloadpygobject-a8aff2c7e2887e7b6454b2fb80acac96ad362e59.tar.gz
pygobject-a8aff2c7e2887e7b6454b2fb80acac96ad362e59.tar.xz
pygobject-a8aff2c7e2887e7b6454b2fb80acac96ad362e59.zip
register pointer types as well.
2002-02-05 James Henstridge <james@daa.com.au> * codegen/codegen.py (register_types): register pointer types as well. * codegen/argtypes.py (PointerArg): handling for pointer arg types. (ArgMatcher.register_pointer): add function to register pointer types. * gtk/gtk.override (_wrap_gtk_ctree__get_selection): GtkCTreeNode is not a boxed type. (_wrap_gtk_ctree_base_nodes): same. (_wrap_gtk_ctree_insert_node): same. (_wrap_gtk_ctree_find_by_row_data): same. (_wrap_gtk_ctree_find_all_by_row_data): same. (_wrap_gtk_ctree_node_get_text): same. (_wrap_gtk_ctree_node_get_pixmap): same. (_wrap_gtk_ctree_node_get_pixtext): same. (_wrap_gtk_ctree_get_node_info): same. (_wrap_gtk_ctree_node_set_row_data): same. (_wrap_gtk_ctree_node_get_row_data): same here. (_wrap_gtk_ctree_getattr): same here. * codegen/codegen.py (write_source): register pointer types as pointers. * pango.override (_wrap_pango_font_description_new): ignore some private (well, pango module API) functions. * gtk/gtk-types.defs (CTreeNode): make this a pointer type. * codegen/codegen.py (write_pointer_method): new method to write methods for GPointer types. (write_pointer_constructor): new function for writing constructor for GPointer types. (write_pointer_getsets): new function for writing getters for pointer objects (this should be merged with the GObject and GBoxed versions ...). (write_pointer): add new function, which calls all the GPointer related functions. (write_source): write pointer types. * gobjectmodule.c (initgobject): actually ready the GPointer type. * gtk/gtk-types.defs (CTreeNode): get rid of fields here. They will be covered by the custom getattr() function, so no need to duplicate. * codegen/codegen.py (write_boxed_getsets): convert to use getsets for boxed objects. (write_boxed): use write_boxed_getsets() to write the getsets, while allowing boxed objects to specify a getattr() function. 2002-02-04 James Henstridge <james@daa.com.au> * gobjectmodule.c (initgobject): add GPointer to the module dict. (pygobject_api_functions): and to the API vtable. * pygobject.h (pyg_constant_strip_prefix): and add it to the public header. * pygobject-private.h (pyg_pointer_new): add stuff to private header ... * pygboxed.c (PyGPointer): add code to handle base GPointer type. * codegen/defsparser.py (DefsParser.__init__): add self.pointers attribute. (DefsParser.define_pointer): handle (define-pointer ...). (DefsParser.write_defs): handle pointer types. * codegen/definitions.py (PointerDef): new definition type for G_TYPE_POINTER subclasses.
Diffstat (limited to 'gobject/gobjectmodule.c')
-rw-r--r--gobject/gobjectmodule.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c
index 7ed3164..5b62189 100644
--- a/gobject/gobjectmodule.c
+++ b/gobject/gobjectmodule.c
@@ -1320,6 +1320,10 @@ struct _PyGObject_Functions pygobject_api_functions = {
pyg_register_boxed,
pyg_boxed_new,
+ &PyGPointer_Type,
+ pyg_register_pointer,
+ pyg_pointer_new,
+
pyg_enum_add_constants,
pyg_flags_add_constants,
@@ -1382,6 +1386,14 @@ initgobject(void)
o=pyg_type_wrapper_new(G_TYPE_BOXED));
Py_DECREF(o);
+ PyGPointer_Type.ob_type = &PyType_Type;
+ if (PyType_Ready(&PyGPointer_Type))
+ return;
+ PyDict_SetItemString(d, "GPointer", (PyObject *)&PyGPointer_Type);
+ PyDict_SetItemString(PyGPointer_Type.tp_dict, "__gtype__",
+ o=pyg_type_wrapper_new(G_TYPE_POINTER));
+ Py_DECREF(o);
+
tuple = Py_BuildValue ("(iii)", glib_major_version, glib_minor_version,
glib_micro_version);
PyDict_SetItemString(d, "glib_version", tuple);