// This file was generated by the Gtk# code generator. // Any changes made will be lost if regenerated. namespace Atk { using System; using System.Runtime.InteropServices; #region Autogenerated code public partial class ImplementorAdapter : GLib.GInterfaceAdapter, Atk.IImplementor { [StructLayout (LayoutKind.Sequential)] struct AtkImplementorIface { public RefAccessibleNativeDelegate RefAccessible; } static AtkImplementorIface iface; static ImplementorAdapter () { GLib.GType.Register (_gtype, typeof (ImplementorAdapter)); iface.RefAccessible = new RefAccessibleNativeDelegate (RefAccessible_cb); } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate IntPtr RefAccessibleNativeDelegate (IntPtr inst); static IntPtr RefAccessible_cb (IntPtr inst) { try { IImplementorImplementor __obj = GLib.Object.GetObject (inst, false) as IImplementorImplementor; Atk.Object __result; __result = __obj.RefAccessible (); return __result == null ? IntPtr.Zero : __result.OwnedHandle; } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException (e, true); // NOTREACHED: above call does not return. throw; } } static int class_offset = 2 * IntPtr.Size; static void Initialize (IntPtr ptr, IntPtr data) { IntPtr ifaceptr = new IntPtr (ptr.ToInt64 () + class_offset); AtkImplementorIface native_iface = (AtkImplementorIface) Marshal.PtrToStructure (ifaceptr, typeof (AtkImplementorIface)); native_iface.RefAccessible = iface.RefAccessible; Marshal.StructureToPtr (native_iface, ifaceptr, false); } GLib.Object implementor; public ImplementorAdapter () { InitHandler = new GLib.GInterfaceInitHandler (Initialize); } public ImplementorAdapter (IImplementorImplementor implementor) { if (implementor == null) throw new ArgumentNullException ("implementor"); else if (!(implementor is GLib.Object)) throw new ArgumentException ("implementor must be a subclass of GLib.Object"); this.implementor = implementor as GLib.Object; } public ImplementorAdapter (IntPtr handle) { if (!_gtype.IsInstance (handle)) throw new ArgumentException ("The gobject doesn't implement the GInterface of this adapter", "handle"); implementor = GLib.Object.GetObject (handle); } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate IntPtr d_atk_implementor_get_type(); static d_atk_implementor_get_type atk_implementor_get_type = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Atk), "atk_implementor_get_type")); private static GLib.GType _gtype = new GLib.GType (atk_implementor_get_type ()); public static GLib.GType GType { get { return _gtype; } } public override GLib.GType GInterfaceGType { get { return _gtype; } } public override IntPtr Handle { get { return implementor.Handle; } } public IntPtr OwnedHandle { get { return implementor.OwnedHandle; } } public static IImplementor GetObject (IntPtr handle, bool owned) { GLib.Object obj = GLib.Object.GetObject (handle, owned); return GetObject (obj); } public static IImplementor GetObject (GLib.Object obj) { if (obj == null) return null; else if (obj is IImplementorImplementor) return new ImplementorAdapter (obj as IImplementorImplementor); else if (obj as IImplementor == null) return new ImplementorAdapter (obj.Handle); else return obj as IImplementor; } public IImplementorImplementor Implementor { get { return implementor as IImplementorImplementor; } } [UnmanagedFunctionPointer (CallingConvention.Cdecl)] delegate IntPtr d_atk_implementor_ref_accessible(IntPtr raw); static d_atk_implementor_ref_accessible atk_implementor_ref_accessible = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.Atk), "atk_implementor_ref_accessible")); public Atk.Object RefAccessible() { IntPtr raw_ret = atk_implementor_ref_accessible(Handle); Atk.Object ret = GLib.Object.GetObject(raw_ret, true) as Atk.Object; return ret; } #endregion } }