Variant: Add wrapper for g_variant_new_array()

This commit is contained in:
Xavier Claessens 2014-05-15 15:53:22 -04:00
parent 24f8cede19
commit 58fb7aa378

View File

@ -146,6 +146,22 @@ namespace GLib {
return new Variant (g_variant_new_tuple (native, new UIntPtr ((ulong) children.Length)));
}
[DllImport (Global.GLibNativeDll, CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr g_variant_new_array (IntPtr child_type, IntPtr[] children, UIntPtr n_children);
public static Variant NewArray (VariantType type, Variant[] children)
{
if (children == null)
return new Variant (g_variant_new_array (type.Handle, null, new UIntPtr (0ul)));
IntPtr[] native = new IntPtr[children.Length];
for (int i = 0; i < children.Length; i++)
native[i] = children[i].Handle;
return new Variant (g_variant_new_array (type == null ? (IntPtr) null : type.Handle,
native, new UIntPtr ((ulong) children.Length)));
}
[DllImport (Global.GLibNativeDll, CallingConvention = CallingConvention.Cdecl)]
static extern bool g_variant_get_boolean (IntPtr handle);