summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2009-06-09 10:27:49 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-06-09 10:27:49 +0200
commitcd3bf3502cae8c702a20b90c8e58028681bc9900 (patch)
treeabca862ab5de10d7fb4cf2691d3ab389f1f760f9
parent0d98c86ad6bb0673815c396d4d24d134e4d35e02 (diff)
For signals without parameters use the generic SignalHandler instead of defining a lot of empty types
-rw-r--r--elementgen/elementgen.cs28
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");