460b3e5623
* generator/AliasGen.cs : stub new Generate overload. * generator/BoxedGen.cs : implement new Generate overload. * generator/CallbackGen.cs (Generate):implement new overload. * generator/ClassBase.cs : implement new Generate overload and pass around the gen_info. * generator/ClassGen.cs : implement new Generate overload. * generator/Ctor.cs (Generate): s/sw/gen_info. * generator/EnumGen.cs : implement new Generate overload. * generator/GenBase.cs : expose NSElem, add gen_info param to AppendCustom. kill CreateWriter. (GenWrapper): add gen_info param and use it to open stream. * generator/GenerationInfo.cs : new class to pass around generation related information and perform tasks like opening streams. * generator/IGeneratable.cs : add Generate(gen_info) overload. * generator/InterfaceGen.cs : implement new Generate overload. * generator/ManualGen.cs : stub new Generate overload. * generator/Method.cs (Generate): accept gen_info. kill GenerateComments. * generator/ObjectGen.cs : implement new Generate overload. * generator/OpaqueGen.cs : implement new Generate overload. * generator/Parameters.cs (Initialize): s/sw/gen_info. * generator/Property.cs (Generate): accept gen_info. * generator/Signal.cs (Generate): accept gen_info. * generator/SimpleGen.cs : stub new Generate overload. * generator/StructBase.cs : s/sw/gen_info * generator/StructGen.cs : implement new Generate overload. svn path=/trunk/gtk-sharp/; revision=18615
57 lines
1.3 KiB
C#
57 lines
1.3 KiB
C#
// GtkSharp.Generation.ClassGen.cs - The Class Generatable.
|
|
//
|
|
// Author: Mike Kestner <mkestner@speakeasy.net>
|
|
//
|
|
// (c) 2001-2003 Mike Kestner
|
|
|
|
namespace GtkSharp.Generation {
|
|
|
|
using System;
|
|
using System.Collections;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.Xml;
|
|
|
|
public class ClassGen : ClassBase, IGeneratable {
|
|
|
|
private ArrayList strings = new ArrayList();
|
|
private static Hashtable namespaces = new Hashtable ();
|
|
|
|
public ClassGen (XmlElement ns, XmlElement elem) : base (ns, elem) {}
|
|
|
|
public void Generate ()
|
|
{
|
|
GenerationInfo gen_info = new GenerationInfo (NSElem);
|
|
Generate (gen_info);
|
|
}
|
|
|
|
public void Generate (GenerationInfo gen_info)
|
|
{
|
|
StreamWriter sw = gen_info.Writer = gen_info.OpenStream(Name);
|
|
|
|
sw.WriteLine ("namespace " + NS + " {");
|
|
sw.WriteLine ();
|
|
sw.WriteLine ("\tusing System;");
|
|
sw.WriteLine ("\tusing System.Runtime.InteropServices;");
|
|
sw.WriteLine ();
|
|
|
|
sw.WriteLine ("#region Autogenerated code");
|
|
sw.Write ("\tpublic class " + Name);
|
|
sw.WriteLine (" {");
|
|
sw.WriteLine ();
|
|
|
|
GenProperties (gen_info);
|
|
GenMethods (gen_info, null, null);
|
|
|
|
sw.WriteLine ("#endregion");
|
|
AppendCustom(sw, gen_info.CustomDir);
|
|
|
|
sw.WriteLine ("\t}");
|
|
sw.WriteLine ("}");
|
|
|
|
sw.Close ();
|
|
gen_info.Writer = null;
|
|
}
|
|
}
|
|
}
|
|
|