/// <summary> /// Translates alphanumeric OpenTK key code to character value. /// </summary> /// <param name="key">OpenTK key code.</param> /// <returns>Translated character.</returns> private static char TranslateChar(global::OpenTK.Input.Key key) { if (key >= global::OpenTK.Input.Key.A && key <= global::OpenTK.Input.Key.Z) { return((char)('a' + ((int)key - (int)global::OpenTK.Input.Key.A))); } else if (key >= global::OpenTK.Input.Key.Number0 && key <= global::OpenTK.Input.Key.Number9) { return((char)('0' + ((int)key - (int)global::OpenTK.Input.Key.Number0))); } else if (key == global::OpenTK.Input.Key.BackSpace) { return((char)8); } else { switch (key) { case global::OpenTK.Input.Key.Period: return('.'); case global::OpenTK.Input.Key.Comma: return(','); } } return(char.MinValue); }
public bool ProcessKeyUp(global::OpenTK.Input.Key args) { // char ch = TranslateChar(args); //m_Canvas.Input_Character(ch); Key iKey = TranslateKeyCode(args); return(m_Canvas.Input_Key(iKey, false)); }
/// <summary> /// Translates alphanumeric OpenTK key code to character value. /// </summary> /// <param name="key">OpenTK key code.</param> /// <returns>Translated character.</returns> private static char TranslateChar(global::OpenTK.Input.Key key) { if (key >= global::OpenTK.Input.Key.A && key <= global::OpenTK.Input.Key.Z) { return((char)('a' + ((int)key - (int)global::OpenTK.Input.Key.A))); } return(' '); }
/// <summary> /// Translates alphanumeric OpenTK key code to AltGUI character value. /// </summary> /// <param name="key">OpenTK key code.</param> /// <returns>Translated character.</returns> static Keys TranslateKeyChar(global::OpenTK.Input.Key key) { if (key >= global::OpenTK.Input.Key.A && key <= global::OpenTK.Input.Key.Z) { return(Keys.A + ((int)key - (int)global::OpenTK.Input.Key.A)); } return(Keys.Space); }
/// <summary> /// Translates control key's OpenTK key code to GWEN's code. /// </summary> /// <param name="key">OpenTK key code.</param> /// <returns>GWEN key code.</returns> private Key TranslateKeyCode(global::OpenTK.Input.Key key) { switch (key) { case global::OpenTK.Input.Key.BackSpace: return(Key.Backspace); case global::OpenTK.Input.Key.Enter: return(Key.Return); case global::OpenTK.Input.Key.Escape: return(Key.Escape); case global::OpenTK.Input.Key.Tab: return(Key.Tab); case global::OpenTK.Input.Key.Space: return(Key.Space); case global::OpenTK.Input.Key.Up: return(Key.Up); case global::OpenTK.Input.Key.Down: return(Key.Down); case global::OpenTK.Input.Key.Left: return(Key.Left); case global::OpenTK.Input.Key.Right: return(Key.Right); case global::OpenTK.Input.Key.Home: return(Key.Home); case global::OpenTK.Input.Key.End: return(Key.End); case global::OpenTK.Input.Key.Delete: return(Key.Delete); case global::OpenTK.Input.Key.LControl: this.m_AltGr = true; return(Key.Control); case global::OpenTK.Input.Key.LAlt: return(Key.Alt); case global::OpenTK.Input.Key.LShift: return(Key.Shift); case global::OpenTK.Input.Key.RControl: return(Key.Control); case global::OpenTK.Input.Key.RAlt: if (this.m_AltGr) { this.m_Canvas.Input_Key(Key.Control, false); } return(Key.Alt); case global::OpenTK.Input.Key.RShift: return(Key.Shift); } return(Key.Invalid); }
public bool ProcessKeyDown(global::OpenTK.Input.Key args) { // KeyboardKeyEventArgs ev = args as KeyboardKeyEventArgs; char ch = TranslateChar(args); m_Canvas.Input_Character(ch); Console.WriteLine(ch); if (InputHandler.DoSpecialKeys(m_Canvas, ch)) { return(false); } Key iKey = TranslateKeyCode(args); return(m_Canvas.Input_Key(iKey, true)); }
Keys TranslateKeyCode(global::OpenTK.Input.Key key) { if (m_TranslateKeyCodeDict == null) { m_TranslateKeyCodeDict = new System.Collections.Generic.Dictionary <global::OpenTK.Input.Key, Keys>(); // A key outside the known keys. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Unknown, Keys.Unknown); // The left shift key (equivalent to ShiftLeft). m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.LShift, Keys.LShiftKey); // The left shift key. //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.ShiftLeft, Keys.LeftShift); // The right shift key (equivalent to ShiftRight). m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.RShift, Keys.RShiftKey); // The right shift key. //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.ShiftRight, Keys.RightShift); // The left control key (equivalent to ControlLeft). m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.LControl, Keys.LControlKey); // The left control key. //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.ControlLeft, Keys.LeftControl); // The right control key (equivalent to ControlRight). m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.RControl, Keys.RControlKey); // The right control key. //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.ControlRight, Keys.RightControl); // The left alt key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.AltLeft, Keys.LeftAlt); // The left alt key (equivalent to AltLeft. //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.LAlt, Keys.); // The right alt key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.AltRight, Keys.RightAlt); // The right alt key (equivalent to AltRight). //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.RAlt, Keys.); // The left win key. //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.WinLeft, Keys.); // The left win key (equivalent to WinLeft). m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.LWin, Keys.LWin); // The right win key (equivalent to WinRight). m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.RWin, Keys.RWin); // The right win key. //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.WinRight, Keys.); // The menu key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Menu, Keys.Menu); // The F1 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F1, Keys.F1); // The F2 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F2, Keys.F2); // The F3 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F3, Keys.F3); // The F4 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F4, Keys.F4); // The F5 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F5, Keys.F5); // The F6 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F6, Keys.F6); // The F7 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F7, Keys.F7); // The F8 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F8, Keys.F8); // The F9 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F9, Keys.F9); // The F10 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F10, Keys.F10); // The F11 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F11, Keys.F11); // The F12 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F12, Keys.F12); // The F13 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F13, Keys.F13); // The F14 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F14, Keys.F14); // The F15 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F15, Keys.F15); // The F16 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F16, Keys.F16); // The F17 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F17, Keys.F17); // The F18 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F18, Keys.F18); // The F19 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F19, Keys.F19); // The F20 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F20, Keys.F20); // The F21 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F21, Keys.F21); // The F22 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F22, Keys.F22); // The F23 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F23, Keys.F23); // The F24 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F24, Keys.F24); // The F25 key. //m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F25, Keys.); // The F26 key. //m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F26, Keys.); // The F27 key. //m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F27, Keys.); // The F28 key. //m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F28, Keys.); // The F29 key. //m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F29, Keys.); // The F30 key. //m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F30, Keys.); // The F31 key. //m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F31, Keys.); // The F32 key. //m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F32, Keys.); // The F33 key. //m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F33, Keys.); // The F34 key. //m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F34, Keys.); // The F35 key. //m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F35, Keys.); // The up arrow key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Up, Keys.Up); // The down arrow key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Down, Keys.Down); // The left arrow key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Left, Keys.Left); // The right arrow key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Right, Keys.Right); // The enter key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Enter, Keys.Enter); // The escape key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Escape, Keys.Escape); // The space key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Space, Keys.Space); // The tab key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Tab, Keys.Tab); // The backspace key (equivalent to BackSpace). //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Back, Keys.Back); // The backspace key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.BackSpace, Keys.Backspace); // The insert key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Insert, Keys.Insert); // The delete key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Delete, Keys.Delete); // The page up key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.PageUp, Keys.PageUp); // The page down key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.PageDown, Keys.PageDown); // The home key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Home, Keys.Home); // The end key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.End, Keys.End); // The caps lock key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.CapsLock, Keys.CapsLock); // The scroll lock key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.ScrollLock, Keys.ScrollLock); // The print screen key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.PrintScreen, Keys.PrintScreen); // The pause key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Pause, Keys.Pause); // The num lock key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.NumLock, Keys.NumLock); // The clear key (Keypad5 with NumLock disabled, on typical keyboards). m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Clear, Keys.Clear); // The sleep key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Sleep, Keys.Sleep); // The keypad 0 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Keypad0, Keys.NumPad0); // The keypad 1 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Keypad1, Keys.NumPad1); // The keypad 2 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Keypad2, Keys.NumPad2); // The keypad 3 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Keypad3, Keys.NumPad3); // The keypad 4 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Keypad4, Keys.NumPad4); // The keypad 5 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Keypad5, Keys.NumPad5); // The keypad 6 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Keypad6, Keys.NumPad6); // The keypad 7 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Keypad7, Keys.NumPad7); // The keypad 8 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Keypad8, Keys.NumPad8); // The keypad 9 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Keypad9, Keys.NumPad9); // The keypad divide key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.KeypadDivide, Keys.Divide); // The keypad multiply key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.KeypadMultiply, Keys.Multiply); // The keypad minus key (equivalent to KeypadSubtract). //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.KeypadMinus, Keys.); // The keypad subtract key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.KeypadSubtract, Keys.Subtract); // The keypad add key. //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.KeypadAdd, Keys.Add); // The keypad plus key (equivalent to KeypadAdd). m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.KeypadPlus, Keys.Plus); // The keypad decimal key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.KeypadDecimal, Keys.Decimal); // The keypad enter key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.KeypadEnter, Keys.Enter); // The A key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.A, Keys.A); // The B key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.B, Keys.B); // The C key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.C, Keys.C); // The D key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.D, Keys.D); // The E key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.E, Keys.E); // The F key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.F, Keys.F); // The G key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.G, Keys.G); // The H key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.H, Keys.H); // The I key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.I, Keys.I); // The J key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.J, Keys.J); // The K key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.K, Keys.K); // The L key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.L, Keys.L); // The M key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.M, Keys.M); // The N key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.N, Keys.N); // The O key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.O, Keys.O); // The P key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.P, Keys.P); // The Q key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Q, Keys.Q); // The R key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.R, Keys.R); // The S key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.S, Keys.S); // The T key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.T, Keys.T); // The U key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.U, Keys.U); // The V key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.V, Keys.V); // The W key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.W, Keys.W); // The X key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.X, Keys.X); // The Y key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Y, Keys.Y); // The Z key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Z, Keys.Z); // The number 0 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Number0, Keys.D0); // The number 1 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Number1, Keys.D1); // The number 2 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Number2, Keys.D2); // The number 3 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Number3, Keys.D3); // The number 4 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Number4, Keys.D4); // The number 5 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Number5, Keys.D5); // The number 6 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Number6, Keys.D6); // The number 7 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Number7, Keys.D7); // The number 8 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Number8, Keys.D8); // The number 9 key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Number9, Keys.D9); // The tilde key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Tilde, Keys.Tilde); // The minus key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Minus, Keys.Subtract); // The plus key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Plus, Keys.Plus); // The left bracket key (equivalent to BracketLeft). m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.LBracket, Keys.OpenBracket); // The left bracket key. //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.BracketLeft, Keys.); // The right bracket key. //DUPLICATE m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.BracketRight, Keys.); // The right bracket key (equivalent to BracketRight). m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.RBracket, Keys.CloseBracket); // The semicolon key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Semicolon, Keys.Semicolon); // The quote key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Quote, Keys.Quotes); // The comma key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Comma, Keys.Comma); // The period key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Period, Keys.Period); // The slash key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.Slash, Keys.Pipe); // The backslash key. m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.BackSlash, Keys.Backslash); // Indicates the last available keyboard key. //m_TranslateKeyCodeDict.Add(global::OpenTK.Input.Key.LastKey, Keys.); } Keys keys; if (m_TranslateKeyCodeDict.TryGetValue(key, out keys)) { return(keys); } return((Keys)key); }