OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 <include src="keyboard_overlay_data.js"/> | 5 <include src="keyboard_overlay_data.js"/> |
6 <include src="keyboard_overlay_accessibility_helper.js"/> | 6 <include src="keyboard_overlay_accessibility_helper.js"/> |
7 | 7 |
8 var BASE_KEYBOARD = { | 8 var BASE_KEYBOARD = { |
9 top: 0, | 9 top: 0, |
10 left: 0, | 10 left: 0, |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 } | 301 } |
302 if (isAscii(keyLabel) && | 302 if (isAscii(keyLabel) && |
303 getShortcutData()[getAction(keyLabel, modifiers)]) { | 303 getShortcutData()[getAction(keyLabel, modifiers)]) { |
304 break; | 304 break; |
305 } | 305 } |
306 } | 306 } |
307 return keyLabel; | 307 return keyLabel; |
308 } | 308 } |
309 | 309 |
310 /** | 310 /** |
311 * Returns the label corresponding to the key code. | |
312 * @param {string} keyCode Key code | |
313 * @return {string} Label of the key code. | |
314 */ | |
315 function getKeyLabelFromKeyCode(keyCode) { | |
316 if ('0'.charCodeAt(0) <= keyCode && keyCode <= 'Z'.charCodeAt(0)) | |
317 return String.fromCharCode(keyCode).toLowerCase(); | |
318 var label = KEYCODE_TO_LABEL[keyCode]; | |
319 if (label) | |
320 return label; | |
321 return ''; | |
322 } | |
323 | |
324 /** | |
325 * Returns a normalized string used for a key of shortcutData. | 311 * Returns a normalized string used for a key of shortcutData. |
326 * | 312 * |
327 * Examples: | 313 * Examples: |
328 * keyCode: 'd', modifiers: ['CTRL', 'SHIFT'] => 'd<>CTRL<>SHIFT' | 314 * keyCode: 'd', modifiers: ['CTRL', 'SHIFT'] => 'd<>CTRL<>SHIFT' |
329 * keyCode: 'alt', modifiers: ['ALT', 'SHIFT'] => 'ALT<>SHIFT' | 315 * keyCode: 'alt', modifiers: ['ALT', 'SHIFT'] => 'ALT<>SHIFT' |
330 * | 316 * |
331 * @param {string} keyCode Key code. | 317 * @param {string} keyCode Key code. |
332 * @param {Array} modifiers Key Modifier list. | 318 * @param {Array} modifiers Key Modifier list. |
333 * @return {string} Normalized key shortcut data string. | 319 * @return {string} Normalized key shortcut data string. |
334 */ | 320 */ |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
441 } | 427 } |
442 | 428 |
443 /** | 429 /** |
444 * A callback function for onkeydown and onkeyup events. | 430 * A callback function for onkeydown and onkeyup events. |
445 * @param {Event} e Key event. | 431 * @param {Event} e Key event. |
446 */ | 432 */ |
447 function handleKeyEvent(e) { | 433 function handleKeyEvent(e) { |
448 if (!getKeyboardOverlayId()) { | 434 if (!getKeyboardOverlayId()) { |
449 return; | 435 return; |
450 } | 436 } |
451 var label = getKeyLabelFromKeyCode(e.keyCode); | |
452 var modifiers = getModifiers(e); | 437 var modifiers = getModifiers(e); |
453 var shortcutData = getShortcutData(); | |
454 var action = getAction(label, modifiers); | |
455 if (e.type == 'keydown' && | |
456 (contains(CLOSE_LABELS, label) || shortcutData[action])) { | |
457 chrome.send('DialogClose'); | |
458 return; | |
459 } | |
460 update(modifiers); | 438 update(modifiers); |
461 KeyboardOverlayAccessibilityHelper.maybeSpeakAllShortcuts(modifiers); | 439 KeyboardOverlayAccessibilityHelper.maybeSpeakAllShortcuts(modifiers); |
462 e.preventDefault(); | 440 e.preventDefault(); |
463 } | 441 } |
464 | 442 |
465 /** | 443 /** |
466 * Initializes the layout of the keys. | 444 * Initializes the layout of the keys. |
467 */ | 445 */ |
468 function initLayout() { | 446 function initLayout() { |
469 // Add data for the caps lock key | 447 // Add data for the caps lock key |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
623 * Handles click events of the learn more link. | 601 * Handles click events of the learn more link. |
624 * @param {Event} e Mouse click event. | 602 * @param {Event} e Mouse click event. |
625 */ | 603 */ |
626 function learnMoreClicked(e) { | 604 function learnMoreClicked(e) { |
627 chrome.send('openLearnMorePage'); | 605 chrome.send('openLearnMorePage'); |
628 chrome.send('DialogClose'); | 606 chrome.send('DialogClose'); |
629 e.preventDefault(); | 607 e.preventDefault(); |
630 } | 608 } |
631 | 609 |
632 document.addEventListener('DOMContentLoaded', init); | 610 document.addEventListener('DOMContentLoaded', init); |
OLD | NEW |