Ejemplo n.º 1
0
            protected override unsafe void OnRender(Cairo.Context cr, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags)
            {
#if GTKCORE
                RenderNativeDelegate renderNativeDelegate = null;
                IntPtr *ptr = (IntPtr *)((long)LookupGType().GetThresholdType().GetClassPtr() + class_abi.GetFieldOffset("render"));
                if (*ptr != IntPtr.Zero)
                {
                    renderNativeDelegate = (RenderNativeDelegate)Marshal.GetDelegateForFunctionPointer(*ptr, typeof(RenderNativeDelegate));
                    if (renderNativeDelegate != null)
                    {
                        IntPtr intPtr  = GLib.Marshaller.StructureToPtrAlloc(background_area);
                        IntPtr intPtr2 = GLib.Marshaller.StructureToPtrAlloc(cell_area);
                        renderNativeDelegate(base.Handle, cr?.Handle ?? IntPtr.Zero, widget?.Handle ?? IntPtr.Zero, intPtr, intPtr2, (int)flags);
                        Marshal.FreeHGlobal(intPtr);
                        Marshal.FreeHGlobal(intPtr2);
                    }
                }
#endif

                if (editingRow == row)
                {
                    return;
                }
                using (var graphics = new Graphics(new GraphicsHandler(widget, cr)))
                {
                    var item = Handler.Source.GetItem(Row);
                    var args = new CellPaintEventArgs(graphics, cell_area.ToEto(), flags.ToEto(), item);
                    Handler.Callback.OnPaint(Handler.Widget, args);
                }
            }
Ejemplo n.º 2
0
 static void OverrideRender(GLib.GType gtype, RenderNativeDelegate callback)
 {
     unsafe {
         IntPtr *raw_ptr = (IntPtr *)(((long)gtype.GetClassPtr()) + (long)class_abi.GetFieldOffset("render"));
         *raw_ptr = Marshal.GetFunctionPointerForDelegate((Delegate)callback);
     }
 }
Ejemplo n.º 3
0
        private bool InternalRender(Gdk.GLContext context)
        {
            RenderNativeDelegate unmanaged = class_abi.BaseOverride <RenderNativeDelegate>(this.LookupGType(), "render");

            if (unmanaged == null)
            {
                return(false);
            }

            bool __result = unmanaged(this.Handle, context == null ? IntPtr.Zero : context.Handle);

            return(__result);
        }
Ejemplo n.º 4
0
        private bool InternalRender(Gdk.GLContext context)
        {
            RenderNativeDelegate unmanaged = null;

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

            bool __result = unmanaged(this.Handle, context == null ? IntPtr.Zero : context.Handle);

            return(__result);
        }
Ejemplo n.º 5
0
        private bool InternalRender(Gst.Buffer audio, Gst.Video.VideoFrame video)
        {
            RenderNativeDelegate unmanaged = null;

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

            IntPtr native_video = GLib.Marshaller.StructureToPtrAlloc(video);
            bool   __result     = unmanaged(this.Handle, audio == null ? IntPtr.Zero : audio.Handle, native_video);

            Marshal.FreeHGlobal(native_video);
            return(__result);
        }
Ejemplo n.º 6
0
		static void OverrideRender (Gst.GLib.GType gtype, RenderNativeDelegate callback)
		{
			GstBaseSinkClass class_iface = GetClassStruct (gtype, false);
			class_iface.Render = callback;
			OverrideClassStruct (gtype, class_iface);
		}