Add enum type info and fix enum casting

This commit is contained in:
Ginger Bill
2017-01-01 16:58:38 +00:00
parent 6fef74317c
commit 311b5cb6e2
11 changed files with 178 additions and 193 deletions
+140 -147
View File
@@ -424,159 +424,152 @@ proc wglDeleteContext (hglrc HGLRC) -> BOOL #foreign #dll_import
proc GetKeyState (v_key i32) -> i16 #foreign #dll_import
proc GetAsyncKeyState(v_key i32) -> i16 #foreign #dll_import
proc is_key_down(key i32) -> bool #inline { return GetAsyncKeyState(key) < 0; }
proc is_key_down(key Key_Code) -> bool #inline { return GetAsyncKeyState(key as i32) < 0; }
const {
KEY_LBUTTON = 0x01;
KEY_RBUTTON = 0x02;
KEY_CANCEL = 0x03;
KEY_MBUTTON = 0x04;
type Key_Code enum i32 {
LBUTTON = 0x01,
RBUTTON = 0x02,
CANCEL = 0x03,
MBUTTON = 0x04,
BACK = 0x08,
TAB = 0x09,
CLEAR = 0x0C,
RETURN = 0x0D,
KEY_BACK = 0x08;
KEY_TAB = 0x09;
SHIFT = 0x10,
CONTROL = 0x11,
MENU = 0x12,
PAUSE = 0x13,
CAPITAL = 0x14,
KANA = 0x15,
HANGEUL = 0x15,
HANGUL = 0x15,
JUNJA = 0x17,
FINAL = 0x18,
HANJA = 0x19,
KANJI = 0x19,
ESCAPE = 0x1B,
CONVERT = 0x1C,
NONCONVERT = 0x1D,
ACCEPT = 0x1E,
MODECHANGE = 0x1F,
SPACE = 0x20,
PRIOR = 0x21,
NEXT = 0x22,
END = 0x23,
HOME = 0x24,
LEFT = 0x25,
UP = 0x26,
RIGHT = 0x27,
DOWN = 0x28,
SELECT = 0x29,
PRINT = 0x2A,
EXECUTE = 0x2B,
SNAPSHOT = 0x2C,
INSERT = 0x2D,
DELETE = 0x2E,
HELP = 0x2F,
KEY_CLEAR = 0x0C;
KEY_RETURN = 0x0D;
NUM0 = '0',
NUM1 = '1',
NUM2 = '2',
NUM3 = '3',
NUM4 = '4',
NUM5 = '5',
NUM6 = '6',
NUM7 = '7',
NUM8 = '8',
NUM9 = '9',
A = 'A',
B = 'B',
C = 'C',
D = 'D',
E = 'E',
F = 'F',
G = 'G',
H = 'H',
I = 'I',
J = 'J',
K = 'K',
L = 'L',
M = 'M',
N = 'N',
O = 'O',
P = 'P',
Q = 'Q',
R = 'R',
S = 'S',
T = 'T',
U = 'U',
V = 'V',
W = 'W',
X = 'X',
Y = 'Y',
Z = 'Z',
KEY_SHIFT = 0x10;
KEY_CONTROL = 0x11;
KEY_MENU = 0x12;
KEY_PAUSE = 0x13;
KEY_CAPITAL = 0x14;
LWIN = 0x5B,
RWIN = 0x5C,
APPS = 0x5D,
KEY_KANA = 0x15;
KEY_HANGEUL = 0x15;
KEY_HANGUL = 0x15;
KEY_JUNJA = 0x17;
KEY_FINAL = 0x18;
KEY_HANJA = 0x19;
KEY_KANJI = 0x19;
NUMPAD0 = 0x60,
NUMPAD1 = 0x61,
NUMPAD2 = 0x62,
NUMPAD3 = 0x63,
NUMPAD4 = 0x64,
NUMPAD5 = 0x65,
NUMPAD6 = 0x66,
NUMPAD7 = 0x67,
NUMPAD8 = 0x68,
NUMPAD9 = 0x69,
MULTIPLY = 0x6A,
ADD = 0x6B,
SEPARATOR = 0x6C,
SUBTRACT = 0x6D,
DECIMAL = 0x6E,
DIVIDE = 0x6F,
KEY_ESCAPE = 0x1B;
F1 = 0x70,
F2 = 0x71,
F3 = 0x72,
F4 = 0x73,
F5 = 0x74,
F6 = 0x75,
F7 = 0x76,
F8 = 0x77,
F9 = 0x78,
F10 = 0x79,
F11 = 0x7A,
F12 = 0x7B,
F13 = 0x7C,
F14 = 0x7D,
F15 = 0x7E,
F16 = 0x7F,
F17 = 0x80,
F18 = 0x81,
F19 = 0x82,
F20 = 0x83,
F21 = 0x84,
F22 = 0x85,
F23 = 0x86,
F24 = 0x87,
KEY_CONVERT = 0x1C;
KEY_NONCONVERT = 0x1D;
KEY_ACCEPT = 0x1E;
KEY_MODECHANGE = 0x1F;
KEY_SPACE = 0x20;
KEY_PRIOR = 0x21;
KEY_NEXT = 0x22;
KEY_END = 0x23;
KEY_HOME = 0x24;
KEY_LEFT = 0x25;
KEY_UP = 0x26;
KEY_RIGHT = 0x27;
KEY_DOWN = 0x28;
KEY_SELECT = 0x29;
KEY_PRINT = 0x2A;
KEY_EXECUTE = 0x2B;
KEY_SNAPSHOT = 0x2C;
KEY_INSERT = 0x2D;
KEY_DELETE = 0x2E;
KEY_HELP = 0x2F;
KEY_NUM0 = '0';
KEY_NUM1 = '1';
KEY_NUM2 = '2';
KEY_NUM3 = '3';
KEY_NUM4 = '4';
KEY_NUM5 = '5';
KEY_NUM6 = '6';
KEY_NUM7 = '7';
KEY_NUM8 = '8';
KEY_NUM9 = '9';
KEY_A = 'A';
KEY_B = 'B';
KEY_C = 'C';
KEY_D = 'D';
KEY_E = 'E';
KEY_F = 'F';
KEY_G = 'G';
KEY_H = 'H';
KEY_I = 'I';
KEY_J = 'J';
KEY_K = 'K';
KEY_L = 'L';
KEY_M = 'M';
KEY_N = 'N';
KEY_O = 'O';
KEY_P = 'P';
KEY_Q = 'Q';
KEY_R = 'R';
KEY_S = 'S';
KEY_T = 'T';
KEY_U = 'U';
KEY_V = 'V';
KEY_W = 'W';
KEY_X = 'X';
KEY_Y = 'Y';
KEY_Z = 'Z';
KEY_LWIN = 0x5B;
KEY_RWIN = 0x5C;
KEY_APPS = 0x5D;
KEY_NUMPAD0 = 0x60;
KEY_NUMPAD1 = 0x61;
KEY_NUMPAD2 = 0x62;
KEY_NUMPAD3 = 0x63;
KEY_NUMPAD4 = 0x64;
KEY_NUMPAD5 = 0x65;
KEY_NUMPAD6 = 0x66;
KEY_NUMPAD7 = 0x67;
KEY_NUMPAD8 = 0x68;
KEY_NUMPAD9 = 0x69;
KEY_MULTIPLY = 0x6A;
KEY_ADD = 0x6B;
KEY_SEPARATOR = 0x6C;
KEY_SUBTRACT = 0x6D;
KEY_DECIMAL = 0x6E;
KEY_DIVIDE = 0x6F;
KEY_F1 = 0x70;
KEY_F2 = 0x71;
KEY_F3 = 0x72;
KEY_F4 = 0x73;
KEY_F5 = 0x74;
KEY_F6 = 0x75;
KEY_F7 = 0x76;
KEY_F8 = 0x77;
KEY_F9 = 0x78;
KEY_F10 = 0x79;
KEY_F11 = 0x7A;
KEY_F12 = 0x7B;
KEY_F13 = 0x7C;
KEY_F14 = 0x7D;
KEY_F15 = 0x7E;
KEY_F16 = 0x7F;
KEY_F17 = 0x80;
KEY_F18 = 0x81;
KEY_F19 = 0x82;
KEY_F20 = 0x83;
KEY_F21 = 0x84;
KEY_F22 = 0x85;
KEY_F23 = 0x86;
KEY_F24 = 0x87;
KEY_NUMLOCK = 0x90;
KEY_SCROLL = 0x91;
KEY_LSHIFT = 0xA0;
KEY_RSHIFT = 0xA1;
KEY_LCONTROL = 0xA2;
KEY_RCONTROL = 0xA3;
KEY_LMENU = 0xA4;
KEY_RMENU = 0xA5;
KEY_PROCESSKEY = 0xE5;
KEY_ATTN = 0xF6;
KEY_CRSEL = 0xF7;
KEY_EXSEL = 0xF8;
KEY_EREOF = 0xF9;
KEY_PLAY = 0xFA;
KEY_ZOOM = 0xFB;
KEY_NONAME = 0xFC;
KEY_PA1 = 0xFD;
KEY_OEM_CLEAR = 0xFE;
NUMLOCK = 0x90,
SCROLL = 0x91,
LSHIFT = 0xA0,
RSHIFT = 0xA1,
LCONTROL = 0xA2,
RCONTROL = 0xA3,
LMENU = 0xA4,
RMENU = 0xA5,
PROCESSKEY = 0xE5,
ATTN = 0xF6,
CRSEL = 0xF7,
EXSEL = 0xF8,
EREOF = 0xF9,
PLAY = 0xFA,
ZOOM = 0xFB,
NONAME = 0xFC,
PA1 = 0xFD,
OEM_CLEAR = 0xFE,
}