// GtkSharp.Generation.GenerationInfo.cs - Generation information class. // // Author: Mike Kestner // // (c) 2003 Ximian Inc. namespace GtkSharp.Generation { using System; using System.Collections; using System.IO; using System.Xml; public class GenerationInfo { string dir; string custom_dir; string assembly_name; StreamWriter sw; public GenerationInfo (XmlElement ns) { string ns_name = ns.GetAttribute ("name"); char sep = Path.DirectorySeparatorChar; dir = ".." + sep + ns_name.ToLower () + sep + "generated"; custom_dir = ".." + sep + ns_name.ToLower (); assembly_name = ns_name.ToLower () + "-sharp"; } public GenerationInfo (string dir, string assembly_name) : this (dir, dir, assembly_name) {} public GenerationInfo (string dir, string custom_dir, string assembly_name) { this.dir = dir; this.custom_dir = custom_dir; this.assembly_name = assembly_name; } public string AssemblyName { get { return assembly_name; } } public string CustomDir { get { return custom_dir; } } public string Dir { get { return dir; } } public StreamWriter Writer { get { return sw; } set { sw = value; } } public StreamWriter OpenStream (string name) { char sep = Path.DirectorySeparatorChar; if (!Directory.Exists(dir)) Directory.CreateDirectory(dir); string filename = dir + sep + name + ".cs"; FileStream stream = new FileStream (filename, FileMode.Create, FileAccess.Write); StreamWriter sw = new StreamWriter (stream); sw.WriteLine ("// This file was generated by the Gtk# code generator."); sw.WriteLine ("// Any changes made will be lost if regenerated."); sw.WriteLine (); return sw; } } }