Exemple #1
0
        public static NSEventModifierFlags GetModifier(ModifierKey key)
        {
            NSEventModifierFlags result = NSEventModifierFlags.None;

            foreach (var flag in EnumTools.GetFlags(key))
            {
                switch (flag)
                {
                case ModifierKey.None:
                    continue;

                case ModifierKey.Shift:
                    result |= NSEventModifierFlags.Shift;
                    break;

                case ModifierKey.Control:
                    result |= NSEventModifierFlags.Control;
                    break;

                case ModifierKey.Alt:
                    result |= NSEventModifierFlags.Option;
                    break;

                case ModifierKey.Super:
                case ModifierKey.Primary:
                    result |= NSEventModifierFlags.Command;
                    break;

                default:
                    throw new NotSupportedException($"Unsupported modifier key: \"{flag}\"");
                }
            }

            return(result);
        }
Exemple #2
0
        public void SetShortcut(ModifierKey modifier, Key key)
        {
            NSEventModifierFlags nsModifier = KeyMapper.GetModifier(modifier);
            string mappedKey = KeyMapper.GetKey(key);

            ObjC.Call(Handle, "setKeyEquivalentModifierMask:", new UIntPtr((ulong)nsModifier));
            ObjC.Call(Handle, "setKeyEquivalent:", NSString.Create(mappedKey));
        }
 protected abstract void SetShortcut(NSEventModifierFlags modifier, string key);
Exemple #4
0
 protected override void SetShortcut(NSEventModifierFlags modifier, string key)
 {
     // ignore: no shortcuts for the base menu class
 }
 protected override void SetShortcut(NSEventModifierFlags modifier, string key)
 {
     ObjC.Call(Handle, "setKeyEquivalentModifierMask:", new UIntPtr((ulong)modifier));
     ObjC.Call(Handle, "setKeyEquivalent:", NSString.Create(key));
 }