From cd3bf3502cae8c702a20b90c8e58028681bc9900 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 9 Jun 2009 10:27:49 +0200 Subject: [PATCH] For signals without parameters use the generic SignalHandler instead of defining a lot of empty types --- elementgen/elementgen.cs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/elementgen/elementgen.cs b/elementgen/elementgen.cs index c2e207b..31d0650 100644 --- a/elementgen/elementgen.cs +++ b/elementgen/elementgen.cs @@ -334,22 +334,26 @@ public class ElementGen { foreach (SignalInfo si in ei.signals) { string managed_name = (si.managed_name != null) ? si.managed_name : PropToCamelCase (si.name); - writer.WriteLine ("\t\tpublic delegate void " + managed_name + "Handler (object o, " + managed_name + "Args args);\n"); + if (si.parameters.Count > 0) { + writer.WriteLine ("\t\tpublic delegate void " + managed_name + "Handler (object o, " + managed_name + "Args args);\n"); - writer.WriteLine ("\t\tpublic class " + managed_name + "Args : GLib.SignalArgs {"); - for (int i = 0; i < si.parameters.Count; i++) { - SignalParameter param = (SignalParameter) si.parameters[i]; - string managed_type = CTypeToManagedType (param.type, api_doc); - writer.WriteLine ("\t\t\tpublic " + managed_type + " " + param.name + " {"); - writer.WriteLine ("\t\t\t\tget {"); - writer.WriteLine ("\t\t\t\t\treturn (" + managed_type + ") Args[" + i + "];"); - writer.WriteLine ("\t\t\t\t}"); - writer.WriteLine ("\t\t\t}\n"); + writer.WriteLine ("\t\tpublic class " + managed_name + "Args : GLib.SignalArgs {"); + for (int i = 0; i < si.parameters.Count; i++) { + SignalParameter param = (SignalParameter) si.parameters[i]; + string managed_type = CTypeToManagedType (param.type, api_doc); + writer.WriteLine ("\t\t\tpublic " + managed_type + " " + param.name + " {"); + writer.WriteLine ("\t\t\t\tget {"); + writer.WriteLine ("\t\t\t\t\treturn (" + managed_type + ") Args[" + i + "];"); + writer.WriteLine ("\t\t\t\t}"); + writer.WriteLine ("\t\t\t}\n"); + } + writer.WriteLine ("\t\t}\n"); + writer.WriteLine ("\t\tpublic event " + managed_name + "Handler " + managed_name + " {"); + } else { + writer.WriteLine ("\t\tpublic event SignalHandler " + managed_name + " {"); } - writer.WriteLine ("\t\t}\n"); - writer.WriteLine ("\t\tpublic event " + managed_name + "Handler " + managed_name + " {"); writer.WriteLine ("\t\t\tadd {"); writer.WriteLine ("\t\t\t\tDynamicSignal.Connect (this, \"" + si.name + "\", value);"); writer.WriteLine ("\t\t\t}\n"); -- 2.7.4