static void ConnectActivate(GLib.GType gtype) { if (ActivateMarshalCallback == null) { ActivateMarshalCallback = new GLib.ClosureMarshal(ActivateMarshal_cb); } GtkWidgetClass klass = GetClassStruct(gtype, false); klass.ActivateSignal = GLib.Object.RegisterSignal("activate_signal", gtype, GLib.Signal.Flags.RunLast, GLib.GType.None, new GLib.GType [0], ActivateMarshalCallback); OverrideClassStruct(gtype, klass); }
static void OverrideClassStruct (GLib.GType gtype, GtkWidgetClass class_struct) { IntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset); Marshal.StructureToPtr (class_struct, class_ptr, false); }