Home | History | Annotate | Download | only in speak_selection
      1 /**
      2  * Copyright (c) 2011 The Chromium Authors. All rights reserved.
      3  * Use of this source code is governed by a BSD-style license that can be
      4  * found in the LICENSE file.
      5  */
      6 
      7 var KEY_MAP = {
      8   12: 'Clear',
      9   14: 'Enter',
     10   33: 'PgUp',
     11   34: 'PgDown',
     12   35: 'End',
     13   36: 'Home',
     14   37: 'Left',
     15   38: 'Up',
     16   39: 'Right',
     17   40: 'Down',
     18   45: 'Insert',
     19   46: 'Delete',
     20   96: 'Numpad0',
     21   97: 'Numpad1',
     22   98: 'Numpad2',
     23   99: 'Numpad3',
     24   100: 'Numpad4',
     25   101: 'Numpad5',
     26   102: 'Numpad6',
     27   103: 'Numpad7',
     28   104: 'Numpad8',
     29   105: 'Numpad9',
     30   106: '*',
     31   107: 'Plus',
     32   108: '_',
     33   109: '-',
     34   111: '/',
     35   112: 'F1',
     36   113: 'F2',
     37   114: 'F3',
     38   115: 'F4',
     39   116: 'F5',
     40   117: 'F6',
     41   118: 'F7',
     42   119: 'F8',
     43   120: 'F9',
     44   121: 'F10',
     45   122: 'F11',
     46   123: 'F12',
     47   124: 'F13',
     48   125: 'F14',
     49   126: 'F15',
     50   186: ';',
     51   187: '=',
     52   188: ',',
     53   189: '-',
     54   190: '.',
     55   191: '/',
     56   192: '`',
     57   219: '[',
     58   221: ']'
     59 };
     60 
     61 var isMac = (navigator.appVersion.indexOf("Mac") != -1);
     62 
     63 function keyEventToString(evt) {
     64   var tokens = [];
     65   if (evt.ctrlKey) {
     66     tokens.push('Control');
     67   }
     68   if (evt.altKey) {
     69     tokens.push(isMac ? 'Option' : 'Alt');
     70   }
     71   if (evt.metaKey) {
     72     tokens.push(isMac ? 'Command' : 'Meta');
     73   }
     74   if (evt.shiftKey) {
     75     tokens.push('Shift');
     76   }
     77   if (evt.keyCode >= 48 && evt.keyCode <= 90) {
     78     tokens.push(String.fromCharCode(evt.keyCode));
     79   } else if (KEY_MAP[evt.keyCode]) {
     80     tokens.push(KEY_MAP[evt.keyCode]);
     81         } else {
     82     return '';
     83         }
     84   return tokens.join('+');
     85 }
     86 
     87 function getDefaultKeyString() {
     88   return keyEventToString({
     89     keyCode: 83,  // 's'
     90     shiftKey: true,
     91     altKey: true,
     92     ctrlKey: true,
     93     metaKey: false});
     94 }
     95