// Input event (especially keyboard) definitions for use from plplot // event handlers. // // Key definitions are taken from the X11/keysymdef.h include file, with // some changes: // - only the control keys are retained // - the XK prefix has been changed to PLK // - control keys with ASCII equivalents use the ASCII code // // By using the ASCII equivalent (if it exists) for all control keys, it // is easier to handle keyboard input from any device which is ASCII based. // Devices which use some other kind of key encoding must translate the raw // keycodes to those used here. // #ifndef __PLEVENT_H__ #define __PLEVENT_H__ // Key definitions //-------------------------------------------------------------------------- // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, // and the Massachusetts Institute of Technology, Cambridge, Massachusetts. // // All Rights Reserved // // Permission to use, copy, modify, and distribute this software and its // documentation for any purpose and without fee is hereby granted, // provided that the above copyright notice appear in all copies and that // both that copyright notice and this permission notice appear in // supporting documentation, and that the names of Digital or MIT not be // used in advertising or publicity pertaining to distribution of the // software without specific, written prior permission. // // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS // SOFTWARE. // //-------------------------------------------------------------------------- // Miscellaneous control keys, those with ASCII equivalents #define PLK_BackSpace 0x08 // back space, back char #define PLK_Tab 0x09 #define PLK_Linefeed 0x0A // Linefeed, LF #define PLK_Return 0x0D // Return, enter #define PLK_Escape 0x1B #define PLK_Delete 0xFF // Delete, rubout // Those without ASCII equivalents #define PLK_Clear 0xFF0B #define PLK_Pause 0xFF13 // Pause, hold #define PLK_Scroll_Lock 0xFF14 // Cursor control & motion #define PLK_Home 0xFF50 #define PLK_Left 0xFF51 // Move left, left arrow #define PLK_Up 0xFF52 // Move up, up arrow #define PLK_Right 0xFF53 // Move right, right arrow #define PLK_Down 0xFF54 // Move down, down arrow #define PLK_Prior 0xFF55 // Prior, previous (Page Up) #define PLK_Next 0xFF56 // Next (Page Down) #define PLK_End 0xFF57 // EOL #define PLK_Begin 0xFF58 // BOL // Misc Functions #define PLK_Select 0xFF60 // Select, mark #define PLK_Print 0xFF61 #define PLK_Execute 0xFF62 // Execute, run, do #define PLK_Insert 0xFF63 // Insert, insert here #define PLK_Undo 0xFF65 // Undo, oops #define PLK_Redo 0xFF66 // redo, again #define PLK_Menu 0xFF67 #define PLK_Find 0xFF68 // Find, search #define PLK_Cancel 0xFF69 // Cancel, stop, abort, exit #define PLK_Help 0xFF6A // Help, ? #define PLK_Break 0xFF6B #define PLK_Mode_switch 0xFF7E // Character set switch #define PLK_script_switch 0xFF7E // Alias for mode_switch #define PLK_Num_Lock 0xFF7F // Keypad Functions, keypad numbers cleverly chosen to map to ascii #define PLK_KP_Space 0xFF80 // space #define PLK_KP_Tab 0xFF89 #define PLK_KP_Enter 0xFF8D // enter #define PLK_KP_F1 0xFF91 // PF1, KP_A, ... #define PLK_KP_F2 0xFF92 #define PLK_KP_F3 0xFF93 #define PLK_KP_F4 0xFF94 #define PLK_KP_Equal 0xFFBD // equals #define PLK_KP_Multiply 0xFFAA #define PLK_KP_Add 0xFFAB #define PLK_KP_Separator 0xFFAC // separator, often comma #define PLK_KP_Subtract 0xFFAD #define PLK_KP_Decimal 0xFFAE #define PLK_KP_Divide 0xFFAF #define PLK_KP_0 0xFFB0 #define PLK_KP_1 0xFFB1 #define PLK_KP_2 0xFFB2 #define PLK_KP_3 0xFFB3 #define PLK_KP_4 0xFFB4 #define PLK_KP_5 0xFFB5 #define PLK_KP_6 0xFFB6 #define PLK_KP_7 0xFFB7 #define PLK_KP_8 0xFFB8 #define PLK_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 PLK_F1 0xFFBE #define PLK_F2 0xFFBF #define PLK_F3 0xFFC0 #define PLK_F4 0xFFC1 #define PLK_F5 0xFFC2 #define PLK_F6 0xFFC3 #define PLK_F7 0xFFC4 #define PLK_F8 0xFFC5 #define PLK_F9 0xFFC6 #define PLK_F10 0xFFC7 #define PLK_F11 0xFFC8 #define PLK_L1 0xFFC8 #define PLK_F12 0xFFC9 #define PLK_L2 0xFFC9 #define PLK_F13 0xFFCA #define PLK_L3 0xFFCA #define PLK_F14 0xFFCB #define PLK_L4 0xFFCB #define PLK_F15 0xFFCC #define PLK_L5 0xFFCC #define PLK_F16 0xFFCD #define PLK_L6 0xFFCD #define PLK_F17 0xFFCE #define PLK_L7 0xFFCE #define PLK_F18 0xFFCF #define PLK_L8 0xFFCF #define PLK_F19 0xFFD0 #define PLK_L9 0xFFD0 #define PLK_F20 0xFFD1 #define PLK_L10 0xFFD1 #define PLK_F21 0xFFD2 #define PLK_R1 0xFFD2 #define PLK_F22 0xFFD3 #define PLK_R2 0xFFD3 #define PLK_F23 0xFFD4 #define PLK_R3 0xFFD4 #define PLK_F24 0xFFD5 #define PLK_R4 0xFFD5 #define PLK_F25 0xFFD6 #define PLK_R5 0xFFD6 #define PLK_F26 0xFFD7 #define PLK_R6 0xFFD7 #define PLK_F27 0xFFD8 #define PLK_R7 0xFFD8 #define PLK_F28 0xFFD9 #define PLK_R8 0xFFD9 #define PLK_F29 0xFFDA #define PLK_R9 0xFFDA #define PLK_F30 0xFFDB #define PLK_R10 0xFFDB #define PLK_F31 0xFFDC #define PLK_R11 0xFFDC #define PLK_F32 0xFFDD #define PLK_R12 0xFFDD #define PLK_R13 0xFFDE #define PLK_F33 0xFFDE #define PLK_F34 0xFFDF #define PLK_R14 0xFFDF #define PLK_F35 0xFFE0 #define PLK_R15 0xFFE0 // Modifiers #define PLK_Shift_L 0xFFE1 // Left shift #define PLK_Shift_R 0xFFE2 // Right shift #define PLK_Control_L 0xFFE3 // Left control #define PLK_Control_R 0xFFE4 // Right control #define PLK_Caps_Lock 0xFFE5 // Caps lock #define PLK_Shift_Lock 0xFFE6 // Shift lock #define PLK_Meta_L 0xFFE7 // Left meta #define PLK_Meta_R 0xFFE8 // Right meta #define PLK_Alt_L 0xFFE9 // Left alt #define PLK_Alt_R 0xFFEA // Right alt #define PLK_Super_L 0xFFEB // Left super #define PLK_Super_R 0xFFEC // Right super #define PLK_Hyper_L 0xFFED // Left hyper #define PLK_Hyper_R 0xFFEE // Right hyper #endif // __PLEVENT_H__