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.VBox} | 7 * @extends {WebInspector.VBox} |
8 * @implements {WebInspector.OverridesSupport.PageResizer} | 8 * @implements {WebInspector.OverridesSupport.PageResizer} |
9 * @param {!WebInspector.InspectedPagePlaceholder} inspectedPagePlaceholder | 9 * @param {!WebInspector.InspectedPagePlaceholder} inspectedPagePlaceholder |
10 */ | 10 */ |
(...skipping 27 matching lines...) Expand all Loading... |
38 this._heightSlider = this._heightSliderContainer.createChild("div", "respons
ive-design-slider-thumb"); | 38 this._heightSlider = this._heightSliderContainer.createChild("div", "respons
ive-design-slider-thumb"); |
39 this._heightSlider.createChild("div", "responsive-design-thumb-handle"); | 39 this._heightSlider.createChild("div", "responsive-design-thumb-handle"); |
40 this._createResizer(this._heightSlider, true); | 40 this._createResizer(this._heightSlider, true); |
41 | 41 |
42 this._inspectedPagePlaceholder = inspectedPagePlaceholder; | 42 this._inspectedPagePlaceholder = inspectedPagePlaceholder; |
43 inspectedPagePlaceholder.show(this.element); | 43 inspectedPagePlaceholder.show(this.element); |
44 | 44 |
45 this._enabled = false; | 45 this._enabled = false; |
46 | 46 |
47 WebInspector.zoomManager.addEventListener(WebInspector.ZoomManager.Events.Zo
omChanged, this._onZoomChanged, this); | 47 WebInspector.zoomManager.addEventListener(WebInspector.ZoomManager.Events.Zo
omChanged, this._onZoomChanged, this); |
48 WebInspector.dockController.addEventListener(WebInspector.DockController.Eve
nts.DockSideChanged, this._updateOverridesSupportOnDockSideChange, this); | |
49 WebInspector.settings.responsiveDesignMode.addChangeListener(this._responsiv
eDesignModeChanged, this); | 48 WebInspector.settings.responsiveDesignMode.addChangeListener(this._responsiv
eDesignModeChanged, this); |
50 | |
51 WebInspector.overridesSupport.settings.emulateViewport.addChangeListener(thi
s._maybeEnableResponsiveDesign, this); | 49 WebInspector.overridesSupport.settings.emulateViewport.addChangeListener(thi
s._maybeEnableResponsiveDesign, this); |
52 WebInspector.overridesSupport.settings.emulateTouchEvents.addChangeListener(
this._maybeEnableResponsiveDesign, this); | 50 WebInspector.overridesSupport.settings.emulateTouchEvents.addChangeListener(
this._maybeEnableResponsiveDesign, this); |
53 WebInspector.overridesSupport.settings.overrideDeviceResolution.addChangeLis
tener(this._maybeEnableResponsiveDesign, this); | 51 WebInspector.overridesSupport.settings.overrideDeviceResolution.addChangeLis
tener(this._maybeEnableResponsiveDesign, this); |
54 | 52 this._responsiveDesignModeChanged(); |
55 this._updateOverridesSupportOnDockSideChange(); | 53 this._overridesWarningUpdated(); |
56 }; | 54 }; |
57 | 55 |
58 // Measured in DIP. | 56 // Measured in DIP. |
59 WebInspector.ResponsiveDesignView.SliderWidth = 19; | 57 WebInspector.ResponsiveDesignView.SliderWidth = 19; |
60 WebInspector.ResponsiveDesignView.RulerWidth = 20; | 58 WebInspector.ResponsiveDesignView.RulerWidth = 20; |
61 WebInspector.ResponsiveDesignView.ToolbarHeight = 23; | 59 WebInspector.ResponsiveDesignView.ToolbarHeight = 23; |
62 | 60 |
63 WebInspector.ResponsiveDesignView.prototype = { | 61 WebInspector.ResponsiveDesignView.prototype = { |
64 _maybeEnableResponsiveDesign: function() | 62 _maybeEnableResponsiveDesign: function() |
65 { | 63 { |
66 if (this._enabled) | 64 if (this._enabled) |
67 return; | 65 return; |
68 if (WebInspector.overridesSupport.settings.emulateViewport.get() || | 66 if (WebInspector.overridesSupport.settings.emulateViewport.get() || |
69 WebInspector.overridesSupport.settings.emulateTouchEvents.get()
|| | 67 WebInspector.overridesSupport.settings.emulateTouchEvents.get()
|| |
70 WebInspector.overridesSupport.settings.overrideDeviceResolution.
get()) { | 68 WebInspector.overridesSupport.settings.overrideDeviceResolution.
get()) { |
71 WebInspector.settings.responsiveDesignMode.set(true); | 69 WebInspector.settings.responsiveDesignMode.set(true); |
72 } | 70 } |
73 }, | 71 }, |
74 | 72 |
75 _responsiveDesignModeChanged: function() | 73 _invalidateCache: function() |
76 { | 74 { |
77 delete this._cachedScale; | 75 delete this._cachedScale; |
78 delete this._cachedCssCanvasWidth; | 76 delete this._cachedCssCanvasWidth; |
79 delete this._cachedCssCanvasHeight; | 77 delete this._cachedCssCanvasHeight; |
80 delete this._cachedCssHeight; | 78 delete this._cachedCssHeight; |
81 delete this._cachedCssWidth; | 79 delete this._cachedCssWidth; |
82 delete this._cachedZoomFactor; | 80 delete this._cachedZoomFactor; |
83 delete this._availableSize; | 81 delete this._availableSize; |
| 82 }, |
84 | 83 |
85 var enabled = WebInspector.settings.responsiveDesignMode.get() && WebIns
pector.dockController.dockSide() !== WebInspector.DockController.State.Undocked; | 84 _responsiveDesignModeChanged: function() |
| 85 { |
| 86 var enabled = WebInspector.settings.responsiveDesignMode.get(); |
86 if (enabled && !this._enabled) { | 87 if (enabled && !this._enabled) { |
| 88 this._invalidateCache(); |
87 this._ignoreResize = true; | 89 this._ignoreResize = true; |
88 this._enabled = true; | 90 this._enabled = true; |
89 this._inspectedPagePlaceholder.clearMinimumSizeAndMargins(); | 91 this._inspectedPagePlaceholder.clearMinimumSizeAndMargins(); |
90 this._inspectedPagePlaceholder.show(this._pageContainer); | 92 this._inspectedPagePlaceholder.show(this._pageContainer); |
91 this._responsiveDesignContainer.show(this.element); | 93 this._responsiveDesignContainer.show(this.element); |
92 WebInspector.overridesSupport.setPageResizer(this); | 94 this.update(this._dipWidth, this._dipHeight, this._scale); |
93 delete this._ignoreResize; | 95 delete this._ignoreResize; |
94 } | 96 } else if (!enabled && this._enabled) { |
95 | 97 this._invalidateCache(); |
96 if (!enabled && this._enabled) { | |
97 this._ignoreResize = true; | 98 this._ignoreResize = true; |
98 this._enabled = false; | 99 this._enabled = false; |
99 this._scale = 0; | 100 this._scale = 0; |
100 this._inspectedPagePlaceholder.restoreMinimumSizeAndMargins(); | 101 this._inspectedPagePlaceholder.restoreMinimumSizeAndMargins(); |
101 this._responsiveDesignContainer.detach(); | 102 this._responsiveDesignContainer.detach(); |
102 this._inspectedPagePlaceholder.show(this.element); | 103 this._inspectedPagePlaceholder.show(this.element); |
103 WebInspector.overridesSupport.setPageResizer(null); | |
104 delete this._ignoreResize; | 104 delete this._ignoreResize; |
105 } | 105 } |
106 }, | 106 }, |
107 | 107 |
108 _updateOverridesSupportOnDockSideChange: function() | |
109 { | |
110 this._responsiveDesignModeChanged(); | |
111 }, | |
112 | |
113 /** | 108 /** |
114 * WebInspector.OverridesSupport.PageResizer override. | 109 * WebInspector.OverridesSupport.PageResizer override. |
115 * @param {number} dipWidth | 110 * @param {number} dipWidth |
116 * @param {number} dipHeight | 111 * @param {number} dipHeight |
117 * @param {number} scale | 112 * @param {number} scale |
118 */ | 113 */ |
119 update: function(dipWidth, dipHeight, scale) | 114 update: function(dipWidth, dipHeight, scale) |
120 { | 115 { |
121 if (!this._enabled) | |
122 return; | |
123 | |
124 this._scale = scale; | 116 this._scale = scale; |
125 this._dipWidth = dipWidth; | 117 this._dipWidth = dipWidth; |
126 this._dipHeight = dipHeight; | 118 this._dipHeight = dipHeight; |
127 this._resolutionWidthLabel.textContent = dipWidth + "px"; | 119 this._resolutionWidthLabel.textContent = dipWidth + "px"; |
128 this._resolutionHeightLabel.textContent = dipHeight + "px"; | 120 this._resolutionHeightLabel.textContent = dipHeight + "px"; |
129 this._updateUI(); | 121 this._updateUI(); |
130 }, | 122 }, |
131 | 123 |
132 /** | 124 /** |
133 * WebInspector.OverridesSupport.PageResizer override. | 125 * WebInspector.OverridesSupport.PageResizer override. |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 context.beginPath(); | 310 context.beginPath(); |
319 context.moveTo(0, y); | 311 context.moveTo(0, y); |
320 context.lineTo(dipGridWidth, y); | 312 context.lineTo(dipGridWidth, y); |
321 context.stroke(); | 313 context.stroke(); |
322 } | 314 } |
323 } | 315 } |
324 }, | 316 }, |
325 | 317 |
326 _updateUI: function() | 318 _updateUI: function() |
327 { | 319 { |
328 if (!this._enabled) | 320 if (!this._enabled || !this.isShowing()) |
329 return; | 321 return; |
330 | 322 |
331 var zoomFactor = WebInspector.zoomManager.zoomFactor(); | 323 var zoomFactor = WebInspector.zoomManager.zoomFactor(); |
332 var rect = this._canvas.parentElement.getBoundingClientRect(); | 324 var rect = this._canvas.parentElement.getBoundingClientRect(); |
333 var availableDip = this.availableDipSize(); | 325 var availableDip = this.availableDipSize(); |
334 var cssCanvasWidth = rect.width; | 326 var cssCanvasWidth = rect.width; |
335 var cssCanvasHeight = rect.height; | 327 var cssCanvasHeight = rect.height; |
336 | 328 |
337 this._widthSlider.classList.toggle("hidden", !!this._scale); | 329 this._widthSlider.classList.toggle("hidden", !!this._scale); |
338 this._heightSlider.classList.toggle("hidden", !!this._scale); | 330 this._heightSlider.classList.toggle("hidden", !!this._scale); |
(...skipping 28 matching lines...) Expand all Loading... |
367 this._cachedCssCanvasHeight = cssCanvasHeight; | 359 this._cachedCssCanvasHeight = cssCanvasHeight; |
368 this._cachedCssHeight = cssHeight; | 360 this._cachedCssHeight = cssHeight; |
369 this._cachedCssWidth = cssWidth; | 361 this._cachedCssWidth = cssWidth; |
370 this._cachedZoomFactor = zoomFactor; | 362 this._cachedZoomFactor = zoomFactor; |
371 }, | 363 }, |
372 | 364 |
373 onResize: function() | 365 onResize: function() |
374 { | 366 { |
375 if (!this._enabled || this._ignoreResize) | 367 if (!this._enabled || this._ignoreResize) |
376 return; | 368 return; |
| 369 var oldSize = this._availableSize; |
377 delete this._availableSize; | 370 delete this._availableSize; |
378 this.dispatchEventToListeners(WebInspector.OverridesSupport.PageResizer.
Events.AvailableSizeChanged); | 371 if (!this.availableDipSize().isEqual(oldSize)) |
| 372 this.dispatchEventToListeners(WebInspector.OverridesSupport.PageResi
zer.Events.AvailableSizeChanged); |
379 this._updateUI(); | 373 this._updateUI(); |
380 }, | 374 }, |
381 | 375 |
382 _onZoomChanged: function() | 376 _onZoomChanged: function() |
383 { | 377 { |
384 this._updateUI(); | 378 this._updateUI(); |
385 }, | 379 }, |
386 | 380 |
387 _createToolbar: function() | 381 _createToolbar: function() |
388 { | 382 { |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
455 sectionElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox
(WebInspector.UIString("Viewport"), WebInspector.overridesSupport.settings.emula
teViewport, true)); | 449 sectionElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox
(WebInspector.UIString("Viewport"), WebInspector.overridesSupport.settings.emula
teViewport, true)); |
456 }, | 450 }, |
457 | 451 |
458 _overridesWarningUpdated: function() | 452 _overridesWarningUpdated: function() |
459 { | 453 { |
460 var message = WebInspector.overridesSupport.warningMessage(); | 454 var message = WebInspector.overridesSupport.warningMessage(); |
461 if (this._warningMessage.textContent === message) | 455 if (this._warningMessage.textContent === message) |
462 return; | 456 return; |
463 this._warningMessage.classList.toggle("hidden", !message); | 457 this._warningMessage.classList.toggle("hidden", !message); |
464 this._warningMessage.textContent = message; | 458 this._warningMessage.textContent = message; |
465 this._responsiveDesignModeChanged(); | 459 this._invalidateCache(); |
466 this.onResize(); | 460 this.onResize(); |
467 }, | 461 }, |
468 | 462 |
469 __proto__: WebInspector.VBox.prototype | 463 __proto__: WebInspector.VBox.prototype |
470 }; | 464 }; |
OLD | NEW |