Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 1452 | chris | 1 | #region --- License --- |
| 2 | /* Copyright (c) 2007 Stefanos Apostolopoulos |
||
| 3 | * See license.txt for license information |
||
| 4 | */ |
||
| 5 | #endregion |
||
| 6 | |||
| 7 | using System; |
||
| 8 | using System.Collections.Generic; |
||
| 9 | using System.Text; |
||
| 10 | using OpenTK.Platform.Windows; |
||
| 11 | using OpenTK.Input; |
||
| 12 | using System.Diagnostics; |
||
| 13 | |||
| 14 | namespace OpenTK.Platform.Windows |
||
| 15 | { |
||
| 16 | internal class WinKeyMap : Dictionary<VirtualKeys, Input.Key> |
||
| 17 | { |
||
| 18 | /// <summary> |
||
| 19 | /// Initializes the map between VirtualKeys and OpenTK.Key |
||
| 20 | /// </summary> |
||
| 21 | internal WinKeyMap() |
||
| 22 | { |
||
| 23 | try |
||
| 24 | { |
||
| 25 | this.Add(VirtualKeys.ESCAPE, Key.Escape); |
||
| 26 | |||
| 27 | // Function keys |
||
| 28 | for (int i = 0; i < 24; i++) |
||
| 29 | { |
||
| 30 | this.Add((VirtualKeys)((int)VirtualKeys.F1 + i), Key.F1 + i); |
||
| 31 | } |
||
| 32 | |||
| 33 | // Number keys (0-9) |
||
| 34 | for (int i = 0; i <= 9; i++) |
||
| 35 | { |
||
| 36 | this.Add((VirtualKeys)(0x30 + i), Key.Number0 + i); |
||
| 37 | } |
||
| 38 | |||
| 39 | // Letters (A-Z) |
||
| 40 | for (int i = 0; i < 26; i++) |
||
| 41 | { |
||
| 42 | this.Add((VirtualKeys)(0x41 + i), Key.A + i); |
||
| 43 | } |
||
| 44 | |||
| 45 | this.Add(VirtualKeys.TAB, Key.Tab); |
||
| 46 | this.Add(VirtualKeys.CAPITAL, Key.CapsLock); |
||
| 47 | this.Add(VirtualKeys.LCONTROL, Key.ControlLeft); |
||
| 48 | this.Add(VirtualKeys.LSHIFT, Key.ShiftLeft); |
||
| 49 | this.Add(VirtualKeys.LWIN, Key.WinLeft); |
||
| 50 | this.Add(VirtualKeys.LMENU, Key.AltLeft); |
||
| 51 | this.Add(VirtualKeys.SPACE, Key.Space); |
||
| 52 | this.Add(VirtualKeys.RMENU, Key.AltRight); |
||
| 53 | this.Add(VirtualKeys.RWIN, Key.WinRight); |
||
| 54 | this.Add(VirtualKeys.APPS, Key.Menu); |
||
| 55 | this.Add(VirtualKeys.RCONTROL, Key.ControlRight); |
||
| 56 | this.Add(VirtualKeys.RSHIFT, Key.ShiftRight); |
||
| 57 | this.Add(VirtualKeys.RETURN, Key.Enter); |
||
| 58 | this.Add(VirtualKeys.BACK, Key.BackSpace); |
||
| 59 | |||
| 60 | this.Add(VirtualKeys.OEM_1, Key.Semicolon); // Varies by keyboard, ;: on Win2K/US |
||
| 61 | this.Add(VirtualKeys.OEM_2, Key.Slash); // Varies by keyboard, /? on Win2K/US |
||
| 62 | this.Add(VirtualKeys.OEM_3, Key.Tilde); // Varies by keyboard, `~ on Win2K/US |
||
| 63 | this.Add(VirtualKeys.OEM_4, Key.BracketLeft); // Varies by keyboard, [{ on Win2K/US |
||
| 64 | this.Add(VirtualKeys.OEM_5, Key.BackSlash); // Varies by keyboard, \| on Win2K/US |
||
| 65 | this.Add(VirtualKeys.OEM_6, Key.BracketRight); // Varies by keyboard, ]} on Win2K/US |
||
| 66 | this.Add(VirtualKeys.OEM_7, Key.Quote); // Varies by keyboard, '" on Win2K/US |
||
| 67 | this.Add(VirtualKeys.OEM_PLUS, Key.Plus); // Invariant: + |
||
| 68 | this.Add(VirtualKeys.OEM_COMMA, Key.Comma); // Invariant: , |
||
| 69 | this.Add(VirtualKeys.OEM_MINUS, Key.Minus); // Invariant: - |
||
| 70 | this.Add(VirtualKeys.OEM_PERIOD, Key.Period); // Invariant: . |
||
| 71 | |||
| 72 | this.Add(VirtualKeys.HOME, Key.Home); |
||
| 73 | this.Add(VirtualKeys.END, Key.End); |
||
| 74 | this.Add(VirtualKeys.DELETE, Key.Delete); |
||
| 75 | this.Add(VirtualKeys.PRIOR, Key.PageUp); |
||
| 76 | this.Add(VirtualKeys.NEXT, Key.PageDown); |
||
| 77 | this.Add(VirtualKeys.PRINT, Key.PrintScreen); |
||
| 78 | this.Add(VirtualKeys.PAUSE, Key.Pause); |
||
| 79 | this.Add(VirtualKeys.NUMLOCK, Key.NumLock); |
||
| 80 | |||
| 81 | this.Add(VirtualKeys.SCROLL, Key.ScrollLock); |
||
| 82 | this.Add(VirtualKeys.SNAPSHOT, Key.PrintScreen); |
||
| 83 | this.Add(VirtualKeys.CLEAR, Key.Clear); |
||
| 84 | this.Add(VirtualKeys.INSERT, Key.Insert); |
||
| 85 | |||
| 86 | this.Add(VirtualKeys.SLEEP, Key.Sleep); |
||
| 87 | |||
| 88 | // Keypad |
||
| 89 | for (int i = 0; i <= 9; i++) |
||
| 90 | { |
||
| 91 | this.Add((VirtualKeys)((int)VirtualKeys.NUMPAD0 + i), Key.Keypad0 + i); |
||
| 92 | } |
||
| 93 | this.Add(VirtualKeys.DECIMAL, Key.KeypadDecimal); |
||
| 94 | this.Add(VirtualKeys.ADD, Key.KeypadAdd); |
||
| 95 | this.Add(VirtualKeys.SUBTRACT, Key.KeypadSubtract); |
||
| 96 | this.Add(VirtualKeys.DIVIDE, Key.KeypadDivide); |
||
| 97 | this.Add(VirtualKeys.MULTIPLY, Key.KeypadMultiply); |
||
| 98 | |||
| 99 | // Navigation |
||
| 100 | this.Add(VirtualKeys.UP, Key.Up); |
||
| 101 | this.Add(VirtualKeys.DOWN, Key.Down); |
||
| 102 | this.Add(VirtualKeys.LEFT, Key.Left); |
||
| 103 | this.Add(VirtualKeys.RIGHT, Key.Right); |
||
| 104 | } |
||
| 105 | catch (ArgumentException e) |
||
| 106 | { |
||
| 107 | Debug.Print("Exception while creating keymap: '{0}'.", e.ToString()); |
||
| 108 | System.Windows.Forms.MessageBox.Show( |
||
| 109 | String.Format("Exception while creating keymap: '{0}'.", e.ToString())); |
||
| 110 | } |
||
| 111 | } |
||
| 112 | } |
||
| 113 | } |