/* * This file is part of SpoutcraftPlugin. * * Copyright (c) 2011 SpoutcraftDev <http://spoutcraft.org//> * SpoutcraftPlugin is licensed under the GNU Lesser General Public License. * * SpoutcraftPlugin is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * SpoutcraftPlugin is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.getspout.spoutapi.keyboard; import java.util.HashMap; import java.util.Map; public enum Keyboard { CHAR_NONE(0), KEY_NONE(0), KEY_ESCAPE(1), KEY_1(2), KEY_2(3), KEY_3(4), KEY_4(5), KEY_5(6), KEY_6(7), KEY_7(8), KEY_8(9), KEY_9(10), KEY_0(11), KEY_MINUS(12), KEY_EQUALS(13), KEY_BACK(14), KEY_TAB(15), KEY_Q(16), KEY_W(17), KEY_E(18), KEY_R(19), KEY_T(20), KEY_Y(21), KEY_U(22), KEY_I(23), KEY_O(24), KEY_P(25), KEY_LBRACKET(26), KEY_RBRACKET(27), KEY_RETURN(28), KEY_LCONTROL(29), KEY_A(30), KEY_S(31), KEY_D(32), KEY_F(33), KEY_G(34), KEY_H(35), KEY_J(36), KEY_K(37), KEY_L(38), KEY_SEMICOLON(39), KEY_APOSTROPHE(40), KEY_GRAVE(41), KEY_LSHIFT(42), KEY_BACKSLASH(43), KEY_Z(44), KEY_X(45), KEY_C(46), KEY_V(47), KEY_B(48), KEY_N(49), KEY_M(50), KEY_COMMA(51), KEY_PERIOD(52), KEY_SLASH(53), KEY_RSHIFT(54), KEY_MULTIPLY(55), KEY_LMENU(56), KEY_SPACE(57), KEY_CAPITAL(58), KEY_F1(59), KEY_F2(60), KEY_F3(61), KEY_F4(62), KEY_F5(63), KEY_F6(64), KEY_F7(65), KEY_F8(66), KEY_F9(67), KEY_F10(68), KEY_NUMLOCK(69), KEY_SCROLL(70), KEY_NUMPAD7(71), KEY_NUMPAD8(72), KEY_NUMPAD9(73), KEY_SUBTRACT(74), KEY_NUMPAD4(75), KEY_NUMPAD5(76), KEY_NUMPAD6(77), KEY_ADD(78), KEY_NUMPAD1(79), KEY_NUMPAD2(80), KEY_NUMPAD3(81), KEY_NUMPAD0(82), KEY_DECIMAL(83), KEY_F11(87), KEY_F12(88), KEY_F13(100), KEY_F14(101), KEY_F15(102), KEY_KANA(112), KEY_CONVERT(121), KEY_NOCONVERT(123), KEY_YEN(125), KEY_NUMPADEQUALS(141), KEY_CIRCUMFLEX(144), KEY_AT(145), KEY_COLON(146), KEY_UNDERLINE(147), KEY_KANJI(148), KEY_STOP(149), KEY_AX(150), KEY_UNLABELED(151), KEY_NUMPADENTER(156), KEY_RCONTROL(157), KEY_NUMPADCOMMA(179), KEY_DIVIDE(181), KEY_SYSRQ(183), KEY_RMENU(184), KEY_PAUSE(197), KEY_HOME(199), KEY_UP(200), KEY_PRIOR(201), KEY_LEFT(203), KEY_RIGHT(205), KEY_END(207), KEY_DOWN(208), KEY_NEXT(209), KEY_INSERT(210), KEY_DELETE(211), KEY_LMETA(219), KEY_LWIN(219), KEY_RMETA(220), KEY_RWIN(220), KEY_APPS(221), KEY_POWER(222), KEY_SLEEP(223), KEYBOARD_SIZE(256), MOUSE_RIGHT(-99), MOUSE_LEFT(-100), MOUSE_MIDDLE(-98), KEY_UNKNOWN(-1); private final int keyCode; private static final Map<Integer, Keyboard> lookupKeyCode = new HashMap<Integer, Keyboard>(); Keyboard(final int i) { this.keyCode = i; } public int getKeyCode() { return keyCode; } public static Keyboard getKey(int key) { if (lookupKeyCode.containsKey(key)) { return lookupKeyCode.get(key); } return KEY_UNKNOWN; } static { for (Keyboard key : values()) { lookupKeyCode.put(key.keyCode, key); } } }