string GetInterfaceImplExtra() { if (Elem.HasAttribute("iequatable") && Elem.GetAttribute("iequatable") == "1") { return(" : IEquatable<" + Name + ">"); } return(string.Empty); }
public override void Generate(GenerationInfo gen_info) { StreamWriter sw = gen_info.OpenStream(Name, NS); sw.WriteLine("namespace " + NS + " {"); sw.WriteLine(); sw.WriteLine("\tusing System;"); sw.WriteLine("\tusing System.Runtime.InteropServices;"); sw.WriteLine(); sw.WriteLine("#region Autogenerated code"); if (Elem.GetAttribute("type") == "flags") { sw.WriteLine("\t[Flags]"); } if (Elem.HasAttribute("gtype")) { sw.WriteLine("\t[GLib.GType (typeof (" + NS + "." + Name + "GType))]"); } string access = IsInternal ? "internal" : "public"; sw.WriteLine("\t" + access + " enum " + Name + enum_type + " {"); sw.WriteLine(); foreach (string member in members) { sw.WriteLine(member); } sw.WriteLine("\t}"); if (Elem.HasAttribute("gtype")) { sw.WriteLine(); sw.WriteLine("\tinternal class " + Name + "GType {"); var funcname = Elem.GetAttribute("gtype"); sw.WriteLine("\t\tdelegate IntPtr d_" + funcname + "();"); sw.WriteLine("\t\tstatic d_" + funcname + " " + funcname + " = FuncLoader.LoadFunction<d_" + funcname + ">(FuncLoader.GetProcAddress(GLibrary.Load(\"" + LibraryName + "\"), \"" + funcname + "\"));"); sw.WriteLine(); sw.WriteLine("\t\tpublic static GLib.GType GType {"); sw.WriteLine("\t\t\tget {"); sw.WriteLine("\t\t\t\treturn new GLib.GType (" + Elem.GetAttribute("gtype") + " ());"); sw.WriteLine("\t\t\t}"); sw.WriteLine("\t\t}"); sw.WriteLine("\t}"); } sw.WriteLine("#endregion"); sw.WriteLine("}"); sw.Close(); Statistics.EnumCount++; }
public override void Generate(GenerationInfo gen_info) { StreamWriter sw = 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"); if (Elem.GetAttribute("type") == "flags") { sw.WriteLine("\t[Flags]"); } if (Elem.HasAttribute("gtype")) { sw.WriteLine("\t[{0}]", Name); } string access = IsInternal ? "internal" : "public"; sw.WriteLine("\t" + access + " enum " + Name + enum_type + " {"); sw.WriteLine(); foreach (string member in members) { sw.WriteLine(member); } sw.WriteLine("\t}"); if (Elem.HasAttribute("gtype")) { AttributeHelper.Gen(sw, Name, LibraryName, Elem.GetAttribute("gtype")); } sw.WriteLine("#endregion"); sw.WriteLine("}"); sw.Close(); Statistics.EnumCount++; }