diff --git a/Source/Libs/PangoSharp/Context.cs b/Source/Libs/PangoSharp/Context.cs index cf5dd552a..9a46f013c 100644 --- a/Source/Libs/PangoSharp/Context.cs +++ b/Source/Libs/PangoSharp/Context.cs @@ -25,25 +25,35 @@ namespace Pango { public partial class Context { - delegate void d_pango_context_list_families(IntPtr raw, out IntPtr families, out int n_families); - static d_pango_context_list_families pango_context_list_families = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_context_list_families")); + delegate void d_pango_context_list_families2(IntPtr raw, out IntPtr families, out int n_families); + static d_pango_context_list_families2 pango_context_list_families2 = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_context_list_families")); public FontFamily [] Families { get { int count; IntPtr array_ptr; - pango_context_list_families (Handle, out array_ptr, out count); + pango_context_list_families2 (Handle, out array_ptr, out count); if (array_ptr == IntPtr.Zero) return new FontFamily [0]; FontFamily [] result = new FontFamily [count]; for (int i = 0; i < count; i++) { - IntPtr fam_ptr = Marshal.ReadIntPtr (array_ptr, i * IntPtr.Size); - result[i] = new FontFamily(fam_ptr); + IntPtr fam_ptr = Marshal.ReadIntPtr (array_ptr, i * IntPtr.Size); + result [i] = GLib.Object.GetObject (fam_ptr) as FontFamily; } GLib.Marshaller.Free (array_ptr); return result; } } + + delegate void d_pango_context_list_families(IntPtr raw, IntPtr families, out int n_families); + static d_pango_context_list_families pango_context_list_families = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_context_list_families")); + + [Obsolete] + public int ListFamilies(Pango.FontFamily families) { + int n_families; + pango_context_list_families(Handle, families.Handle, out n_families); + return n_families; + } } }