diff --git a/ChangeLog b/ChangeLog index 2c1477df5..667a427f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-02-02 Mike Kestner + + * generator/CustomMarshalerGen.cs : beginnings of a new generatable. + * generator/SymbolTable.cs : mangle interface keyword to iface. + 2004-02-02 Martin Willemoes Hansen * generator/ClassBase.cs: Converted String uses to the string alias. diff --git a/generator/CustomMarshalerGen.cs b/generator/CustomMarshalerGen.cs new file mode 100644 index 000000000..c913c8def --- /dev/null +++ b/generator/CustomMarshalerGen.cs @@ -0,0 +1,82 @@ +// GtkSharp.Generation.CustomMarshalerGen.cs - The CustomMarshaler type Generatable. +// +// Author: Mike Kestner +// +// Copyright (c) 2004 Novell, Inc. + +namespace GtkSharp.Generation { + + using System; + + public class CustomMarshalerGen : IGeneratable { + + string type; + string ctype; + string marshaler; + + public CustomMarshalerGen (string ctype, string type, string marshaler) + { + this.ctype = ctype; + this.type = type; + this.marshaler = marshaler; + } + + public string CName { + get { + return ctype; + } + } + + public string Name { + get { + return type; + } + } + + public string QualifiedName { + get { + return type; + } + } + + public string MarshalType { + get { + return "[MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(" + marshaler + "))] " + type; + } + } + public virtual string MarshalReturnType { + get { + return String.Empty; + } + } + + public string CallByName (string var_name) + { + return var_name; + } + + public string FromNative(string var) + { + return String.Empty; + } + + public virtual string FromNativeReturn(string var) + { + return String.Empty; + } + + public virtual string ToNativeReturn(string var) + { + return String.Empty; + } + + public void Generate () + { + } + + public void Generate (GenerationInfo gen_info) + { + } + } +} + diff --git a/generator/SymbolTable.cs b/generator/SymbolTable.cs index 7d04f958d..09c2a594f 100644 --- a/generator/SymbolTable.cs +++ b/generator/SymbolTable.cs @@ -91,6 +91,7 @@ namespace GtkSharp.Generation { AddType (new SimpleGen ("GParamSpec", "IntPtr")); AddType (new SimpleGen ("gconstpointer", "IntPtr")); + // AddType (new CustomMarshalerGen ("time_t", "System.DateTime", "GLib.time_t_CustomMarshaler")); AddType (new ManualGen ("GSList", "GLib.SList")); AddType (new ManualGen ("GList", "GLib.List")); AddType (new ManualGen ("GValue", "GLib.Value")); @@ -326,6 +327,8 @@ namespace GtkSharp.Generation { return "cb"; case "readonly": return "read_only"; + case "interface": + return "iface"; default: break; }