#region License // // The Open Toolkit Library License // // Copyright (c) 2006 - 2010 the Open Toolkit library. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // the Software, and to permit persons to whom the Software is furnished to do // so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR // OTHER DEALINGS IN THE SOFTWARE. // #endregion // Created by Erik Ylvisaker on 3/17/08. using System; using System.Collections.Generic; using System.Text; namespace OpenTK.Platform.MacOS { using Carbon; using Input; static class MacOSKeyMap { public static Key GetKey(MacOSKeyCode code) { // comments indicate members of the Key enum that are missing switch (code) { case MacOSKeyCode.A: return Key.A; case MacOSKeyCode.OptionAlt: return Key.AltLeft; // AltRight case MacOSKeyCode.B: return Key.B; case MacOSKeyCode.Backslash: return Key.BackSlash; case MacOSKeyCode.Backspace: return Key.BackSpace; case MacOSKeyCode.BracketLeft: return Key.BracketLeft; case MacOSKeyCode.BracketRight: return Key.BracketRight; case MacOSKeyCode.C: return Key.C; // Capslock // Clear case MacOSKeyCode.Comma: return Key.Comma; case MacOSKeyCode.Control: return Key.ControlLeft; // ControlRight case MacOSKeyCode.D: return Key.D; case MacOSKeyCode.Del: return Key.Delete; case MacOSKeyCode.Down: return Key.Down; case MacOSKeyCode.E: return Key.E; case MacOSKeyCode.End: return Key.End; case MacOSKeyCode.Enter: return Key.Enter; case MacOSKeyCode.Return: return Key.Enter; case MacOSKeyCode.Esc: return Key.Escape; case MacOSKeyCode.F: return Key.F; case MacOSKeyCode.F1: return Key.F1; case MacOSKeyCode.F2: return Key.F2; case MacOSKeyCode.F3: return Key.F3; case MacOSKeyCode.F4: return Key.F4; case MacOSKeyCode.F5: return Key.F5; case MacOSKeyCode.F6: return Key.F6; case MacOSKeyCode.F7: return Key.F7; case MacOSKeyCode.F8: return Key.F8; case MacOSKeyCode.F9: return Key.F9; case MacOSKeyCode.F10: return Key.F10; case MacOSKeyCode.F11: return Key.F11; case MacOSKeyCode.F12: return Key.F12; case MacOSKeyCode.F13: return Key.F13; case MacOSKeyCode.F14: return Key.F14; case MacOSKeyCode.F15: return Key.F15; // F16-F35 case MacOSKeyCode.G: return Key.G; case MacOSKeyCode.H: return Key.H; case MacOSKeyCode.Home: return Key.Home; case MacOSKeyCode.I: return Key.I; case MacOSKeyCode.Insert: return Key.Insert; case MacOSKeyCode.J: return Key.J; case MacOSKeyCode.K: return Key.K; case MacOSKeyCode.KeyPad_0: return Key.Keypad0; case MacOSKeyCode.KeyPad_1: return Key.Keypad1; case MacOSKeyCode.KeyPad_2: return Key.Keypad2; case MacOSKeyCode.KeyPad_3: return Key.Keypad3; case MacOSKeyCode.KeyPad_4: return Key.Keypad4; case MacOSKeyCode.KeyPad_5: return Key.Keypad5; case MacOSKeyCode.KeyPad_6: return Key.Keypad6; case MacOSKeyCode.KeyPad_7: return Key.Keypad7; case MacOSKeyCode.KeyPad_8: return Key.Keypad8; case MacOSKeyCode.KeyPad_9: return Key.Keypad9; case MacOSKeyCode.KeyPad_Add: return Key.KeypadAdd; case MacOSKeyCode.KeyPad_Decimal: return Key.KeypadDecimal; case MacOSKeyCode.KeyPad_Divide: return Key.KeypadDivide; case MacOSKeyCode.KeyPad_Enter: return Key.KeypadEnter; case MacOSKeyCode.KeyPad_Multiply: return Key.KeypadMultiply; case MacOSKeyCode.KeyPad_Subtract: return Key.KeypadSubtract; //case MacOSKeyCode.KeyPad_Equal; case MacOSKeyCode.L: return Key.L; case MacOSKeyCode.Left: return Key.Left; case MacOSKeyCode.M: return Key.M; //Key.MaxKeys case MacOSKeyCode.Menu: return Key.Menu; case MacOSKeyCode.Minus: return Key.Minus; case MacOSKeyCode.N: return Key.N; case MacOSKeyCode.Key_0: return Key.Number0; case MacOSKeyCode.Key_1: return Key.Number1; case MacOSKeyCode.Key_2: return Key.Number2; case MacOSKeyCode.Key_3: return Key.Number3; case MacOSKeyCode.Key_4: return Key.Number4; case MacOSKeyCode.Key_5: return Key.Number5; case MacOSKeyCode.Key_6: return Key.Number6; case MacOSKeyCode.Key_7: return Key.Number7; case MacOSKeyCode.Key_8: return Key.Number8; case MacOSKeyCode.Key_9: return Key.Number9; // Numlock case MacOSKeyCode.O: return Key.O; case MacOSKeyCode.P: return Key.P; case MacOSKeyCode.Pagedown: return Key.PageDown; case MacOSKeyCode.Pageup: return Key.PageUp; // Pause case MacOSKeyCode.Period: return Key.Period; case MacOSKeyCode.Equals: return Key.Plus; // PrintScreen case MacOSKeyCode.Q: return Key.Q; case MacOSKeyCode.Quote: return Key.Quote; case MacOSKeyCode.R: return Key.R; case MacOSKeyCode.Right: return Key.Right; case MacOSKeyCode.S: return Key.S; // ScrollLock case MacOSKeyCode.Semicolon: return Key.Semicolon; case MacOSKeyCode.Shift: return Key.ShiftLeft; //Key.ShiftRight case MacOSKeyCode.Slash: return Key.Slash; // Key.Sleep case MacOSKeyCode.Space: return Key.Space; case MacOSKeyCode.T: return Key.T; case MacOSKeyCode.Tab: return Key.Tab; case MacOSKeyCode.Tilde: return Key.Tilde; case MacOSKeyCode.U: return Key.U; case MacOSKeyCode.Up: return Key.Up; case MacOSKeyCode.V: return Key.V; case MacOSKeyCode.W: return Key.W; case MacOSKeyCode.Command: return Key.WinLeft; // WinKeyRight case MacOSKeyCode.X: return Key.X; case MacOSKeyCode.Y: return Key.Y; case MacOSKeyCode.Z: return Key.Z; default: return Key.Unknown; } } } }