135 lines
2.9 KiB
C#
135 lines
2.9 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
namespace OpenTK.Input
|
|||
|
{
|
|||
|
public class Keyboard : IKeyboard
|
|||
|
{
|
|||
|
private IKeyboard keyboard;
|
|||
|
|
|||
|
public Keyboard()
|
|||
|
{
|
|||
|
if (Environment.OSVersion.Platform == PlatformID.Win32NT ||
|
|||
|
Environment.OSVersion.Platform == PlatformID.Win32Windows)
|
|||
|
{
|
|||
|
keyboard = new OpenTK.Platform.Windows.WinKeyboard();
|
|||
|
}
|
|||
|
else if (Environment.OSVersion.Platform == PlatformID.Unix ||
|
|||
|
Environment.OSVersion.Platform == (PlatformID)128) // some older versions of Mono reported 128.
|
|||
|
{
|
|||
|
throw new NotImplementedException();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
throw new PlatformNotSupportedException(
|
|||
|
"Your operating system is not currently supported. We are sorry for the inconvenience."
|
|||
|
);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public bool this[Keys k]
|
|||
|
{
|
|||
|
get { return keyboard[k]; }
|
|||
|
set { keyboard[k] = value; }
|
|||
|
}
|
|||
|
|
|||
|
public void Poll()
|
|||
|
{
|
|||
|
keyboard.Poll();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public enum Keys : int
|
|||
|
{
|
|||
|
// Modifiers
|
|||
|
LeftShift = 0,
|
|||
|
RightShift,
|
|||
|
LeftControl,
|
|||
|
RightControl,
|
|||
|
LeftAlt,
|
|||
|
RightAlt,
|
|||
|
|
|||
|
// Function keys (hopefully enough for most keyboards - mine has 26)
|
|||
|
F1, F2, F3, F4,
|
|||
|
F5, F6, F7, F8,
|
|||
|
F9, F10, F11, F12,
|
|||
|
F13, F14, F15, F16,
|
|||
|
F17, F18, F19, F20,
|
|||
|
F21, F22, F23, F24,
|
|||
|
F25, F26, F27, F28,
|
|||
|
F29, F30, F31, F32,
|
|||
|
|
|||
|
// Direction arrows
|
|||
|
Up,
|
|||
|
Down,
|
|||
|
Left,
|
|||
|
Right,
|
|||
|
|
|||
|
// Special keys
|
|||
|
Enter,
|
|||
|
Escape,
|
|||
|
Space,
|
|||
|
Tab,
|
|||
|
Backspace,
|
|||
|
Insert,
|
|||
|
Delete,
|
|||
|
PageUp,
|
|||
|
PageDown,
|
|||
|
Home,
|
|||
|
End,
|
|||
|
CapsLock,
|
|||
|
|
|||
|
// Keypad keys
|
|||
|
Keypad0,
|
|||
|
Keypad1,
|
|||
|
Keypad2,
|
|||
|
Keypad3,
|
|||
|
Keypad4,
|
|||
|
Keypad5,
|
|||
|
Keypad6,
|
|||
|
Keypad7,
|
|||
|
Keypad8,
|
|||
|
Keypad9,
|
|||
|
KeypadDivide,
|
|||
|
KeypadMultiply,
|
|||
|
KeypadSubtract,
|
|||
|
KeypadAdd,
|
|||
|
KeypadDecimal,
|
|||
|
KeypadEqual,
|
|||
|
KeypadEnter,
|
|||
|
|
|||
|
// Letters
|
|||
|
A, B, C, D, E, F, G,
|
|||
|
H, I, J, K, L, M, N,
|
|||
|
O, P, Q, R, S, T, U,
|
|||
|
V, W, X, Y, Z,
|
|||
|
|
|||
|
// Numbers
|
|||
|
Number0,
|
|||
|
Number1,
|
|||
|
Number2,
|
|||
|
Number3,
|
|||
|
Number4,
|
|||
|
Number5,
|
|||
|
Number6,
|
|||
|
Number7,
|
|||
|
Number8,
|
|||
|
Number9,
|
|||
|
|
|||
|
// Symbols
|
|||
|
Minus,
|
|||
|
Equal,
|
|||
|
LeftBracket,
|
|||
|
RightBracket,
|
|||
|
Semicolon,
|
|||
|
QuotationMark,
|
|||
|
Comma,
|
|||
|
FullStop,
|
|||
|
Slash,
|
|||
|
BackSlash,
|
|||
|
|
|||
|
MaxKeys
|
|||
|
}
|
|||
|
}
|