Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 1452 | chris | 1 | #region --- License --- |
| 2 | /* Licensed under the MIT/X11 license. |
||
| 3 | * Copyright (c) 2006-2008 the OpenTK team. |
||
| 4 | * This notice may not be removed. |
||
| 5 | * See license.txt for licensing detailed licensing details. |
||
| 6 | */ |
||
| 7 | #endregion |
||
| 8 | |||
| 9 | using System; |
||
| 10 | using System.Collections.Generic; |
||
| 11 | using System.Text; |
||
| 12 | using System.Diagnostics; |
||
| 13 | |||
| 14 | using OpenTK.Input; |
||
| 15 | |||
| 16 | namespace OpenTK.Platform.X11 |
||
| 17 | { |
||
| 18 | internal class X11KeyMap : Dictionary<XKey, Key> |
||
| 19 | { |
||
| 20 | internal X11KeyMap() |
||
| 21 | { |
||
| 22 | try |
||
| 23 | { |
||
| 24 | this.Add(XKey.Escape, Key.Escape); |
||
| 25 | this.Add(XKey.Return, Key.Enter); |
||
| 26 | this.Add(XKey.space, Key.Space); |
||
| 27 | this.Add(XKey.BackSpace, Key.BackSpace); |
||
| 28 | |||
| 29 | this.Add(XKey.Shift_L, Key.ShiftLeft); |
||
| 30 | this.Add(XKey.Shift_R, Key.ShiftRight); |
||
| 31 | this.Add(XKey.Alt_L, Key.AltLeft); |
||
| 32 | this.Add(XKey.Alt_R, Key.AltRight); |
||
| 33 | this.Add(XKey.Control_L, Key.ControlLeft); |
||
| 34 | this.Add(XKey.Control_R, Key.ControlRight); |
||
| 35 | this.Add(XKey.Super_L, Key.WinLeft); |
||
| 36 | this.Add(XKey.Super_R, Key.WinRight); |
||
| 37 | this.Add(XKey.Meta_L, Key.WinLeft); |
||
| 38 | this.Add(XKey.Meta_R, Key.WinRight); |
||
| 39 | |||
| 40 | this.Add(XKey.Menu, Key.Menu); |
||
| 41 | this.Add(XKey.Tab, Key.Tab); |
||
| 42 | this.Add(XKey.minus, Key.Minus); |
||
| 43 | this.Add(XKey.plus, Key.Plus); |
||
| 44 | this.Add(XKey.equal, Key.Plus); |
||
| 45 | |||
| 46 | this.Add(XKey.Caps_Lock, Key.CapsLock); |
||
| 47 | this.Add(XKey.Num_Lock, Key.NumLock); |
||
| 48 | |||
| 49 | for (int i = (int)XKey.F1; i <= (int)XKey.F35; i++) |
||
| 50 | { |
||
| 51 | this.Add((XKey)i, (Key)((int)Key.F1 + (i - (int)XKey.F1))); |
||
| 52 | } |
||
| 53 | |||
| 54 | for (int i = (int)XKey.a; i <= (int)XKey.z; i++) |
||
| 55 | { |
||
| 56 | this.Add((XKey)i, (Key)((int)Key.A + (i - (int)XKey.a))); |
||
| 57 | } |
||
| 58 | |||
| 59 | for (int i = (int)XKey.A; i <= (int)XKey.Z; i++) |
||
| 60 | { |
||
| 61 | this.Add((XKey)i, (Key)((int)Key.A + (i - (int)XKey.A))); |
||
| 62 | } |
||
| 63 | |||
| 64 | for (int i = (int)XKey.Number0; i <= (int)XKey.Number9; i++) |
||
| 65 | { |
||
| 66 | this.Add((XKey)i, (Key)((int)Key.Number0 + (i - (int)XKey.Number0))); |
||
| 67 | } |
||
| 68 | |||
| 69 | for (int i = (int)XKey.KP_0; i <= (int)XKey.KP_9; i++) |
||
| 70 | { |
||
| 71 | this.Add((XKey)i, (Key)((int)Key.Keypad0 + (i - (int)XKey.KP_0))); |
||
| 72 | } |
||
| 73 | |||
| 74 | this.Add(XKey.Pause, Key.Pause); |
||
| 75 | this.Add(XKey.Break, Key.Pause); |
||
| 76 | this.Add(XKey.Scroll_Lock, Key.Pause); |
||
| 77 | this.Add(XKey.Insert, Key.PrintScreen); |
||
| 78 | this.Add(XKey.Print, Key.PrintScreen); |
||
| 79 | this.Add(XKey.Sys_Req, Key.PrintScreen); |
||
| 80 | |||
| 81 | this.Add(XKey.backslash, Key.BackSlash); |
||
| 82 | this.Add(XKey.bar, Key.BackSlash); |
||
| 83 | this.Add(XKey.braceleft, Key.BracketLeft); |
||
| 84 | this.Add(XKey.bracketleft, Key.BracketLeft); |
||
| 85 | this.Add(XKey.braceright, Key.BracketRight); |
||
| 86 | this.Add(XKey.bracketright, Key.BracketRight); |
||
| 87 | this.Add(XKey.colon, Key.Semicolon); |
||
| 88 | this.Add(XKey.semicolon, Key.Semicolon); |
||
| 89 | this.Add(XKey.quoteright, Key.Quote); |
||
| 90 | this.Add(XKey.quotedbl, Key.Quote); |
||
| 91 | this.Add(XKey.quoteleft, Key.Tilde); |
||
| 92 | this.Add(XKey.asciitilde, Key.Tilde); |
||
| 93 | |||
| 94 | this.Add(XKey.comma, Key.Comma); |
||
| 95 | this.Add(XKey.less, Key.Comma); |
||
| 96 | this.Add(XKey.period, Key.Period); |
||
| 97 | this.Add(XKey.greater, Key.Period); |
||
| 98 | this.Add(XKey.slash, Key.Slash); |
||
| 99 | this.Add(XKey.question, Key.Slash); |
||
| 100 | |||
| 101 | this.Add(XKey.Left, Key.Left); |
||
| 102 | this.Add(XKey.Down, Key.Down); |
||
| 103 | this.Add(XKey.Right, Key.Right); |
||
| 104 | this.Add(XKey.Up, Key.Up); |
||
| 105 | |||
| 106 | this.Add(XKey.Delete, Key.Delete); |
||
| 107 | this.Add(XKey.Home, Key.Home); |
||
| 108 | this.Add(XKey.End, Key.End); |
||
| 109 | //this.Add(XKey.Prior, Key.PageUp); // XKey.Prior == XKey.Page_Up |
||
| 110 | this.Add(XKey.Page_Up, Key.PageUp); |
||
| 111 | this.Add(XKey.Page_Down, Key.PageDown); |
||
| 112 | //this.Add(XKey.Next, Key.PageDown); // XKey.Next == XKey.Page_Down |
||
| 113 | |||
| 114 | this.Add(XKey.KP_Add, Key.KeypadAdd); |
||
| 115 | this.Add(XKey.KP_Subtract, Key.KeypadSubtract); |
||
| 116 | this.Add(XKey.KP_Multiply, Key.KeypadMultiply); |
||
| 117 | this.Add(XKey.KP_Divide, Key.KeypadDivide); |
||
| 118 | this.Add(XKey.KP_Decimal, Key.KeypadDecimal); |
||
| 119 | this.Add(XKey.KP_Insert, Key.Keypad0); |
||
| 120 | this.Add(XKey.KP_End, Key.Keypad1); |
||
| 121 | this.Add(XKey.KP_Down, Key.Keypad2); |
||
| 122 | this.Add(XKey.KP_Page_Down, Key.Keypad3); |
||
| 123 | this.Add(XKey.KP_Left, Key.Keypad4); |
||
| 124 | this.Add(XKey.KP_Right, Key.Keypad6); |
||
| 125 | this.Add(XKey.KP_Home, Key.Keypad7); |
||
| 126 | this.Add(XKey.KP_Up, Key.Keypad8); |
||
| 127 | this.Add(XKey.KP_Page_Up, Key.Keypad9); |
||
| 128 | this.Add(XKey.KP_Delete, Key.KeypadDecimal); |
||
| 129 | this.Add(XKey.KP_Enter, Key.KeypadEnter); |
||
| 130 | |||
| 131 | } |
||
| 132 | catch (ArgumentException e) |
||
| 133 | { |
||
| 134 | Debug.Print("Exception while creating keymap: '{0}'.", e.ToString()); |
||
| 135 | } |
||
| 136 | } |
||
| 137 | } |
||
| 138 | } |