Example #1
0
        private static void Connect(Command cmd, Gdk.Key key, Gdk.ModifierType modifier = Gdk.ModifierType.None)
        {
            var cclosure = Gtk3Wrapper.g_cclosure_new(Marshal.GetFunctionPointerForDelegate(
                                                          (Action <IntPtr, IntPtr, IntPtr, IntPtr, IntPtr>)((IntPtr a, IntPtr b, IntPtr c, IntPtr d, IntPtr data) =>
            {
                var command = ((GCHandle)data).Target as Command;

                if (command.Enabled)
                {
                    command.Execute();
                }
            })), (IntPtr)GCHandle.Alloc(cmd), IntPtr.Zero);

            Gtk3Wrapper.gtk_accel_group_connect(_actionGroup, key, modifier, Gtk.AccelFlags.Mask, cclosure);
        }