diff --git a/rainbow/LinuxFb/Keys.h b/rainbow/LinuxFb/Keys.h index d11cafeca..bc94804f7 100644 --- a/rainbow/LinuxFb/Keys.h +++ b/rainbow/LinuxFb/Keys.h @@ -1,104 +1,104 @@ #ifndef _LinuxFb_Keys_h_ #define _LinuxFb_Keys_h_ -//here some keys specification for real framebufer -//probably from linux/input, so far as wuick hack we use the stuff from WinUser.h +//translation of linux keycodes from MEDIUMRAM to ultimate +//thanks goes to svgalib -K_BACK = VK_BACK + K_DELTA, -K_BACKSPACE = VK_BACK + K_DELTA, +K_BACK = SCANCODE_BACKSPACE + K_DELTA, +K_BACKSPACE = SCANCODE_BACKSPACE + K_DELTA, -K_TAB = 9, +K_TAB = 9, //SCANCODE_TAB -K_SPACE = 32, +K_SPACE = 32, //SCANCODE_SPACE -K_RETURN = 13, +K_RETURN = 13, //SCANCODE_ENTER K_ENTER = K_RETURN, -K_SHIFT_KEY = VK_SHIFT + K_DELTA, -K_CTRL_KEY = VK_CONTROL + K_DELTA, -K_ALT_KEY = VK_MENU + K_DELTA, -K_CAPSLOCK = VK_CAPITAL + K_DELTA, -K_ESCAPE = VK_ESCAPE + K_DELTA, -K_PRIOR = VK_PRIOR + K_DELTA, -K_PAGEUP = VK_PRIOR + K_DELTA, -K_NEXT = VK_NEXT + K_DELTA, -K_PAGEDOWN = VK_NEXT + K_DELTA, -K_END = VK_END + K_DELTA, -K_HOME = VK_HOME + K_DELTA, -K_LEFT = VK_LEFT + K_DELTA, -K_UP = VK_UP + K_DELTA, -K_RIGHT = VK_RIGHT + K_DELTA, -K_DOWN = VK_DOWN + K_DELTA, -K_INSERT = VK_INSERT + K_DELTA, -K_DELETE = VK_DELETE + K_DELTA, +K_SHIFT_KEY = SCANCODE_LEFTSHIFT + K_DELTA, +K_CTRL_KEY = SCANCODE_LEFTCONTROL + K_DELTA, +K_ALT_KEY = SCANCODE_LEFTALT + K_DELTA, +K_CAPSLOCK = SCANCODE_CAPSLOCK + K_DELTA, +K_ESCAPE = SCANCODE_ESCAPE + K_DELTA, +K_PRIOR = SCANCODE_PAGEUP + K_DELTA, +K_PAGEUP = SCANCODE_PAGEUP + K_DELTA, +K_NEXT = SCANCODE_PAGEDOWN + K_DELTA, +K_PAGEDOWN = SCANCODE_PAGEDOWN + K_DELTA, +K_END = SCANCODE_END + K_DELTA, +K_HOME = SCANCODE_HOME + K_DELTA, +K_LEFT = SCANCODE_CURSORBLOCKLEFT + K_DELTA, +K_UP = SCANCODE_CURSORBLOCKUP + K_DELTA, +K_RIGHT = SCANCODE_CURSORBLOCKRIGHT + K_DELTA, +K_DOWN = SCANCODE_CURSORBLOCKDOWN + K_DELTA, +K_INSERT = SCANCODE_INSERT + K_DELTA, +K_DELETE = SCANCODE_REMOVE + K_DELTA, -K_NUMPAD0 = VK_NUMPAD0 + K_DELTA, -K_NUMPAD1 = VK_NUMPAD1 + K_DELTA, -K_NUMPAD2 = VK_NUMPAD2 + K_DELTA, -K_NUMPAD3 = VK_NUMPAD3 + K_DELTA, -K_NUMPAD4 = VK_NUMPAD4 + K_DELTA, -K_NUMPAD5 = VK_NUMPAD5 + K_DELTA, -K_NUMPAD6 = VK_NUMPAD6 + K_DELTA, -K_NUMPAD7 = VK_NUMPAD7 + K_DELTA, -K_NUMPAD8 = VK_NUMPAD8 + K_DELTA, -K_NUMPAD9 = VK_NUMPAD9 + K_DELTA, -K_MULTIPLY = VK_MULTIPLY + K_DELTA, -K_ADD = VK_ADD + K_DELTA, -K_SEPARATOR = VK_SEPARATOR + K_DELTA, -K_SUBTRACT = VK_SUBTRACT + K_DELTA, -K_DECIMAL = VK_DECIMAL + K_DELTA, -K_DIVIDE = VK_DIVIDE + K_DELTA, -K_SCROLL = VK_SCROLL + K_DELTA, +K_NUMPAD0 = SCANCODE_KEYPAD0 + K_DELTA, +K_NUMPAD1 = SCANCODE_KEYPAD1 + K_DELTA, +K_NUMPAD2 = SCANCODE_KEYPAD2 + K_DELTA, +K_NUMPAD3 = SCANCODE_KEYPAD3 + K_DELTA, +K_NUMPAD4 = SCANCODE_KEYPAD4 + K_DELTA, +K_NUMPAD5 = SCANCODE_KEYPAD5 + K_DELTA, +K_NUMPAD6 = SCANCODE_KEYPAD6 + K_DELTA, +K_NUMPAD7 = SCANCODE_KEYPAD7 + K_DELTA, +K_NUMPAD8 = SCANCODE_KEYPAD8 + K_DELTA, +K_NUMPAD9 = SCANCODE_KEYPAD9 + K_DELTA, +K_MULTIPLY = SCANCODE_KEYPADMULTIPLY + K_DELTA, +K_ADD = SCANCODE_KEYPADPLUS + K_DELTA, +K_SEPARATOR = SCANCODE_KEYPADPERIOD + K_DELTA, +K_SUBTRACT = SCANCODE_KEYPADMINUS + K_DELTA, +K_DECIMAL = SCANCODE_KEYPADPERIOD + K_DELTA, +K_DIVIDE = SCANCODE_KEYPADDIVIDE + K_DELTA, +K_SCROLL = SCANCODE_SCROLLLOCK + K_DELTA, -K_F1 = VK_F1 + K_DELTA, -K_F2 = VK_F2 + K_DELTA, -K_F3 = VK_F3 + K_DELTA, -K_F4 = VK_F4 + K_DELTA, -K_F5 = VK_F5 + K_DELTA, -K_F6 = VK_F6 + K_DELTA, -K_F7 = VK_F7 + K_DELTA, -K_F8 = VK_F8 + K_DELTA, -K_F9 = VK_F9 + K_DELTA, -K_F10 = VK_F10 + K_DELTA, -K_F11 = VK_F11 + K_DELTA, -K_F12 = VK_F12 + K_DELTA, +K_F1 = SCANCODE_F1 + K_DELTA, +K_F2 = SCANCODE_F2 + K_DELTA, +K_F3 = SCANCODE_F3 + K_DELTA, +K_F4 = SCANCODE_F4 + K_DELTA, +K_F5 = SCANCODE_F5 + K_DELTA, +K_F6 = SCANCODE_F6 + K_DELTA, +K_F7 = SCANCODE_F7 + K_DELTA, +K_F8 = SCANCODE_F8 + K_DELTA, +K_F9 = SCANCODE_F9 + K_DELTA, +K_F10 = SCANCODE_F10 + K_DELTA, +K_F11 = SCANCODE_F11 + K_DELTA, +K_F12 = SCANCODE_F12 + K_DELTA, -K_A = 'A' + K_DELTA, -K_B = 'B' + K_DELTA, -K_C = 'C' + K_DELTA, -K_D = 'D' + K_DELTA, -K_E = 'E' + K_DELTA, -K_F = 'F' + K_DELTA, -K_G = 'G' + K_DELTA, -K_H = 'H' + K_DELTA, -K_I = 'I' + K_DELTA, -K_J = 'J' + K_DELTA, -K_K = 'K' + K_DELTA, -K_L = 'L' + K_DELTA, -K_M = 'M' + K_DELTA, -K_N = 'N' + K_DELTA, -K_O = 'O' + K_DELTA, -K_P = 'P' + K_DELTA, -K_Q = 'Q' + K_DELTA, -K_R = 'R' + K_DELTA, -K_S = 'S' + K_DELTA, -K_T = 'T' + K_DELTA, -K_U = 'U' + K_DELTA, -K_V = 'V' + K_DELTA, -K_W = 'W' + K_DELTA, -K_X = 'X' + K_DELTA, -K_Y = 'Y' + K_DELTA, -K_Z = 'Z' + K_DELTA, -K_0 = '0' + K_DELTA, -K_1 = '1' + K_DELTA, -K_2 = '2' + K_DELTA, -K_3 = '3' + K_DELTA, -K_4 = '4' + K_DELTA, -K_5 = '5' + K_DELTA, -K_6 = '6' + K_DELTA, -K_7 = '7' + K_DELTA, -K_8 = '8' + K_DELTA, -K_9 = '9' + K_DELTA, +K_A = SCANCODE_A + K_DELTA, +K_B = SCANCODE_B + K_DELTA, +K_C = SCANCODE_C + K_DELTA, +K_D = SCANCODE_D + K_DELTA, +K_E = SCANCODE_E + K_DELTA, +K_F = SCANCODE_F + K_DELTA, +K_G = SCANCODE_G + K_DELTA, +K_H = SCANCODE_H + K_DELTA, +K_I = SCANCODE_I + K_DELTA, +K_J = SCANCODE_J + K_DELTA, +K_K = SCANCODE_K + K_DELTA, +K_L = SCANCODE_L + K_DELTA, +K_M = SCANCODE_M + K_DELTA, +K_N = SCANCODE_N + K_DELTA, +K_O = SCANCODE_O + K_DELTA, +K_P = SCANCODE_P + K_DELTA, +K_Q = SCANCODE_Q + K_DELTA, +K_R = SCANCODE_R + K_DELTA, +K_S = SCANCODE_S + K_DELTA, +K_T = SCANCODE_T + K_DELTA, +K_U = SCANCODE_U + K_DELTA, +K_V = SCANCODE_V + K_DELTA, +K_W = SCANCODE_W + K_DELTA, +K_X = SCANCODE_X + K_DELTA, +K_Y = SCANCODE_Y + K_DELTA, +K_Z = SCANCODE_Z + K_DELTA, +K_0 = SCANCODE_0 + K_DELTA, +K_1 = SCANCODE_1 + K_DELTA, +K_2 = SCANCODE_2 + K_DELTA, +K_3 = SCANCODE_3 + K_DELTA, +K_4 = SCANCODE_4 + K_DELTA, +K_5 = SCANCODE_5 + K_DELTA, +K_6 = SCANCODE_6 + K_DELTA, +K_7 = SCANCODE_7 + K_DELTA, +K_8 = SCANCODE_8 + K_DELTA, +K_9 = SCANCODE_9 + K_DELTA, K_CTRL_LBRACKET = K_CTRL|219|K_DELTA, K_CTRL_RBRACKET = K_CTRL|221|K_DELTA, @@ -112,6 +112,6 @@ K_CTRL_SEMICOLON = K_CTRL|0xbe|K_DELTA, K_CTRL_EQUAL = K_CTRL|0xbb|K_DELTA, K_CTRL_APOSTROPHE= K_CTRL|0xde|K_DELTA, -K_BREAK = VK_CANCEL + K_DELTA, +K_BREAK = SCANCODE_BREAK + K_DELTA, //SCANCODE_BREAK_ALTERNATIVE #endif diff --git a/rainbow/LinuxFb/LinuxFb.h b/rainbow/LinuxFb/LinuxFb.h index 36c09e395..8cd11d0b1 100644 --- a/rainbow/LinuxFb/LinuxFb.h +++ b/rainbow/LinuxFb/LinuxFb.h @@ -4,7 +4,9 @@ #include #include -#include "vkcodes.h" //FIXME + +//used with thanks from svgalib +#include "vgakeyboard.h" #endif diff --git a/rainbow/LinuxFb/LinuxFb.upp b/rainbow/LinuxFb/LinuxFb.upp index 3e77a218d..f613ebd06 100644 --- a/rainbow/LinuxFb/LinuxFb.upp +++ b/rainbow/LinuxFb/LinuxFb.upp @@ -2,6 +2,7 @@ uses Framebuffer; file + vgakeyboard.h, LinuxFb.h, LinuxFbLocal.h, Local.h, diff --git a/rainbow/LinuxFb/Proc.cpp b/rainbow/LinuxFb/Proc.cpp index 0520532e8..44c634111 100644 --- a/rainbow/LinuxFb/Proc.cpp +++ b/rainbow/LinuxFb/Proc.cpp @@ -14,25 +14,24 @@ bool GetMouseRight() { return mouseb & 0x1; } bool GetMouseMiddle() { return mouseb & 0x2; } dword fbKEYtoK(dword chr) { -/* - if(chr == SDLK_TAB) + + if(chr == SCANCODE_TAB) chr = K_TAB; else - if(chr == SDLK_SPACE) + if(chr == SCANCODE_SPACE) chr = K_SPACE; else - if(chr == SDLK_RETURN) + if(chr == SCANCODE_ENTER) chr = K_RETURN; else -*/ chr = chr + K_DELTA; -/* + if(chr == K_ALT_KEY || chr == K_CTRL_KEY || chr == K_SHIFT_KEY) return chr; if(GetCtrl()) chr |= K_CTRL; if(GetAlt()) chr |= K_ALT; if(GetShift()) chr |= K_SHIFT; -*/ + return chr; } @@ -171,7 +170,7 @@ void handle_keyboard() //Ctrl+Alt+FN for vt switch ?? - //scancode = fbKEYtoK(scancode) | (pressed)?(K_KEYUP):(0); + scancode = fbKEYtoK(scancode) | (pressed)?(K_KEYUP):(0); bool b = Ctrl::DoKeyFB(scancode, 1); //helper quit diff --git a/rainbow/LinuxFb/vgakeyboard.h b/rainbow/LinuxFb/vgakeyboard.h new file mode 100644 index 000000000..914ca8835 --- /dev/null +++ b/rainbow/LinuxFb/vgakeyboard.h @@ -0,0 +1,198 @@ +/* Keyboard interface for svgalib. */ +/* Can be used independently. */ + +#ifndef VGAKEYBOARD_H +#define VGAKEYBOARD_H + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define SCANCODE_ESCAPE 1 + +#define SCANCODE_1 2 +#define SCANCODE_2 3 +#define SCANCODE_3 4 +#define SCANCODE_4 5 +#define SCANCODE_5 6 +#define SCANCODE_6 7 +#define SCANCODE_7 8 +#define SCANCODE_8 9 +#define SCANCODE_9 10 +#define SCANCODE_0 11 + +#define SCANCODE_MINUS 12 +#define SCANCODE_EQUAL 13 + +#define SCANCODE_BACKSPACE 14 +#define SCANCODE_TAB 15 + +#define SCANCODE_Q 16 +#define SCANCODE_W 17 +#define SCANCODE_E 18 +#define SCANCODE_R 19 +#define SCANCODE_T 20 +#define SCANCODE_Y 21 +#define SCANCODE_U 22 +#define SCANCODE_I 23 +#define SCANCODE_O 24 +#define SCANCODE_P 25 +#define SCANCODE_BRACKET_LEFT 26 +#define SCANCODE_BRACKET_RIGHT 27 + +#define SCANCODE_ENTER 28 + +#define SCANCODE_LEFTCONTROL 29 + +#define SCANCODE_A 30 +#define SCANCODE_S 31 +#define SCANCODE_D 32 +#define SCANCODE_F 33 +#define SCANCODE_G 34 +#define SCANCODE_H 35 +#define SCANCODE_J 36 +#define SCANCODE_K 37 +#define SCANCODE_L 38 +#define SCANCODE_SEMICOLON 39 +#define SCANCODE_APOSTROPHE 40 +#define SCANCODE_GRAVE 41 + +#define SCANCODE_LEFTSHIFT 42 +#define SCANCODE_BACKSLASH 43 + +#define SCANCODE_Z 44 +#define SCANCODE_X 45 +#define SCANCODE_C 46 +#define SCANCODE_V 47 +#define SCANCODE_B 48 +#define SCANCODE_N 49 +#define SCANCODE_M 50 +#define SCANCODE_COMMA 51 +#define SCANCODE_PERIOD 52 +#define SCANCODE_SLASH 53 + +#define SCANCODE_RIGHTSHIFT 54 +#define SCANCODE_KEYPADMULTIPLY 55 + +#define SCANCODE_LEFTALT 56 +#define SCANCODE_SPACE 57 +#define SCANCODE_CAPSLOCK 58 + +#define SCANCODE_F1 59 +#define SCANCODE_F2 60 +#define SCANCODE_F3 61 +#define SCANCODE_F4 62 +#define SCANCODE_F5 63 +#define SCANCODE_F6 64 +#define SCANCODE_F7 65 +#define SCANCODE_F8 66 +#define SCANCODE_F9 67 +#define SCANCODE_F10 68 + +#define SCANCODE_NUMLOCK 69 +#define SCANCODE_SCROLLLOCK 70 + +#define SCANCODE_KEYPAD7 71 +#define SCANCODE_CURSORUPLEFT 71 +#define SCANCODE_KEYPAD8 72 +#define SCANCODE_CURSORUP 72 +#define SCANCODE_KEYPAD9 73 +#define SCANCODE_CURSORUPRIGHT 73 +#define SCANCODE_KEYPADMINUS 74 +#define SCANCODE_KEYPAD4 75 +#define SCANCODE_CURSORLEFT 75 +#define SCANCODE_KEYPAD5 76 +#define SCANCODE_KEYPAD6 77 +#define SCANCODE_CURSORRIGHT 77 +#define SCANCODE_KEYPADPLUS 78 +#define SCANCODE_KEYPAD1 79 +#define SCANCODE_CURSORDOWNLEFT 79 +#define SCANCODE_KEYPAD2 80 +#define SCANCODE_CURSORDOWN 80 +#define SCANCODE_KEYPAD3 81 +#define SCANCODE_CURSORDOWNRIGHT 81 +#define SCANCODE_KEYPAD0 82 +#define SCANCODE_KEYPADPERIOD 83 + +#define SCANCODE_LESS 86 + +#define SCANCODE_F11 87 +#define SCANCODE_F12 88 + +#define SCANCODE_KEYPADENTER 96 +#define SCANCODE_RIGHTCONTROL 97 +#define SCANCODE_CONTROL 97 +#define SCANCODE_KEYPADDIVIDE 98 +#define SCANCODE_PRINTSCREEN 99 +#define SCANCODE_RIGHTALT 100 +#define SCANCODE_BREAK 101 /* Beware: is 119 */ +#define SCANCODE_BREAK_ALTERNATIVE 119 /* on some keyboards! */ + +#define SCANCODE_HOME 102 +#define SCANCODE_CURSORBLOCKUP 103 /* Cursor key block */ +#define SCANCODE_PAGEUP 104 +#define SCANCODE_CURSORBLOCKLEFT 105 /* Cursor key block */ +#define SCANCODE_CURSORBLOCKRIGHT 106 /* Cursor key block */ +#define SCANCODE_END 107 +#define SCANCODE_CURSORBLOCKDOWN 108 /* Cursor key block */ +#define SCANCODE_PAGEDOWN 109 +#define SCANCODE_INSERT 110 +#define SCANCODE_REMOVE 111 + +#define SCANCODE_RIGHTWIN 126 +#define SCANCODE_LEFTWIN 125 + +#define KEY_EVENTRELEASE 0 +#define KEY_EVENTPRESS 1 + +#define MAX_KEYNAME_LEN 20 + +/* Initialize keyboard handler (brings keyboard into RAW mode). Returns */ +/* 0 if succesful, -1 otherwise. */ + int keyboard_init(void); +/* Similar, but returns console fd if succesful. */ + int keyboard_init_return_fd(void); +/* Set event handler invoked by keyboard_update(). */ + typedef void (*__keyboard_handler) (int scancode, int press); + void keyboard_seteventhandler(__keyboard_handler handler); +/* Return keyboard to normal state. */ + void keyboard_close(void); +/* Read raw keyboard device and handle events. Returns 0 if no event. */ + int keyboard_update(void); +/* Similar to keyboard_update, but wait for an event to happen. */ +/* [This doesn't seem to work very well -- use select on fd] */ + void keyboard_waitforupdate(void); + +/* keyboard_init sets default event handler that keeps track of complete */ +/* keyboard state: */ + +/* Result of keypressed. */ +#define KEY_NOTPRESSED 0 +#define KEY_PRESSED 1 + +/* Modes for translatekeys. */ +#define TRANSLATE_CURSORKEYS 1 /* Map cursor block to keypad cursor. */ +#define TRANSLATE_DIAGONAL 2 /* Map keypad diagonal to keypad cursor. */ +#define TRANSLATE_KEYPADENTER 4 /* Map keypad enter to main enter key. */ +#define DONT_CATCH_CTRLC 8 /* Disable Crtl-C check. */ + +/* Revert to default handler. */ + void keyboard_setdefaulteventhandler(void); +/* Return pointer to buffer holding state of each key (scancode). */ +/* Value 1 corresponds to key that is pressed, 0 means not pressed. */ + char *keyboard_getstate(void); +/* Force keyboard state to nothing pressed (all zeroes). */ + void keyboard_clearstate(void); +/* Let default handler translate cursor key block events to numeric keypad */ +/* cursor key events and other translations. */ + void keyboard_translatekeys(int mask); + +/* Return nonzero if key is depressed. */ + int keyboard_keypressed(int scancode); + +#ifdef __cplusplus +} + +#endif +#endif diff --git a/rainbow/LinuxFb/vkcodes.h b/rainbow/LinuxFb/vkcodes.h deleted file mode 100644 index f7263a283..000000000 --- a/rainbow/LinuxFb/vkcodes.h +++ /dev/null @@ -1,271 +0,0 @@ -#ifndef NOVIRTUALKEYCODES - - -/* - * Virtual Keys, Standard Set - */ -#define VK_LBUTTON 0x01 -#define VK_RBUTTON 0x02 -#define VK_CANCEL 0x03 -#define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */ - -#if(_WIN32_WINNT >= 0x0500) -#define VK_XBUTTON1 0x05 /* NOT contiguous with L & RBUTTON */ -#define VK_XBUTTON2 0x06 /* NOT contiguous with L & RBUTTON */ -#endif /* _WIN32_WINNT >= 0x0500 */ - -/* - * 0x07 : unassigned - */ - -#define VK_BACK 0x08 -#define VK_TAB 0x09 - -/* - * 0x0A - 0x0B : reserved - */ - -#define VK_CLEAR 0x0C -#define VK_RETURN 0x0D - -#define VK_SHIFT 0x10 -#define VK_CONTROL 0x11 -#define VK_MENU 0x12 -#define VK_PAUSE 0x13 -#define VK_CAPITAL 0x14 - -#define VK_KANA 0x15 -#define VK_HANGEUL 0x15 /* old name - should be here for compatibility */ -#define VK_HANGUL 0x15 -#define VK_JUNJA 0x17 -#define VK_FINAL 0x18 -#define VK_HANJA 0x19 -#define VK_KANJI 0x19 - -#define VK_ESCAPE 0x1B - -#define VK_CONVERT 0x1C -#define VK_NONCONVERT 0x1D -#define VK_ACCEPT 0x1E -#define VK_MODECHANGE 0x1F - -#define VK_SPACE 0x20 -#define VK_PRIOR 0x21 -#define VK_NEXT 0x22 -#define VK_END 0x23 -#define VK_HOME 0x24 -#define VK_LEFT 0x25 -#define VK_UP 0x26 -#define VK_RIGHT 0x27 -#define VK_DOWN 0x28 -#define VK_SELECT 0x29 -#define VK_PRINT 0x2A -#define VK_EXECUTE 0x2B -#define VK_SNAPSHOT 0x2C -#define VK_INSERT 0x2D -#define VK_DELETE 0x2E -#define VK_HELP 0x2F - -/* - * VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39) - * 0x40 : unassigned - * VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) - */ - -#define VK_LWIN 0x5B -#define VK_RWIN 0x5C -#define VK_APPS 0x5D - -/* - * 0x5E : reserved - */ - -#define VK_SLEEP 0x5F - -#define VK_NUMPAD0 0x60 -#define VK_NUMPAD1 0x61 -#define VK_NUMPAD2 0x62 -#define VK_NUMPAD3 0x63 -#define VK_NUMPAD4 0x64 -#define VK_NUMPAD5 0x65 -#define VK_NUMPAD6 0x66 -#define VK_NUMPAD7 0x67 -#define VK_NUMPAD8 0x68 -#define VK_NUMPAD9 0x69 -#define VK_MULTIPLY 0x6A -#define VK_ADD 0x6B -#define VK_SEPARATOR 0x6C -#define VK_SUBTRACT 0x6D -#define VK_DECIMAL 0x6E -#define VK_DIVIDE 0x6F -#define VK_F1 0x70 -#define VK_F2 0x71 -#define VK_F3 0x72 -#define VK_F4 0x73 -#define VK_F5 0x74 -#define VK_F6 0x75 -#define VK_F7 0x76 -#define VK_F8 0x77 -#define VK_F9 0x78 -#define VK_F10 0x79 -#define VK_F11 0x7A -#define VK_F12 0x7B -#define VK_F13 0x7C -#define VK_F14 0x7D -#define VK_F15 0x7E -#define VK_F16 0x7F -#define VK_F17 0x80 -#define VK_F18 0x81 -#define VK_F19 0x82 -#define VK_F20 0x83 -#define VK_F21 0x84 -#define VK_F22 0x85 -#define VK_F23 0x86 -#define VK_F24 0x87 - -/* - * 0x88 - 0x8F : unassigned - */ - -#define VK_NUMLOCK 0x90 -#define VK_SCROLL 0x91 - -/* - * NEC PC-9800 kbd definitions - */ -#define VK_OEM_NEC_EQUAL 0x92 // '=' key on numpad - -/* - * Fujitsu/OASYS kbd definitions - */ -#define VK_OEM_FJ_JISHO 0x92 // 'Dictionary' key -#define VK_OEM_FJ_MASSHOU 0x93 // 'Unregister word' key -#define VK_OEM_FJ_TOUROKU 0x94 // 'Register word' key -#define VK_OEM_FJ_LOYA 0x95 // 'Left OYAYUBI' key -#define VK_OEM_FJ_ROYA 0x96 // 'Right OYAYUBI' key - -/* - * 0x97 - 0x9F : unassigned - */ - -/* - * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys. - * Used only as parameters to GetAsyncKeyState() and GetKeyState(). - * No other API or message will distinguish left and right keys in this way. - */ -#define VK_LSHIFT 0xA0 -#define VK_RSHIFT 0xA1 -#define VK_LCONTROL 0xA2 -#define VK_RCONTROL 0xA3 -#define VK_LMENU 0xA4 -#define VK_RMENU 0xA5 - -#if(_WIN32_WINNT >= 0x0500) -#define VK_BROWSER_BACK 0xA6 -#define VK_BROWSER_FORWARD 0xA7 -#define VK_BROWSER_REFRESH 0xA8 -#define VK_BROWSER_STOP 0xA9 -#define VK_BROWSER_SEARCH 0xAA -#define VK_BROWSER_FAVORITES 0xAB -#define VK_BROWSER_HOME 0xAC - -#define VK_VOLUME_MUTE 0xAD -#define VK_VOLUME_DOWN 0xAE -#define VK_VOLUME_UP 0xAF -#define VK_MEDIA_NEXT_TRACK 0xB0 -#define VK_MEDIA_PREV_TRACK 0xB1 -#define VK_MEDIA_STOP 0xB2 -#define VK_MEDIA_PLAY_PAUSE 0xB3 -#define VK_LAUNCH_MAIL 0xB4 -#define VK_LAUNCH_MEDIA_SELECT 0xB5 -#define VK_LAUNCH_APP1 0xB6 -#define VK_LAUNCH_APP2 0xB7 - -#endif /* _WIN32_WINNT >= 0x0500 */ - -/* - * 0xB8 - 0xB9 : reserved - */ - -#define VK_OEM_1 0xBA // ';:' for US -#define VK_OEM_PLUS 0xBB // '+' any country -#define VK_OEM_COMMA 0xBC // ',' any country -#define VK_OEM_MINUS 0xBD // '-' any country -#define VK_OEM_PERIOD 0xBE // '.' any country -#define VK_OEM_2 0xBF // '/?' for US -#define VK_OEM_3 0xC0 // '`~' for US - -/* - * 0xC1 - 0xD7 : reserved - */ - -/* - * 0xD8 - 0xDA : unassigned - */ - -#define VK_OEM_4 0xDB // '[{' for US -#define VK_OEM_5 0xDC // '\|' for US -#define VK_OEM_6 0xDD // ']}' for US -#define VK_OEM_7 0xDE // ''"' for US -#define VK_OEM_8 0xDF - -/* - * 0xE0 : reserved - */ - -/* - * Various extended or enhanced keyboards - */ -#define VK_OEM_AX 0xE1 // 'AX' key on Japanese AX kbd -#define VK_OEM_102 0xE2 // "<>" or "\|" on RT 102-key kbd. -#define VK_ICO_HELP 0xE3 // Help key on ICO -#define VK_ICO_00 0xE4 // 00 key on ICO - -#if(WINVER >= 0x0400) -#define VK_PROCESSKEY 0xE5 -#endif /* WINVER >= 0x0400 */ - -#define VK_ICO_CLEAR 0xE6 - - -#if(_WIN32_WINNT >= 0x0500) -#define VK_PACKET 0xE7 -#endif /* _WIN32_WINNT >= 0x0500 */ - -/* - * 0xE8 : unassigned - */ - -/* - * Nokia/Ericsson definitions - */ -#define VK_OEM_RESET 0xE9 -#define VK_OEM_JUMP 0xEA -#define VK_OEM_PA1 0xEB -#define VK_OEM_PA2 0xEC -#define VK_OEM_PA3 0xED -#define VK_OEM_WSCTRL 0xEE -#define VK_OEM_CUSEL 0xEF -#define VK_OEM_ATTN 0xF0 -#define VK_OEM_FINISH 0xF1 -#define VK_OEM_COPY 0xF2 -#define VK_OEM_AUTO 0xF3 -#define VK_OEM_ENLW 0xF4 -#define VK_OEM_BACKTAB 0xF5 - -#define VK_ATTN 0xF6 -#define VK_CRSEL 0xF7 -#define VK_EXSEL 0xF8 -#define VK_EREOF 0xF9 -#define VK_PLAY 0xFA -#define VK_ZOOM 0xFB -#define VK_NONAME 0xFC -#define VK_PA1 0xFD -#define VK_OEM_CLEAR 0xFE - -/* - * 0xFF : reserved - */ - - -#endif /* !NOVIRTUALKEYCODES */