15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cr.define('options', function() {
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * Encapsulated handling of the keyboard overlay.
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @constructor
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  function KeyboardOverlay() {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    options.SettingsDialog.call(this, 'keyboard-overlay',
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        loadTimeData.getString('keyboardOverlayTitle'),
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'keyboard-overlay',
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        $('keyboard-confirm'), $('keyboard-cancel'));
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  cr.addSingletonGetter(KeyboardOverlay);
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  KeyboardOverlay.prototype = {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    __proto__: options.SettingsDialog.prototype,
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /**
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Initializes the page. This method is called in initialize.
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    initializePage: function() {
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      options.SettingsDialog.prototype.initializePage.call(this);
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      $('languages-and-input-settings').onclick = function(e) {
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        OptionsPage.navigateToPage('languages');
31c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch        chrome.send('coreOptionsUserMetricsAction',
32c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch                    ['Options_KeyboardShowLanguageSettings']);
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      };
34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      $('keyboard-shortcuts').onclick = function(e) {
36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        chrome.send('showKeyboardShortcuts');
37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        chrome.send('coreOptionsUserMetricsAction',
38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                    ['Options_KeyboardShowKeyboardShortcuts']);
39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      };
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    },
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * Show/hide the caps lock remapping section.
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     * @private
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     */
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    showCapsLockOptions_: function(show) {
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $('caps-lock-remapping-section').hidden = !show;
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    /**
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * Show/hide the diamond key remapping section.
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     * @private
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)     */
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    showDiamondKeyOptions_: function(show) {
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      $('diamond-key-remapping-section').hidden = !show;
562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    },
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Forward public APIs to private implementations.
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    'showCapsLockOptions',
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    'showDiamondKeyOptions',
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ].forEach(function(name) {
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    KeyboardOverlay[name] = function() {
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      var instance = KeyboardOverlay.getInstance();
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return instance[name + '_'].apply(instance, arguments);
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    };
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  });
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Export
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return {
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    KeyboardOverlay: KeyboardOverlay
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)});
75