1
// $Id: plevent.h 11283 2010-10-28 22:38:29Z airwin $
3
// Input event (especially keyboard) definitions for use from plplot
6
// Key definitions are taken from the X11/keysymdef.h include file, with
8
// - only the control keys are retained
9
// - the XK prefix has been changed to PLK
10
// - control keys with ASCII equivalents use the ASCII code
12
// By using the ASCII equivalent (if it exists) for all control keys, it
13
// is easier to handle keyboard input from any device which is ASCII based.
14
// Devices which use some other kind of key encoding must translate the raw
15
// keycodes to those used here.
23
//--------------------------------------------------------------------------
24
// Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
25
// and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
27
// All Rights Reserved
29
// Permission to use, copy, modify, and distribute this software and its
30
// documentation for any purpose and without fee is hereby granted,
31
// provided that the above copyright notice appear in all copies and that
32
// both that copyright notice and this permission notice appear in
33
// supporting documentation, and that the names of Digital or MIT not be
34
// used in advertising or publicity pertaining to distribution of the
35
// software without specific, written prior permission.
37
// DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
38
// ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
39
// DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
40
// ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
41
// WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
42
// ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
45
//--------------------------------------------------------------------------
47
// Miscellaneous control keys, those with ASCII equivalents
49
#define PLK_BackSpace 0x08 // back space, back char
51
#define PLK_Linefeed 0x0A // Linefeed, LF
52
#define PLK_Return 0x0D // Return, enter
53
#define PLK_Escape 0x1B
54
#define PLK_Delete 0xFF // Delete, rubout
56
// Those without ASCII equivalents
58
#define PLK_Clear 0xFF0B
59
#define PLK_Pause 0xFF13 // Pause, hold
60
#define PLK_Scroll_Lock 0xFF14
62
// Cursor control & motion
64
#define PLK_Home 0xFF50
65
#define PLK_Left 0xFF51 // Move left, left arrow
66
#define PLK_Up 0xFF52 // Move up, up arrow
67
#define PLK_Right 0xFF53 // Move right, right arrow
68
#define PLK_Down 0xFF54 // Move down, down arrow
69
#define PLK_Prior 0xFF55 // Prior, previous (Page Up)
70
#define PLK_Next 0xFF56 // Next (Page Down)
71
#define PLK_End 0xFF57 // EOL
72
#define PLK_Begin 0xFF58 // BOL
76
#define PLK_Select 0xFF60 // Select, mark
77
#define PLK_Print 0xFF61
78
#define PLK_Execute 0xFF62 // Execute, run, do
79
#define PLK_Insert 0xFF63 // Insert, insert here
80
#define PLK_Undo 0xFF65 // Undo, oops
81
#define PLK_Redo 0xFF66 // redo, again
82
#define PLK_Menu 0xFF67
83
#define PLK_Find 0xFF68 // Find, search
84
#define PLK_Cancel 0xFF69 // Cancel, stop, abort, exit
85
#define PLK_Help 0xFF6A // Help, ?
86
#define PLK_Break 0xFF6B
87
#define PLK_Mode_switch 0xFF7E // Character set switch
88
#define PLK_script_switch 0xFF7E // Alias for mode_switch
89
#define PLK_Num_Lock 0xFF7F
91
// Keypad Functions, keypad numbers cleverly chosen to map to ascii
93
#define PLK_KP_Space 0xFF80 // space
94
#define PLK_KP_Tab 0xFF89
95
#define PLK_KP_Enter 0xFF8D // enter
96
#define PLK_KP_F1 0xFF91 // PF1, KP_A, ...
97
#define PLK_KP_F2 0xFF92
98
#define PLK_KP_F3 0xFF93
99
#define PLK_KP_F4 0xFF94
100
#define PLK_KP_Equal 0xFFBD // equals
101
#define PLK_KP_Multiply 0xFFAA
102
#define PLK_KP_Add 0xFFAB
103
#define PLK_KP_Separator 0xFFAC // separator, often comma
104
#define PLK_KP_Subtract 0xFFAD
105
#define PLK_KP_Decimal 0xFFAE
106
#define PLK_KP_Divide 0xFFAF
108
#define PLK_KP_0 0xFFB0
109
#define PLK_KP_1 0xFFB1
110
#define PLK_KP_2 0xFFB2
111
#define PLK_KP_3 0xFFB3
112
#define PLK_KP_4 0xFFB4
113
#define PLK_KP_5 0xFFB5
114
#define PLK_KP_6 0xFFB6
115
#define PLK_KP_7 0xFFB7
116
#define PLK_KP_8 0xFFB8
117
#define PLK_KP_9 0xFFB9
120
// Auxilliary Functions; note the duplicate definitions for left and right
121
// function keys; Sun keyboards and a few other manufactures have such
122
// function key groups on the left and/or right sides of the keyboard.
123
// We've not found a keyboard with more than 35 function keys total.
126
#define PLK_F1 0xFFBE
127
#define PLK_F2 0xFFBF
128
#define PLK_F3 0xFFC0
129
#define PLK_F4 0xFFC1
130
#define PLK_F5 0xFFC2
131
#define PLK_F6 0xFFC3
132
#define PLK_F7 0xFFC4
133
#define PLK_F8 0xFFC5
134
#define PLK_F9 0xFFC6
135
#define PLK_F10 0xFFC7
136
#define PLK_F11 0xFFC8
137
#define PLK_L1 0xFFC8
138
#define PLK_F12 0xFFC9
139
#define PLK_L2 0xFFC9
140
#define PLK_F13 0xFFCA
141
#define PLK_L3 0xFFCA
142
#define PLK_F14 0xFFCB
143
#define PLK_L4 0xFFCB
144
#define PLK_F15 0xFFCC
145
#define PLK_L5 0xFFCC
146
#define PLK_F16 0xFFCD
147
#define PLK_L6 0xFFCD
148
#define PLK_F17 0xFFCE
149
#define PLK_L7 0xFFCE
150
#define PLK_F18 0xFFCF
151
#define PLK_L8 0xFFCF
152
#define PLK_F19 0xFFD0
153
#define PLK_L9 0xFFD0
154
#define PLK_F20 0xFFD1
155
#define PLK_L10 0xFFD1
156
#define PLK_F21 0xFFD2
157
#define PLK_R1 0xFFD2
158
#define PLK_F22 0xFFD3
159
#define PLK_R2 0xFFD3
160
#define PLK_F23 0xFFD4
161
#define PLK_R3 0xFFD4
162
#define PLK_F24 0xFFD5
163
#define PLK_R4 0xFFD5
164
#define PLK_F25 0xFFD6
165
#define PLK_R5 0xFFD6
166
#define PLK_F26 0xFFD7
167
#define PLK_R6 0xFFD7
168
#define PLK_F27 0xFFD8
169
#define PLK_R7 0xFFD8
170
#define PLK_F28 0xFFD9
171
#define PLK_R8 0xFFD9
172
#define PLK_F29 0xFFDA
173
#define PLK_R9 0xFFDA
174
#define PLK_F30 0xFFDB
175
#define PLK_R10 0xFFDB
176
#define PLK_F31 0xFFDC
177
#define PLK_R11 0xFFDC
178
#define PLK_F32 0xFFDD
179
#define PLK_R12 0xFFDD
180
#define PLK_R13 0xFFDE
181
#define PLK_F33 0xFFDE
182
#define PLK_F34 0xFFDF
183
#define PLK_R14 0xFFDF
184
#define PLK_F35 0xFFE0
185
#define PLK_R15 0xFFE0
189
#define PLK_Shift_L 0xFFE1 // Left shift
190
#define PLK_Shift_R 0xFFE2 // Right shift
191
#define PLK_Control_L 0xFFE3 // Left control
192
#define PLK_Control_R 0xFFE4 // Right control
193
#define PLK_Caps_Lock 0xFFE5 // Caps lock
194
#define PLK_Shift_Lock 0xFFE6 // Shift lock
196
#define PLK_Meta_L 0xFFE7 // Left meta
197
#define PLK_Meta_R 0xFFE8 // Right meta
198
#define PLK_Alt_L 0xFFE9 // Left alt
199
#define PLK_Alt_R 0xFFEA // Right alt
200
#define PLK_Super_L 0xFFEB // Left super
201
#define PLK_Super_R 0xFFEC // Right super
202
#define PLK_Hyper_L 0xFFED // Left hyper
203
#define PLK_Hyper_R 0xFFEE // Right hyper
205
#endif // __PLEVENT_H__