From f923d44d7aed2041a2a221a41c8706d65f9d988f Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Wed, 29 Sep 2004 18:00:38 +0000 Subject: [PATCH] 2004-09-29 Mike Kestner * generator/GStringGen.cs : new generatable impl for GStrings. * generator/InterfaceGen.cs : better error reporting. * generator/Makefile.am : add new source file. * generator/Method.cs : better error reporting. * generator/SymbolTable.cs : add new GString igen. svn path=/trunk/gtk-sharp/; revision=34525 --- ChangeLog | 8 ++++ generator/GStringGen.cs | 88 +++++++++++++++++++++++++++++++++++++++ generator/InterfaceGen.cs | 5 ++- generator/Makefile.am | 1 + generator/Method.cs | 4 +- generator/SymbolTable.cs | 1 + 6 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 generator/GStringGen.cs diff --git a/ChangeLog b/ChangeLog index 1af10a33c..18fbc2f1e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-09-29 Mike Kestner + + * generator/GStringGen.cs : new generatable impl for GStrings. + * generator/InterfaceGen.cs : better error reporting. + * generator/Makefile.am : add new source file. + * generator/Method.cs : better error reporting. + * generator/SymbolTable.cs : add new GString igen. + 2004-09-29 Mike Kestner * glib/GString.cs : new marshaling class for GStrings. Used by diff --git a/generator/GStringGen.cs b/generator/GStringGen.cs new file mode 100644 index 000000000..669f9e81d --- /dev/null +++ b/generator/GStringGen.cs @@ -0,0 +1,88 @@ +// GtkSharp.Generation.GStringGen.cs - The GString type Generatable. +// +// Author: Mike Kestner +// +// Copyright (c) 2004 Novell, Inc. +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of version 2 of the GNU General Public +// License as published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + + +namespace GtkSharp.Generation { + + using System; + + public class GStringGen : IGeneratable { + + public string CName { + get { + return "GString"; + } + } + + public string Name { + get { + return "string"; + } + } + + public string QualifiedName { + get { + return "string"; + } + } + + public string MarshalType { + get { + return "IntPtr"; + } + } + + public string CallByName (string var_name) + { + return "(new GLib.GString (" + var_name + ")).Handle"; + } + + public string FromNative (string var) + { + return "GLib.GString.PtrToString (" + var + ")"; + } + + public string FromNativeReturn (string var) + { + return FromNative (var); + } + + public string ToNativeReturn (string var) + { + return CallByName (var); + } + + public string MarshalReturnType { + get { + return "IntPtr"; + } + } + + public void Generate () + { + } + + public void Generate (GenerationInfo gen_info) + { + } + } + +} + diff --git a/generator/InterfaceGen.cs b/generator/InterfaceGen.cs index 26031a38c..6481cf6cd 100644 --- a/generator/InterfaceGen.cs +++ b/generator/InterfaceGen.cs @@ -51,7 +51,8 @@ namespace GtkSharp.Generation { if (sig.Validate ()) { sig.GenerateDecl (sw); sig.GenEventHandler (gen_info); - } + } else + Console.WriteLine ("of interface " + QualifiedName); } foreach (Method method in methods.Values) { @@ -60,6 +61,8 @@ namespace GtkSharp.Generation { if (method.Validate ()) method.GenerateDecl (sw); + else + Console.WriteLine ("of interface " + QualifiedName); } AppendCustom (sw, gen_info.CustomDir); diff --git a/generator/Makefile.am b/generator/Makefile.am index 20596fecd..9f359a101 100644 --- a/generator/Makefile.am +++ b/generator/Makefile.am @@ -22,6 +22,7 @@ sources = \ GenBase.cs \ GenerationInfo.cs \ GObjectGen.cs \ + GStringGen.cs \ IGeneratable.cs \ ImportSignature.cs \ InterfaceGen.cs \ diff --git a/generator/Method.cs b/generator/Method.cs index e1c09b511..c66a90d4e 100644 --- a/generator/Method.cs +++ b/generator/Method.cs @@ -145,7 +145,7 @@ namespace GtkSharp.Generation { XmlElement ret_elem = elem["return-type"]; if (ret_elem == null) { - Console.Write("Missing return type in method "); + Console.Write("Missing return type in method " + Name + " "); Statistics.ThrottledCount++; return false; } @@ -190,7 +190,7 @@ namespace GtkSharp.Generation { return false; if (m_ret == "" || s_ret == "") { - Console.Write("rettype: " + rettype + " method "); + Console.Write("rettype: " + rettype + " in method " + Name + " "); Statistics.ThrottledCount++; return false; } diff --git a/generator/SymbolTable.cs b/generator/SymbolTable.cs index 63d1168b6..a231ad105 100644 --- a/generator/SymbolTable.cs +++ b/generator/SymbolTable.cs @@ -110,6 +110,7 @@ namespace GtkSharp.Generation { AddType (new ManualGen ("GSList", "GLib.SList")); AddType (new ManualGen ("GList", "GLib.List")); AddType (new ByRefGen ("GValue", "GLib.Value")); + AddType (new GStringGen ()); AddType (new GObjectGen ()); }