OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 * @param {!WebInspector.DeviceModeModel} model | 6 * @param {!WebInspector.DeviceModeModel} model |
7 * @param {!WebInspector.Setting} showMediaInspectorSetting | 7 * @param {!WebInspector.Setting} showMediaInspectorSetting |
8 * @param {!WebInspector.Setting} showRulersSetting | 8 * @param {!WebInspector.Setting} showRulersSetting |
9 * @constructor | 9 * @constructor |
10 */ | 10 */ |
11 WebInspector.DeviceModeToolbar = function(model, showMediaInspectorSetting, show
RulersSetting) | 11 WebInspector.DeviceModeToolbar = function(model, showMediaInspectorSetting, show
RulersSetting) |
12 { | 12 { |
13 this._model = model; | 13 this._model = model; |
14 this._showMediaInspectorSetting = showMediaInspectorSetting; | 14 this._showMediaInspectorSetting = showMediaInspectorSetting; |
15 this._showRulersSetting = showRulersSetting; | 15 this._showRulersSetting = showRulersSetting; |
16 | 16 |
17 this._deviceOutlineSetting = this._model.deviceOutlineSetting(); | 17 this._deviceOutlineSetting = this._model.deviceOutlineSetting(); |
18 this._showDeviceScaleFactorSetting = WebInspector.settings.createSetting("em
ulation.showDeviceScaleFactor", false); | 18 this._showDeviceScaleFactorSetting = WebInspector.settings.createSetting("em
ulation.showDeviceScaleFactor", false); |
19 this._showDeviceScaleFactorSetting.addChangeListener(this._updateDeviceScale
FactorVisibility, this); | 19 this._showDeviceScaleFactorSetting.addChangeListener(this._updateDeviceScale
FactorVisibility, this); |
20 | 20 |
21 this._showUserAgentTypeSetting = WebInspector.settings.createSetting("emulat
ion.showUserAgentType", false); | 21 this._showUserAgentTypeSetting = WebInspector.settings.createSetting("emulat
ion.showUserAgentType", false); |
22 this._showUserAgentTypeSetting.addChangeListener(this._updateUserAgentTypeVi
sibility, this); | 22 this._showUserAgentTypeSetting.addChangeListener(this._updateUserAgentTypeVi
sibility, this); |
23 | 23 |
24 this._showNetworkConditionsSetting = WebInspector.settings.createSetting("em
ulation.showNetworkConditions", false); | 24 this._showNetworkConditionsSetting = WebInspector.settings.createSetting("em
ulation.showNetworkConditions", false); |
25 this._showNetworkConditionsSetting.addChangeListener(this._updateNetworkCond
itionsVisibility, this); | 25 this._showNetworkConditionsSetting.addChangeListener(this._updateNetworkCond
itionsVisibility, this); |
26 | 26 |
27 /** @type {!Map<!WebInspector.EmulatedDevice, !WebInspector.EmulatedDevice.M
ode>} */ | 27 /** @type {!Map<!WebInspector.EmulatedDevice, !WebInspector.EmulatedDevice.M
ode>} */ |
28 this._lastMode = new Map(); | 28 this._lastMode = new Map(); |
29 | 29 |
| 30 /** @type {!Map<!WebInspector.EmulatedDevice, number>} */ |
| 31 this._lastScale = new Map(); |
| 32 |
30 this._element = createElementWithClass("div", "device-mode-toolbar"); | 33 this._element = createElementWithClass("div", "device-mode-toolbar"); |
31 | 34 |
32 var leftContainer = this._element.createChild("div", "device-mode-toolbar-sp
acer"); | 35 var leftContainer = this._element.createChild("div", "device-mode-toolbar-sp
acer"); |
33 leftContainer.createChild("div", "device-mode-toolbar-spacer"); | 36 leftContainer.createChild("div", "device-mode-toolbar-spacer"); |
34 var leftToolbar = new WebInspector.Toolbar("", leftContainer); | 37 var leftToolbar = new WebInspector.Toolbar("", leftContainer); |
35 leftToolbar.makeWrappable(); | 38 leftToolbar.makeWrappable(); |
36 this._fillLeftToolbar(leftToolbar); | 39 this._fillLeftToolbar(leftToolbar); |
37 | 40 |
38 var mainToolbar = new WebInspector.Toolbar("", this._element); | 41 var mainToolbar = new WebInspector.Toolbar("", this._element); |
39 mainToolbar.makeWrappable(); | 42 mainToolbar.makeWrappable(); |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 | 192 |
190 toolbar.appendToolbarItem(this._wrapToolbarItem(createElementWithClass("
div", "device-mode-empty-toolbar-element"))); | 193 toolbar.appendToolbarItem(this._wrapToolbarItem(createElementWithClass("
div", "device-mode-empty-toolbar-element"))); |
191 }, | 194 }, |
192 | 195 |
193 | 196 |
194 /** | 197 /** |
195 * @param {!WebInspector.ContextMenu} contextMenu | 198 * @param {!WebInspector.ContextMenu} contextMenu |
196 */ | 199 */ |
197 _appendScaleMenuItems: function(contextMenu) | 200 _appendScaleMenuItems: function(contextMenu) |
198 { | 201 { |
199 var scaleSetting = this._model.scaleSetting(); | |
200 if (this._model.type() === WebInspector.DeviceModeModel.Type.Device) { | 202 if (this._model.type() === WebInspector.DeviceModeModel.Type.Device) { |
201 contextMenu.appendItem(WebInspector.UIString("Fit to window (%.0f%%)
", this._model.fitScale() * 100), scaleSetting.set.bind(scaleSetting, this._mode
l.fitScale()), false); | 203 contextMenu.appendItem(WebInspector.UIString("Fit to window (%.0f%%)
", this._model.fitScale() * 100), this._onScaleMenuChanged.bind(this, this._mode
l.fitScale()), false); |
202 contextMenu.appendSeparator(); | 204 contextMenu.appendSeparator(); |
203 } | 205 } |
204 appendScaleItem(WebInspector.UIString("50%"), 0.5); | 206 var boundAppendScaleItem = appendScaleItem.bind(this); |
205 appendScaleItem(WebInspector.UIString("75%"), 0.75); | 207 boundAppendScaleItem(WebInspector.UIString("50%"), 0.5); |
206 appendScaleItem(WebInspector.UIString("100%"), 1); | 208 boundAppendScaleItem(WebInspector.UIString("75%"), 0.75); |
207 appendScaleItem(WebInspector.UIString("125%"), 1.25); | 209 boundAppendScaleItem(WebInspector.UIString("100%"), 1); |
208 appendScaleItem(WebInspector.UIString("150%"), 1.5); | 210 boundAppendScaleItem(WebInspector.UIString("125%"), 1.25); |
| 211 boundAppendScaleItem(WebInspector.UIString("150%"), 1.5); |
209 | 212 |
210 /** | 213 /** |
211 * @param {string} title | 214 * @param {string} title |
212 * @param {number} value | 215 * @param {number} value |
| 216 * @this {!WebInspector.DeviceModeToolbar} |
213 */ | 217 */ |
214 function appendScaleItem(title, value) | 218 function appendScaleItem(title, value) |
215 { | 219 { |
216 contextMenu.appendCheckboxItem(title, scaleSetting.set.bind(scaleSet
ting, value), scaleSetting.get() === value, false); | 220 contextMenu.appendCheckboxItem(title, this._onScaleMenuChanged.bind(
this, value), this._model.scaleSetting().get() === value, false); |
217 } | 221 } |
218 }, | 222 }, |
219 | 223 |
220 /** | 224 /** |
| 225 * @param {number} value |
| 226 */ |
| 227 _onScaleMenuChanged: function(value) |
| 228 { |
| 229 var device = this._model.device(); |
| 230 if (device) |
| 231 this._lastScale.set(device, value); |
| 232 this._model.scaleSetting().set(value); |
| 233 }, |
| 234 |
| 235 /** |
221 * @param {!WebInspector.ContextMenu} contextMenu | 236 * @param {!WebInspector.ContextMenu} contextMenu |
222 */ | 237 */ |
223 _appendDeviceScaleMenuItems: function(contextMenu) | 238 _appendDeviceScaleMenuItems: function(contextMenu) |
224 { | 239 { |
225 var deviceScaleFactorSetting = this._model.deviceScaleFactorSetting(); | 240 var deviceScaleFactorSetting = this._model.deviceScaleFactorSetting(); |
226 var defaultValue = this._model.uaSetting().get() === WebInspector.Device
ModeModel.UA.Mobile || this._model.uaSetting().get() === WebInspector.DeviceMode
Model.UA.MobileNoTouch ? WebInspector.DeviceModeModel.defaultMobileScaleFactor :
window.devicePixelRatio; | 241 var defaultValue = this._model.uaSetting().get() === WebInspector.Device
ModeModel.UA.Mobile || this._model.uaSetting().get() === WebInspector.DeviceMode
Model.UA.MobileNoTouch ? WebInspector.DeviceModeModel.defaultMobileScaleFactor :
window.devicePixelRatio; |
227 appendDeviceScaleFactorItem(WebInspector.UIString("Default: %.1f", defau
ltValue), 0); | 242 appendDeviceScaleFactorItem(WebInspector.UIString("Default: %.1f", defau
ltValue), 0); |
228 contextMenu.appendSeparator(); | 243 contextMenu.appendSeparator(); |
229 appendDeviceScaleFactorItem(WebInspector.UIString("1"), 1); | 244 appendDeviceScaleFactorItem(WebInspector.UIString("1"), 1); |
230 appendDeviceScaleFactorItem(WebInspector.UIString("2"), 2); | 245 appendDeviceScaleFactorItem(WebInspector.UIString("2"), 2); |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 var shadowRoot = WebInspector.createShadowRootWithCoreStyles(container,
"emulation/deviceModeToolbar.css"); | 329 var shadowRoot = WebInspector.createShadowRootWithCoreStyles(container,
"emulation/deviceModeToolbar.css"); |
315 shadowRoot.appendChild(element); | 330 shadowRoot.appendChild(element); |
316 return new WebInspector.ToolbarItem(container); | 331 return new WebInspector.ToolbarItem(container); |
317 }, | 332 }, |
318 | 333 |
319 /** | 334 /** |
320 * @param {!WebInspector.EmulatedDevice} device | 335 * @param {!WebInspector.EmulatedDevice} device |
321 */ | 336 */ |
322 _emulateDevice: function(device) | 337 _emulateDevice: function(device) |
323 { | 338 { |
324 this._model.emulate(WebInspector.DeviceModeModel.Type.Device, device, th
is._lastMode.get(device) || device.modes[0]); | 339 this._model.emulate(WebInspector.DeviceModeModel.Type.Device, device, th
is._lastMode.get(device) || device.modes[0], this._lastScale.get(device)); |
325 }, | 340 }, |
326 | 341 |
327 _switchToResponsive: function() | 342 _switchToResponsive: function() |
328 { | 343 { |
329 this._model.emulate(WebInspector.DeviceModeModel.Type.Responsive, null,
null); | 344 this._model.emulate(WebInspector.DeviceModeModel.Type.Responsive, null,
null); |
330 }, | 345 }, |
331 | 346 |
332 /** | 347 /** |
333 * @param {!Array<!WebInspector.EmulatedDevice>} devices | 348 * @param {!Array<!WebInspector.EmulatedDevice>} devices |
334 * @return {!Array<!WebInspector.EmulatedDevice>} | 349 * @return {!Array<!WebInspector.EmulatedDevice>} |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
565 this._emulateDevice(device); | 580 this._emulateDevice(device); |
566 return; | 581 return; |
567 } | 582 } |
568 } | 583 } |
569 } | 584 } |
570 } | 585 } |
571 | 586 |
572 this._model.emulate(WebInspector.DeviceModeModel.Type.Responsive, null,
null); | 587 this._model.emulate(WebInspector.DeviceModeModel.Type.Responsive, null,
null); |
573 } | 588 } |
574 } | 589 } |
OLD | NEW |