OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
| 5 /** |
| 6 * @typedef {{ |
| 7 * availableColorProfiles: Array.<{profileId: number, name: string}>, |
| 8 * colorProfile: number, |
| 9 * height: number, |
| 10 * id: string, |
| 11 * isInternal: boolean, |
| 12 * isPrimary: boolean, |
| 13 * resolutions: Array.<{width: number, height: number, originalWidth: number, |
| 14 * originalHeight: number, deviceScaleFactor: number, scale: number, |
| 15 * refreshRate: number, isBest: boolean, selected: boolean}>, |
| 16 * name: string, |
| 17 * orientation: number, |
| 18 * width: number, |
| 19 * x: number, |
| 20 * y: number |
| 21 * }} |
| 22 */ |
| 23 var DisplayInfo; |
| 24 |
| 25 cr.exportPath('options'); |
| 26 |
| 27 /** |
| 28 * Enumeration of secondary display layout. The value has to be same as the |
| 29 * values in ash/display/display_controller.cc. |
| 30 * @enum {number} |
| 31 */ |
| 32 var SecondaryDisplayLayout = { |
| 33 TOP: 0, |
| 34 RIGHT: 1, |
| 35 BOTTOM: 2, |
| 36 LEFT: 3 |
| 37 }; |
| 38 |
5 cr.define('options', function() { | 39 cr.define('options', function() { |
6 var Page = cr.ui.pageManager.Page; | 40 var Page = cr.ui.pageManager.Page; |
7 var PageManager = cr.ui.pageManager.PageManager; | 41 var PageManager = cr.ui.pageManager.PageManager; |
8 | 42 |
9 // The scale ratio of the display rectangle to its original size. | 43 // The scale ratio of the display rectangle to its original size. |
10 /** @const */ var VISUAL_SCALE = 1 / 10; | 44 /** @const */ var VISUAL_SCALE = 1 / 10; |
11 | 45 |
12 // The number of pixels to share the edges between displays. | 46 // The number of pixels to share the edges between displays. |
13 /** @const */ var MIN_OFFSET_OVERLAP = 5; | 47 /** @const */ var MIN_OFFSET_OVERLAP = 5; |
14 | 48 |
15 /** | 49 /** |
16 * Enumeration of secondary display layout. The value has to be same as the | |
17 * values in ash/display/display_controller.cc. | |
18 * @enum {number} | |
19 */ | |
20 var SecondaryDisplayLayout = { | |
21 TOP: 0, | |
22 RIGHT: 1, | |
23 BOTTOM: 2, | |
24 LEFT: 3 | |
25 }; | |
26 | |
27 /** | |
28 * Calculates the bounds of |element| relative to the page. | 50 * Calculates the bounds of |element| relative to the page. |
29 * @param {HTMLElement} element The element to be known. | 51 * @param {HTMLElement} element The element to be known. |
30 * @return {Object} The object for the bounds, with x, y, width, and height. | 52 * @return {Object} The object for the bounds, with x, y, width, and height. |
31 */ | 53 */ |
32 function getBoundsInPage(element) { | 54 function getBoundsInPage(element) { |
33 var bounds = { | 55 var bounds = { |
34 x: element.offsetLeft, | 56 x: element.offsetLeft, |
35 y: element.offsetTop, | 57 y: element.offsetTop, |
36 width: element.offsetWidth, | 58 width: element.offsetWidth, |
37 height: element.offsetHeight | 59 height: element.offsetHeight |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 | 117 |
96 /** | 118 /** |
97 * The current secondary display layout. | 119 * The current secondary display layout. |
98 * @private | 120 * @private |
99 */ | 121 */ |
100 layout_: SecondaryDisplayLayout.RIGHT, | 122 layout_: SecondaryDisplayLayout.RIGHT, |
101 | 123 |
102 /** | 124 /** |
103 * The array of current output displays. It also contains the display | 125 * The array of current output displays. It also contains the display |
104 * rectangles currently rendered on screen. | 126 * rectangles currently rendered on screen. |
| 127 * @type {Array.<DisplayInfo>} |
105 * @private | 128 * @private |
106 */ | 129 */ |
107 displays_: [], | 130 displays_: [], |
108 | 131 |
109 /** | 132 /** |
110 * The index for the currently focused display in the options UI. null if | 133 * The index for the currently focused display in the options UI. null if |
111 * no one has focus. | 134 * no one has focus. |
112 * @private | 135 * @private |
113 */ | 136 */ |
114 focusedIndex_: null, | 137 focusedIndex_: null, |
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
817 // |displaysView_|. Otherwise its offsetHeight is yet 0. | 840 // |displaysView_|. Otherwise its offsetHeight is yet 0. |
818 displayNameContainer.style.marginTop = | 841 displayNameContainer.style.marginTop = |
819 (div.offsetHeight - displayNameContainer.offsetHeight) / 2 + 'px'; | 842 (div.offsetHeight - displayNameContainer.offsetHeight) / 2 + 'px'; |
820 display.originalPosition = {x: div.offsetLeft, y: div.offsetTop}; | 843 display.originalPosition = {x: div.offsetLeft, y: div.offsetTop}; |
821 } | 844 } |
822 }, | 845 }, |
823 | 846 |
824 /** | 847 /** |
825 * Called when the display arrangement has changed. | 848 * Called when the display arrangement has changed. |
826 * @param {boolean} mirroring Whether current mode is mirroring or not. | 849 * @param {boolean} mirroring Whether current mode is mirroring or not. |
827 * @param {Array} displays The list of the display information. | 850 * @param {Array.<DisplayInfo>} displays The list of the display |
| 851 * information. |
828 * @param {SecondaryDisplayLayout} layout The layout strategy. | 852 * @param {SecondaryDisplayLayout} layout The layout strategy. |
829 * @param {number} offset The offset of the secondary display. | 853 * @param {number} offset The offset of the secondary display. |
830 * @private | 854 * @private |
831 */ | 855 */ |
832 onDisplayChanged_: function(mirroring, displays, layout, offset) { | 856 onDisplayChanged_: function(mirroring, displays, layout, offset) { |
833 if (!this.visible) | 857 if (!this.visible) |
834 return; | 858 return; |
835 | 859 |
836 var hasExternal = false; | 860 var hasExternal = false; |
837 for (var i = 0; i < displays.length; i++) { | 861 for (var i = 0; i < displays.length; i++) { |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
873 mirroring, displays, layout, offset) { | 897 mirroring, displays, layout, offset) { |
874 DisplayOptions.getInstance().onDisplayChanged_( | 898 DisplayOptions.getInstance().onDisplayChanged_( |
875 mirroring, displays, layout, offset); | 899 mirroring, displays, layout, offset); |
876 }; | 900 }; |
877 | 901 |
878 // Export | 902 // Export |
879 return { | 903 return { |
880 DisplayOptions: DisplayOptions | 904 DisplayOptions: DisplayOptions |
881 }; | 905 }; |
882 }); | 906 }); |
OLD | NEW |