Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 /** | 5 /** |
| 6 * @constructor | 6 * @constructor |
| 7 * @extends {WebInspector.HBox} | 7 * @extends {WebInspector.HBox} |
| 8 */ | 8 */ |
| 9 WebInspector.ElementsBreadcrumbs = function() | 9 WebInspector.ElementsBreadcrumbs = function() |
| 10 { | 10 { |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 215 | 215 |
| 216 // Find the focused crumb index. | 216 // Find the focused crumb index. |
| 217 if (crumb === focusedCrumb) | 217 if (crumb === focusedCrumb) |
| 218 focusedIndex = i; | 218 focusedIndex = i; |
| 219 | 219 |
| 220 crumb.classList.remove("compact", "collapsed", "hidden"); | 220 crumb.classList.remove("compact", "collapsed", "hidden"); |
| 221 } | 221 } |
| 222 | 222 |
| 223 // Layout 1: Measure total and normal crumb sizes | 223 // Layout 1: Measure total and normal crumb sizes |
| 224 var contentElementWidth = this.contentElement.offsetWidth; | 224 var contentElementWidth = this.contentElement.offsetWidth; |
| 225 var margin = parseInt(window.getComputedStyle(/** @type {!Element} */(cr umbs.firstChild)).marginLeft, 10) * 2; | |
|
pfeldman
2015/09/17 17:46:00
We should not use getComputedStyle.
| |
| 225 var normalSizes = []; | 226 var normalSizes = []; |
| 226 for (var i = 0; i < crumbs.childNodes.length; ++i) { | 227 for (var i = 0; i < crumbs.childNodes.length; ++i) { |
| 227 var crumb = crumbs.childNodes[i]; | 228 var crumb = crumbs.childNodes[i]; |
| 228 normalSizes[i] = crumb.offsetWidth; | 229 normalSizes[i] = crumb.offsetWidth + margin; |
| 229 } | 230 } |
| 230 | 231 |
| 231 // Layout 2: Measure collapsed crumb sizes | 232 // Layout 2: Measure collapsed crumb sizes |
| 232 var compactSizes = []; | 233 var compactSizes = []; |
| 233 for (var i = 0; i < crumbs.childNodes.length; ++i) { | 234 for (var i = 0; i < crumbs.childNodes.length; ++i) { |
| 234 var crumb = crumbs.childNodes[i]; | 235 var crumb = crumbs.childNodes[i]; |
| 235 crumb.classList.add("compact"); | 236 crumb.classList.add("compact"); |
| 236 } | 237 } |
| 237 for (var i = 0; i < crumbs.childNodes.length; ++i) { | 238 for (var i = 0; i < crumbs.childNodes.length; ++i) { |
| 238 var crumb = crumbs.childNodes[i]; | 239 var crumb = crumbs.childNodes[i]; |
| 239 compactSizes[i] = crumb.offsetWidth; | 240 compactSizes[i] = crumb.offsetWidth + margin; |
| 240 } | 241 } |
| 241 | 242 |
| 242 // Layout 3: Measure collapsed crumb size | 243 // Layout 3: Measure collapsed crumb size |
| 243 crumbs.firstChild.classList.add("collapsed"); | 244 crumbs.firstChild.classList.add("collapsed"); |
| 244 var collapsedSize = crumbs.firstChild.offsetWidth; | 245 var collapsedSize = crumbs.firstChild.offsetWidth + margin; |
| 245 | 246 |
| 246 // Clean up. | 247 // Clean up. |
| 247 for (var i = 0; i < crumbs.childNodes.length; ++i) { | 248 for (var i = 0; i < crumbs.childNodes.length; ++i) { |
| 248 var crumb = crumbs.childNodes[i]; | 249 var crumb = crumbs.childNodes[i]; |
| 249 crumb.classList.remove("compact", "collapsed"); | 250 crumb.classList.remove("compact", "collapsed"); |
| 250 } | 251 } |
| 251 | 252 |
| 252 function crumbsAreSmallerThanContainer() | 253 function crumbsAreSmallerThanContainer() |
| 253 { | 254 { |
| 254 var totalSize = 0; | 255 var totalSize = 0; |
| 255 for (var i = 0; i < crumbs.childNodes.length; ++i) { | 256 for (var i = 0; i < crumbs.childNodes.length; ++i) { |
| 256 var crumb = crumbs.childNodes[i]; | 257 var crumb = crumbs.childNodes[i]; |
| 257 if (crumb.classList.contains("hidden")) | 258 if (crumb.classList.contains("hidden")) |
| 258 continue; | 259 continue; |
| 259 if (crumb.classList.contains("collapsed")) { | 260 if (crumb.classList.contains("collapsed")) { |
| 260 totalSize += collapsedSize; | 261 totalSize += collapsedSize; |
| 261 continue; | 262 continue; |
| 262 } | 263 } |
| 263 totalSize += crumb.classList.contains("compact") ? compactSizes[ i] : normalSizes[i]; | 264 totalSize += crumb.classList.contains("compact") ? compactSizes[ i] : normalSizes[i]; |
| 264 } | 265 } |
| 265 const rightPadding = 10; | 266 const rightPadding = 4; |
| 266 return totalSize + rightPadding < contentElementWidth; | 267 return totalSize + rightPadding < contentElementWidth; |
| 267 } | 268 } |
| 268 | 269 |
| 269 if (crumbsAreSmallerThanContainer()) | 270 if (crumbsAreSmallerThanContainer()) |
| 270 return; // No need to compact the crumbs, they all fit at full size. | 271 return; // No need to compact the crumbs, they all fit at full size. |
| 271 | 272 |
| 272 var BothSides = 0; | 273 var BothSides = 0; |
| 273 var AncestorSide = -1; | 274 var AncestorSide = -1; |
| 274 var ChildSide = 1; | 275 var ChildSide = 1; |
| 275 | 276 |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 427 compact(selectedCrumb); | 428 compact(selectedCrumb); |
| 428 if (crumbsAreSmallerThanContainer()) | 429 if (crumbsAreSmallerThanContainer()) |
| 429 return; | 430 return; |
| 430 | 431 |
| 431 // Collapse the selected crumb as a last resort. Pass true to prevent co alescing. | 432 // Collapse the selected crumb as a last resort. Pass true to prevent co alescing. |
| 432 collapse(selectedCrumb, true); | 433 collapse(selectedCrumb, true); |
| 433 }, | 434 }, |
| 434 | 435 |
| 435 __proto__: WebInspector.HBox.prototype | 436 __proto__: WebInspector.HBox.prototype |
| 436 } | 437 } |
| OLD | NEW |