From 1c7dfb776c52889193be0570b1d5d36f97d93b56 Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Mon, 6 Oct 2003 16:15:05 +0000 Subject: [PATCH] 2003-10-06 Mike Kestner * generator/Signal.cs (Generate): pass gen_info to sighdnlr.Generate. use gen_info.AssemblyName in Args instantiation. * generator/SignalHandler.cs (Generate): use gen_info to open stream. refactor out some local vars. svn path=/trunk/gtk-sharp/; revision=18678 --- ChangeLog | 7 ++++++ generator/Signal.cs | 4 +-- generator/SignalHandler.cs | 50 +++++++++++++++++--------------------- 3 files changed, 31 insertions(+), 30 deletions(-) diff --git a/ChangeLog b/ChangeLog index a93b7b8ea..dcbd52ed4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-10-06 Mike Kestner + + * generator/Signal.cs (Generate): pass gen_info to sighdnlr.Generate. + use gen_info.AssemblyName in Args instantiation. + * generator/SignalHandler.cs (Generate): use gen_info to open stream. + refactor out some local vars. + 2003-10-04 Mike Kestner * generator/CallbackGen.cs : remove CloseWriter call. diff --git a/generator/Signal.cs b/generator/Signal.cs index 0d89925a7..bb5e47714 100644 --- a/generator/Signal.cs +++ b/generator/Signal.cs @@ -132,7 +132,7 @@ namespace GtkSharp.Generation { else ns = implementor.NS; - sig_handler.Generate (ns); + sig_handler.Generate (ns, gen_info); string qual_marsh = ns + "Sharp." + sig_handler.Name; string argsname; @@ -148,7 +148,7 @@ namespace GtkSharp.Generation { sw.Write("\t\t\t\t\tSignals[" + cname + "] = new " + qual_marsh); sw.Write("(this, Handle, " + cname + ", value, System.Type.GetType(\"" + argsname); if (argsname != "System.EventArgs") - sw.Write("," + container_type.NS.ToLower() + "-sharp"); + sw.Write("," + gen_info.AssemblyName); sw.WriteLine("\"));\n\t\t\t\telse"); sw.WriteLine("\t\t\t\t\t((GtkSharp.SignalCallback) Signals [{0}]).AddDelegate (value);", cname); sw.WriteLine("\t\t\t\tEventList.AddHandler(" + cname + ", value);"); diff --git a/generator/SignalHandler.cs b/generator/SignalHandler.cs index 9b75a73e0..eba65239f 100644 --- a/generator/SignalHandler.cs +++ b/generator/SignalHandler.cs @@ -85,35 +85,30 @@ namespace GtkSharp.Generation { } } + public string CallbackName { + get { + return BaseName + "Callback"; + } + } + + public string DelegateName { + get { + return BaseName + "Delegate"; + } + } + public string Name { get { return BaseName + "Signal"; } } - public void Generate (string implementor_ns) + public void Generate (string implementor_ns, GenerationInfo gen_info) { SymbolTable table = SymbolTable.Table; - string sname = Name; - string dname = BaseName + "Delegate"; - string cbname = BaseName + "Callback"; - - char sep = Path.DirectorySeparatorChar; - String dir = ".." + sep + implementor_ns.ToLower() + sep + "generated"; - - if (!Directory.Exists(dir)) { - Directory.CreateDirectory(dir); - } - - String filename = dir + sep + implementor_ns + "Sharp." + sname + ".cs"; - - FileStream stream = new FileStream (filename, FileMode.Create, FileAccess.Write); - StreamWriter sw = new StreamWriter (stream); + StreamWriter sw = gen_info.OpenStream (implementor_ns + "Sharp." + Name); - sw.WriteLine ("// Generated File. Do not modify."); - sw.WriteLine ("// 2001-2002 Mike Kestner"); - sw.WriteLine (); sw.WriteLine("namespace " + implementor_ns + "Sharp {"); sw.WriteLine(); sw.WriteLine("\tusing System;"); @@ -121,22 +116,22 @@ namespace GtkSharp.Generation { sw.WriteLine("\tusing GtkSharp;"); sw.WriteLine(); sw.Write("\tinternal delegate " + p_ret + " "); - sw.WriteLine(dname + "(" + ISig + ", int key);"); + sw.WriteLine(DelegateName + "(" + ISig + ", int key);"); sw.WriteLine(); - sw.WriteLine("\tinternal class " + sname + " : SignalCallback {"); + sw.WriteLine("\tinternal class " + Name + " : SignalCallback {"); sw.WriteLine(); - sw.WriteLine("\t\tprivate static " + dname + " _Delegate;"); + sw.WriteLine("\t\tprivate static " + DelegateName + " _Delegate;"); sw.WriteLine(); sw.WriteLine("\t\tprivate IntPtr _raw;"); sw.WriteLine("\t\tprivate uint _HandlerID;"); sw.WriteLine(); sw.Write("\t\tprivate static " + p_ret + " "); - sw.WriteLine(cbname + "(" + ISig + ", int key)"); + sw.WriteLine(CallbackName + "(" + ISig + ", int key)"); sw.WriteLine("\t\t{"); sw.WriteLine("\t\t\tif (!_Instances.Contains(key))"); sw.WriteLine("\t\t\t\tthrow new Exception(\"Unexpected signal key \" + key);"); sw.WriteLine(); - sw.WriteLine("\t\t\t" + sname + " inst = (" + sname + ") _Instances[key];"); + sw.WriteLine("\t\t\t" + Name + " inst = (" + Name + ") _Instances[key];"); if ((s_ret == "void") && (parms.Count == 1)) { sw.WriteLine("\t\t\tEventHandler h = (EventHandler) inst._handler;"); sw.WriteLine("\t\t\th (inst._obj, new EventArgs ());"); @@ -148,7 +143,6 @@ namespace GtkSharp.Generation { sw.WriteLine("\t\t\targs.Args = new object[" + (parms.Count-1) + "];"); } for (int idx=1; idx < parms.Count; idx++) { - // sw.WriteLine("\t\t\tConsole.WriteLine (\"" + sname + " arg{0}: \" + arg{0});", idx); string ctype = parms[idx].CType; ClassBase wrapper = table.GetClassGen (ctype); if ((wrapper != null && !(wrapper is StructBase)) || table.IsManuallyWrapped (ctype)) { @@ -186,14 +180,14 @@ namespace GtkSharp.Generation { } sw.WriteLine("\t\t[DllImport(\"libgobject-2.0-0.dll\")]"); sw.Write("\t\tstatic extern uint g_signal_connect_data("); - sw.Write("IntPtr obj, String name, " + dname + " cb, int key, IntPtr p,"); + sw.Write("IntPtr obj, String name, " + DelegateName + " cb, int key, IntPtr p,"); sw.WriteLine(" int flags);"); sw.WriteLine(); - sw.Write("\t\tpublic " + sname + "(GLib.Object obj, IntPtr raw, "); + sw.Write("\t\tpublic " + Name + "(GLib.Object obj, IntPtr raw, "); sw.WriteLine("String name, Delegate eh, Type argstype) : base(obj, eh, argstype)"); sw.WriteLine("\t\t{"); sw.WriteLine("\t\t\tif (_Delegate == null) {"); - sw.WriteLine("\t\t\t\t_Delegate = new " + dname + "(" + cbname + ");"); + sw.WriteLine("\t\t\t\t_Delegate = new " + DelegateName + "(" + CallbackName + ");"); sw.WriteLine("\t\t\t}"); sw.WriteLine("\t\t\t_raw = raw;"); sw.Write("\t\t\t_HandlerID = g_signal_connect_data(raw, name, ");