diff options
| author | James Henstridge <james@daa.com.au> | 2001-06-24 02:47:10 +0000 |
|---|---|---|
| committer | James Henstridge <jamesh@src.gnome.org> | 2001-06-24 02:47:10 +0000 |
| commit | 67c148e66f0530464b3c3918c47007cae54c7689 (patch) | |
| tree | 9e4e7ab454b62a80a3a6d3eb413365dda3fde649 | |
| parent | 8689852f51ae16053d5f6cbd7b001cbec55fc571 (diff) | |
| download | pygtk-67c148e66f0530464b3c3918c47007cae54c7689.tar.gz | |
remove all traces of GtkAccelGroup from this file -- GtkAccelGroup is now
2001-06-24 James Henstridge <james@daa.com.au>
* gtk/gtk-types.c: remove all traces of GtkAccelGroup from this
file -- GtkAccelGroup is now generated code.
* gtk/gtk.defs (AccelGroup): add boxed type here.
| -rw-r--r-- | ChangeLog | 7 | ||||
| -rw-r--r-- | codegen/argtypes.py | 1 | ||||
| -rw-r--r-- | codegen/codegen.py | 32 | ||||
| -rw-r--r-- | codegen/defsparser.py | 6 | ||||
| -rw-r--r-- | gtk/gtk-types.c | 68 | ||||
| -rw-r--r-- | gtk/gtk.defs | 13 | ||||
| -rw-r--r-- | gtk/gtk.override | 15 |
7 files changed, 38 insertions, 104 deletions
@@ -1,3 +1,10 @@ +2001-06-24 James Henstridge <james@daa.com.au> + + * gtk/gtk-types.c: remove all traces of GtkAccelGroup from this + file -- GtkAccelGroup is now generated code. + + * gtk/gtk.defs (AccelGroup): add boxed type here. + 2001-06-23 James Henstridge <james@daa.com.au> * codegen/codegen.py: generate wrappers for boxed types as well. diff --git a/codegen/argtypes.py b/codegen/argtypes.py index 4af40556..68315f7e 100644 --- a/codegen/argtypes.py +++ b/codegen/argtypes.py @@ -581,7 +581,6 @@ matcher.register('FILE*', arg) # enums, flags, objects -matcher.register_boxed('GtkAccelGroup') matcher.register_custom_boxed('GdkFont', 'PyGdkFont_Type', 'PyGdkFont_Get', 'PyGdkFont_New') matcher.register_custom_boxed('GdkColor', 'PyGdkColor_Type', diff --git a/codegen/codegen.py b/codegen/codegen.py index 99a325d4..94e65d90 100644 --- a/codegen/codegen.py +++ b/codegen/codegen.py @@ -136,19 +136,20 @@ boxedmethtmpl = 'static PyObject *\n' + \ '%(extracode)s\n' + \ '%(handleret)s\n' + \ '}\n\n' -boxedmethcalltmpl = '%(cname)s(pyg_boxed_get(self, %(typename))%(arglist)s)' +boxedmethcalltmpl = '%(cname)s(pyg_boxed_get(self, %(typename)s)%(arglist)s)' boxedconsttmpl = 'static PyObject *\n' + \ - '_wrap_%(cname)s(PyObject *self, PyObject *args, PyObject *kwargs)\n' + \ + '_wrap_%(cname)s(PyGBoxed *self, PyObject *args, PyObject *kwargs)\n' + \ '{\n' + \ '%(varlist)s' + \ ' if (!PyArg_ParseTupleAndKeywords(args, kwargs, "%(typecodes)s:%(typename)s.__init__"%(parselist)s))\n' + \ ' return NULL;\n' + \ '%(extracode)s\n' + \ ' self->gtype = %(typecode)s;\n' + \ - ' self->boxed = (GObject *)%(cname)s(%(arglist)s);\n' + \ - ' if (!self->obj) {\n' + \ - ' PyErr_SetString(PyExc_RuntimeError, "could not create %(class)s object");\n' + \ + ' self->free_on_dealloc = FALSE;\n' + \ + ' self->boxed = %(cname)s(%(arglist)s);\n' + \ + ' if (!self->boxed) {\n' + \ + ' PyErr_SetString(PyExc_RuntimeError, "could not create %(typename)s object");\n' + \ ' return NULL;\n' + \ ' }\n' + \ ' self->free_on_dealloc = TRUE;\n' + \ @@ -471,7 +472,6 @@ def write_boxed_method(objname, methobj, fp=sys.stdout): 'cname': methobj.c_name, 'varlist': varlist, 'typename': objname, - 'cast': argtypes._to_upper_str(objname)[1:] } # create the keyword argument name list ... @@ -512,7 +512,6 @@ def write_boxed_constructor(objname, funcobj, fp=sys.stdout): 'varlist': varlist, 'typename': objname, 'typecode': argtypes._enum_name(objname), - 'cast': argtypes._to_upper_str(objname)[1:], } # create the keyword argument name list ... @@ -560,7 +559,7 @@ def write_boxed_getattr(parser, boxedobj, fp=sys.stdout): return funcname def write_boxed(parser, boxedobj, overrides, fp=sys.stdout): - fp.write('\n/* ----------- ' + objobj.c_name + ' ----------- */\n\n') + fp.write('\n/* ----------- ' + boxedobj.c_name + ' ----------- */\n\n') constructor = parser.find_constructor(boxedobj, overrides) methods = [] if constructor: @@ -581,6 +580,7 @@ def write_boxed(parser, boxedobj, overrides, fp=sys.stdout): except: sys.stderr.write('Could not write constructor for ' + boxedobj.c_name + '\n') + #traceback.print_exc() for meth in parser.find_methods(boxedobj): if overrides.is_ignored(meth.c_name): continue @@ -609,12 +609,12 @@ def write_boxed(parser, boxedobj, overrides, fp=sys.stdout): fp.write('};\n\n') # write the type template - dict = { 'class': boxedobj.c_name } - if objobj.fields: + dict = { 'typename': boxedobj.c_name } + if boxedobj.fields: dict['getattr'] = write_boxed_getattr(parser, boxedobj, fp) else: dict['getattr'] = '0' - dict['methods'] = 'METHOD_CHAIN(_Py' + dict['class'] + '_methods)' + dict['methods'] = 'METHOD_CHAIN(_Py' + dict['typename'] + '_methods)' fp.write(boxedtmpl % dict) @@ -653,15 +653,15 @@ def write_source(parser, overrides, prefix, fp=sys.stdout): fp.write(overrides.get_headers()) fp.write('\n\n') fp.write('/* ---------- forward type declarations ---------- */\n') - for obj in parser.boxed: + for obj in parser.boxes: fp.write('PyExtensionClass Py' + obj.c_name + '_Type;\n') for obj in parser.objects: fp.write('PyExtensionClass Py' + obj.c_name + '_Type;\n') for interface in parser.interfaces: fp.write('PyExtensionClass Py' + interface.c_name + '_Type;\n') fp.write('\n') - for boxed in parser.boxed: - write_class(parser, boxed, overrides, fp) + for boxed in parser.boxes: + write_boxed(parser, boxed, overrides, fp) fp.write('\n') for obj in parser.objects: write_class(parser, obj, overrides, fp) @@ -677,7 +677,7 @@ def write_source(parser, overrides, prefix, fp=sys.stdout): fp.write(' ExtensionClassImported;\n') fp.write(overrides.get_init() + '\n') - for boxed in parser.boxed: + for boxed in parser.boxes: typecode = argtypes._enum_name(boxed.c_name) fp.write(' pyg_register_boxed(d, "' + boxed.c_name + '", ' + typecode + ', &Py' + boxed.c_name + '_Type);\n') @@ -718,7 +718,7 @@ def write_source(parser, overrides, prefix, fp=sys.stdout): fp.write('}\n') def register_types(parser): - for boxed in parser.boxed: + for boxed in parser.boxes: argtypes.matcher.register_boxed(boxed.c_name) for obj in parser.objects: if obj.parent != (None, None): diff --git a/codegen/defsparser.py b/codegen/defsparser.py index 6f5895c2..e158449a 100644 --- a/codegen/defsparser.py +++ b/codegen/defsparser.py @@ -21,7 +21,7 @@ class DefsParser(IncludeParser): self.objects = [] self.interfaces = [] self.enums = [] # enums and flags - self.boxed = [] # boxed types + self.boxes = [] # boxed types self.functions = [] # functions and methods self.c_name = {} # hash of c names of functions self.methods = {} # hash of methods of particular objects @@ -44,7 +44,7 @@ class DefsParser(IncludeParser): self.c_name[fdef.c_name] = fdef def boxed(self, *args): bdef = apply(BoxedDef, args) - self.boxed.append(bdef) + self.boxes.append(bdef) self.c_name[bdef.c_name] = bdef def function(self, *args): fdef = apply(FunctionDef, args) @@ -68,7 +68,7 @@ class DefsParser(IncludeParser): obj.write_defs(fp) for enum in self.enums: enum.write_defs(fp) - for boxed in self.boxed: + for boxed in self.boxes: boxed.write_defs(fp) for func in self.functions: func.write_defs(fp) diff --git a/gtk/gtk-types.c b/gtk/gtk-types.c index a9bafd2a..29f4283e 100644 --- a/gtk/gtk-types.c +++ b/gtk/gtk-types.c @@ -227,72 +227,6 @@ PyGtkTreeIter_New(GtkTreeIter *iter) return (PyObject *)self; } -static PyObject * -pygtk_accel_group_new(PyGBoxed *self, PyObject *args) -{ - if (!PyArg_ParseTuple(args, ":GtkAccelGroup.lock")) - return NULL; - - self->boxed = gtk_accel_group_new(); - self->gtype = GTK_TYPE_ACCEL_GROUP; - self->free_on_dealloc = TRUE; - Py_INCREF(Py_None); - return Py_None; -} - -static PyObject * -pygtk_accel_group_lock(PyGBoxed *self, PyObject *args) -{ - if (!PyArg_ParseTuple(args, ":GtkAccelGroup.lock")) - return NULL; - gtk_accel_group_lock(pyg_boxed_get(self, GtkAccelGroup)); - Py_INCREF(Py_None); - return Py_None; -} - -static PyObject * -pygtk_accel_group_unlock(PyGBoxed *self, PyObject *args) -{ - if (!PyArg_ParseTuple(args, ":GtkAccelGroup.unlock")) - return NULL; - gtk_accel_group_unlock(pyg_boxed_get(self, GtkAccelGroup)); - Py_INCREF(Py_None); - return Py_None; -} - -static PyMethodDef pygtk_accel_group_methods[] = { - { "__init__", (PyCFunction)pygtk_accel_group_new, METH_VARARGS }, - { "lock", (PyCFunction)pygtk_accel_group_lock, METH_VARARGS }, - { "unlock", (PyCFunction)pygtk_accel_group_unlock, METH_VARARGS }, - { NULL, NULL, 0 } -}; - -PyExtensionClass PyGtkAccelGroup_Type = { - PyObject_HEAD_INIT(NULL) - 0, - "GtkAccelGroup", - sizeof(PyGBoxed), - 0, - (destructor)0, - (printfunc)0, - (getattrfunc)0, - (setattrfunc)0, - (cmpfunc)0, - (reprfunc)0, - 0, - 0, - 0, - (hashfunc)0, - (ternaryfunc)0, - (reprfunc)0, - (getattrofunc)0, - (setattrofunc)0, - 0L,0L, - NULL, - METHOD_CHAIN(pygtk_accel_group_methods), - 0, -}; - #if 0 typedef struct { PyObject_HEAD @@ -3741,8 +3675,6 @@ _pygtk_register_boxed_types(PyObject *moddict) pyg_boxed_register(tp, Py##x##_from_value, Py##x##_to_value) ExtensionClassImported; - pyg_register_boxed(moddict, "GtkAccelGroup", GTK_TYPE_ACCEL_GROUP, - &PyGtkAccelGroup_Type); #if 0 register_tp(GtkStyle); PyGtkStyleHelper_Type.ob_type = &PyType_Type; diff --git a/gtk/gtk.defs b/gtk/gtk.defs index 78edd020..5035787e 100644 --- a/gtk/gtk.defs +++ b/gtk/gtk.defs @@ -757,6 +757,16 @@ ) +;; Boxed types ... + +(boxed AccelGroup + (in-module Gtk) + (c-name GtkAccelGroup) + (copy-func gtk_accel_group_ref) + (release-func gtk_accel_group_unref) +) + + ;; Enumerations and flags ... (flags AccelFlags @@ -1608,7 +1618,8 @@ (return-type guint) ) -(function GtkAccelGroup +(function gtk_accel_group_new + (is-constructor-of GtkAccelGroup) (c-name gtk_accel_group_new) (return-type GtkAccelGroup*) ) diff --git a/gtk/gtk.override b/gtk/gtk.override index bf35c541..821a48f2 100644 --- a/gtk/gtk.override +++ b/gtk/gtk.override @@ -678,19 +678,6 @@ _wrap_gtk_window_set_geometry_hints(PyGObject *self, PyObject *args, return Py_None; } %% -override gtk_accel_group_new -static PyObject * -_wrap_gtk_accel_group_new(PyGObject *self, PyObject *args) -{ - GtkAccelGroup *accel_group; - - if (!PyArg_ParseTuple(args, ":GtkAccelGroup.__init__")) - return NULL; - - accel_group = gtk_accel_group_new(); - return pyg_boxed_new(GTK_TYPE_ACCEL_GROUP, accel_group, FALSE, TRUE); -} -%% override gtk_box_query_child_packing kwargs static PyObject * _wrap_gtk_box_query_child_packing(PyGObject *self, PyObject *args, @@ -2122,8 +2109,6 @@ ignore gtk_set_locale gtk_accel_group_ref gtk_accel_group_unref - gtk_accel_group_lock - gtk_accel_group_unlock gtk_accel_groups_activate gtk_accel_group_activate gtk_accel_group_attach |
