| Index: chrome/browser/resources/options/chromeos/display_options.js
|
| diff --git a/chrome/browser/resources/options/chromeos/display_options.js b/chrome/browser/resources/options/chromeos/display_options.js
|
| index 3eeaf0a80a343e601d4e0a2c4164f5df30de3b61..bf316214fe83d07467e2ca66f4dbaa29ec016050 100644
|
| --- a/chrome/browser/resources/options/chromeos/display_options.js
|
| +++ b/chrome/browser/resources/options/chromeos/display_options.js
|
| @@ -36,6 +36,17 @@ options.SecondaryDisplayLayout = {
|
| LEFT: 3
|
| };
|
|
|
| +/**
|
| + * Enumeration of multi display mode. The value has to be same as the
|
| + * values in ash/display/display_manager..
|
| + * @enum {number}
|
| + */
|
| +options.MultiDisplayMode = {
|
| + EXTENDED: 0,
|
| + MIRRORING: 1,
|
| + UNIFIED: 2,
|
| +};
|
| +
|
| cr.define('options', function() {
|
| var Page = cr.ui.pageManager.Page;
|
| var PageManager = cr.ui.pageManager.PageManager;
|
| @@ -116,6 +127,18 @@ cr.define('options', function() {
|
| */
|
| mirroring_: false,
|
|
|
| + /*
|
| + * Whether the unified desktop is enable or not.
|
| + * @private
|
| + */
|
| + unifiedDesktopEnabled_: false,
|
| +
|
| + /*
|
| + * Whether the unified desktop option should be present.
|
| + * @private
|
| + */
|
| + showUnifiedDesktopOption_: false,
|
| +
|
| /**
|
| * The current secondary display layout.
|
| * @private
|
| @@ -220,6 +243,12 @@ cr.define('options', function() {
|
| $('display-options-done').onclick = function() {
|
| PageManager.closeOverlay();
|
| };
|
| +
|
| + $('display-options-toggle-unified-desktop').onclick = (function() {
|
| + this.unifiedDesktopEnabled_ = !this.unifiedDesktopEnabled_;
|
| + chrome.send('setUnifiedDesktopEnabled',
|
| + [this.unifiedDesktopEnabled_]);
|
| + }).bind(this);
|
| },
|
|
|
| /** @override */
|
| @@ -243,11 +272,16 @@ cr.define('options', function() {
|
| * Enables or disables the page. When disabled, the page will not be able to
|
| * open, and will close if currently opened.
|
| * @param {boolean} enabled Whether the page should be enabled.
|
| + * @param {boolean} showUnifiedDesktop Whether the unified desktop option
|
| + * should be present.
|
| */
|
| - setEnabled: function(enabled) {
|
| - if (this.enabled_ == enabled)
|
| + setEnabled: function(enabled, showUnifiedDesktop) {
|
| + if (this.enabled_ == enabled &&
|
| + this.showUnifiedDesktopOption_ == showUnifiedDesktop) {
|
| return;
|
| + }
|
| this.enabled_ = enabled;
|
| + this.showUnifiedDesktopOption_ = showUnifiedDesktop;
|
| if (!enabled && this.visible)
|
| PageManager.closeOverlay();
|
| },
|
| @@ -931,14 +965,14 @@ cr.define('options', function() {
|
|
|
| /**
|
| * Called when the display arrangement has changed.
|
| - * @param {boolean} mirroring Whether current mode is mirroring or not.
|
| + * @param {options.MultiDisplayMode} multi display mode.
|
| * @param {Array<options.DisplayInfo>} displays The list of the display
|
| * information.
|
| * @param {options.SecondaryDisplayLayout} layout The layout strategy.
|
| * @param {number} offset The offset of the secondary display.
|
| * @private
|
| */
|
| - onDisplayChanged_: function(mirroring, displays, layout, offset) {
|
| + onDisplayChanged_: function(mode, displays, layout, offset) {
|
| if (!this.visible)
|
| return;
|
|
|
| @@ -952,20 +986,25 @@ cr.define('options', function() {
|
|
|
| this.layout_ = layout;
|
|
|
| + var mirroring = mode == options.MultiDisplayMode.MIRRORING;
|
| + var unifiedDesktopEnabled = mode == options.MultiDisplayMode.UNIFIED;
|
| +
|
| $('display-options-toggle-mirroring').textContent =
|
| loadTimeData.getString(
|
| mirroring ? 'stopMirroring' : 'startMirroring');
|
|
|
| // Focus to the first display next to the primary one when |displays| list
|
| // is updated.
|
| - if (mirroring) {
|
| + if (mirroring || unifiedDesktopEnabled) {
|
| this.focusedIndex_ = null;
|
| } else if (this.mirroring_ != mirroring ||
|
| + this.unifiedDesktopEnabled_ != unifiedDesktopEnabled ||
|
| this.displays_.length != displays.length) {
|
| this.focusedIndex_ = 0;
|
| }
|
|
|
| this.mirroring_ = mirroring;
|
| + this.unifiedDesktopEnabled_ = unifiedDesktopEnabled;
|
| this.displays_ = displays;
|
|
|
| this.resetDisplaysView_();
|
| @@ -974,14 +1013,28 @@ cr.define('options', function() {
|
| else
|
| this.layoutDisplays_();
|
|
|
| + $('display-options-unified-desktop').hidden =
|
| + !this.showUnifiedDesktopOption_;
|
| +
|
| + $('display-options-toggle-unified-desktop').checked =
|
| + this.unifiedDesktopEnabled_;
|
| +
|
| + var disableUnifiedDesktopOption =
|
| + (this.mirroring_ ||
|
| + (!this.unifiedDesktopEnabled_ &&
|
| + this.displays_.length == 1));
|
| +
|
| + $('display-options-toggle-unified-desktop').disabled =
|
| + disableUnifiedDesktopOption;
|
| +
|
| this.updateSelectedDisplayDescription_();
|
| }
|
| };
|
|
|
| DisplayOptions.setDisplayInfo = function(
|
| - mirroring, displays, layout, offset) {
|
| + mode, displays, layout, offset) {
|
| DisplayOptions.getInstance().onDisplayChanged_(
|
| - mirroring, displays, layout, offset);
|
| + mode, displays, layout, offset);
|
| };
|
|
|
| // Export
|
|
|