package res.input;

// Partially copied from heaps: https://github.com/HeapsIO/heaps/
class Key {
	public static inline final BACKSPACE = 8;
	public static inline final TAB = 9;
	public static inline final ENTER = #if java 10 #else 13 #end;
	public static inline final SHIFT = 16;
	public static inline final CTRL = 17;
	public static inline final ALT = 18;
	public static inline final ESCAPE = 27;
	public static inline final SPACE = 32;
	public static inline final PGUP = 33;
	public static inline final PGDOWN = 34;
	public static inline final END = 35;
	public static inline final HOME = 36;
	public static inline final LEFT = 37;
	public static inline final UP = 38;
	public static inline final RIGHT = 39;
	public static inline final DOWN = 40;
	public static inline final INSERT = 45;
	public static inline final DELETE = 46;

	public static inline final QWERTY_EQUALS = 187;
	public static inline final QWERTY_MINUS = 189;
	public static inline final QWERTY_TILDE = 192;
	public static inline final QWERTY_BRACKET_LEFT = 219;
	public static inline final QWERTY_BRACKET_RIGHT = 221;
	public static inline final QWERTY_SEMICOLON = 186;
	public static inline final QWERTY_QUOTE = 222;
	public static inline final QWERTY_BACKSLASH = 220;
	public static inline final QWERTY_COMMA = 188;
	public static inline final QWERTY_PERIOD = 190;
	public static inline final QWERTY_SLASH = 191;
	public static inline final INTL_BACKSLASH = 226; // Backslash located next to left shift on some keyboards. Warning: Not available on HLSDL.
	public static inline final LEFT_WINDOW_KEY = 91;
	public static inline final RIGHT_WINDOW_KEY = 92;
	public static inline final CONTEXT_MENU = 93;

	// public static inline final PRINT_SCREEN = // Only available on SDL
	public static inline final PAUSE_BREAK = 19;
	public static inline final CAPS_LOCK = 20;
	public static inline final NUM_LOCK = 144;
	public static inline final SCROLL_LOCK = 145;

	public static inline final NUMBER_0 = 48;
	public static inline final NUMBER_1 = 49;
	public static inline final NUMBER_2 = 50;
	public static inline final NUMBER_3 = 51;
	public static inline final NUMBER_4 = 52;
	public static inline final NUMBER_5 = 53;
	public static inline final NUMBER_6 = 54;
	public static inline final NUMBER_7 = 55;
	public static inline final NUMBER_8 = 56;
	public static inline final NUMBER_9 = 57;

	public static inline final NUMPAD_0 = 96;
	public static inline final NUMPAD_1 = 97;
	public static inline final NUMPAD_2 = 98;
	public static inline final NUMPAD_3 = 99;
	public static inline final NUMPAD_4 = 100;
	public static inline final NUMPAD_5 = 101;
	public static inline final NUMPAD_6 = 102;
	public static inline final NUMPAD_7 = 103;
	public static inline final NUMPAD_8 = 104;
	public static inline final NUMPAD_9 = 105;

	public static inline final A = 65;
	public static inline final B = 66;
	public static inline final C = 67;
	public static inline final D = 68;
	public static inline final E = 69;
	public static inline final F = 70;
	public static inline final G = 71;
	public static inline final H = 72;
	public static inline final I = 73;
	public static inline final J = 74;
	public static inline final K = 75;
	public static inline final L = 76;
	public static inline final M = 77;
	public static inline final N = 78;
	public static inline final O = 79;
	public static inline final P = 80;
	public static inline final Q = 81;
	public static inline final R = 82;
	public static inline final S = 83;
	public static inline final T = 84;
	public static inline final U = 85;
	public static inline final V = 86;
	public static inline final W = 87;
	public static inline final X = 88;
	public static inline final Y = 89;
	public static inline final Z = 90;

	public static inline final F1 = 112;
	public static inline final F2 = 113;
	public static inline final F3 = 114;
	public static inline final F4 = 115;
	public static inline final F5 = 116;
	public static inline final F6 = 117;
	public static inline final F7 = 118;
	public static inline final F8 = 119;
	public static inline final F9 = 120;
	public static inline final F10 = 121;
	public static inline final F11 = 122;
	public static inline final F12 = 123;
	// Extended F keys
	public static inline final F13 = 124;
	public static inline final F14 = 125;
	public static inline final F15 = 126;
	public static inline final F16 = 127;
	public static inline final F17 = 128;
	public static inline final F18 = 129;
	public static inline final F19 = 130;
	public static inline final F20 = 131;
	public static inline final F21 = 132;
	public static inline final F22 = 133;
	public static inline final F23 = 134;
	public static inline final F24 = 135;

	public static inline final NUMPAD_MULT = 106;
	public static inline final NUMPAD_ADD = 107;
	public static inline final NUMPAD_ENTER = 108;
	public static inline final NUMPAD_SUB = 109;
	public static inline final NUMPAD_DOT = 110;
	public static inline final NUMPAD_DIV = 111;

	public static inline final MOUSE_LEFT = 0;
	public static inline final MOUSE_RIGHT = 1;
	public static inline final MOUSE_MIDDLE = 2;
	public static inline final MOUSE_BACK = 3;
	public static inline final MOUSE_FORWARD = 4;
}
