/* * Key values derived from X KeySyms */ #define OSW_KEY_BackSpace 0xFF08 /* back space, back char */ #define OSW_KEY_Tab 0xFF09 #define OSW_KEY_Linefeed 0xFF0A /* Linefeed, LF */ #define OSW_KEY_Clear 0xFF0B #define OSW_KEY_Return 0xFF0D /* Return, enter */ #define OSW_KEY_Pause 0xFF13 /* Pause, hold */ #define OSW_KEY_Scroll_Lock 0xFF14 #define OSW_KEY_Sys_Req 0xFF15 #define OSW_KEY_Escape 0xFF1B #define OSW_KEY_Delete 0xFFFF /* Delete, rubout */ /* International & multi-key character composition */ #define OSW_KEY_Multi_key 0xFF20 /* Multi-key character compose */ #define OSW_KEY_Codeinput 0xFF37 #define OSW_KEY_SingleCandidate 0xFF3C #define OSW_KEY_MultipleCandidate 0xFF3D #define OSW_KEY_PreviousCandidate 0xFF3E /* Cursor control & motion */ #define OSW_KEY_Home 0xFF50 #define OSW_KEY_Left 0xFF51 /* Move left, left arrow */ #define OSW_KEY_Up 0xFF52 /* Move up, up arrow */ #define OSW_KEY_Right 0xFF53 /* Move right, right arrow */ #define OSW_KEY_Down 0xFF54 /* Move down, down arrow */ #define OSW_KEY_Prior 0xFF55 /* Prior, previous */ #define OSW_KEY_Page_Up 0xFF55 #define OSW_KEY_Next 0xFF56 /* Next */ #define OSW_KEY_Page_Down 0xFF56 #define OSW_KEY_End 0xFF57 /* EOL */ #define OSW_KEY_Begin 0xFF58 /* BOL */ /* Misc Functions */ #define OSW_KEY_Select 0xFF60 /* Select, mark */ #define OSW_KEY_Print 0xFF61 #define OSW_KEY_Execute 0xFF62 /* Execute, run, do */ #define OSW_KEY_Insert 0xFF63 /* Insert, insert here */ #define OSW_KEY_Undo 0xFF65 /* Undo, oops */ #define OSW_KEY_Redo 0xFF66 /* redo, again */ #define OSW_KEY_Menu 0xFF67 #define OSW_KEY_Find 0xFF68 /* Find, search */ #define OSW_KEY_Cancel 0xFF69 /* Cancel, stop, abort, exit */ #define OSW_KEY_Help 0xFF6A /* Help */ #define OSW_KEY_Break 0xFF6B #define OSW_KEY_Mode_switch 0xFF7E /* Character set switch */ #define OSW_KEY_script_switch 0xFF7E /* Alias for mode_switch */ #define OSW_KEY_Num_Lock 0xFF7F /* Keypad Functions, keypad numbers cleverly chosen to map to ascii */ #define OSW_KEY_KP_Space 0xFF80 /* space */ #define OSW_KEY_KP_Tab 0xFF89 #define OSW_KEY_KP_Enter 0xFF8D /* enter */ #define OSW_KEY_KP_F1 0xFF91 /* PF1, KP_A, ... */ #define OSW_KEY_KP_F2 0xFF92 #define OSW_KEY_KP_F3 0xFF93 #define OSW_KEY_KP_F4 0xFF94 #define OSW_KEY_KP_Home 0xFF95 #define OSW_KEY_KP_Left 0xFF96 #define OSW_KEY_KP_Up 0xFF97 #define OSW_KEY_KP_Right 0xFF98 #define OSW_KEY_KP_Down 0xFF99 #define OSW_KEY_KP_Prior 0xFF9A #define OSW_KEY_KP_Page_Up 0xFF9A #define OSW_KEY_KP_Next 0xFF9B #define OSW_KEY_KP_Page_Down 0xFF9B #define OSW_KEY_KP_End 0xFF9C #define OSW_KEY_KP_Begin 0xFF9D #define OSW_KEY_KP_Insert 0xFF9E #define OSW_KEY_KP_Delete 0xFF9F #define OSW_KEY_KP_Equal 0xFFBD /* equals */ #define OSW_KEY_KP_Multiply 0xFFAA #define OSW_KEY_KP_Add 0xFFAB #define OSW_KEY_KP_Separator 0xFFAC /* separator, often comma */ #define OSW_KEY_KP_Subtract 0xFFAD #define OSW_KEY_KP_Decimal 0xFFAE #define OSW_KEY_KP_Divide 0xFFAF #define OSW_KEY_KP_0 0xFFB0 #define OSW_KEY_KP_1 0xFFB1 #define OSW_KEY_KP_2 0xFFB2 #define OSW_KEY_KP_3 0xFFB3 #define OSW_KEY_KP_4 0xFFB4 #define OSW_KEY_KP_5 0xFFB5 #define OSW_KEY_KP_6 0xFFB6 #define OSW_KEY_KP_7 0xFFB7 #define OSW_KEY_KP_8 0xFFB8 #define OSW_KEY_KP_9 0xFFB9 /* * Auxilliary Functions; note the duplicate definitions for left and right * function keys; Sun keyboards and a few other manufactures have such * function key groups on the left and/or right sides of the keyboard. * We've not found a keyboard with more than 35 function keys total. */ #define OSW_KEY_F1 0xFFBE #define OSW_KEY_F2 0xFFBF #define OSW_KEY_F3 0xFFC0 #define OSW_KEY_F4 0xFFC1 #define OSW_KEY_F5 0xFFC2 #define OSW_KEY_F6 0xFFC3 #define OSW_KEY_F7 0xFFC4 #define OSW_KEY_F8 0xFFC5 #define OSW_KEY_F9 0xFFC6 #define OSW_KEY_F10 0xFFC7 #define OSW_KEY_F11 0xFFC8 #define OSW_KEY_L1 0xFFC8 #define OSW_KEY_F12 0xFFC9 #define OSW_KEY_L2 0xFFC9 #define OSW_KEY_F13 0xFFCA #define OSW_KEY_L3 0xFFCA #define OSW_KEY_F14 0xFFCB #define OSW_KEY_L4 0xFFCB #define OSW_KEY_F15 0xFFCC #define OSW_KEY_L5 0xFFCC #define OSW_KEY_F16 0xFFCD #define OSW_KEY_L6 0xFFCD #define OSW_KEY_F17 0xFFCE #define OSW_KEY_L7 0xFFCE #define OSW_KEY_F18 0xFFCF #define OSW_KEY_L8 0xFFCF #define OSW_KEY_F19 0xFFD0 #define OSW_KEY_L9 0xFFD0 #define OSW_KEY_F20 0xFFD1 #define OSW_KEY_L10 0xFFD1 #define OSW_KEY_F21 0xFFD2 #define OSW_KEY_R1 0xFFD2 #define OSW_KEY_F22 0xFFD3 #define OSW_KEY_R2 0xFFD3 #define OSW_KEY_F23 0xFFD4 #define OSW_KEY_R3 0xFFD4 #define OSW_KEY_F24 0xFFD5 #define OSW_KEY_R4 0xFFD5 #define OSW_KEY_F25 0xFFD6 #define OSW_KEY_R5 0xFFD6 #define OSW_KEY_F26 0xFFD7 #define OSW_KEY_R6 0xFFD7 #define OSW_KEY_F27 0xFFD8 #define OSW_KEY_R7 0xFFD8 #define OSW_KEY_F28 0xFFD9 #define OSW_KEY_R8 0xFFD9 #define OSW_KEY_F29 0xFFDA #define OSW_KEY_R9 0xFFDA #define OSW_KEY_F30 0xFFDB #define OSW_KEY_R10 0xFFDB #define OSW_KEY_F31 0xFFDC #define OSW_KEY_R11 0xFFDC #define OSW_KEY_F32 0xFFDD #define OSW_KEY_R12 0xFFDD #define OSW_KEY_F33 0xFFDE #define OSW_KEY_R13 0xFFDE #define OSW_KEY_F34 0xFFDF #define OSW_KEY_R14 0xFFDF #define OSW_KEY_F35 0xFFE0 #define OSW_KEY_R15 0xFFE0 /* Modifiers */ #define OSW_KEY_Shift_L 0xFFE1 /* Left shift */ #define OSW_KEY_Shift_R 0xFFE2 /* Right shift */ #define OSW_KEY_Control_L 0xFFE3 /* Left control */ #define OSW_KEY_Control_R 0xFFE4 /* Right control */ #define OSW_KEY_Caps_Lock 0xFFE5 /* Caps lock */ #define OSW_KEY_Shift_Lock 0xFFE6 /* Shift lock */ #define OSW_KEY_Meta_L 0xFFE7 /* Left meta */ #define OSW_KEY_Meta_R 0xFFE8 /* Right meta */ #define OSW_KEY_Alt_L 0xFFE9 /* Left alt */ #define OSW_KEY_Alt_R 0xFFEA /* Right alt */ #define OSW_KEY_Super_L 0xFFEB /* Left super */ #define OSW_KEY_Super_R 0xFFEC /* Right super */ #define OSW_KEY_Hyper_L 0xFFED /* Left hyper */ #define OSW_KEY_Hyper_R 0xFFEE /* Right hyper */ /* * Latin 1 * Byte 3 = 0 */ #define OSW_KEY_space 0x020 #define OSW_KEY_exclam 0x021 #define OSW_KEY_quotedbl 0x022 #define OSW_KEY_numbersign 0x023 #define OSW_KEY_dollar 0x024 #define OSW_KEY_percent 0x025 #define OSW_KEY_ampersand 0x026 #define OSW_KEY_apostrophe 0x027 #define OSW_KEY_quoteright 0x027 /* deprecated */ #define OSW_KEY_parenleft 0x028 #define OSW_KEY_parenright 0x029 #define OSW_KEY_asterisk 0x02a #define OSW_KEY_plus 0x02b #define OSW_KEY_comma 0x02c #define OSW_KEY_minus 0x02d #define OSW_KEY_period 0x02e #define OSW_KEY_slash 0x02f #define OSW_KEY_0 0x030 #define OSW_KEY_1 0x031 #define OSW_KEY_2 0x032 #define OSW_KEY_3 0x033 #define OSW_KEY_4 0x034 #define OSW_KEY_5 0x035 #define OSW_KEY_6 0x036 #define OSW_KEY_7 0x037 #define OSW_KEY_8 0x038 #define OSW_KEY_9 0x039 #define OSW_KEY_colon 0x03a #define OSW_KEY_semicolon 0x03b #define OSW_KEY_less 0x03c #define OSW_KEY_equal 0x03d #define OSW_KEY_greater 0x03e #define OSW_KEY_question 0x03f #define OSW_KEY_at 0x040 #define OSW_KEY_A 0x041 #define OSW_KEY_B 0x042 #define OSW_KEY_C 0x043 #define OSW_KEY_D 0x044 #define OSW_KEY_E 0x045 #define OSW_KEY_F 0x046 #define OSW_KEY_G 0x047 #define OSW_KEY_H 0x048 #define OSW_KEY_I 0x049 #define OSW_KEY_J 0x04a #define OSW_KEY_K 0x04b #define OSW_KEY_L 0x04c #define OSW_KEY_M 0x04d #define OSW_KEY_N 0x04e #define OSW_KEY_O 0x04f #define OSW_KEY_P 0x050 #define OSW_KEY_Q 0x051 #define OSW_KEY_R 0x052 #define OSW_KEY_S 0x053 #define OSW_KEY_T 0x054 #define OSW_KEY_U 0x055 #define OSW_KEY_V 0x056 #define OSW_KEY_W 0x057 #define OSW_KEY_X 0x058 #define OSW_KEY_Y 0x059 #define OSW_KEY_Z 0x05a #define OSW_KEY_bracketleft 0x05b #define OSW_KEY_backslash 0x05c #define OSW_KEY_bracketright 0x05d #define OSW_KEY_asciicircum 0x05e #define OSW_KEY_underscore 0x05f #define OSW_KEY_grave 0x060 #define OSW_KEY_quoteleft 0x060 /* deprecated */ #define OSW_KEY_a 0x061 #define OSW_KEY_b 0x062 #define OSW_KEY_c 0x063 #define OSW_KEY_d 0x064 #define OSW_KEY_e 0x065 #define OSW_KEY_f 0x066 #define OSW_KEY_g 0x067 #define OSW_KEY_h 0x068 #define OSW_KEY_i 0x069 #define OSW_KEY_j 0x06a #define OSW_KEY_k 0x06b #define OSW_KEY_l 0x06c #define OSW_KEY_m 0x06d #define OSW_KEY_n 0x06e #define OSW_KEY_o 0x06f #define OSW_KEY_p 0x070 #define OSW_KEY_q 0x071 #define OSW_KEY_r 0x072 #define OSW_KEY_s 0x073 #define OSW_KEY_t 0x074 #define OSW_KEY_u 0x075 #define OSW_KEY_v 0x076 #define OSW_KEY_w 0x077 #define OSW_KEY_x 0x078 #define OSW_KEY_y 0x079 #define OSW_KEY_z 0x07a #define OSW_KEY_braceleft 0x07b #define OSW_KEY_bar 0x07c #define OSW_KEY_braceright 0x07d #define OSW_KEY_asciitilde 0x07e #define OSW_KEY_nobreakspace 0x0a0 #define OSW_KEY_exclamdown 0x0a1 #define OSW_KEY_cent 0x0a2 #define OSW_KEY_sterling 0x0a3 #define OSW_KEY_currency 0x0a4 #define OSW_KEY_yen 0x0a5 #define OSW_KEY_brokenbar 0x0a6 #define OSW_KEY_section 0x0a7 #define OSW_KEY_diaeresis 0x0a8 #define OSW_KEY_copyright 0x0a9 #define OSW_KEY_ordfeminine 0x0aa #define OSW_KEY_guillemotleft 0x0ab /* left angle quotation mark */ #define OSW_KEY_notsign 0x0ac #define OSW_KEY_hyphen 0x0ad #define OSW_KEY_registered 0x0ae #define OSW_KEY_macron 0x0af #define OSW_KEY_degree 0x0b0 #define OSW_KEY_plusminus 0x0b1 #define OSW_KEY_twosuperior 0x0b2 #define OSW_KEY_threesuperior 0x0b3 #define OSW_KEY_acute 0x0b4 #define OSW_KEY_mu 0x0b5 #define OSW_KEY_paragraph 0x0b6 #define OSW_KEY_periodcentered 0x0b7 #define OSW_KEY_cedilla 0x0b8 #define OSW_KEY_onesuperior 0x0b9 #define OSW_KEY_masculine 0x0ba #define OSW_KEY_guillemotright 0x0bb /* right angle quotation mark */ #define OSW_KEY_onequarter 0x0bc #define OSW_KEY_onehalf 0x0bd #define OSW_KEY_threequarters 0x0be #define OSW_KEY_questiondown 0x0bf #define OSW_KEY_Agrave 0x0c0 #define OSW_KEY_Aacute 0x0c1 #define OSW_KEY_Acircumflex 0x0c2 #define OSW_KEY_Atilde 0x0c3 #define OSW_KEY_Adiaeresis 0x0c4 #define OSW_KEY_Aring 0x0c5 #define OSW_KEY_AE 0x0c6 #define OSW_KEY_Ccedilla 0x0c7 #define OSW_KEY_Egrave 0x0c8 #define OSW_KEY_Eacute 0x0c9 #define OSW_KEY_Ecircumflex 0x0ca #define OSW_KEY_Ediaeresis 0x0cb #define OSW_KEY_Igrave 0x0cc #define OSW_KEY_Iacute 0x0cd #define OSW_KEY_Icircumflex 0x0ce #define OSW_KEY_Idiaeresis 0x0cf #define OSW_KEY_ETH 0x0d0 #define OSW_KEY_Eth 0x0d0 /* deprecated */ #define OSW_KEY_Ntilde 0x0d1 #define OSW_KEY_Ograve 0x0d2 #define OSW_KEY_Oacute 0x0d3 #define OSW_KEY_Ocircumflex 0x0d4 #define OSW_KEY_Otilde 0x0d5 #define OSW_KEY_Odiaeresis 0x0d6 #define OSW_KEY_multiply 0x0d7 #define OSW_KEY_Ooblique 0x0d8 #define OSW_KEY_Ugrave 0x0d9 #define OSW_KEY_Uacute 0x0da #define OSW_KEY_Ucircumflex 0x0db #define OSW_KEY_Udiaeresis 0x0dc #define OSW_KEY_Yacute 0x0dd #define OSW_KEY_THORN 0x0de #define OSW_KEY_Thorn 0x0de /* deprecated */ #define OSW_KEY_ssharp 0x0df #define OSW_KEY_agrave 0x0e0 #define OSW_KEY_aacute 0x0e1 #define OSW_KEY_acircumflex 0x0e2 #define OSW_KEY_atilde 0x0e3 #define OSW_KEY_adiaeresis 0x0e4 #define OSW_KEY_aring 0x0e5 #define OSW_KEY_ae 0x0e6 #define OSW_KEY_ccedilla 0x0e7 #define OSW_KEY_egrave 0x0e8 #define OSW_KEY_eacute 0x0e9 #define OSW_KEY_ecircumflex 0x0ea #define OSW_KEY_ediaeresis 0x0eb #define OSW_KEY_igrave 0x0ec #define OSW_KEY_iacute 0x0ed #define OSW_KEY_icircumflex 0x0ee #define OSW_KEY_idiaeresis 0x0ef #define OSW_KEY_eth 0x0f0 #define OSW_KEY_ntilde 0x0f1 #define OSW_KEY_ograve 0x0f2 #define OSW_KEY_oacute 0x0f3 #define OSW_KEY_ocircumflex 0x0f4 #define OSW_KEY_otilde 0x0f5 #define OSW_KEY_odiaeresis 0x0f6 #define OSW_KEY_division 0x0f7 #define OSW_KEY_oslash 0x0f8 #define OSW_KEY_ugrave 0x0f9 #define OSW_KEY_uacute 0x0fa #define OSW_KEY_ucircumflex 0x0fb #define OSW_KEY_udiaeresis 0x0fc #define OSW_KEY_yacute 0x0fd #define OSW_KEY_thorn 0x0fe #define OSW_KEY_ydiaeresis 0x0ff /* ISO */ #define OSW_KEY_ISO_Left_Tab 0xFE20 #define OSW_KEY_ISO_Enter 0xFE34