Ryujinx-GtkSharp/glib/GLibSharp.voidObjectIntPtrSignal.cs
Dan Winship de70fff09f * glib/Object.cs (AddNotification, RemoveNotification): methods to
subscribe to the "notify" signal (with property details). [#71684]

	* glib/GLibSharp.voidObjectIntPtrSignal.cs: autogenerated, for
	notifications

	* glib/NotifyHandler.cs: sort of autogenerated

svn path=/trunk/gtk-sharp/; revision=39717
2005-01-28 16:44:30 +00:00

51 lines
1.4 KiB
C#

// copied from gtk/generated/GtkSharp.voidObjectIntPtrSignal.cs and renamespaced
// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.
namespace GLibSharp {
using System;
using System.Runtime.InteropServices;
internal delegate void voidObjectIntPtrDelegate(IntPtr arg0, IntPtr arg1, int key);
internal class voidObjectIntPtrSignal : GLib.SignalCallback {
private static voidObjectIntPtrDelegate _Delegate;
private static void voidObjectIntPtrCallback(IntPtr arg0, IntPtr arg1, int key)
{
if (!_Instances.Contains(key))
throw new Exception("Unexpected signal key " + key);
voidObjectIntPtrSignal inst = (voidObjectIntPtrSignal) _Instances[key];
GLib.SignalArgs args = (GLib.SignalArgs) Activator.CreateInstance (inst._argstype);
args.Args = new object[1];
args.Args[0] = arg1;
object[] argv = new object[2];
argv[0] = inst._obj;
argv[1] = args;
inst._handler.DynamicInvoke(argv);
}
public voidObjectIntPtrSignal(GLib.Object obj, string name, Delegate eh, Type argstype, int connect_flags) : base(obj, eh, argstype)
{
if (_Delegate == null) {
_Delegate = new voidObjectIntPtrDelegate(voidObjectIntPtrCallback);
}
Connect (name, _Delegate, connect_flags);
}
protected override void Dispose (bool disposing)
{
_Instances.Remove(_key);
if(_Instances.Count == 0)
_Delegate = null;
Disconnect ();
base.Dispose (disposing);
}
}
}