• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3// found in the LICENSE file.
4
5cr.define('options', function() {
6  /** @const */ var SettingsDialog = options.SettingsDialog;
7
8  /**
9   * PointerOverlay class
10   * Dialog that allows users to set pointer settings (touchpad/mouse).
11   * @extends {SettingsDialog}
12   */
13  function PointerOverlay() {
14    // The title is updated dynamically in the setTitle method as pointer
15    // devices are discovered or removed.
16    SettingsDialog.call(this, 'pointer-overlay',
17                        '', 'pointer-overlay',
18                        $('pointer-overlay-confirm'),
19                        $('pointer-overlay-cancel'));
20  }
21
22  cr.addSingletonGetter(PointerOverlay);
23
24  PointerOverlay.prototype = {
25    __proto__: SettingsDialog.prototype,
26
27    /**
28     * Initialize the page.
29     */
30    initializePage: function() {
31      // Call base class implementation to start preference initialization.
32      SettingsDialog.prototype.initializePage.call(this);
33    },
34  };
35
36  /**
37   * Sets the visibility state of the touchpad group.
38   * @param {boolean} show True to show, false to hide.
39   */
40  PointerOverlay.showTouchpadControls = function(show) {
41    $('pointer-section-touchpad').hidden = !show;
42  };
43
44  /**
45   * Sets the visibility state of the mouse group.
46   * @param {boolean} show True to show, false to hide.
47   */
48  PointerOverlay.showMouseControls = function(show) {
49    $('pointer-section-mouse').hidden = !show;
50  };
51
52  /**
53   * Updates the title of the pointer dialog.  The title is set dynamically
54   * based on whether a touchpad, mouse or both are present.  The label on the
55   * button that activates the overlay is also updated to stay in sync. A
56   * message is displayed in the main settings page if no pointer devices are
57   * available.
58   * @param {string} label i18n key for the overlay title.
59   */
60  PointerOverlay.setTitle = function(label) {
61    var button = $('pointer-settings-button');
62    var noPointersLabel = $('no-pointing-devices');
63    if (label.length > 0) {
64      var title = loadTimeData.getString(label);
65      button.textContent = title;
66      button.hidden = false;
67      noPointersLabel.hidden = true;
68    } else {
69      button.hidden = true;
70      noPointersLabel.hidden = false;
71    }
72  };
73
74  // Export
75  return {
76    PointerOverlay: PointerOverlay
77  };
78});
79