| Index: chrome/browser/resources/options2/chromeos/system_options.js
|
| diff --git a/chrome/browser/resources/options2/chromeos/system_options.js b/chrome/browser/resources/options2/chromeos/system_options.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0a9faeb5c4a55476f49ffd5c93b5c5f7754d764f
|
| --- /dev/null
|
| +++ b/chrome/browser/resources/options2/chromeos/system_options.js
|
| @@ -0,0 +1,202 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +cr.define('options', function() {
|
| +
|
| + var OptionsPage = options.OptionsPage;
|
| + var RepeatingButton = cr.ui.RepeatingButton;
|
| +
|
| + /////////////////////////////////////////////////////////////////////////////
|
| + // SystemOptions class:
|
| +
|
| + /**
|
| + * Encapsulated handling of ChromeOS system options page.
|
| + * @constructor
|
| + */
|
| +
|
| + function SystemOptions() {
|
| + OptionsPage.call(this, 'system', templateData.systemPageTabTitle,
|
| + 'systemPage');
|
| + }
|
| +
|
| + cr.addSingletonGetter(SystemOptions);
|
| +
|
| + // Inherit SystemOptions from OptionsPage.
|
| + SystemOptions.prototype = {
|
| + __proto__: options.OptionsPage.prototype,
|
| +
|
| + /**
|
| + * Initializes SystemOptions page.
|
| + * Calls base class implementation to starts preference initialization.
|
| + */
|
| + initializePage: function() {
|
| + OptionsPage.prototype.initializePage.call(this);
|
| +
|
| + // Disable time-related settings if we're not logged in as a real user.
|
| + if (AccountsOptions.loggedInAsGuest()) {
|
| + var timezone = $('timezone-select');
|
| + if (timezone)
|
| + timezone.disabled = true;
|
| + var use_24hour_clock = $('use-24hour-clock');
|
| + if (use_24hour_clock)
|
| + use_24hour_clock.disabled = true;
|
| + }
|
| +
|
| + options.system.bluetooth.BluetoothListElement.decorate(
|
| + $('bluetooth-device-list'));
|
| +
|
| + // TODO(kevers): Populate list of connected bluetooth devices.
|
| + // Set state of 'Enable bluetooth' checkbox.
|
| + $('bluetooth-find-devices').onclick = function(event) {
|
| + findBluetoothDevices_();
|
| + };
|
| + $('enable-bluetooth').onclick = function(event) {
|
| + chrome.send('bluetoothEnableChange', [Boolean(true)]);
|
| + };
|
| + $('disable-bluetooth').onclick = function(event) {
|
| + chrome.send('bluetoothEnableChange', [Boolean(false)]);
|
| + };
|
| + $('language-button').onclick = function(event) {
|
| + OptionsPage.navigateToPage('language');
|
| + };
|
| + $('modifier-keys-button').onclick = function(event) {
|
| + OptionsPage.navigateToPage('languageCustomizeModifierKeysOverlay');
|
| + };
|
| + $('accesibility-check').onchange = function(event) {
|
| + chrome.send('accessibilityChange',
|
| + [String($('accesibility-check').checked)]);
|
| + };
|
| + initializeBrightnessButton_('brightness-decrease-button',
|
| + 'decreaseScreenBrightness');
|
| + initializeBrightnessButton_('brightness-increase-button',
|
| + 'increaseScreenBrightness');
|
| + }
|
| + };
|
| +
|
| + /**
|
| + * Initializes a button for controlling screen brightness.
|
| + * @param {string} id Button ID.
|
| + * @param {string} callback Name of the callback function.
|
| + */
|
| + function initializeBrightnessButton_(id, callback) {
|
| + var button = $(id);
|
| + cr.ui.decorate(button, RepeatingButton);
|
| + button.repeatInterval = 300;
|
| + button.addEventListener(RepeatingButton.Event.BUTTON_HELD, function(e) {
|
| + chrome.send(callback);
|
| + });
|
| + }
|
| +
|
| + /**
|
| + * Scan for bluetooth devices.
|
| + * @private
|
| + */
|
| + function findBluetoothDevices_() {
|
| + setVisibility_('bluetooth-scanning-label', true);
|
| + setVisibility_('bluetooth-scanning-icon', true);
|
| +
|
| + // Remove devices that are not currently connected.
|
| + var devices = $('bluetooth-device-list').childNodes;
|
| + for (var i = devices.length - 1; i >= 0; i--) {
|
| + var device = devices.item(i);
|
| + var data = device.data;
|
| + if (!data || data.status !== 'connected')
|
| + $('bluetooth-device-list').removeChild(device);
|
| + }
|
| + chrome.send('findBluetoothDevices');
|
| + }
|
| +
|
| + /**
|
| + * Sets the visibility of an element.
|
| + * @param {string} id The id of the element.
|
| + * @param {boolean} visible True if the element should be made visible.
|
| + * @private
|
| + */
|
| + function setVisibility_(id, visible) {
|
| + if (visible)
|
| + $(id).classList.remove("transparent");
|
| + else
|
| + $(id).classList.add("transparent");
|
| + }
|
| +
|
| + //
|
| + // Chrome callbacks
|
| + //
|
| +
|
| + /**
|
| + * Set the initial state of the accessibility checkbox.
|
| + */
|
| + SystemOptions.SetAccessibilityCheckboxState = function(checked) {
|
| + $('accesibility-check').checked = checked;
|
| + };
|
| +
|
| + /**
|
| + * Activate the bluetooth settings section on the System settings page.
|
| + */
|
| + SystemOptions.showBluetoothSettings = function() {
|
| + $('bluetooth-devices').hidden = false;
|
| + };
|
| +
|
| + /**
|
| + * Sets the state of the checkbox indicating if bluetooth is turned on. The
|
| + * state of the "Find devices" button and the list of discovered devices may
|
| + * also be affected by a change to the state.
|
| + * @param {boolean} checked Flag Indicating if Bluetooth is turned on.
|
| + */
|
| + SystemOptions.setBluetoothState = function(checked) {
|
| + $('disable-bluetooth').hidden = !checked;
|
| + $('enable-bluetooth').hidden = checked;
|
| + $('bluetooth-finder-container').hidden = !checked;
|
| + $('no-bluetooth-devices-label').hidden = !checked;
|
| + if (!checked) {
|
| + setVisibility_('bluetooth-scanning-label', false);
|
| + setVisibility_('bluetooth-scanning-icon', false);
|
| + }
|
| + // Flush list of previously discovered devices if bluetooth is turned off.
|
| + if (!checked) {
|
| + var devices = $('bluetooth-device-list').childNodes;
|
| + for (var i = devices.length - 1; i >= 0; i--) {
|
| + var device = devices.item(i);
|
| + $('bluetooth-device-list').removeChild(device);
|
| + }
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * Adds an element to the list of available bluetooth devices. If an element
|
| + * with a matching address is found, the existing element is updated.
|
| + * @param {{name: string,
|
| + * address: string,
|
| + * icon: string,
|
| + * paired: boolean,
|
| + * connected: boolean}} device
|
| + * Decription of the bluetooth device.
|
| + */
|
| + SystemOptions.addBluetoothDevice = function(device) {
|
| + if ($('bluetooth-device-list').appendDevice(device))
|
| + $('no-bluetooth-devices-label').hidden = true;
|
| + };
|
| +
|
| + /**
|
| + * Hides the scanning label and icon that are used to indicate that a device
|
| + * search is in progress.
|
| + */
|
| + SystemOptions.notifyBluetoothSearchComplete = function() {
|
| + setVisibility_('bluetooth-scanning-label', false);
|
| + setVisibility_('bluetooth-scanning-icon', false);
|
| + };
|
| +
|
| + /**
|
| + * Displays the Touchpad Controls section when we detect a touchpad.
|
| + */
|
| + SystemOptions.showTouchpadControls = function() {
|
| + $('touchpad-controls').hidden = false;
|
| + };
|
| +
|
| + // Export
|
| + return {
|
| + SystemOptions: SystemOptions
|
| + };
|
| +
|
| +});
|
|
|