2005-06-08 Mike Kestner <mkestner@novell.com>

* generator/ReturnValue.cs : improved list to array marshaling.
	* glib/Marshaller.cs : added ListToArray ().
	* gnomevfs/Gnomevfs.metadata : mark element_type on
	Mime.GetAllApplications. [Fixes #71888]

svn path=/trunk/gtk-sharp/; revision=45649
This commit is contained in:
Mike Kestner 2005-06-08 16:53:12 +00:00
parent abaf1ce343
commit a307c78232
7 changed files with 75 additions and 33 deletions

View File

@ -1,3 +1,10 @@
2005-06-08 Mike Kestner <mkestner@novell.com>
* generator/ReturnValue.cs : improved list to array marshaling.
* glib/Marshaller.cs : added ListToArray ().
* gnomevfs/Gnomevfs.metadata : mark element_type on
Mime.GetAllApplications. [Fixes #71888]
2005-06-06 Mike Kestner <mkestner@novell.com>
* generator/ImportSignature.cs : fix native delegate namespacing hack.

View File

@ -299,5 +299,23 @@
<remarks />
</Docs>
</Member>
<Member MemberName="ListToArray">
<MemberSignature Language="C#" Value="public static Array ListToArray (GLib.ListBase list, Type type);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Array</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="list" Type="GLib.ListBase" />
<Parameter Name="type" Type="System.Type" />
</Parameters>
<Docs>
<param name="list">The list to be marshaled.</param>
<param name="type">The type of the list elements.</param>
<summary>Marshals a native list to a typed array.</summary>
<returns>An array of <paramref name="type" />.</returns>
<remarks />
</Docs>
</Member>
</Members>
</Type>

View File

@ -231,22 +231,7 @@
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetAllApplications">
<MemberSignature Language="C#" Value="public static GLib.List GetAllApplications (string mime_type);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>GLib.List</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="mime_type" Type="System.String" />
</Parameters>
<Docs>
<param name="mime_type">To be added.</param>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="SetRegisteredTypeKey">
<MemberSignature Language="C#" Value="public static Gnome.Vfs.Result SetRegisteredTypeKey (string mime_type, string key, string data);" />
<MemberType>Method</MemberType>
@ -915,9 +900,25 @@
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetAllApplications">
<MemberSignature Language="C#" Value="public static Gnome.Vfs.MimeApplication[] GetAllApplications (string mime_type);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>Gnome.Vfs.MimeApplication[]</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="mime_type" Type="System.String" />
</Parameters>
<Docs>
<param name="mime_type">A mime type to query, for example 'text/plain'.</param>
<summary>Gets all the applications registered for a MIME type.</summary>
<returns>an array of <see cref="T:Gnome.Vfs.MimeApplication" />.</returns>
<remarks />
</Docs>
</Member>
</Members>
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
<summary>Mime related static methods.</summary>
<remarks />
</Docs>
</Type>

View File

@ -160,19 +160,7 @@
<remarks>To be added</remarks>
</Docs>
</Member>
<Member MemberName="Split">
<MemberSignature Language="C#" Value="public GLib.SList Split ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>GLib.SList</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added</summary>
<returns>To be added: an object of type 'GLib.SList'</returns>
<remarks>To be added</remarks>
</Docs>
</Member>
<Member MemberName="Ref">
<MemberSignature Language="C#" Value="public void Ref ();" />
<MemberType>Method</MemberType>
@ -520,5 +508,18 @@
<remarks>To be added</remarks>
</Docs>
</Member>
<Member MemberName="Split">
<MemberSignature Language="C#" Value="public Gnome.CanvasPathDef[] Split ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>Gnome.CanvasPathDef[]</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added.</summary>
<returns>To be added.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>

View File

@ -43,6 +43,10 @@ namespace GtkSharp.Generation {
get {
if (IGen == null)
return String.Empty;
if (ElementType != String.Empty)
return ElementType + "[]";
return IGen.QualifiedName + (IsArray ? "[]" : String.Empty);
}
}
@ -102,8 +106,10 @@ namespace GtkSharp.Generation {
return String.Empty;
if (Owned)
var += ", true";
else if (ElementType != String.Empty)
var += ", typeof (" + ElementType + ")";
else if (ElementType != String.Empty) {
string type_str = "typeof (" + ElementType + ")";
return String.Format ("({0}[]) GLib.Marshaller.ListToArray ({1}, {2});", ElementType, IGen.FromNativeReturn (var + ", " + type_str), type_str);
}
return IGen.FromNativeReturn (var);
}
@ -113,6 +119,7 @@ namespace GtkSharp.Generation {
Console.Write("rettype: " + CType);
return false;
}
return true;
}
}

View File

@ -278,6 +278,13 @@ namespace GLib {
Marshal.StructureToPtr (o, result, false);
return result;
}
public static Array ListToArray (ListBase list, System.Type type)
{
Array result = Array.CreateInstance (type, list.Count);
list.CopyTo (result, 0);
return result;
}
}
}

View File

@ -16,6 +16,7 @@
<remove-node path="/api/namespace/callback[@cname='GnomeVFSXferProgressCallback']" />
<remove-node path="/api/namespace/class[@cname='GnomeVfsAsync_']" />
<remove-node path="/api/namespace/class[@cname='GnomeVfsDirectory_']" />
<attr path="/api/namespace/class[@cname='GnomeVfsMime_']/method[@name='GetAllApplications']/return-type" name="element_type">Gnome.Vfs.MimeApplication</attr>
<remove-node path="/api/namespace/class[@cname='GnomeVfsMonitor_']" />
<remove-node path="/api/namespace/class[@cname='GnomeVfsXfer_']" />
<attr path="/api/namespace/enum[@cname='GnomeVFSDirectoryVisitOptions']" name="hidden">1</attr>