| 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.View} | 7 * @extends {WebInspector.View} |
| 8 * @implements {WebInspector.TargetManager.Observer} | 8 * @implements {WebInspector.TargetManager.Observer} |
| 9 */ | 9 */ |
| 10 WebInspector.MediaQueryInspector = function() | 10 WebInspector.MediaQueryInspector = function() |
| 11 { | 11 { |
| 12 WebInspector.View.call(this); | 12 WebInspector.View.call(this); |
| 13 this.element.classList.add("media-inspector-view", "media-inspector-view-emp
ty"); | 13 this.element.classList.add("media-inspector-view", "media-inspector-view-emp
ty"); |
| 14 this.element.addEventListener("click", this._onMediaQueryClicked.bind(this),
false); | 14 this.element.addEventListener("click", this._onMediaQueryClicked.bind(this),
false); |
| 15 this.element.addEventListener("contextmenu", this._onContextMenu.bind(this),
false); | 15 this.element.addEventListener("contextmenu", this._onContextMenu.bind(this),
false); |
| 16 this._mediaThrottler = new WebInspector.Throttler(100); | 16 this._mediaThrottler = new WebInspector.Throttler(0); |
| 17 | 17 |
| 18 this._offset = 0; | 18 this._offset = 0; |
| 19 this._scale = 1; | 19 this._scale = 1; |
| 20 this._lastReportedCount = 0; | 20 this._lastReportedCount = 0; |
| 21 | 21 |
| 22 WebInspector.targetManager.observeTargets(this); | 22 WebInspector.targetManager.observeTargets(this); |
| 23 | 23 |
| 24 WebInspector.zoomManager.addEventListener(WebInspector.ZoomManager.Events.Zo
omChanged, this._renderMediaQueries.bind(this), this); | 24 WebInspector.zoomManager.addEventListener(WebInspector.ZoomManager.Events.Zo
omChanged, this._renderMediaQueries.bind(this), this); |
| 25 } | 25 } |
| 26 | 26 |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 | 263 |
| 264 if (!this.isShowing()) | 264 if (!this.isShowing()) |
| 265 return; | 265 return; |
| 266 | 266 |
| 267 var oldChildrenCount = this.element.children.length; | 267 var oldChildrenCount = this.element.children.length; |
| 268 var scrollTop = this.element.scrollTop; | 268 var scrollTop = this.element.scrollTop; |
| 269 this.element.removeChildren(); | 269 this.element.removeChildren(); |
| 270 | 270 |
| 271 var container = null; | 271 var container = null; |
| 272 for (var i = 0; i < markers.length; ++i) { | 272 for (var i = 0; i < markers.length; ++i) { |
| 273 if (!i || markers[i].model.section() !== markers[i - 1].model.sectio
n()) { | 273 if (!i || markers[i].model.section() !== markers[i - 1].model.sectio
n()) |
| 274 container = this.element.createChild("div", "media-inspector-mar
ker-container"); | 274 container = this.element.createChild("div", "media-inspector-mar
ker-container"); |
| 275 var handler = this._onMarkerContainerMouseMove.bind(this); | |
| 276 container.addEventListener("mousemove", handler, false); | |
| 277 container.addEventListener("mouseout", handler, false); | |
| 278 } | |
| 279 var marker = markers[i]; | 275 var marker = markers[i]; |
| 280 var bar = this._createElementFromMediaQueryModel(marker.model); | 276 var bar = this._createElementFromMediaQueryModel(marker.model); |
| 281 bar._model = marker.model; | 277 bar._model = marker.model; |
| 282 bar._locations = marker.locations; | 278 bar._locations = marker.locations; |
| 283 bar.classList.toggle("media-inspector-marker-inactive", !marker.acti
ve); | 279 bar.classList.toggle("media-inspector-marker-inactive", !marker.acti
ve); |
| 284 container.appendChild(bar); | 280 container.appendChild(bar); |
| 285 } | 281 } |
| 286 this.element.scrollTop = scrollTop; | 282 this.element.scrollTop = scrollTop; |
| 287 this.element.classList.toggle("media-inspector-view-empty", !this.elemen
t.children.length); | 283 this.element.classList.toggle("media-inspector-view-empty", !this.elemen
t.children.length); |
| 288 if (this.element.children.length !== oldChildrenCount) | 284 if (this.element.children.length !== oldChildrenCount) |
| 289 this.dispatchEventToListeners(WebInspector.MediaQueryInspector.Event
s.HeightUpdated); | 285 this.dispatchEventToListeners(WebInspector.MediaQueryInspector.Event
s.HeightUpdated); |
| 290 }, | 286 }, |
| 291 | 287 |
| 292 /** | 288 /** |
| 293 * @param {!Event} event | |
| 294 */ | |
| 295 _onMarkerContainerMouseMove: function(event) | |
| 296 { | |
| 297 var mediaQueryMarkerContainer = event.target.enclosingNodeOrSelfWithClas
s("media-inspector-marker-container"); | |
| 298 if (!mediaQueryMarkerContainer) | |
| 299 return; | |
| 300 var children = mediaQueryMarkerContainer.children; | |
| 301 if (!children.length) | |
| 302 return; | |
| 303 for (var i = children.length - 1; i >= 0; --i) { | |
| 304 if (children[i].containsEventPoint(event)) { | |
| 305 this._highlightMarkerInContainer(children[i], mediaQueryMarkerCo
ntainer); | |
| 306 return; | |
| 307 } | |
| 308 } | |
| 309 this._highlightMarkerInContainer(null, mediaQueryMarkerContainer); | |
| 310 }, | |
| 311 | |
| 312 /** | |
| 313 * @param {?Element} marker | |
| 314 * @param {!Element} container | |
| 315 */ | |
| 316 _highlightMarkerInContainer: function(marker, container) | |
| 317 { | |
| 318 var children = container.children; | |
| 319 var found = !marker; | |
| 320 for (var i = children.length - 1; i >= 0; --i) { | |
| 321 if (found) { | |
| 322 children[i].classList.remove("media-inspector-marker-highlight")
; | |
| 323 children[i].classList.remove("media-inspector-marker-under-highl
ighted"); | |
| 324 } else if (children[i] === marker) { | |
| 325 children[i].classList.add("media-inspector-marker-highlight"); | |
| 326 children[i].classList.remove("media-inspector-marker-under-highl
ighted"); | |
| 327 found = true; | |
| 328 } else { | |
| 329 children[i].classList.remove("media-inspector-marker-highlight")
; | |
| 330 children[i].classList.add("media-inspector-marker-under-highligh
ted"); | |
| 331 } | |
| 332 } | |
| 333 }, | |
| 334 | |
| 335 /** | |
| 336 * @return {number} | 289 * @return {number} |
| 337 */ | 290 */ |
| 338 _zoomFactor: function() | 291 _zoomFactor: function() |
| 339 { | 292 { |
| 340 return WebInspector.zoomManager.zoomFactor() / this._scale; | 293 return WebInspector.zoomManager.zoomFactor() / this._scale; |
| 341 }, | 294 }, |
| 342 | 295 |
| 343 wasShown: function() | 296 wasShown: function() |
| 344 { | 297 { |
| 345 this._renderMediaQueries(); | 298 this._renderMediaQueries(); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 366 var widthPixelValue = null; | 319 var widthPixelValue = null; |
| 367 if (model.maxWidthExpression() && model.minWidthExpression()) | 320 if (model.maxWidthExpression() && model.minWidthExpression()) |
| 368 widthPixelValue = (model.maxWidthExpression().computedLength() - min
WidthValue) / zoomFactor; | 321 widthPixelValue = (model.maxWidthExpression().computedLength() - min
WidthValue) / zoomFactor; |
| 369 else if (model.maxWidthExpression()) | 322 else if (model.maxWidthExpression()) |
| 370 widthPixelValue = (model.maxWidthExpression().computedLength() - thi
s._offset) / zoomFactor; | 323 widthPixelValue = (model.maxWidthExpression().computedLength() - thi
s._offset) / zoomFactor; |
| 371 else | 324 else |
| 372 markerElement.style.right = "0"; | 325 markerElement.style.right = "0"; |
| 373 if (typeof widthPixelValue === "number") | 326 if (typeof widthPixelValue === "number") |
| 374 markerElement.style.width = widthPixelValue + "px"; | 327 markerElement.style.width = widthPixelValue + "px"; |
| 375 | 328 |
| 329 if (model.minWidthExpression()) { |
| 330 var labelClass = model.section() === WebInspector.MediaQueryInspecto
r.Section.MinMax ? "media-inspector-label-right" : "media-inspector-label-left"; |
| 331 var labelContainer = markerElement.createChild("div", "media-inspect
or-marker-label-container media-inspector-marker-label-container-left"); |
| 332 labelContainer.createChild("span", "media-inspector-marker-label " +
labelClass).textContent = model.minWidthExpression().value() + model.minWidthEx
pression().unit(); |
| 333 } |
| 334 |
| 376 if (model.maxWidthExpression()) { | 335 if (model.maxWidthExpression()) { |
| 377 var labelClass = model.section() === WebInspector.MediaQueryInspecto
r.Section.MinMax ? "media-inspector-label-left" : "media-inspector-label-right"; | 336 var labelClass = model.section() === WebInspector.MediaQueryInspecto
r.Section.MinMax ? "media-inspector-label-left" : "media-inspector-label-right"; |
| 378 var labelContainer = markerElement.createChild("div", "media-inspect
or-marker-label-container media-inspector-marker-label-container-right"); | 337 var labelContainer = markerElement.createChild("div", "media-inspect
or-marker-label-container media-inspector-marker-label-container-right"); |
| 379 labelContainer.createChild("div", "media-inspector-marker-serif"); | 338 labelContainer.createChild("span", "media-inspector-marker-label " +
labelClass).textContent = model.maxWidthExpression().value() + model.maxWidthEx
pression().unit(); |
| 380 labelContainer.createChild("span", "media-inspector-marker-label " +
labelClass).textContent = model.maxWidthExpression().computedLength() + "px"; | |
| 381 } | 339 } |
| 382 | 340 markerElement.title = model.mediaText(); |
| 383 if (model.minWidthExpression()) { | |
| 384 var labelClass = model.section() === WebInspector.MediaQueryInspecto
r.Section.MinMax ? "media-inspector-label-right" : "media-inspector-label-left"; | |
| 385 var labelContainer = markerElement.createChild("div", "media-inspect
or-marker-label-container media-inspector-marker-label-container-left"); | |
| 386 labelContainer.createChild("div", "media-inspector-marker-serif"); | |
| 387 labelContainer.createChild("span", "media-inspector-marker-label " +
labelClass).textContent = model.minWidthExpression().computedLength() + "px"; | |
| 388 } | |
| 389 | 341 |
| 390 return markerElement; | 342 return markerElement; |
| 391 }, | 343 }, |
| 392 | 344 |
| 393 __proto__: WebInspector.View.prototype | 345 __proto__: WebInspector.View.prototype |
| 394 }; | 346 }; |
| 395 | 347 |
| 396 /** | 348 /** |
| 397 * @constructor | 349 * @constructor |
| 398 * @param {!WebInspector.CSSMedia} cssMedia | 350 * @param {!WebInspector.CSSMedia} cssMedia |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 536 }, | 488 }, |
| 537 | 489 |
| 538 /** | 490 /** |
| 539 * @return {boolean} | 491 * @return {boolean} |
| 540 */ | 492 */ |
| 541 active: function() | 493 active: function() |
| 542 { | 494 { |
| 543 return this._active; | 495 return this._active; |
| 544 } | 496 } |
| 545 } | 497 } |
| OLD | NEW |