// This file was generated by the Gtk# code generator. // Any changes made will be lost if regenerated. namespace Pango { using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; #region Autogenerated code public partial class GlyphString : GLib.Opaque { public int NumGlyphs { get { unsafe { int* raw_ptr = (int*)(((byte*)Handle) + abi_info.GetFieldOffset("num_glyphs")); return (*raw_ptr); } } set { unsafe { int* raw_ptr = (int*)(((byte*)Handle) + abi_info.GetFieldOffset("num_glyphs")); *raw_ptr = value; } } } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate IntPtr d_pango_glyph_string_copy(IntPtr raw); static d_pango_glyph_string_copy pango_glyph_string_copy = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_glyph_string_copy")); public Pango.GlyphString Copy() { IntPtr raw_ret = pango_glyph_string_copy(Handle); Pango.GlyphString ret = raw_ret == IntPtr.Zero ? null : (Pango.GlyphString) GLib.Opaque.GetOpaque (raw_ret, typeof (Pango.GlyphString), true); return ret; } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate void d_pango_glyph_string_extents(IntPtr raw, IntPtr font, IntPtr ink_rect, IntPtr logical_rect); static d_pango_glyph_string_extents pango_glyph_string_extents = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_glyph_string_extents")); public void Extents(Pango.Font font, Pango.Rectangle ink_rect, Pango.Rectangle logical_rect) { IntPtr native_ink_rect = GLib.Marshaller.StructureToPtrAlloc (ink_rect); IntPtr native_logical_rect = GLib.Marshaller.StructureToPtrAlloc (logical_rect); pango_glyph_string_extents(Handle, font == null ? IntPtr.Zero : font.Handle, native_ink_rect, native_logical_rect); Marshal.FreeHGlobal (native_ink_rect); Marshal.FreeHGlobal (native_logical_rect); } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate void d_pango_glyph_string_extents_range(IntPtr raw, int start, int end, IntPtr font, IntPtr ink_rect, IntPtr logical_rect); static d_pango_glyph_string_extents_range pango_glyph_string_extents_range = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_glyph_string_extents_range")); public void ExtentsRange(int start, int end, Pango.Font font, Pango.Rectangle ink_rect, Pango.Rectangle logical_rect) { IntPtr native_ink_rect = GLib.Marshaller.StructureToPtrAlloc (ink_rect); IntPtr native_logical_rect = GLib.Marshaller.StructureToPtrAlloc (logical_rect); pango_glyph_string_extents_range(Handle, start, end, font == null ? IntPtr.Zero : font.Handle, native_ink_rect, native_logical_rect); Marshal.FreeHGlobal (native_ink_rect); Marshal.FreeHGlobal (native_logical_rect); } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate void d_pango_glyph_string_get_logical_widths(IntPtr raw, IntPtr text, int length, int embedding_level, out int logical_widths); static d_pango_glyph_string_get_logical_widths pango_glyph_string_get_logical_widths = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_glyph_string_get_logical_widths")); public int GetLogicalWidths(string text, int embedding_level) { int logical_widths; IntPtr native_text = GLib.Marshaller.StringToPtrGStrdup (text); pango_glyph_string_get_logical_widths(Handle, native_text, System.Text.Encoding.UTF8.GetByteCount (text), embedding_level, out logical_widths); GLib.Marshaller.Free (native_text); return logical_widths; } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate IntPtr d_pango_glyph_string_get_type(); static d_pango_glyph_string_get_type pango_glyph_string_get_type = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_glyph_string_get_type")); public static GLib.GType GType { get { IntPtr raw_ret = pango_glyph_string_get_type(); GLib.GType ret = new GLib.GType(raw_ret); return ret; } } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate int d_pango_glyph_string_get_width(IntPtr raw); static d_pango_glyph_string_get_width pango_glyph_string_get_width = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_glyph_string_get_width")); public int Width { get { int raw_ret = pango_glyph_string_get_width(Handle); int ret = raw_ret; return ret; } } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate void d_pango_glyph_string_index_to_x(IntPtr raw, IntPtr text, int length, IntPtr analysis, int index_, bool trailing, out int x_pos); static d_pango_glyph_string_index_to_x pango_glyph_string_index_to_x = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_glyph_string_index_to_x")); public int IndexToX(string text, Pango.Analysis analysis, int index_, bool trailing) { int x_pos; IntPtr native_analysis = GLib.Marshaller.StructureToPtrAlloc (analysis); pango_glyph_string_index_to_x(Handle, GLib.Marshaller.StringToPtrGStrdup(text), System.Text.Encoding.UTF8.GetByteCount (text), native_analysis, index_, trailing, out x_pos); Marshal.FreeHGlobal (native_analysis); return x_pos; } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate void d_pango_glyph_string_set_size(IntPtr raw, int new_len); static d_pango_glyph_string_set_size pango_glyph_string_set_size = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_glyph_string_set_size")); public int Size { set { pango_glyph_string_set_size(Handle, value); } } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate void d_pango_glyph_string_x_to_index(IntPtr raw, IntPtr text, int length, IntPtr analysis, int x_pos, out int index_, out int trailing); static d_pango_glyph_string_x_to_index pango_glyph_string_x_to_index = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_glyph_string_x_to_index")); public void XToIndex(string text, Pango.Analysis analysis, int x_pos, out int index_, out int trailing) { IntPtr native_analysis = GLib.Marshaller.StructureToPtrAlloc (analysis); pango_glyph_string_x_to_index(Handle, GLib.Marshaller.StringToPtrGStrdup(text), System.Text.Encoding.UTF8.GetByteCount (text), native_analysis, x_pos, out index_, out trailing); Marshal.FreeHGlobal (native_analysis); } public GlyphString(IntPtr raw) : base(raw) {} [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate IntPtr d_pango_glyph_string_new(); static d_pango_glyph_string_new pango_glyph_string_new = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_glyph_string_new")); public GlyphString () { Raw = pango_glyph_string_new(); } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate void d_pango_glyph_string_free(IntPtr raw); static d_pango_glyph_string_free pango_glyph_string_free = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Pango), "pango_glyph_string_free")); protected override void Free (IntPtr raw) { pango_glyph_string_free (raw); } class FinalizerInfo { IntPtr handle; public uint timeoutHandlerId; public FinalizerInfo (IntPtr handle) { this.handle = handle; } public bool Handler () { pango_glyph_string_free (handle); GLib.Timeout.Remove(timeoutHandlerId); return false; } } ~GlyphString () { if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); info.timeoutHandlerId = GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); } // Internal representation of the wrapped structure ABI. static GLib.AbiStruct _abi_info = null; static public unsafe GLib.AbiStruct abi_info { get { if (_abi_info == null) _abi_info = new GLib.AbiStruct (new List{ new GLib.AbiField("num_glyphs" , 0 , (uint) sizeof( int ) // num_glyphs , null , "glyphs" , (long) Marshal.OffsetOf("num_glyphs") , 0 ), new GLib.AbiField("glyphs" , -1 , (uint) sizeof( IntPtr ) // glyphs , "num_glyphs" , "log_clusters" , (uint) sizeof(IntPtr) , 0 ), new GLib.AbiField("log_clusters" , -1 , (uint) sizeof( IntPtr ) // log_clusters , "glyphs" , "space" , (uint) sizeof(IntPtr) , 0 ), new GLib.AbiField("space" , -1 , (uint) sizeof( int ) // space , "log_clusters" , null , (long) Marshal.OffsetOf("space") , 0 ), }); return _abi_info; } } [StructLayout(LayoutKind.Sequential)] public struct PangoGlyphString_num_glyphsAlign { sbyte f1; private int num_glyphs; } [StructLayout(LayoutKind.Sequential)] public struct PangoGlyphString_spaceAlign { sbyte f1; private int space; } // End of the ABI representation. #endregion } }