Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3557)

Unified Diff: Source/devtools/front_end/toolbox/ResponsiveDesignView.js

Issue 581133002: DevTools: polish the MQ ruler, move zoom controls to the top. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebaselined Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/devtools/front_end/toolbox/MediaQueryInspector.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/devtools/front_end/toolbox/ResponsiveDesignView.js
diff --git a/Source/devtools/front_end/toolbox/ResponsiveDesignView.js b/Source/devtools/front_end/toolbox/ResponsiveDesignView.js
index dde223c3563a6e2148438d46f49833e725988082..e2f21f473e6a211cb4ef0c724ef5525806683c6f 100644
--- a/Source/devtools/front_end/toolbox/ResponsiveDesignView.js
+++ b/Source/devtools/front_end/toolbox/ResponsiveDesignView.js
@@ -24,12 +24,12 @@ WebInspector.ResponsiveDesignView = function(inspectedPagePlaceholder)
this._canvasContainer.element.classList.add("responsive-design");
this._canvasContainer.show(this._responsiveDesignContainer.element);
+ this._canvas = this._canvasContainer.element.createChild("canvas", "fill responsive-design-canvas");
+
this._mediaInspectorContainer = this._canvasContainer.element.createChild("div", "responsive-design-media-container");
this._mediaInspector = new WebInspector.MediaQueryInspector();
this._updateMediaQueryInspector();
- this._canvas = this._canvasContainer.element.createChild("canvas", "fill responsive-design-canvas");
-
this._warningMessage = this._canvasContainer.element.createChild("div", "responsive-design-warning hidden");
this._warningMessage.createChild("div", "warning-icon-small");
this._warningMessage.createChild("span");
@@ -53,20 +53,20 @@ WebInspector.ResponsiveDesignView = function(inspectedPagePlaceholder)
this._pageContainer = this._slidersContainer.createChild("div", "vbox flex-auto");
// Page scale controls.
- this._pageScaleContainer = this._canvasContainer.element.createChild("div", "vbox responsive-design-page-scale-container");
- this._pageScaleContainer.style.width = WebInspector.ResponsiveDesignView.PageScaleContainerWidth + "px";
- this._pageScaleContainer.style.height = WebInspector.ResponsiveDesignView.PageScaleContainerHeight + "px";
- this._increasePageScaleButton = new WebInspector.StatusBarButton(WebInspector.UIString(""), "responsive-design-page-scale-button responsive-design-page-scale-increase");
- this._increasePageScaleButton.element.tabIndex = -1;
- this._increasePageScaleButton.addEventListener("click", this._pageScaleButtonClicked.bind(this, true), this);
- this._pageScaleContainer.appendChild(this._increasePageScaleButton.element);
- this._pageScaleLabel = this._pageScaleContainer.createChild("label", "responsive-design-page-scale-label");
- this._pageScaleLabel.title = WebInspector.UIString("For a simpler way to change the current page scale, hold down Shift and drag with your mouse.");
+ this._pageScaleContainer = this._canvasContainer.element.createChild("div", "hbox responsive-design-page-scale-container");
this._decreasePageScaleButton = new WebInspector.StatusBarButton(WebInspector.UIString(""), "responsive-design-page-scale-button responsive-design-page-scale-decrease");
this._decreasePageScaleButton.element.tabIndex = -1;
this._decreasePageScaleButton.addEventListener("click", this._pageScaleButtonClicked.bind(this, false), this);
this._pageScaleContainer.appendChild(this._decreasePageScaleButton.element);
+ this._pageScaleLabel = this._pageScaleContainer.createChild("label", "responsive-design-page-scale-label");
+ this._pageScaleLabel.title = WebInspector.UIString("For a simpler way to change the current page scale, hold down Shift and drag with your mouse.");
+
+ this._increasePageScaleButton = new WebInspector.StatusBarButton(WebInspector.UIString(""), "responsive-design-page-scale-button responsive-design-page-scale-increase");
+ this._increasePageScaleButton.element.tabIndex = -1;
+ this._increasePageScaleButton.addEventListener("click", this._pageScaleButtonClicked.bind(this, true), this);
+ this._pageScaleContainer.appendChild(this._increasePageScaleButton.element);
+
this._inspectedPagePlaceholder = inspectedPagePlaceholder;
inspectedPagePlaceholder.show(this.element);
@@ -89,9 +89,8 @@ WebInspector.ResponsiveDesignView = function(inspectedPagePlaceholder)
// Measured in DIP.
WebInspector.ResponsiveDesignView.RulerWidth = 34;
WebInspector.ResponsiveDesignView.RulerHeight = 22;
+WebInspector.ResponsiveDesignView.RulerTopHeight = 11;
WebInspector.ResponsiveDesignView.RulerBottomHeight = 9;
-WebInspector.ResponsiveDesignView.PageScaleContainerWidth = 40;
-WebInspector.ResponsiveDesignView.PageScaleContainerHeight = 80;
WebInspector.ResponsiveDesignView.prototype = {
@@ -184,11 +183,9 @@ WebInspector.ResponsiveDesignView.prototype = {
if (typeof this._availableSize === "undefined") {
var zoomFactor = WebInspector.zoomManager.zoomFactor();
var rect = this._canvasContainer.element.getBoundingClientRect();
- var mediaInspectorHeight = this._mediaInspector.element.offsetHeight;
- if (mediaInspectorHeight)
- mediaInspectorHeight += WebInspector.ResponsiveDesignView.RulerBottomHeight;
+ var rulerTotalHeight = this._rulerTotalHeightDIP();
this._availableSize = new Size(Math.max(rect.width * zoomFactor - WebInspector.ResponsiveDesignView.RulerWidth, 1),
- Math.max(rect.height * zoomFactor - mediaInspectorHeight - WebInspector.ResponsiveDesignView.RulerHeight, 1));
+ Math.max(rect.height * zoomFactor - rulerTotalHeight, 1));
}
return this._availableSize;
},
@@ -258,9 +255,9 @@ WebInspector.ResponsiveDesignView.prototype = {
* Canvas contains grid and rulers.
* @param {number} cssCanvasWidth
* @param {number} cssCanvasHeight
- * @param {number} mediaInspectorHeight
+ * @param {number} rulerHeight
*/
- _drawCanvas: function(cssCanvasWidth, cssCanvasHeight, mediaInspectorHeight)
+ _drawCanvas: function(cssCanvasWidth, cssCanvasHeight, rulerHeight)
{
if (!this._enabled)
return;
@@ -273,7 +270,6 @@ WebInspector.ResponsiveDesignView.prototype = {
var zoomFactor = WebInspector.zoomManager.zoomFactor();
var dipCanvasWidth = cssCanvasWidth * zoomFactor;
var dipCanvasHeight = cssCanvasHeight * zoomFactor;
- var dipMediaInspectorHeight = mediaInspectorHeight * zoomFactor;
var deviceScaleFactor = window.devicePixelRatio;
canvas.width = deviceScaleFactor * cssCanvasWidth;
@@ -285,7 +281,6 @@ WebInspector.ResponsiveDesignView.prototype = {
const lightLineColor = "rgb(132, 132, 132)";
const darkLineColor = "rgb(114, 114, 114)";
const rulerColor = "rgb(125, 125, 125)";
- const rulerOverlayColor = "rgba(255, 255, 255, 0.2)";
const textColor = "rgb(186, 186, 186)";
const contentsSizeColor = "rgba(0, 0, 0, 0.3)";
@@ -301,9 +296,7 @@ WebInspector.ResponsiveDesignView.prototype = {
var rulerStepCount = 20;
var rulerWidth = WebInspector.ResponsiveDesignView.RulerWidth;
- var rulerHeight = WebInspector.ResponsiveDesignView.RulerHeight;
- if (dipMediaInspectorHeight)
- rulerHeight += WebInspector.ResponsiveDesignView.RulerBottomHeight + dipMediaInspectorHeight;
+
var dipGridWidth = dipCanvasWidth - rulerWidth;
var dipGridHeight = dipCanvasHeight - rulerHeight;
var dipScrollX = this._viewport.scrollX * scale;
@@ -320,10 +313,6 @@ WebInspector.ResponsiveDesignView.prototype = {
// Draw horizontal ruler.
context.save();
- context.beginPath();
- context.moveTo(0, -rulerHeight + WebInspector.ResponsiveDesignView.RulerHeight);
- context.lineTo(dipGridWidth, -rulerHeight + WebInspector.ResponsiveDesignView.RulerHeight);
- context.stroke();
var minXIndex = Math.ceil(dipScrollX / rulerSubStep);
var maxXIndex = Math.floor((dipScrollX + dipGridWidth) / rulerSubStep);
@@ -337,37 +326,26 @@ WebInspector.ResponsiveDesignView.prototype = {
context.translate(-dipScrollX, 0);
for (var index = minXIndex; index <= maxXIndex; index++) {
var x = index * rulerSubStep;
- var y = -WebInspector.ResponsiveDesignView.RulerHeight * 0.25;
- var copyHeight = WebInspector.ResponsiveDesignView.RulerHeight * 0.25;
+ var height = WebInspector.ResponsiveDesignView.RulerHeight * 0.25;
if (!(index % (rulerStepCount / 4)))
- copyHeight = WebInspector.ResponsiveDesignView.RulerHeight * 0.5;
- if (!(index % (rulerStepCount / 2))) {
- context.strokeStyle = rulerOverlayColor;
- y = -rulerHeight + WebInspector.ResponsiveDesignView.RulerHeight * 0.25;
- copyHeight = 0;
- }
+ height = WebInspector.ResponsiveDesignView.RulerHeight * 0.5;
+
+ if (!(index % (rulerStepCount / 2)))
+ height = rulerHeight;
+
if (!(index % rulerStepCount)) {
context.save();
context.translate(x, 0);
context.fillText(Math.round(x / scale), 2, -rulerHeight + 10);
context.restore();
- y = -rulerHeight;
+ height = rulerHeight;
}
context.beginPath();
- context.moveTo(x, y);
+ context.moveTo(x, - height);
context.lineTo(x, 0);
context.stroke();
- if (copyHeight) {
- context.beginPath();
- context.moveTo(x, -rulerHeight + WebInspector.ResponsiveDesignView.RulerHeight - copyHeight);
- context.lineTo(x, -rulerHeight + WebInspector.ResponsiveDesignView.RulerHeight);
- context.stroke();
- }
-
- if (!(index % (rulerStepCount / 2)))
- context.strokeStyle = rulerColor;
}
context.restore();
@@ -451,6 +429,17 @@ WebInspector.ResponsiveDesignView.prototype = {
}
},
+ /**
+ * @return {number}
+ */
+ _rulerTotalHeightDIP: function()
+ {
+ var mediaInspectorHeight = this._mediaInspector.isShowing() ? this._mediaInspector.element.offsetHeight : 0;
+ if (!mediaInspectorHeight)
+ return WebInspector.ResponsiveDesignView.RulerHeight;
+ return WebInspector.ResponsiveDesignView.RulerTopHeight + WebInspector.ResponsiveDesignView.RulerBottomHeight + mediaInspectorHeight * WebInspector.zoomManager.zoomFactor();
+ },
+
_updateUI: function()
{
if (!this._enabled || !this.isShowing())
@@ -462,17 +451,18 @@ WebInspector.ResponsiveDesignView.prototype = {
var cssCanvasWidth = rect.width;
var cssCanvasHeight = rect.height;
var mediaInspectorHeight = this._mediaInspector.isShowing() ? this._mediaInspector.element.offsetHeight : 0;
- var rulerTotalHeight = WebInspector.ResponsiveDesignView.RulerHeight + (mediaInspectorHeight ? WebInspector.ResponsiveDesignView.RulerBottomHeight : 0);
+ var rulerTotalHeight = this._rulerTotalHeightDIP();
this._mediaInspector.setAxisTransform(this._viewport.scrollX, this._scale * this._viewport.pageScaleFactor);
if (this._cachedZoomFactor !== zoomFactor || this._cachedMediaInspectorHeight !== mediaInspectorHeight) {
var cssRulerWidth = WebInspector.ResponsiveDesignView.RulerWidth / zoomFactor + "px";
- var cssRulerHeight = WebInspector.ResponsiveDesignView.RulerHeight / zoomFactor + "px";
- var cssCanvasOffset = rulerTotalHeight / zoomFactor + mediaInspectorHeight + "px";
+ var cssRulerHeight = (mediaInspectorHeight ? WebInspector.ResponsiveDesignView.RulerTopHeight : WebInspector.ResponsiveDesignView.RulerHeight) / zoomFactor + "px";
+ var cssCanvasOffset = rulerTotalHeight / zoomFactor + "px";
this._slidersContainer.style.left = cssRulerWidth;
this._slidersContainer.style.top = cssCanvasOffset;
- this._warningMessage.style.height = cssRulerHeight;
+ this._warningMessage.style.height = cssCanvasOffset;
+ this._pageScaleContainer.style.top = cssCanvasOffset;
this._mediaInspectorContainer.style.left = cssRulerWidth;
this._mediaInspectorContainer.style.marginTop = cssRulerHeight;
}
@@ -485,8 +475,7 @@ WebInspector.ResponsiveDesignView.prototype = {
this._inspectedPagePlaceholder.onResize();
}
- var pageScaleVisible = cssWidth + WebInspector.ResponsiveDesignView.PageScaleContainerWidth + WebInspector.ResponsiveDesignView.RulerWidth / zoomFactor <= rect.width ||
- cssHeight + WebInspector.ResponsiveDesignView.PageScaleContainerHeight + mediaInspectorHeight + rulerTotalHeight / zoomFactor <= rect.height;
+ var pageScaleVisible = cssWidth + this._pageScaleContainerWidth + WebInspector.ResponsiveDesignView.RulerWidth / zoomFactor <= rect.width;
this._pageScaleContainer.classList.toggle("hidden", !pageScaleVisible);
var viewportChanged = !this._cachedViewport
@@ -501,7 +490,7 @@ WebInspector.ResponsiveDesignView.prototype = {
this._cachedMediaInspectorHeight !== mediaInspectorHeight;
if (canvasInvalidated)
- this._drawCanvas(cssCanvasWidth, cssCanvasHeight, mediaInspectorHeight);
+ this._drawCanvas(cssCanvasWidth, cssCanvasHeight, rulerTotalHeight);
if (viewportChanged) {
this._pageScaleLabel.textContent = WebInspector.UIString("%.1f", this._viewport.pageScaleFactor);
@@ -527,6 +516,10 @@ WebInspector.ResponsiveDesignView.prototype = {
if (!this._enabled || this._ignoreResize)
return;
var oldSize = this._availableSize;
+
+ this._pageScaleContainer.classList.remove("hidden");
+ this._pageScaleContainerWidth = this._pageScaleContainer.offsetWidth;
+
delete this._availableSize;
var newSize = this._availableDipSize();
if (!newSize.isEqual(oldSize))
« no previous file with comments | « Source/devtools/front_end/toolbox/MediaQueryInspector.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698