summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Henstridge <james@daa.com.au>2001-06-24 02:47:10 +0000
committerJames Henstridge <jamesh@src.gnome.org>2001-06-24 02:47:10 +0000
commit67c148e66f0530464b3c3918c47007cae54c7689 (patch)
tree9e4e7ab454b62a80a3a6d3eb413365dda3fde649
parent8689852f51ae16053d5f6cbd7b001cbec55fc571 (diff)
downloadpygtk-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--ChangeLog7
-rw-r--r--codegen/argtypes.py1
-rw-r--r--codegen/codegen.py32
-rw-r--r--codegen/defsparser.py6
-rw-r--r--gtk/gtk-types.c68
-rw-r--r--gtk/gtk.defs13
-rw-r--r--gtk/gtk.override15
7 files changed, 38 insertions, 104 deletions
diff --git a/ChangeLog b/ChangeLog
index 519a5468..2756bce3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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