Lines Matching refs:key
60 Some patterns seen in terminal key escape codes, derived from combos seen
61 at http://www.midnight-commander.org/browser/lib/tty/key.c
91 const key = {
215 // Parse the key modifier
216 key.ctrl = !!(modifier & 4);
217 key.meta = !!(modifier & 10);
218 key.shift = !!(modifier & 1);
219 key.code = code;
221 // Parse the key itself
224 case '[P': key.name = 'f1'; break;
225 case '[Q': key.name = 'f2'; break;
226 case '[R': key.name = 'f3'; break;
227 case '[S': key.name = 'f4'; break;
230 case 'OP': key.name = 'f1'; break;
231 case 'OQ': key.name = 'f2'; break;
232 case 'OR': key.name = 'f3'; break;
233 case 'OS': key.name = 'f4'; break;
236 case '[11~': key.name = 'f1'; break;
237 case '[12~': key.name = 'f2'; break;
238 case '[13~': key.name = 'f3'; break;
239 case '[14~': key.name = 'f4'; break;
242 case '[200~': key.name = 'paste-start'; break;
243 case '[201~': key.name = 'paste-end'; break;
246 case '[[A': key.name = 'f1'; break;
247 case '[[B': key.name = 'f2'; break;
248 case '[[C': key.name = 'f3'; break;
249 case '[[D': key.name = 'f4'; break;
250 case '[[E': key.name = 'f5'; break;
253 case '[15~': key.name = 'f5'; break;
254 case '[17~': key.name = 'f6'; break;
255 case '[18~': key.name = 'f7'; break;
256 case '[19~': key.name = 'f8'; break;
257 case '[20~': key.name = 'f9'; break;
258 case '[21~': key.name = 'f10'; break;
259 case '[23~': key.name = 'f11'; break;
260 case '[24~': key.name = 'f12'; break;
263 case '[A': key.name = 'up'; break;
264 case '[B': key.name = 'down'; break;
265 case '[C': key.name = 'right'; break;
266 case '[D': key.name = 'left'; break;
267 case '[E': key.name = 'clear'; break;
268 case '[F': key.name = 'end'; break;
269 case '[H': key.name = 'home'; break;
272 case 'OA': key.name = 'up'; break;
273 case 'OB': key.name = 'down'; break;
274 case 'OC': key.name = 'right'; break;
275 case 'OD': key.name = 'left'; break;
276 case 'OE': key.name = 'clear'; break;
277 case 'OF': key.name = 'end'; break;
278 case 'OH': key.name = 'home'; break;
281 case '[1~': key.name = 'home'; break;
282 case '[2~': key.name = 'insert'; break;
283 case '[3~': key.name = 'delete'; break;
284 case '[4~': key.name = 'end'; break;
285 case '[5~': key.name = 'pageup'; break;
286 case '[6~': key.name = 'pagedown'; break;
289 case '[[5~': key.name = 'pageup'; break;
290 case '[[6~': key.name = 'pagedown'; break;
293 case '[7~': key.name = 'home'; break;
294 case '[8~': key.name = 'end'; break;
297 case '[a': key.name = 'up'; key.shift = true; break;
298 case '[b': key.name = 'down'; key.shift = true; break;
299 case '[c': key.name = 'right'; key.shift = true; break;
300 case '[d': key.name = 'left'; key.shift = true; break;
301 case '[e': key.name = 'clear'; key.shift = true; break;
303 case '[2$': key.name = 'insert'; key.shift = true; break;
304 case '[3$': key.name = 'delete'; key.shift = true; break;
305 case '[5$': key.name = 'pageup'; key.shift = true; break;
306 case '[6$': key.name = 'pagedown'; key.shift = true; break;
307 case '[7$': key.name = 'home'; key.shift = true; break;
308 case '[8$': key.name = 'end'; key.shift = true; break;
310 case 'Oa': key.name = 'up'; key.ctrl = true; break;
311 case 'Ob': key.name = 'down'; key.ctrl = true; break;
312 case 'Oc': key.name = 'right'; key.ctrl = true; break;
313 case 'Od': key.name = 'left'; key.ctrl = true; break;
314 case 'Oe': key.name = 'clear'; key.ctrl = true; break;
316 case '[2^': key.name = 'insert'; key.ctrl = true; break;
317 case '[3^': key.name = 'delete'; key.ctrl = true; break;
318 case '[5^': key.name = 'pageup'; key.ctrl = true; break;
319 case '[6^': key.name = 'pagedown'; key.ctrl = true; break;
320 case '[7^': key.name = 'home'; key.ctrl = true; break;
321 case '[8^': key.name = 'end'; key.ctrl = true; break;
324 case '[Z': key.name = 'tab'; key.shift = true; break;
325 default: key.name = 'undefined'; break;
329 key.name = 'return';
330 key.meta = escaped;
333 key.name = 'enter';
334 key.meta = escaped;
337 key.name = 'tab';
338 key.meta = escaped;
341 key.name = 'backspace';
342 key.meta = escaped;
344 // escape key
345 key.name = 'escape';
346 key.meta = escaped;
348 key.name = 'space';
349 key.meta = escaped;
352 key.name = StringFromCharCode(
355 key.ctrl = true;
358 key.name = StringPrototypeToLowerCase(ch);
359 key.shift = RegExpPrototypeExec(/^[A-Z]$/, ch) !== null;
360 key.meta = escaped;
363 key.name = ch.length ? undefined : 'escape';
364 key.meta = true;
367 key.sequence = s;
369 if (s.length !== 0 && (key.name !== undefined || escaped)) {
371 stream.emit('keypress', escaped ? undefined : s, key);
374 stream.emit('keypress', s, key);