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) /** @const */ var SettingsDialog = options.SettingsDialog; 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PointerOverlay class 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Dialog that allows users to set pointer settings (touchpad/mouse). 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @constructor 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @extends {options.SettingsDialog} 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) function PointerOverlay() { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The title is updated dynamically in the setTitle method as pointer 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // devices are discovered or removed. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SettingsDialog.call(this, 'pointer-overlay', 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci '', 'pointer-overlay', 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assertInstanceof($('pointer-overlay-confirm'), HTMLButtonElement), 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assertInstanceof($('pointer-overlay-cancel'), HTMLButtonElement)); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cr.addSingletonGetter(PointerOverlay); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PointerOverlay.prototype = { 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) __proto__: SettingsDialog.prototype, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Sets the visibility state of the touchpad group. 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {boolean} show True to show, false to hide. 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PointerOverlay.showTouchpadControls = function(show) { 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('pointer-section-touchpad').hidden = !show; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Sets the visibility state of the mouse group. 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {boolean} show True to show, false to hide. 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PointerOverlay.showMouseControls = function(show) { 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('pointer-section-mouse').hidden = !show; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Updates the title of the pointer dialog. The title is set dynamically 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * based on whether a touchpad, mouse or both are present. The label on the 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * button that activates the overlay is also updated to stay in sync. A 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * message is displayed in the main settings page if no pointer devices are 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * available. 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param {string} label i18n key for the overlay title. 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PointerOverlay.setTitle = function(label) { 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var button = $('pointer-settings-button'); 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var noPointersLabel = $('no-pointing-devices'); 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (label.length > 0) { 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var title = loadTimeData.getString(label); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) button.textContent = title; 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) button.hidden = false; 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) noPointersLabel.hidden = true; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } else { 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) button.hidden = true; 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) noPointersLabel.hidden = false; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Export 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return { 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PointerOverlay: PointerOverlay 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}); 72