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 |