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 */ |
11 WebInspector.ResponsiveDesignView = function(inspectedPagePlaceholder) | 11 WebInspector.ResponsiveDesignView = function(inspectedPagePlaceholder) |
12 { | 12 { |
13 WebInspector.VBox.call(this); | 13 WebInspector.VBox.call(this); |
14 this.registerRequiredCSS("responsiveDesignView.css"); | 14 this.registerRequiredCSS("responsiveDesignView.css"); |
15 | 15 |
16 this._responsiveDesignContainer = new WebInspector.VBox(); | 16 this._responsiveDesignContainer = new WebInspector.VBox(); |
| 17 |
17 this._createToolbar(); | 18 this._createToolbar(); |
| 19 this._warningMessage = this._responsiveDesignContainer.element.createChild("
div", "responsive-design-warning hidden"); |
| 20 WebInspector.overridesSupport.addEventListener(WebInspector.OverridesSupport
.Events.OverridesWarningUpdated, this._overridesWarningUpdated, this); |
| 21 |
18 this._canvasContainer = new WebInspector.View(); | 22 this._canvasContainer = new WebInspector.View(); |
19 this._canvasContainer.element.classList.add("responsive-design"); | 23 this._canvasContainer.element.classList.add("responsive-design"); |
20 this._canvasContainer.show(this._responsiveDesignContainer.element); | 24 this._canvasContainer.show(this._responsiveDesignContainer.element); |
21 | 25 |
22 this._canvas = this._canvasContainer.element.createChild("canvas", "fill"); | 26 this._canvas = this._canvasContainer.element.createChild("canvas", "fill"); |
23 this._slidersContainer = this._canvasContainer.element.createChild("div", "v
box responsive-design-sliders-container"); | 27 this._slidersContainer = this._canvasContainer.element.createChild("div", "v
box responsive-design-sliders-container"); |
24 var hbox = this._slidersContainer.createChild("div", "hbox flex-auto"); | 28 var hbox = this._slidersContainer.createChild("div", "hbox flex-auto"); |
25 this._heightSliderContainer = this._slidersContainer.createChild("div", "hbo
x responsive-design-slider-height"); | 29 this._heightSliderContainer = this._slidersContainer.createChild("div", "hbo
x responsive-design-slider-height"); |
26 this._resolutionHeightLabel = this._heightSliderContainer.createChild("div",
"responsive-design-resolution-label responsive-design-resolution-height"); | 30 this._resolutionHeightLabel = this._heightSliderContainer.createChild("div",
"responsive-design-resolution-label responsive-design-resolution-height"); |
27 this._pageContainer = hbox.createChild("div", "vbox flex-auto"); | 31 this._pageContainer = hbox.createChild("div", "vbox flex-auto"); |
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
383 _onZoomChanged: function() | 387 _onZoomChanged: function() |
384 { | 388 { |
385 this._updateUI(); | 389 this._updateUI(); |
386 }, | 390 }, |
387 | 391 |
388 _createToolbar: function() | 392 _createToolbar: function() |
389 { | 393 { |
390 this._toolbarElement = this._responsiveDesignContainer.element.createChi
ld("div", "responsive-design-toolbar"); | 394 this._toolbarElement = this._responsiveDesignContainer.element.createChi
ld("div", "responsive-design-toolbar"); |
391 | 395 |
392 // Device | 396 // Device |
393 var fieldsetElement = this._toolbarElement.createChild("fieldset"); | 397 var sectionElement = this._toolbarElement.createChild("div", "responsive
-design-section"); |
394 var deviceLabel = fieldsetElement.createChild("label"); | 398 var deviceLabel = sectionElement.createChild("label"); |
395 var deviceCheckbox = deviceLabel.createChild("input"); | 399 var deviceCheckbox = deviceLabel.createChild("input"); |
396 deviceCheckbox.type = "checkbox"; | 400 deviceCheckbox.type = "checkbox"; |
397 deviceLabel.createTextChild(WebInspector.UIString("Device")); | 401 deviceLabel.createTextChild(WebInspector.UIString("Device")); |
398 deviceLabel.title = WebInspector.UIString("Emulate device"); | 402 deviceLabel.title = WebInspector.UIString("Emulate device"); |
399 deviceCheckbox.addEventListener("change", deviceChecked, false); | 403 deviceCheckbox.addEventListener("change", deviceChecked, false); |
400 | 404 |
401 function deviceChecked() | 405 function deviceChecked() |
402 { | 406 { |
403 if (deviceCheckbox.checked) { | 407 if (deviceCheckbox.checked) { |
404 var option = deviceSelect.options[deviceSelect.selectedIndex]; | 408 var option = deviceSelect.options[deviceSelect.selectedIndex]; |
405 WebInspector.overridesSupport.emulateDevice(option.metrics, opti
on.userAgent); | 409 WebInspector.overridesSupport.emulateDevice(option.metrics, opti
on.userAgent); |
406 } else { | 410 } else { |
407 WebInspector.overridesSupport.resetEmulatedDevice(); | 411 WebInspector.overridesSupport.resetEmulatedDevice(); |
408 } | 412 } |
409 } | 413 } |
410 | 414 |
411 var deviceSelect = WebInspector.overridesSupport.createDeviceSelect(docu
ment); | 415 var deviceSelect = WebInspector.overridesSupport.createDeviceSelect(docu
ment); |
412 fieldsetElement.appendChild(deviceSelect); | 416 sectionElement.appendChild(deviceSelect); |
413 deviceSelect.addEventListener("change", emulateDevice, false); | 417 deviceSelect.addEventListener("change", emulateDevice, false); |
414 | 418 |
415 function emulateDevice() | 419 function emulateDevice() |
416 { | 420 { |
417 var option = deviceSelect.options[deviceSelect.selectedIndex]; | 421 var option = deviceSelect.options[deviceSelect.selectedIndex]; |
418 WebInspector.overridesSupport.emulateDevice(option.metrics, option.u
serAgent); | 422 WebInspector.overridesSupport.emulateDevice(option.metrics, option.u
serAgent); |
419 } | 423 } |
420 | 424 |
421 updateDeviceCheckboxStatus(); | 425 updateDeviceCheckboxStatus(); |
| 426 |
422 WebInspector.overridesSupport.settings.emulateViewport.addChangeListener
(updateDeviceCheckboxStatus); | 427 WebInspector.overridesSupport.settings.emulateViewport.addChangeListener
(updateDeviceCheckboxStatus); |
423 WebInspector.overridesSupport.settings.emulateTouchEvents.addChangeListe
ner(updateDeviceCheckboxStatus); | 428 WebInspector.overridesSupport.settings.emulateTouchEvents.addChangeListe
ner(updateDeviceCheckboxStatus); |
424 WebInspector.overridesSupport.settings.overrideDeviceResolution.addChang
eListener(updateDeviceCheckboxStatus); | 429 WebInspector.overridesSupport.settings.overrideDeviceResolution.addChang
eListener(updateDeviceCheckboxStatus); |
| 430 |
425 function updateDeviceCheckboxStatus() | 431 function updateDeviceCheckboxStatus() |
426 { | 432 { |
427 deviceCheckbox.checked = WebInspector.overridesSupport.settings.emul
ateViewport.get() && | 433 deviceCheckbox.checked = WebInspector.overridesSupport.settings.emul
ateViewport.get() && |
428 WebInspector.overridesSupport.settings.emulateTouchEvents.get()
&& | 434 WebInspector.overridesSupport.settings.emulateTouchEvents.get()
&& |
429 WebInspector.overridesSupport.settings.overrideDeviceResolution.
get(); | 435 WebInspector.overridesSupport.settings.overrideDeviceResolution.
get(); |
430 } | 436 } |
431 | 437 |
432 // Screen | 438 // Screen |
433 fieldsetElement = this._toolbarElement.createChild("fieldset", "responsi
ve-design-section"); | 439 sectionElement = this._toolbarElement.createChild("div", "responsive-des
ign-section"); |
434 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingCheckbo
x("Screen", WebInspector.overridesSupport.settings.overrideDeviceResolution, tru
e)); | 440 sectionElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox
("Screen", WebInspector.overridesSupport.settings.overrideDeviceResolution, true
)); |
435 | 441 |
436 fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebInspe
ctor.overridesSupport.settings.overrideDeviceResolution); | 442 var fieldsetElement = WebInspector.SettingsUI.createSettingFieldset(WebI
nspector.overridesSupport.settings.overrideDeviceResolution); |
437 this._toolbarElement.appendChild(fieldsetElement); | 443 sectionElement.appendChild(fieldsetElement); |
438 fieldsetElement.createChild("div", "responsive-design-icon responsive-de
sign-icon-resolution").title = WebInspector.UIString("Screen resolution"); | 444 fieldsetElement.createChild("div", "responsive-design-icon responsive-de
sign-icon-resolution").title = WebInspector.UIString("Screen resolution"); |
439 | 445 |
440 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputFi
eld("", WebInspector.overridesSupport.settings.deviceWidth, true, 4, "3em", WebI
nspector.OverridesSupport.inputValidator, true)); | 446 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputFi
eld("", WebInspector.overridesSupport.settings.deviceWidth, true, 4, "3em", WebI
nspector.OverridesSupport.inputValidator, true)); |
441 fieldsetElement.appendChild(document.createTextNode(" \u00D7 ")); | 447 fieldsetElement.appendChild(document.createTextNode(" \u00D7 ")); |
442 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputFi
eld("", WebInspector.overridesSupport.settings.deviceHeight, true, 4, "3em", Web
Inspector.OverridesSupport.inputValidator, true)); | 448 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputFi
eld("", WebInspector.overridesSupport.settings.deviceHeight, true, 4, "3em", Web
Inspector.OverridesSupport.inputValidator, true)); |
443 | 449 |
444 this._swapDimensionsElement = fieldsetElement.createChild("button", "res
ponsive-design-icon responsive-design-icon-swap"); | 450 this._swapDimensionsElement = fieldsetElement.createChild("button", "res
ponsive-design-icon responsive-design-icon-swap"); |
445 this._swapDimensionsElement.title = WebInspector.UIString("Swap dimensio
ns"); | 451 this._swapDimensionsElement.title = WebInspector.UIString("Swap dimensio
ns"); |
446 this._swapDimensionsElement.addEventListener("click", WebInspector.overr
idesSupport.swapDimensions.bind(WebInspector.overridesSupport), false); | 452 this._swapDimensionsElement.addEventListener("click", WebInspector.overr
idesSupport.swapDimensions.bind(WebInspector.overridesSupport), false); |
447 | 453 |
448 fieldsetElement.createChild("div", "responsive-design-icon responsive-de
sign-icon-dpr").title = WebInspector.UIString("Device pixel ratio"); | 454 fieldsetElement.createChild("div", "responsive-design-icon responsive-de
sign-icon-dpr").title = WebInspector.UIString("Device pixel ratio"); |
449 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputFi
eld("", WebInspector.overridesSupport.settings.deviceScaleFactor, true, 2, "2em"
, WebInspector.OverridesSupport.inputValidator, true)); | 455 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingInputFi
eld("", WebInspector.overridesSupport.settings.deviceScaleFactor, true, 2, "2em"
, WebInspector.OverridesSupport.inputValidator, true)); |
450 | 456 |
451 // Touch and viewport | 457 // Touch and viewport |
452 fieldsetElement = this._toolbarElement.createChild("fieldset", "responsi
ve-design-section"); | 458 sectionElement = this._toolbarElement.createChild("div", "responsive-des
ign-section"); |
453 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingCheckbo
x(WebInspector.UIString("Touch"), WebInspector.overridesSupport.settings.emulate
TouchEvents, true)); | 459 sectionElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox
(WebInspector.UIString("Touch"), WebInspector.overridesSupport.settings.emulateT
ouchEvents, true)); |
454 fieldsetElement.appendChild(WebInspector.SettingsUI.createSettingCheckbo
x(WebInspector.UIString("Viewport"), WebInspector.overridesSupport.settings.emul
ateViewport, true)); | 460 sectionElement.appendChild(WebInspector.SettingsUI.createSettingCheckbox
(WebInspector.UIString("Viewport"), WebInspector.overridesSupport.settings.emula
teViewport, true)); |
455 | |
456 // Warning | |
457 this._warningMessage = this._responsiveDesignContainer.element.createChi
ld("div", "responsive-design-warning hidden"); | |
458 WebInspector.overridesSupport.addEventListener(WebInspector.OverridesSup
port.Events.OverridesWarningUpdated, this._overridesWarningUpdated, this); | |
459 }, | 461 }, |
460 | 462 |
461 _overridesWarningUpdated: function() | 463 _overridesWarningUpdated: function() |
462 { | 464 { |
463 var message = WebInspector.overridesSupport.warningMessage(); | 465 var message = WebInspector.overridesSupport.warningMessage(); |
464 if (this._warningMessage.textContent === message) | 466 if (this._warningMessage.textContent === message) |
465 return; | 467 return; |
466 this._warningMessage.classList.toggle("hidden", !message); | 468 this._warningMessage.classList.toggle("hidden", !message); |
467 this._warningMessage.textContent = message; | 469 this._warningMessage.textContent = message; |
468 this._responsiveDesignModeChanged(); | 470 this._responsiveDesignModeChanged(); |
469 this.onResize(); | 471 this.onResize(); |
470 }, | 472 }, |
471 | 473 |
472 __proto__: WebInspector.VBox.prototype | 474 __proto__: WebInspector.VBox.prototype |
473 }; | 475 }; |
OLD | NEW |