diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2009-06-09 10:27:49 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2009-06-09 10:27:49 +0200 |
commit | cd3bf3502cae8c702a20b90c8e58028681bc9900 (patch) | |
tree | abca862ab5de10d7fb4cf2691d3ab389f1f760f9 | |
parent | 0d98c86ad6bb0673815c396d4d24d134e4d35e02 (diff) |
For signals without parameters use the generic SignalHandler instead of defining a lot of empty types
-rw-r--r-- | elementgen/elementgen.cs | 28 |
1 files 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"); |