| OLD | NEW |
| 1 <!-- | 1 <!-- |
| 2 Copyright (C) 2012 Google Inc. All rights reserved. | 2 Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 | 3 |
| 4 Redistribution and use in source and binary forms, with or without | 4 Redistribution and use in source and binary forms, with or without |
| 5 modification, are permitted provided that the following conditions | 5 modification, are permitted provided that the following conditions |
| 6 are met: | 6 are met: |
| 7 | 7 |
| 8 1. Redistributions of source code must retain the above copyright | 8 1. Redistributions of source code must retain the above copyright |
| 9 notice, this list of conditions and the following disclaimer. | 9 notice, this list of conditions and the following disclaimer. |
| 10 2. Redistributions in binary form must reproduce the above copyright | 10 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 839 anchorElement.style.left = anchorInfo.x - handleWidth + "px"; | 839 anchorElement.style.left = anchorInfo.x - handleWidth + "px"; |
| 840 anchorElement.style.top = anchorInfo.y - handleWidth + "px"; | 840 anchorElement.style.top = anchorInfo.y - handleWidth + "px"; |
| 841 if (anchorInfo.propertyValue.mutable) | 841 if (anchorInfo.propertyValue.mutable) |
| 842 anchorElement.addEventListener("mousedown", onAnchorMouseDown.bind(null,
anchorInfo)); | 842 anchorElement.addEventListener("mousedown", onAnchorMouseDown.bind(null,
anchorInfo)); |
| 843 anchorElement.addEventListener("mousemove", onAnchorMouseMove.bind(null, anc
horInfo)); | 843 anchorElement.addEventListener("mousemove", onAnchorMouseMove.bind(null, anc
horInfo)); |
| 844 return anchorElement; | 844 return anchorElement; |
| 845 } | 845 } |
| 846 | 846 |
| 847 function calculateDelta(deltaVector, moveDelta) | 847 function calculateDelta(deltaVector, moveDelta) |
| 848 { | 848 { |
| 849 return (deltaVector.x * moveDelta.x + deltaVector.y * moveDelta.y) / Math.sq
rt(deltaVector.x * deltaVector.x + deltaVector.y * deltaVector.y); | 849 return scalarProduct(deltaVector, moveDelta) / Math.sqrt(scalarProduct(delta
Vector, deltaVector)); |
| 850 } | 850 } |
| 851 | 851 |
| 852 function onAnchorMouseDown(anchorInfo, event) | 852 function onAnchorMouseDown(anchorInfo, event) |
| 853 { | 853 { |
| 854 // Only drag upon left button. Right will likely cause a context menu. So wi
ll ctrl-click on mac. | 854 // Only drag upon left button. Right will likely cause a context menu. So wi
ll ctrl-click on mac. |
| 855 if (event.button || (window.platform == "mac" && event.ctrlKey)) | 855 if (event.button || (window.platform == "mac" && event.ctrlKey)) |
| 856 return; | 856 return; |
| 857 | 857 |
| 858 event.preventDefault(); | 858 event.preventDefault(); |
| 859 window.boundDragMove = onDragMove.bind(null, new Point(event.screenX, event.
screenY), anchorInfo.deltaVector); | 859 window.boundDragMove = onDragMove.bind(null, new Point(event.screenX, event.
screenY), anchorInfo.deltaVector); |
| 860 document.addEventListener("mousemove", boundDragMove); | 860 document.addEventListener("mousemove", boundDragMove); |
| 861 document.addEventListener("mouseup", onDragEnd); | 861 document.addEventListener("mouseup", onDragEnd); |
| 862 InspectorOverlayHost.startPropertyChange(anchorInfo.propertyName); | 862 InspectorOverlayHost.startPropertyChange(anchorInfo.propertyName); |
| 863 window.draggedPropertyName = anchorInfo.propertyName; | 863 window.draggedPropertyName = anchorInfo.propertyName; |
| 864 showLabels(anchorInfo.type, anchorInfo.propertyName); | 864 showLabels(anchorInfo.type, anchorInfo.propertyName); |
| 865 } | 865 } |
| 866 | 866 |
| 867 function onDragMove(mouseDownPoint, deltaVector, event) | 867 function onDragMove(mouseDownPoint, deltaVector, event) |
| 868 { | 868 { |
| 869 if (event.buttons !== 1) { | 869 if (event.buttons !== 1) { |
| 870 onDragEnd(event); | 870 onDragEnd(event); |
| 871 return; | 871 return; |
| 872 } | 872 } |
| 873 event.preventDefault(); | 873 event.preventDefault(); |
| 874 InspectorOverlayHost.changeProperty(calculateDelta(deltaVector, new Point(ev
ent.screenX - mouseDownPoint.x, event.screenY - mouseDownPoint.y))); | 874 InspectorOverlayHost.changeProperty(calculateDelta(deltaVector, new Point(ev
ent.screenX - mouseDownPoint.x, event.screenY - mouseDownPoint.y))); |
| 875 } | 875 } |
| 876 | 876 |
| 877 function onDragEnd(event) |
| 878 { |
| 879 document.removeEventListener("mousemove", boundDragMove); |
| 880 delete window.boundDragMove; |
| 881 delete window.draggedPropertyName; |
| 882 document.removeEventListener("mouseup", onDragEnd); |
| 883 event.preventDefault(); |
| 884 InspectorOverlayHost.endPropertyChange(); |
| 885 resetLabelCanvas(); |
| 886 } |
| 887 |
| 877 function showLabel(anchorInfo, showLongDescription) | 888 function showLabel(anchorInfo, showLongDescription) |
| 878 { | 889 { |
| 879 var context = labelsCanvas.getContext("2d"); | 890 var context = labelsCanvas.getContext("2d"); |
| 880 var secondaryColor = "rgba(255, 255, 255, 0.7)"; | 891 var secondaryColor = "rgba(255, 255, 255, 0.7)"; |
| 881 var labelColor = labelColorForProperty(anchorInfo); | 892 var labelColor = labelColorForProperty(anchorInfo); |
| 882 var textDescription = [ | 893 var textDescription = [ |
| 883 {string: String(parseFloat(anchorInfo.propertyValue.value.toFixed(2))),
color: "white" }, | 894 {string: String(parseFloat(anchorInfo.propertyValue.value.toFixed(2))),
color: "white" }, |
| 884 {string: "\u2009" + anchorInfo.propertyValue.unit, color: secondaryColor
} | 895 {string: "\u2009" + anchorInfo.propertyValue.unit, color: secondaryColor
} |
| 885 ]; | 896 ]; |
| 886 | 897 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 901 window.labelCanvasState = {type: type, fullLabelName: fullLabelName}; | 912 window.labelCanvasState = {type: type, fullLabelName: fullLabelName}; |
| 902 var anchors = anchorsByType.get(type) || []; | 913 var anchors = anchorsByType.get(type) || []; |
| 903 var selectedAnchorInfo = null; | 914 var selectedAnchorInfo = null; |
| 904 for (var anchorInfo of anchors) { | 915 for (var anchorInfo of anchors) { |
| 905 if (fullLabelName !== anchorInfo.propertyName) | 916 if (fullLabelName !== anchorInfo.propertyName) |
| 906 showLabel(anchorInfo, false); | 917 showLabel(anchorInfo, false); |
| 907 else | 918 else |
| 908 selectedAnchorInfo = anchorInfo; | 919 selectedAnchorInfo = anchorInfo; |
| 909 } | 920 } |
| 910 | 921 |
| 911 if (selectedAnchorInfo) | 922 if (!selectedAnchorInfo) |
| 912 showLabel(selectedAnchorInfo, true); | 923 return; |
| 913 } | |
| 914 | 924 |
| 915 function onDragEnd(event) | 925 showLabel(selectedAnchorInfo, true); |
| 916 { | 926 document.body.style.cursor = chooseAnchorPointer(selectedAnchorInfo.deltaVec
tor); |
| 917 document.removeEventListener("mousemove", boundDragMove); | |
| 918 delete window.boundDragMove; | |
| 919 delete window.draggedPropertyName; | |
| 920 document.removeEventListener("mouseup", onDragEnd); | |
| 921 event.preventDefault(); | |
| 922 InspectorOverlayHost.endPropertyChange(); | |
| 923 resetLabelCanvas(); | |
| 924 } | 927 } |
| 925 | 928 |
| 926 function onAnchorMouseMove(anchorInfo) | 929 function onAnchorMouseMove(anchorInfo) |
| 927 { | 930 { |
| 928 if (window.draggedPropertyName) | 931 if (window.draggedPropertyName) |
| 929 return; | 932 return; |
| 930 event.preventDefault(); | 933 event.preventDefault(); |
| 931 event.stopPropagation(); | 934 event.stopPropagation(); |
| 932 showLabels(anchorInfo.type, anchorInfo.propertyName); | 935 showLabels(anchorInfo.type, anchorInfo.propertyName); |
| 933 } | 936 } |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1065 | 1068 |
| 1066 function consumeEvent(event) | 1069 function consumeEvent(event) |
| 1067 { | 1070 { |
| 1068 event.preventDefault(); | 1071 event.preventDefault(); |
| 1069 } | 1072 } |
| 1070 | 1073 |
| 1071 function resetLabelCanvas() | 1074 function resetLabelCanvas() |
| 1072 { | 1075 { |
| 1073 delete window.labelCanvasState; | 1076 delete window.labelCanvasState; |
| 1074 resetCanvas(labelsCanvas); | 1077 resetCanvas(labelsCanvas); |
| 1078 if (!window.draggedPropertyName && document.body.style.cursor) |
| 1079 document.body.style.cursor = ""; |
| 1080 } |
| 1081 |
| 1082 function scalarProduct(v1, v2) |
| 1083 { |
| 1084 return v1.x * v2.x + v1.y * v2.y; |
| 1085 } |
| 1086 |
| 1087 var pointers = [ {name: "ns-resize", vector: new Point(0, -1)}, {name: "ew-resiz
e", vector: new Point(-1, 0)}, |
| 1088 {name: "ns-resize", vector: new Point(0, 1)}, {name: "ew-resize", vector: ne
w Point(1, 0)}]; |
| 1089 |
| 1090 function chooseAnchorPointer(direction) |
| 1091 { |
| 1092 var maxValue = scalarProduct(direction, pointers[0].vector); |
| 1093 var maxIndex = 0; |
| 1094 for (var i = 1; i < pointers.length; ++i) { |
| 1095 var currentValue = scalarProduct(direction, pointers[i].vector); |
| 1096 if (currentValue > maxValue) { |
| 1097 maxValue = currentValue; |
| 1098 maxIndex = i; |
| 1099 } |
| 1100 } |
| 1101 return pointers[maxIndex].name; |
| 1075 } | 1102 } |
| 1076 | 1103 |
| 1077 window.addEventListener("DOMContentLoaded", onLoaded); | 1104 window.addEventListener("DOMContentLoaded", onLoaded); |
| 1078 document.addEventListener("keydown", onDocumentKeyDown); | 1105 document.addEventListener("keydown", onDocumentKeyDown); |
| 1079 | 1106 |
| 1080 </script> | 1107 </script> |
| 1081 </head> | 1108 </head> |
| 1082 <body class="fill"> | 1109 <body class="fill"> |
| 1083 <div class="controls-line"> | 1110 <div class="controls-line"> |
| 1084 <div class="message-box"><div id="paused-in-debugger"></div></div> | 1111 <div class="message-box"><div id="paused-in-debugger"></div></div> |
| 1085 <div class="button" id="resume-button" title="Resume script execution (F8)."
><div class="glyph"></div></div> | 1112 <div class="button" id="resume-button" title="Resume script execution (F8)."
><div class="glyph"></div></div> |
| 1086 <div class="button" id="step-over-button" title="Step over next function cal
l (F10)."><div class="glyph"></div></div> | 1113 <div class="button" id="step-over-button" title="Step over next function cal
l (F10)."><div class="glyph"></div></div> |
| 1087 </div> | 1114 </div> |
| 1088 </body> | 1115 </body> |
| 1089 <canvas id="canvas" class="fill"></canvas> | 1116 <canvas id="canvas" class="fill"></canvas> |
| 1090 <canvas id="labels-canvas" class="fill"></canvas> | 1117 <canvas id="labels-canvas" class="fill"></canvas> |
| 1091 <div id="element-title"> | 1118 <div id="element-title"> |
| 1092 <span id="tag-name"></span><span id="node-id"></span><span id="class-name"></s
pan> | 1119 <span id="tag-name"></span><span id="node-id"></span><span id="class-name"></s
pan> |
| 1093 <span id="node-width"></span><span class="px">px</span><span class="px"> ×
; </span><span id="node-height"></span><span class="px">px</span> | 1120 <span id="node-width"></span><span class="px">px</span><span class="px"> ×
; </span><span id="node-height"></span><span class="px">px</span> |
| 1094 </div> | 1121 </div> |
| 1095 <div id="tooltip-container" class="hidden"> | 1122 <div id="tooltip-container" class="hidden"> |
| 1096 <div id="element-tooltip"> | 1123 <div id="element-tooltip"> |
| 1097 <div id="element-description" class="monospace"><span id="material-tag-nam
e"></span><span id="material-node-id"></span><span id="material-class-name"></sp
an></div> | 1124 <div id="element-description" class="monospace"><span id="material-tag-nam
e"></span><span id="material-node-id"></span><span id="material-class-name"></sp
an></div> |
| 1098 <div id="dimensions"><span id="material-node-width"></span>×<span id=
"material-node-height"></span></div> | 1125 <div id="dimensions"><span id="material-node-width"></span>×<span id=
"material-node-height"></span></div> |
| 1099 </div> | 1126 </div> |
| 1100 <div id="element-tooltip-arrow"></div> | 1127 <div id="element-tooltip-arrow"></div> |
| 1101 <div id="editor" class="fill"></div> | 1128 <div id="editor" class="fill"></div> |
| 1102 <div id="log"></div> | 1129 <div id="log"></div> |
| 1103 </html> | 1130 </html> |
| OLD | NEW |