diff --git a/ChangeLog b/ChangeLog index 34cad2a8b..078c5be95 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2002-07-09 Mike Kestner + + * generator/ClassBase.cs : handle overloaded method hash collision + * generator/SignalHandler.cs : generate *Handler delegates. stub *Args + * parser/Gtk.metadata : add *Defaults method renaming + 2002-07-08 Mike Kestner * glue/Makefile.in : s/BASE_SOURCES/BASESOURCES diff --git a/generator/ClassBase.cs b/generator/ClassBase.cs index 42fdbd344..147d6708e 100644 --- a/generator/ClassBase.cs +++ b/generator/ClassBase.cs @@ -44,7 +44,10 @@ namespace GtkSharp.Generation { switch (node.Name) { case "method": - methods.Add (member.GetAttribute ("name"), new Method (LibraryName, member, this)); + string name = member.GetAttribute("name"); + while (methods.ContainsKey(name)) + name += "mangled"; + methods.Add (name, new Method (LibraryName, member, this)); break; case "property": diff --git a/generator/SignalHandler.cs b/generator/SignalHandler.cs index 60f9faa44..26e24b1ab 100644 --- a/generator/SignalHandler.cs +++ b/generator/SignalHandler.cs @@ -99,6 +99,8 @@ namespace GtkSharp.Generation { String sname = name + "Signal"; String dname = name + "Delegate"; String cbname = name + "Callback"; + String hndlrname = name + "Handler"; + String argsname = name + "Args"; handlers[name] = sname; @@ -122,6 +124,11 @@ namespace GtkSharp.Generation { sw.Write("\tpublic delegate " + p_ret + " "); sw.WriteLine(dname + "(" + pinv + ", int key);"); sw.WriteLine(); + sw.WriteLine("\tpublic delegate void " + hndlrname + "(object o, " + argsname + " args);"); + sw.WriteLine(); + sw.WriteLine("\tpublic class " + argsname + " : EventArgs {"); + sw.WriteLine("\t}"); + sw.WriteLine(); sw.WriteLine("\tpublic class " + sname + " : SignalCallback {"); sw.WriteLine(); sw.WriteLine("\t\tprivate static " + dname + " _Delegate;"); diff --git a/generator/gtkapi.xml b/generator/gtkapi.xml index d2a5140c7..b01e2fa0a 100644 --- a/generator/gtkapi.xml +++ b/generator/gtkapi.xml @@ -9381,7 +9381,7 @@ - + @@ -9403,7 +9403,7 @@ - + @@ -13617,7 +13617,7 @@ - + diff --git a/parser/Gtk.metadata b/parser/Gtk.metadata index a5abb09c6..30a5d4ec9 100644 --- a/parser/Gtk.metadata +++ b/parser/Gtk.metadata @@ -1079,4 +1079,37 @@ + + + PackStartDefaults + + + + name + PackStart + + + + + + PackEndDefaults + + + + name + PackEnd + + + + + + AttachDefaults + + + + name + Attach + + + diff --git a/sources/Gtk.metadata b/sources/Gtk.metadata index a5abb09c6..30a5d4ec9 100644 --- a/sources/Gtk.metadata +++ b/sources/Gtk.metadata @@ -1079,4 +1079,37 @@ + + + PackStartDefaults + + + + name + PackStart + + + + + + PackEndDefaults + + + + name + PackEnd + + + + + + AttachDefaults + + + + name + Attach + + +