Ejemplo n.º 1
0
 string GetInterfaceImplExtra()
 {
     if (Elem.HasAttribute("iequatable") && Elem.GetAttribute("iequatable") == "1")
     {
         return(" : IEquatable<" + Name + ">");
     }
     return(string.Empty);
 }
Ejemplo n.º 2
0
        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++;
        }