Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 var vrShellUi = (function() { | 5 var vrShellUi = (function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 let ui = new scene.Scene(); | 8 let ui = new scene.Scene(); |
| 9 let uiManager; | 9 let uiManager; |
| 10 let nativeCommandHandler; | 10 let nativeCommandHandler; |
| 11 | 11 |
| 12 let uiRootElement = document.querySelector('#ui'); | 12 let uiRootElement = document.querySelector('#ui'); |
| 13 let uiStyle = window.getComputedStyle(uiRootElement); | 13 let uiStyle = window.getComputedStyle(uiRootElement); |
| 14 /** @const */ var ANIM_DURATION = 150; | 14 /** @const */ var ANIM_DURATION = 150; |
| 15 | 15 |
| 16 // This value should match the one in VrShellImpl.java | 16 // This value should match the one in VrShellImpl.java |
| 17 /** @const */ var UI_DPR = 1.2; | 17 /** @const */ var UI_DPR = 1.2; |
| 18 | 18 |
| 19 var domIdToUiElementIdMap = {}; | |
| 20 | |
| 19 function getStyleFloat(style, property, defaultValue) { | 21 function getStyleFloat(style, property, defaultValue) { |
| 20 let value = parseFloat(style.getPropertyValue(property)); | 22 let value = parseFloat(style.getPropertyValue(property)); |
| 21 return isNaN(value) ? defaultValue : value; | 23 return isNaN(value) ? defaultValue : value; |
| 22 } | 24 } |
| 23 | 25 |
| 24 function getStyleString(style, property) { | 26 function getStyleString(style, property) { |
| 25 let str = style.getPropertyValue(property); | 27 let str = style.getPropertyValue(property); |
| 26 return !str || 0 === str.length ? '' : str; | 28 return !str || 0 === str.length ? '' : str; |
| 27 } | 29 } |
| 28 | 30 |
| 29 // Generate a two-color progress bar style background using a gradient. | 31 // Generate a two-color progress bar style background using a gradient. |
| 30 function makeProgressBackground(loading, percentage, color, background) { | 32 function makeProgressBackground(loading, percentage, color, background) { |
| 31 if (!loading) { | 33 if (!loading) { |
| 32 return background; | 34 return background; |
| 33 } | 35 } |
| 34 return 'linear-gradient(to right, ' + color + ' 0%, ' + color + ' ' + | 36 return 'linear-gradient(to right, ' + color + ' 0%, ' + color + ' ' + |
| 35 percentage * 100.0 + '%, ' + background + ' ' + percentage * 100 + | 37 percentage * 100.0 + '%, ' + background + ' ' + percentage * 100 + |
| 36 '%, ' + background + ' 100%)'; | 38 '%, ' + background + ' 100%)'; |
| 37 } | 39 } |
| 38 | 40 |
| 41 function getUiElementId(domId) { | |
| 42 return domId in domIdToUiElementIdMap ? domIdToUiElementIdMap[domId] : -1; | |
| 43 } | |
| 44 | |
| 39 class ContentQuad { | 45 class ContentQuad { |
| 40 constructor() { | 46 constructor() { |
| 41 /** @const */ this.SCREEN_HEIGHT = 1.375; | 47 /** @const */ this.SCREEN_HEIGHT = 1.375; |
| 42 /** @const */ this.SCREEN_RATIO = 9.6 / 6.4; | 48 /** @const */ this.SCREEN_RATIO = 9.6 / 6.4; |
| 43 /** @const */ this.BROWSING_SCREEN_ELEVATION = -0.15; | 49 /** @const */ this.BROWSING_SCREEN_ELEVATION = -0.15; |
| 44 /** @const */ this.BROWSING_SCREEN_DISTANCE = 2.0; | 50 /** @const */ this.BROWSING_SCREEN_DISTANCE = 2.0; |
| 45 /** @const */ this.FULLSCREEN_DISTANCE = 3.0; | 51 /** @const */ this.FULLSCREEN_DISTANCE = 3.0; |
| 46 /** @const */ this.CSS_WIDTH_PIXELS = 960.0; | 52 /** @const */ this.CSS_WIDTH_PIXELS = 960.0; |
| 47 /** @const */ this.CSS_HEIGHT_PIXELS = 640.0; | 53 /** @const */ this.CSS_HEIGHT_PIXELS = 640.0; |
| 48 /** @const */ this.DPR = 1.2; | 54 /** @const */ this.DPR = 1.2; |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 199 this.rotationX = getStyleFloat(style, '--rotX', 0); | 205 this.rotationX = getStyleFloat(style, '--rotX', 0); |
| 200 this.rotationY = getStyleFloat(style, '--rotY', 0); | 206 this.rotationY = getStyleFloat(style, '--rotY', 0); |
| 201 this.rotationZ = getStyleFloat(style, '--rotZ', 0); | 207 this.rotationZ = getStyleFloat(style, '--rotZ', 0); |
| 202 if (this.rotationX != 0 || this.rotationY != 0 || this.rotationZ != 0) { | 208 if (this.rotationX != 0 || this.rotationY != 0 || this.rotationZ != 0) { |
| 203 element.setRotation( | 209 element.setRotation( |
| 204 this.rotationX, this.rotationY, this.rotationZ, 2 * Math.PI); | 210 this.rotationX, this.rotationY, this.rotationZ, 2 * Math.PI); |
| 205 } | 211 } |
| 206 | 212 |
| 207 this.id = ui.addElement(element); | 213 this.id = ui.addElement(element); |
| 208 this.domElement = domElement; | 214 this.domElement = domElement; |
| 215 domIdToUiElementIdMap[domId] = this.id; | |
|
tiborg
2017/03/27 15:14:33
cjgrant@: is this a good workaround until the name
cjgrant
2017/03/27 15:41:32
Brian said he'd wait on using element names, as th
bsheedy
2017/03/27 17:49:09
Do we really need a map since we're removing all t
cjgrant
2017/03/27 19:49:43
That works if test will only ever check native sta
tiborg
2017/03/27 19:59:59
+1 to add the map once we need it.
| |
| 209 } | 216 } |
| 210 }; | 217 }; |
| 211 | 218 |
| 212 class Button { | 219 class Button { |
| 213 constructor(domId, callback, parentId) { | 220 constructor(domId, callback, parentId) { |
| 214 let captionId = domId + '-caption'; | 221 let captionId = domId + '-caption'; |
| 215 this.button = document.querySelector(domId); | 222 this.button = document.querySelector(domId); |
| 216 this.caption = document.querySelector(captionId); | 223 this.caption = document.querySelector(captionId); |
| 217 this.callback = callback; | 224 this.callback = callback; |
| 218 this.enabled = true; | 225 this.enabled = true; |
| (...skipping 1113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1332 } | 1339 } |
| 1333 } | 1340 } |
| 1334 | 1341 |
| 1335 function command(dict) { | 1342 function command(dict) { |
| 1336 nativeCommandHandler.handleCommand(dict); | 1343 nativeCommandHandler.handleCommand(dict); |
| 1337 } | 1344 } |
| 1338 | 1345 |
| 1339 return { | 1346 return { |
| 1340 initialize: initialize, | 1347 initialize: initialize, |
| 1341 command: command, | 1348 command: command, |
| 1349 getUiElementId: getUiElementId, | |
| 1342 }; | 1350 }; |
| 1343 })(); | 1351 })(); |
| 1344 | 1352 |
| 1345 window.addEventListener('load', vrShellUi.initialize); | 1353 window.addEventListener('load', vrShellUi.initialize); |
| OLD | NEW |