예제 #1
0
 static void OverrideUngroup(GLib.GType gtype, UngroupNativeDelegate callback)
 {
     unsafe {
         IntPtr *raw_ptr = (IntPtr *)(((long)gtype.GetClassPtr()) + (long)class_abi.GetFieldOffset("ungroup"));
         *raw_ptr = Marshal.GetFunctionPointerForDelegate((Delegate)callback);
     }
 }
예제 #2
0
        private GES.Container[] InternalUngroup(bool recursive)
        {
            UngroupNativeDelegate unmanaged = null;

            unsafe {
                IntPtr *raw_ptr = (IntPtr *)(((long)this.LookupGType().GetThresholdType().GetClassPtr()) + (long)class_abi.GetFieldOffset("ungroup"));
                unmanaged = (UngroupNativeDelegate)Marshal.GetDelegateForFunctionPointer(*raw_ptr, typeof(UngroupNativeDelegate));
            }
            if (unmanaged == null)
            {
                return(null);
            }

            IntPtr __result = unmanaged(this.Handle, recursive);

            return((GES.Container[])GLib.Marshaller.ListPtrToArray(__result, typeof(GLib.List), true, true, typeof(GES.Container)));
        }