/// <summary> /// Translates a virtual key to the corresponding native key code. /// </summary> /// <param name="key">Specifies the virtual key.</param> /// <param name="extended">The extended key flag.</param> /// <returns>A XKB scan code.</returns> public static int GetMacOSNativeKeyCode(VirtualKeys key, bool extended) { MacOSVirtualKey vkcode = MacOS.KeyInterop.WindowsKeyToMacOSKey(key, extended); if (vkcode != MacOSVirtualKey.Invalid) { return((int)vkcode); } return(0); }
/// <summary> /// Converts a macOS virtual keycode into a Windows virtual Key. /// </summary> /// <param name="key">The <see cref="MacOSVirtualKey"/> to convert.</param> /// <returns>The virtual key.</returns> public static VirtualKeys MacOSKeyToWindowsKey(MacOSVirtualKey key) { switch (key) { case MacOSVirtualKey.A: return(VirtualKeys.A); case MacOSVirtualKey.S: return(VirtualKeys.S); case MacOSVirtualKey.D: return(VirtualKeys.D); case MacOSVirtualKey.F: return(VirtualKeys.F); case MacOSVirtualKey.H: return(VirtualKeys.H); case MacOSVirtualKey.G: return(VirtualKeys.G); case MacOSVirtualKey.Z: return(VirtualKeys.Z); case MacOSVirtualKey.X: return(VirtualKeys.X); case MacOSVirtualKey.C: return(VirtualKeys.C); case MacOSVirtualKey.V: return(VirtualKeys.V); case MacOSVirtualKey.B: return(VirtualKeys.B); case MacOSVirtualKey.Q: return(VirtualKeys.Q); case MacOSVirtualKey.W: return(VirtualKeys.W); case MacOSVirtualKey.E: return(VirtualKeys.E); case MacOSVirtualKey.R: return(VirtualKeys.R); case MacOSVirtualKey.Y: return(VirtualKeys.Y); case MacOSVirtualKey.T: return(VirtualKeys.T); case MacOSVirtualKey.D1: return(VirtualKeys.D1); case MacOSVirtualKey.D2: return(VirtualKeys.D2); case MacOSVirtualKey.D3: return(VirtualKeys.D3); case MacOSVirtualKey.D4: return(VirtualKeys.D4); case MacOSVirtualKey.D6: return(VirtualKeys.D6); case MacOSVirtualKey.D5: return(VirtualKeys.D5); case MacOSVirtualKey.Equal: return(VirtualKeys.OemPlus); case MacOSVirtualKey.D9: return(VirtualKeys.D9); case MacOSVirtualKey.D7: return(VirtualKeys.D7); case MacOSVirtualKey.Minus: return(VirtualKeys.OemMinus); case MacOSVirtualKey.D8: return(VirtualKeys.D8); case MacOSVirtualKey.D0: return(VirtualKeys.D0); case MacOSVirtualKey.RightBracket: return(VirtualKeys.OemCloseBrackets); case MacOSVirtualKey.O: return(VirtualKeys.O); case MacOSVirtualKey.U: return(VirtualKeys.U); case MacOSVirtualKey.LeftBracket: return(VirtualKeys.OemOpenBrackets); case MacOSVirtualKey.I: return(VirtualKeys.I); case MacOSVirtualKey.P: return(VirtualKeys.P); case MacOSVirtualKey.L: return(VirtualKeys.L); case MacOSVirtualKey.J: return(VirtualKeys.J); case MacOSVirtualKey.Quote: return(VirtualKeys.OemQuotes); case MacOSVirtualKey.K: return(VirtualKeys.K); case MacOSVirtualKey.Semicolon: return(VirtualKeys.OemSemicolon); case MacOSVirtualKey.Backslash: return(VirtualKeys.OemBackslash); case MacOSVirtualKey.Comma: return(VirtualKeys.OemComma); case MacOSVirtualKey.Slash: return(VirtualKeys.Oem2); case MacOSVirtualKey.N: return(VirtualKeys.N); case MacOSVirtualKey.M: return(VirtualKeys.M); case MacOSVirtualKey.Period: return(VirtualKeys.OemPeriod); case MacOSVirtualKey.Grave: return(VirtualKeys.OemTilde); case MacOSVirtualKey.KeypadDecimal: return(VirtualKeys.OemComma); case MacOSVirtualKey.KeypadMultiply: return(VirtualKeys.Multiply); case MacOSVirtualKey.KeypadPlus: return(VirtualKeys.OemPlus); case MacOSVirtualKey.KeypadClear: return(VirtualKeys.Clear); case MacOSVirtualKey.KeypadDivide: return(VirtualKeys.Divide); case MacOSVirtualKey.KeypadEnter: return(VirtualKeys.Enter); case MacOSVirtualKey.KeypadMinus: return(VirtualKeys.OemMinus); case MacOSVirtualKey.KeypadEquals: return(VirtualKeys.Add); case MacOSVirtualKey.Keypad0: return(VirtualKeys.NumPad0); case MacOSVirtualKey.Keypad1: return(VirtualKeys.NumPad1); case MacOSVirtualKey.Keypad2: return(VirtualKeys.NumPad2); case MacOSVirtualKey.Keypad3: return(VirtualKeys.NumPad3); case MacOSVirtualKey.Keypad4: return(VirtualKeys.NumPad4); case MacOSVirtualKey.Keypad5: return(VirtualKeys.NumPad5); case MacOSVirtualKey.Keypad6: return(VirtualKeys.NumPad6); case MacOSVirtualKey.Keypad7: return(VirtualKeys.NumPad7); case MacOSVirtualKey.Keypad8: return(VirtualKeys.NumPad8); case MacOSVirtualKey.Keypad9: return(VirtualKeys.NumPad9); case MacOSVirtualKey.Return: return(VirtualKeys.Return); case MacOSVirtualKey.Tab: return(VirtualKeys.Tab); case MacOSVirtualKey.Space: return(VirtualKeys.Space); case MacOSVirtualKey.Delete: return(VirtualKeys.Back); case MacOSVirtualKey.Escape: return(VirtualKeys.Escape); case MacOSVirtualKey.Command: return(VirtualKeys.LWin); case MacOSVirtualKey.Shift: return(VirtualKeys.LShiftKey); case MacOSVirtualKey.CapsLock: return(VirtualKeys.CapsLock); case MacOSVirtualKey.Option: return(VirtualKeys.LMenu); case MacOSVirtualKey.Control: return(VirtualKeys.LControlKey); case MacOSVirtualKey.RightShift: return(VirtualKeys.RShiftKey); case MacOSVirtualKey.RightOption: return(VirtualKeys.RMenu); case MacOSVirtualKey.RightControl: return(VirtualKeys.RControlKey); case MacOSVirtualKey.F17: return(VirtualKeys.F17); case MacOSVirtualKey.VolumeUp: return(VirtualKeys.VolumeUp); case MacOSVirtualKey.VolumeDown: return(VirtualKeys.VolumeDown); case MacOSVirtualKey.Mute: return(VirtualKeys.VolumeMute); case MacOSVirtualKey.F18: return(VirtualKeys.F18); case MacOSVirtualKey.F19: return(VirtualKeys.F19); case MacOSVirtualKey.F20: return(VirtualKeys.F20); case MacOSVirtualKey.F5: return(VirtualKeys.F5); case MacOSVirtualKey.F6: return(VirtualKeys.F6); case MacOSVirtualKey.F7: return(VirtualKeys.F7); case MacOSVirtualKey.F3: return(VirtualKeys.F3); case MacOSVirtualKey.F8: return(VirtualKeys.F8); case MacOSVirtualKey.F9: return(VirtualKeys.F9); case MacOSVirtualKey.F11: return(VirtualKeys.F11); case MacOSVirtualKey.F13: return(VirtualKeys.F13); case MacOSVirtualKey.F16: return(VirtualKeys.F16); case MacOSVirtualKey.F14: return(VirtualKeys.F14); case MacOSVirtualKey.F10: return(VirtualKeys.F10); case MacOSVirtualKey.F12: return(VirtualKeys.F12); case MacOSVirtualKey.F15: return(VirtualKeys.F15); case MacOSVirtualKey.Help: return(VirtualKeys.Help); case MacOSVirtualKey.Home: return(VirtualKeys.Home); case MacOSVirtualKey.PageUp: return(VirtualKeys.PageUp); case MacOSVirtualKey.ForwardDelete: return(VirtualKeys.Delete); case MacOSVirtualKey.F4: return(VirtualKeys.F4); case MacOSVirtualKey.End: return(VirtualKeys.End); case MacOSVirtualKey.F2: return(VirtualKeys.F2); case MacOSVirtualKey.PageDown: return(VirtualKeys.PageDown); case MacOSVirtualKey.F1: return(VirtualKeys.F1); case MacOSVirtualKey.LeftArrow: return(VirtualKeys.Left); case MacOSVirtualKey.RightArrow: return(VirtualKeys.Right); case MacOSVirtualKey.DownArrow: return(VirtualKeys.Down); case MacOSVirtualKey.UpArrow: return(VirtualKeys.Up); case MacOSVirtualKey.JISKana: return(VirtualKeys.KanaMode); } return(VirtualKeys.None); }