From 24f8cede1935f41be2825de38619a47e7855702d Mon Sep 17 00:00:00 2001 From: Xavier Claessens <xavier.claessens@collabora.com> Date: Thu, 15 May 2014 15:52:46 -0400 Subject: [PATCH] Variant: Add wrapper for g_variant_new_tuple() --- glib/Variant.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/glib/Variant.cs b/glib/Variant.cs index f12283861..4dbdf4593 100644 --- a/glib/Variant.cs +++ b/glib/Variant.cs @@ -131,6 +131,21 @@ namespace GLib { Marshaller.Free (native); } + [DllImport (Global.GLibNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern IntPtr g_variant_new_tuple (IntPtr[] children, UIntPtr n_children); + + public static Variant NewTuple (Variant[] children) + { + if (children == null) + return new Variant (g_variant_new_tuple (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_tuple (native, new UIntPtr ((ulong) children.Length))); + } + [DllImport (Global.GLibNativeDll, CallingConvention = CallingConvention.Cdecl)] static extern bool g_variant_get_boolean (IntPtr handle);