00001 #region --- License ---
00002
00003
00004
00005
00006
00007 #endregion
00008
00009 using System;
00010 using System.Collections.Generic;
00011 using System.Text;
00012 using System.Diagnostics;
00013
00014 using OpenTK.Input;
00015
00016 namespace OpenTK.Platform.X11
00017 {
00018 internal class X11KeyMap : Dictionary<XKey, Key>
00019 {
00020 internal X11KeyMap()
00021 {
00022 try
00023 {
00024 this.Add(XKey.Escape, Key.Escape);
00025 this.Add(XKey.Return, Key.Enter);
00026 this.Add(XKey.space, Key.Space);
00027 this.Add(XKey.BackSpace, Key.BackSpace);
00028
00029 this.Add(XKey.Shift_L, Key.ShiftLeft);
00030 this.Add(XKey.Shift_R, Key.ShiftRight);
00031 this.Add(XKey.Alt_L, Key.AltLeft);
00032 this.Add(XKey.Alt_R, Key.AltRight);
00033 this.Add(XKey.Control_L, Key.ControlLeft);
00034 this.Add(XKey.Control_R, Key.ControlRight);
00035 this.Add(XKey.Super_L, Key.WinLeft);
00036 this.Add(XKey.Super_R, Key.WinRight);
00037 this.Add(XKey.Meta_L, Key.WinLeft);
00038 this.Add(XKey.Meta_R, Key.WinRight);
00039
00040 this.Add(XKey.Menu, Key.Menu);
00041 this.Add(XKey.Tab, Key.Tab);
00042 this.Add(XKey.minus, Key.Minus);
00043 this.Add(XKey.plus, Key.Plus);
00044 this.Add(XKey.equal, Key.Plus);
00045
00046 this.Add(XKey.Caps_Lock, Key.CapsLock);
00047 this.Add(XKey.Num_Lock, Key.NumLock);
00048
00049 for (int i = (int)XKey.F1; i <= (int)XKey.F35; i++)
00050 {
00051 this.Add((XKey)i, (Key)((int)Key.F1 + (i - (int)XKey.F1)));
00052 }
00053
00054 for (int i = (int)XKey.a; i <= (int)XKey.z; i++)
00055 {
00056 this.Add((XKey)i, (Key)((int)Key.A + (i - (int)XKey.a)));
00057 }
00058
00059 for (int i = (int)XKey.A; i <= (int)XKey.Z; i++)
00060 {
00061 this.Add((XKey)i, (Key)((int)Key.A + (i - (int)XKey.A)));
00062 }
00063
00064 for (int i = (int)XKey.Number0; i <= (int)XKey.Number9; i++)
00065 {
00066 this.Add((XKey)i, (Key)((int)Key.Number0 + (i - (int)XKey.Number0)));
00067 }
00068
00069 for (int i = (int)XKey.KP_0; i <= (int)XKey.KP_9; i++)
00070 {
00071 this.Add((XKey)i, (Key)((int)Key.Keypad0 + (i - (int)XKey.KP_0)));
00072 }
00073
00074 this.Add(XKey.Pause, Key.Pause);
00075 this.Add(XKey.Break, Key.Pause);
00076 this.Add(XKey.Scroll_Lock, Key.Pause);
00077 this.Add(XKey.Insert, Key.PrintScreen);
00078 this.Add(XKey.Print, Key.PrintScreen);
00079 this.Add(XKey.Sys_Req, Key.PrintScreen);
00080
00081 this.Add(XKey.backslash, Key.BackSlash);
00082 this.Add(XKey.bar, Key.BackSlash);
00083 this.Add(XKey.braceleft, Key.BracketLeft);
00084 this.Add(XKey.bracketleft, Key.BracketLeft);
00085 this.Add(XKey.braceright, Key.BracketRight);
00086 this.Add(XKey.bracketright, Key.BracketRight);
00087 this.Add(XKey.colon, Key.Semicolon);
00088 this.Add(XKey.semicolon, Key.Semicolon);
00089 this.Add(XKey.quoteright, Key.Quote);
00090 this.Add(XKey.quotedbl, Key.Quote);
00091 this.Add(XKey.quoteleft, Key.Tilde);
00092 this.Add(XKey.asciitilde, Key.Tilde);
00093
00094 this.Add(XKey.comma, Key.Comma);
00095 this.Add(XKey.less, Key.Comma);
00096 this.Add(XKey.period, Key.Period);
00097 this.Add(XKey.greater, Key.Period);
00098 this.Add(XKey.slash, Key.Slash);
00099 this.Add(XKey.question, Key.Slash);
00100
00101 this.Add(XKey.Left, Key.Left);
00102 this.Add(XKey.Down, Key.Down);
00103 this.Add(XKey.Right, Key.Right);
00104 this.Add(XKey.Up, Key.Up);
00105
00106 this.Add(XKey.Delete, Key.Delete);
00107 this.Add(XKey.Home, Key.Home);
00108 this.Add(XKey.End, Key.End);
00109
00110 this.Add(XKey.Page_Up, Key.PageUp);
00111 this.Add(XKey.Page_Down, Key.PageDown);
00112
00113
00114 this.Add(XKey.KP_Add, Key.KeypadAdd);
00115 this.Add(XKey.KP_Subtract, Key.KeypadSubtract);
00116 this.Add(XKey.KP_Multiply, Key.KeypadMultiply);
00117 this.Add(XKey.KP_Divide, Key.KeypadDivide);
00118 this.Add(XKey.KP_Decimal, Key.KeypadDecimal);
00119 this.Add(XKey.KP_Insert, Key.Keypad0);
00120 this.Add(XKey.KP_End, Key.Keypad1);
00121 this.Add(XKey.KP_Down, Key.Keypad2);
00122 this.Add(XKey.KP_Page_Down, Key.Keypad3);
00123 this.Add(XKey.KP_Left, Key.Keypad4);
00124 this.Add(XKey.KP_Right, Key.Keypad6);
00125 this.Add(XKey.KP_Home, Key.Keypad7);
00126 this.Add(XKey.KP_Up, Key.Keypad8);
00127 this.Add(XKey.KP_Page_Up, Key.Keypad9);
00128 this.Add(XKey.KP_Delete, Key.KeypadDecimal);
00129 this.Add(XKey.KP_Enter, Key.KeypadEnter);
00130
00131 }
00132 catch (ArgumentException e)
00133 {
00134 Debug.Print("Exception while creating keymap: '{0}'.", e.ToString());
00135 }
00136 }
00137 }
00138 }