コード例 #1
0
        public void GenerateBody(GenerationInfo gen_info, ClassBase implementor, string indent)
        {
            StreamWriter sw = gen_info.Writer;

            sw.WriteLine(" {");
            if (!IsStatic && implementor != null)
            {
                implementor.Prepare(sw, indent + "\t\t\t");
            }
            if (IsAccessor)
            {
                Body.InitAccessor(sw, Signature, indent);
            }
            Body.Initialize(gen_info, is_get, is_set, indent);

            sw.Write(indent + "\t\t\t");
            if (retval.IsVoid)
            {
                sw.WriteLine(CName + call + ";");
            }
            else
            {
                sw.WriteLine(retval.MarshalType + " raw_ret = " + CName + call + ";");
                sw.WriteLine(indent + "\t\t\t" + retval.CSType + " ret = " + retval.FromNative("raw_ret") + ";");
            }

            if (!IsStatic && implementor != null)
            {
                implementor.Finish(sw, indent + "\t\t\t");
            }
            Body.Finish(sw, indent);
            Body.HandleException(sw, indent);

            if (is_get && Parameters.Count > 0)
            {
                sw.WriteLine(indent + "\t\t\treturn " + Parameters.AccessorName + ";");
            }
            else if (!retval.IsVoid)
            {
                sw.WriteLine(indent + "\t\t\treturn ret;");
            }
            else if (IsAccessor)
            {
                Body.FinishAccessor(sw, Signature, indent);
            }

            sw.Write(indent + "\t\t}");
        }
コード例 #2
0
ファイル: Method.cs プロジェクト: ystk/debian-gtk-sharp2
		public void GenerateBody (GenerationInfo gen_info, ClassBase implementor, string indent)
		{
			StreamWriter sw = gen_info.Writer;
			sw.WriteLine(" {");
			if (!IsStatic && implementor != null)
				implementor.Prepare (sw, indent + "\t\t\t");
			if (IsAccessor)
				Body.InitAccessor (sw, Signature, indent);
			Body.Initialize(gen_info, is_get, is_set, indent);

			if (HasWin32Utf8Variant) {
				if (!retval.IsVoid)
					sw.WriteLine(indent + "\t\t\t" + retval.MarshalType + " raw_ret;");
				sw.WriteLine(indent + "\t\t\t" + "if (Environment.OSVersion.Platform == PlatformID.Win32NT ||");
				sw.WriteLine(indent + "\t\t\t" + "    Environment.OSVersion.Platform == PlatformID.Win32S ||");
				sw.WriteLine(indent + "\t\t\t" + "    Environment.OSVersion.Platform == PlatformID.Win32Windows ||");
				sw.WriteLine(indent + "\t\t\t" + "    Environment.OSVersion.Platform == PlatformID.WinCE)");
				if (retval.IsVoid) {
					sw.WriteLine(indent + "\t\t\t\t" + CName + "_utf8" + call + ";");
					sw.WriteLine(indent + "\t\t\t" + "else");
					sw.WriteLine(indent + "\t\t\t\t" + CName + call + ";");
				} else {
					sw.WriteLine(indent + "\t\t\t\traw_ret = " + CName + "_utf8" + call + ";");
					sw.WriteLine(indent + "\t\t\t" + "else");
					sw.WriteLine(indent + "\t\t\t\traw_ret = " + CName + call + ";");
					sw.WriteLine(indent + "\t\t\t" + retval.CSType + " ret = " + retval.FromNative ("raw_ret") + ";");
				}
			} else {
				sw.Write(indent + "\t\t\t");
				if (retval.IsVoid)
					sw.WriteLine(CName + call + ";");
				else {
					sw.WriteLine(retval.MarshalType + " raw_ret = " + CName + call + ";");
					sw.WriteLine(indent + "\t\t\t" + retval.CSType + " ret = " + retval.FromNative ("raw_ret") + ";");
				}
			}

			if (!IsStatic && implementor != null)
				implementor.Finish (sw, indent + "\t\t\t");
			Body.Finish (sw, indent);
			Body.HandleException (sw, indent);

			if (is_get && Parameters.Count > 0) 
				sw.WriteLine (indent + "\t\t\treturn " + Parameters.AccessorName + ";");
			else if (!retval.IsVoid)
				sw.WriteLine (indent + "\t\t\treturn ret;");
			else if (IsAccessor)
				Body.FinishAccessor (sw, Signature, indent);

			sw.Write(indent + "\t\t}");
		}
コード例 #3
0
ファイル: Method.cs プロジェクト: Yetangitu/f-spot
        public void GenerateBody(GenerationInfo gen_info, ClassBase implementor, string indent)
        {
            StreamWriter sw = gen_info.Writer;
            sw.WriteLine(" {");
            if (!IsStatic && implementor != null)
                implementor.Prepare (sw, indent + "\t\t\t");
            if (IsAccessor)
                Body.InitAccessor (sw, Signature, indent);
            Body.Initialize(gen_info, is_get, is_set, indent);

            sw.Write(indent + "\t\t\t");
            if (retval.IsVoid)
                sw.WriteLine(CName + call + ";");
            else {
                sw.WriteLine(retval.MarshalType + " raw_ret = " + CName + call + ";");
                sw.WriteLine(indent + "\t\t\t" + retval.CSType + " ret = " + retval.FromNative ("raw_ret") + ";");
            }

            if (!IsStatic && implementor != null)
                implementor.Finish (sw, indent + "\t\t\t");
            Body.Finish (sw, indent);
            Body.HandleException (sw, indent);

            if (is_get && Parameters.Count > 0)
                sw.WriteLine (indent + "\t\t\treturn " + Parameters.AccessorName + ";");
            else if (!retval.IsVoid)
                sw.WriteLine (indent + "\t\t\treturn ret;");
            else if (IsAccessor)
                Body.FinishAccessor (sw, Signature, indent);

            sw.Write(indent + "\t\t}");
        }
コード例 #4
0
ファイル: Method.cs プロジェクト: shana/gtk-sharp
        public void GenerateBody(GenerationInfo gen_info, ClassBase implementor, string indent)
        {
            StreamWriter sw = gen_info.Writer;

            sw.WriteLine(" {");
            if (!IsStatic && implementor != null)
            {
                implementor.Prepare(sw, indent + "\t\t\t");
            }
            if (IsAccessor)
            {
                Body.InitAccessor(sw, Signature, indent);
            }
            Body.Initialize(gen_info, is_get, is_set, indent);

            if (HasWin32Utf8Variant)
            {
                if (!retval.IsVoid)
                {
                    sw.WriteLine(indent + "\t\t\t" + retval.MarshalType + " raw_ret;");
                }
                sw.WriteLine(indent + "\t\t\t" + "if (Environment.OSVersion.Platform == PlatformID.Win32NT ||");
                sw.WriteLine(indent + "\t\t\t" + "    Environment.OSVersion.Platform == PlatformID.Win32S ||");
                sw.WriteLine(indent + "\t\t\t" + "    Environment.OSVersion.Platform == PlatformID.Win32Windows ||");
                sw.WriteLine(indent + "\t\t\t" + "    Environment.OSVersion.Platform == PlatformID.WinCE)");
                if (retval.IsVoid)
                {
                    sw.WriteLine(indent + "\t\t\t\t" + CName + "_utf8" + call + ";");
                    sw.WriteLine(indent + "\t\t\t" + "else");
                    sw.WriteLine(indent + "\t\t\t\t" + CName + call + ";");
                }
                else
                {
                    sw.WriteLine(indent + "\t\t\t\traw_ret = " + CName + "_utf8" + call + ";");
                    sw.WriteLine(indent + "\t\t\t" + "else");
                    sw.WriteLine(indent + "\t\t\t\traw_ret = " + CName + call + ";");
                    sw.WriteLine(indent + "\t\t\t" + retval.CSType + " ret = " + retval.FromNative("raw_ret") + ";");
                }
            }
            else
            {
                sw.Write(indent + "\t\t\t");
                if (retval.IsVoid)
                {
                    sw.WriteLine(CName + call + ";");
                }
                else
                {
                    sw.WriteLine(retval.MarshalType + " raw_ret = " + CName + call + ";");
                    sw.WriteLine(indent + "\t\t\t" + retval.CSType + " ret = " + retval.FromNative("raw_ret") + ";");
                }
            }

            if (!IsStatic && implementor != null)
            {
                implementor.Finish(sw, indent + "\t\t\t");
            }
            Body.Finish(sw, indent);
            Body.HandleException(sw, indent);

            if (is_get && Parameters.Count > 0)
            {
                sw.WriteLine(indent + "\t\t\treturn " + Parameters.AccessorName + ";");
            }
            else if (!retval.IsVoid)
            {
                sw.WriteLine(indent + "\t\t\treturn ret;");
            }
            else if (IsAccessor)
            {
                Body.FinishAccessor(sw, Signature, indent);
            }

            sw.Write(indent + "\t\t}");
        }