| OLD | NEW | 
|    1 <!-- |    1 <!-- | 
|    2   -- Copyright 2013 The Chromium Authors. All rights reserved. |    2   -- Copyright 2013 The Chromium Authors. All rights reserved. | 
|    3   -- Use of this source code is governed by a BSD-style license that can be |    3   -- Use of this source code is governed by a BSD-style license that can be | 
|    4   -- found in the LICENSE file. |    4   -- found in the LICENSE file. | 
|    5   --> |    5   --> | 
|    6  |    6  | 
|    7 <polymer-element name="kb-keyboard" on-key-over="keyOver" on-key-up="keyUp" |    7 <polymer-element name="kb-keyboard" on-key-over="keyOver" on-key-up="keyUp" | 
|    8     on-key-down="keyDown" on-key-longpress="keyLongpress" on-pointerup="up" |    8     on-key-down="keyDown" on-key-longpress="keyLongpress" on-pointerup="up" | 
|    9     on-pointerdown="down" on-enable-sel="enableSel" |    9     on-pointerdown="down" on-enable-sel="enableSel" | 
|   10     on-enable-dbl="enableDbl"  on-key-out="keyOut" |   10     on-enable-dbl="enableDbl"  on-key-out="keyOut" on-show-options="showOptions" | 
 |   11     on-set-layout="setLayout" | 
|   11     attributes="keyset layout inputType inputTypeToLayoutMap"> |   12     attributes="keyset layout inputType inputTypeToLayoutMap"> | 
|   12   <template> |   13   <template> | 
|   13     <style> |   14     <style> | 
|   14       @host { |   15       @host { | 
|   15         * { |   16         * { | 
|   16           position: relative; |   17           position: relative; | 
|   17         } |   18         } | 
|   18       } |   19       } | 
|   19     </style> |   20     </style> | 
|   20     <!-- The ID for a keyset follows the naming convention of combining the |   21     <!-- The ID for a keyset follows the naming convention of combining the | 
|   21       -- layout name with a base keyset name. This convention is used to |   22       -- layout name with a base keyset name. This convention is used to | 
|   22       -- allow multiple layouts to be loaded (enablign fast switching) while |   23       -- allow multiple layouts to be loaded (enablign fast switching) while | 
|   23       -- allowing the shift and spacebar keys to be common across multiple |   24       -- allowing the shift and spacebar keys to be common across multiple | 
|   24       -- keyboard layouts. |   25       -- keyboard layouts. | 
|   25       --> |   26       --> | 
|   26     <content select="#{{layout}}-{{keyset}}"></content> |   27     <content select="#{{layout}}-{{keyset}}"></content> | 
 |   28     <kb-keyboard-overlay id="overlay" hidden></kb-keyboard-overlay> | 
|   27     <kb-key-codes id="keyCodeMetadata"></kb-key-codes> |   29     <kb-key-codes id="keyCodeMetadata"></kb-key-codes> | 
|   28   </template> |   30   </template> | 
|   29   <script> |   31   <script> | 
|   30     /** |   32     /** | 
|   31      * The repeat delay in milliseconds before a key starts repeating. Use the |   33      * The repeat delay in milliseconds before a key starts repeating. Use the | 
|   32      * same rate as Chromebook. |   34      * same rate as Chromebook. | 
|   33      * (See chrome/browser/chromeos/language_preferences.cc) |   35      * (See chrome/browser/chromeos/language_preferences.cc) | 
|   34      * @const |   36      * @const | 
|   35      * @type {number} |   37      * @type {number} | 
|   36      */ |   38      */ | 
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  208       voiceInput_: null, |  210       voiceInput_: null, | 
|  209  |  211  | 
|  210       /** |  212       /** | 
|  211        * The default input type to keyboard layout map. The key must be one of |  213        * The default input type to keyboard layout map. The key must be one of | 
|  212        * the input box type values. |  214        * the input box type values. | 
|  213        * @type {object} |  215        * @type {object} | 
|  214        */ |  216        */ | 
|  215       inputTypeToLayoutMap: { |  217       inputTypeToLayoutMap: { | 
|  216         number: "numeric", |  218         number: "numeric", | 
|  217         text: "qwerty", |  219         text: "qwerty", | 
|  218         password: "system-qwerty" |  220         password: "qwerty" | 
|  219       }, |  221       }, | 
|  220  |  222  | 
|  221       /** |  223       /** | 
|  222        * Changes the current keyset. |  224        * Changes the current keyset. | 
|  223        * @param {Object} detail The detail of the event that called this |  225        * @param {Object} detail The detail of the event that called this | 
|  224        *     function. |  226        *     function. | 
|  225        */ |  227        */ | 
|  226       changeKeyset: function(detail) { |  228       changeKeyset: function(detail) { | 
|  227         if (detail.relegateToShift && this.shift) { |  229         if (detail.relegateToShift && this.shift) { | 
|  228           this.keyset = this.shift.textKeyset; |  230           this.keyset = this.shift.textKeyset; | 
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  564           // Locks the keyset before removing active to prevent flicker. |  566           // Locks the keyset before removing active to prevent flicker. | 
|  565           this.classList.add('caps-locked'); |  567           this.classList.add('caps-locked'); | 
|  566           // Makes last pressed key inactive if transit to a new keyset on long |  568           // Makes last pressed key inactive if transit to a new keyset on long | 
|  567           // press. |  569           // press. | 
|  568           if (this.lastPressedKey) |  570           if (this.lastPressedKey) | 
|  569             this.lastPressedKey.classList.remove('active'); |  571             this.lastPressedKey.classList.remove('active'); | 
|  570         } |  572         } | 
|  571       }, |  573       }, | 
|  572  |  574  | 
|  573       /** |  575       /** | 
 |  576        * Show menu for selecting a keyboard layout. | 
 |  577        * @param {!Event} event The triggering event. | 
 |  578        * @param {{left: number, top: number, width: number}} details Location of | 
 |  579        *     the button that triggered the popup. | 
 |  580        */ | 
 |  581       showOptions: function(event, details) { | 
 |  582         var overlay = this.$.overlay; | 
 |  583         if (!overlay) { | 
 |  584           console.error('Missing overlay.'); | 
 |  585           return; | 
 |  586         } | 
 |  587         var menu = overlay.$.options; | 
 |  588         if (!menu) { | 
 |  589            console.error('Missing options menu.'); | 
 |  590         } | 
 |  591  | 
 |  592         menu.hidden = false; | 
 |  593         overlay.hidden = false; | 
 |  594         var left = details.left + details.width - menu.clientWidth; | 
 |  595         var top = details.top - menu.clientHeight; | 
 |  596         menu.style.left = left + 'px'; | 
 |  597         menu.style.top = top + 'px'; | 
 |  598       }, | 
 |  599  | 
 |  600       /** | 
 |  601        * Handler for the 'set-layout' event. | 
 |  602        * @param {!Event} event The triggering event. | 
 |  603        * @param {{layout: string}} details Details of the event, which contains | 
 |  604        *     the name of the layout to activate. | 
 |  605        */ | 
 |  606       setLayout: function(event, details) { | 
 |  607         this.layout = details.layout; | 
 |  608       }, | 
 |  609  | 
 |  610       /** | 
|  574        * Handles a change in the keyboard layout. Auto-selects the default |  611        * Handles a change in the keyboard layout. Auto-selects the default | 
|  575        * keyset for the new layout. |  612        * keyset for the new layout. | 
|  576        */ |  613        */ | 
|  577       layoutChanged: function() { |  614       layoutChanged: function() { | 
|  578         if (!this.selectDefaultKeyset()) { |  615         if (!this.selectDefaultKeyset()) { | 
|  579           this.isReady = false; |  616           this.isReady = false; | 
|  580           this.fire('stateChange', {state: 'loadingKeyset'}); |  617           this.fire('stateChange', {state: 'loadingKeyset'}); | 
|  581  |  618  | 
|  582           // Keyset selection fails if the keysets have not been loaded yet. |  619           // Keyset selection fails if the keysets have not been loaded yet. | 
|  583           var keysets = document.querySelector('#' + this.layout); |  620           var keysets = document.querySelector('#' + this.layout); | 
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  731              } |  768              } | 
|  732           } |  769           } | 
|  733         } |  770         } | 
|  734         if (keysetsLoaded) |  771         if (keysetsLoaded) | 
|  735           console.error('No default keyset found for ' + this.layout); |  772           console.error('No default keyset found for ' + this.layout); | 
|  736         return false; |  773         return false; | 
|  737       } |  774       } | 
|  738     }); |  775     }); | 
|  739   </script> |  776   </script> | 
|  740 </polymer-element> |  777 </polymer-element> | 
| OLD | NEW |