Beispiel #1
0
            InputModifiers GetModifiers(NSEventModifierMask mod)
            {
                var rv = new InputModifiers();

                if (mod.HasFlag(NSEventModifierMask.ControlKeyMask))
                {
                    rv |= InputModifiers.Control;
                }
                if (mod.HasFlag(NSEventModifierMask.ShiftKeyMask))
                {
                    rv |= InputModifiers.Shift;
                }
                if (mod.HasFlag(NSEventModifierMask.AlternateKeyMask))
                {
                    rv |= InputModifiers.Alt;
                }
                if (mod.HasFlag(NSEventModifierMask.CommandKeyMask))
                {
                    rv |= InputModifiers.Windows;
                }

                if (_isLeftPressed)
                {
                    rv |= InputModifiers.LeftMouseButton;
                }
                if (_isMiddlePressed)
                {
                    rv |= InputModifiers.MiddleMouseButton;
                }
                if (_isRightPressed)
                {
                    rv |= InputModifiers.RightMouseButton;
                }
                return(rv);
            }
Beispiel #2
0
 static Xwt.ModifierKeys TranslateMask(NSEventModifierMask mask)
 {
     Xwt.ModifierKeys xwtMask = Xwt.ModifierKeys.None;
     if (mask.HasFlag(NSEventModifierMask.CommandKeyMask))
     {
         xwtMask |= Xwt.ModifierKeys.Command;
     }
     if (mask.HasFlag(NSEventModifierMask.ControlKeyMask))
     {
         xwtMask |= Xwt.ModifierKeys.Control;
     }
     if (mask.HasFlag(NSEventModifierMask.ShiftKeyMask))
     {
         xwtMask |= Xwt.ModifierKeys.Shift;
     }
     if (mask.HasFlag(NSEventModifierMask.AlternateKeyMask))
     {
         xwtMask |= Xwt.ModifierKeys.Alt;
     }
     return(xwtMask);
 }
Beispiel #3
0
        public static Keys ToEto(this NSEventModifierMask mask)
        {
            Keys key = Keys.None;

            if (mask.HasFlag(NSEventModifierMask.ControlKeyMask))
            {
                key |= Keys.Control;
            }
            if (mask.HasFlag(NSEventModifierMask.CommandKeyMask))
            {
                key |= Keys.Application;
            }
            if (mask.HasFlag(NSEventModifierMask.ShiftKeyMask))
            {
                key |= Keys.Shift;
            }
            if (mask.HasFlag(NSEventModifierMask.AlternateKeyMask))
            {
                key |= Keys.Alt;
            }
            return(key);
        }
Beispiel #4
0
        public static ModifierKeys ToXwtValue(this NSEventModifierMask e)
        {
            ModifierKeys m = ModifierKeys.None;

            if (e.HasFlag(NSEventModifierMask.ControlKeyMask))
            {
                m |= ModifierKeys.Control;
            }
            if (e.HasFlag(NSEventModifierMask.AlternateKeyMask))
            {
                m |= ModifierKeys.Alt;
            }
            if (e.HasFlag(NSEventModifierMask.CommandKeyMask))
            {
                m |= ModifierKeys.Command;
            }
            if (e.HasFlag(NSEventModifierMask.ShiftKeyMask))
            {
                m |= ModifierKeys.Shift;
            }
            return(m);
        }
Beispiel #5
0
        internal static VimKeyModifiers ConvertToKeyModifiers(NSEventModifierMask keys)
        {
            var res = VimKeyModifiers.None;

            if (keys.HasFlag(NSEventModifierMask.ShiftKeyMask))
            {
                res |= VimKeyModifiers.Shift;
            }
            if (keys.HasFlag(NSEventModifierMask.AlternateKeyMask))
            {
                res |= VimKeyModifiers.Alt;
            }
            if (keys.HasFlag(NSEventModifierMask.ControlKeyMask))
            {
                res |= VimKeyModifiers.Control;
            }
            if (keys.HasFlag(NSEventModifierMask.CommandKeyMask))
            {
                res |= VimKeyModifiers.Command;
            }
            return(res);
        }
Beispiel #6
0
        public static Keys MapKey(ushort key, NSEventModifierMask modifiers)
        {
            Keys value;

            if (Map.TryGetValue(key, out value))
            {
                // special case, fn+return is usually interpreted as insert key on macOS, even though it is actually enter.
                if (value == Keys.Enter && modifiers.HasFlag(NSEventModifierMask.FunctionKeyMask))
                {
                    return(Keys.Insert);
                }
                return(value);
            }
            Debug.WriteLine($"Unknown key '{key}'");
            return(Keys.None);
        }