00001 #region --- License ---
00002
00003
00004
00005 #endregion
00006
00007 using System;
00008 using System.Collections.Generic;
00009 using System.Text;
00010 using OpenTK.Platform.Windows;
00011 using OpenTK.Input;
00012 using System.Diagnostics;
00013
00014 namespace OpenTK.Platform.Windows
00015 {
00016 internal class WinKeyMap : Dictionary<VirtualKeys, Input.Key>
00017 {
00021 internal WinKeyMap()
00022 {
00023 try
00024 {
00025 this.Add(VirtualKeys.ESCAPE, Key.Escape);
00026
00027
00028 for (int i = 0; i < 24; i++)
00029 {
00030 this.Add((VirtualKeys)((int)VirtualKeys.F1 + i), Key.F1 + i);
00031 }
00032
00033
00034 for (int i = 0; i <= 9; i++)
00035 {
00036 this.Add((VirtualKeys)(0x30 + i), Key.Number0 + i);
00037 }
00038
00039
00040 for (int i = 0; i < 26; i++)
00041 {
00042 this.Add((VirtualKeys)(0x41 + i), Key.A + i);
00043 }
00044
00045 this.Add(VirtualKeys.TAB, Key.Tab);
00046 this.Add(VirtualKeys.CAPITAL, Key.CapsLock);
00047 this.Add(VirtualKeys.LCONTROL, Key.ControlLeft);
00048 this.Add(VirtualKeys.LSHIFT, Key.ShiftLeft);
00049 this.Add(VirtualKeys.LWIN, Key.WinLeft);
00050 this.Add(VirtualKeys.LMENU, Key.AltLeft);
00051 this.Add(VirtualKeys.SPACE, Key.Space);
00052 this.Add(VirtualKeys.RMENU, Key.AltRight);
00053 this.Add(VirtualKeys.RWIN, Key.WinRight);
00054 this.Add(VirtualKeys.APPS, Key.Menu);
00055 this.Add(VirtualKeys.RCONTROL, Key.ControlRight);
00056 this.Add(VirtualKeys.RSHIFT, Key.ShiftRight);
00057 this.Add(VirtualKeys.RETURN, Key.Enter);
00058 this.Add(VirtualKeys.BACK, Key.BackSpace);
00059
00060 this.Add(VirtualKeys.OEM_1, Key.Semicolon);
00061 this.Add(VirtualKeys.OEM_2, Key.Slash);
00062 this.Add(VirtualKeys.OEM_3, Key.Tilde);
00063 this.Add(VirtualKeys.OEM_4, Key.BracketLeft);
00064 this.Add(VirtualKeys.OEM_5, Key.BackSlash);
00065 this.Add(VirtualKeys.OEM_6, Key.BracketRight);
00066 this.Add(VirtualKeys.OEM_7, Key.Quote);
00067 this.Add(VirtualKeys.OEM_PLUS, Key.Plus);
00068 this.Add(VirtualKeys.OEM_COMMA, Key.Comma);
00069 this.Add(VirtualKeys.OEM_MINUS, Key.Minus);
00070 this.Add(VirtualKeys.OEM_PERIOD, Key.Period);
00071
00072 this.Add(VirtualKeys.HOME, Key.Home);
00073 this.Add(VirtualKeys.END, Key.End);
00074 this.Add(VirtualKeys.DELETE, Key.Delete);
00075 this.Add(VirtualKeys.PRIOR, Key.PageUp);
00076 this.Add(VirtualKeys.NEXT, Key.PageDown);
00077 this.Add(VirtualKeys.PRINT, Key.PrintScreen);
00078 this.Add(VirtualKeys.PAUSE, Key.Pause);
00079 this.Add(VirtualKeys.NUMLOCK, Key.NumLock);
00080
00081 this.Add(VirtualKeys.SCROLL, Key.ScrollLock);
00082 this.Add(VirtualKeys.SNAPSHOT, Key.PrintScreen);
00083 this.Add(VirtualKeys.CLEAR, Key.Clear);
00084 this.Add(VirtualKeys.INSERT, Key.Insert);
00085
00086 this.Add(VirtualKeys.SLEEP, Key.Sleep);
00087
00088
00089 for (int i = 0; i <= 9; i++)
00090 {
00091 this.Add((VirtualKeys)((int)VirtualKeys.NUMPAD0 + i), Key.Keypad0 + i);
00092 }
00093 this.Add(VirtualKeys.DECIMAL, Key.KeypadDecimal);
00094 this.Add(VirtualKeys.ADD, Key.KeypadAdd);
00095 this.Add(VirtualKeys.SUBTRACT, Key.KeypadSubtract);
00096 this.Add(VirtualKeys.DIVIDE, Key.KeypadDivide);
00097 this.Add(VirtualKeys.MULTIPLY, Key.KeypadMultiply);
00098
00099
00100 this.Add(VirtualKeys.UP, Key.Up);
00101 this.Add(VirtualKeys.DOWN, Key.Down);
00102 this.Add(VirtualKeys.LEFT, Key.Left);
00103 this.Add(VirtualKeys.RIGHT, Key.Right);
00104 }
00105 catch (ArgumentException e)
00106 {
00107 Debug.Print("Exception while creating keymap: '{0}'.", e.ToString());
00108 System.Windows.Forms.MessageBox.Show(
00109 String.Format("Exception while creating keymap: '{0}'.", e.ToString()));
00110 }
00111 }
00112 }
00113 }