Subversion Repositories AndroidProjects

Rev

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
}