OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. | 3 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. |
4 * Copyright (C) 2007 Matt Lilek (pewtermoose@gmail.com). | 4 * Copyright (C) 2007 Matt Lilek (pewtermoose@gmail.com). |
5 * Copyright (C) 2009 Joseph Pecoraro | 5 * Copyright (C) 2009 Joseph Pecoraro |
6 * | 6 * |
7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
9 * are met: | 9 * are met: |
10 * | 10 * |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 var elementDragEnd = WebInspector._elementEndDraggingEventListener; | 190 var elementDragEnd = WebInspector._elementEndDraggingEventListener; |
191 | 191 |
192 WebInspector._cancelDragEvents(/** @type {!MouseEvent} */ (event)); | 192 WebInspector._cancelDragEvents(/** @type {!MouseEvent} */ (event)); |
193 | 193 |
194 event.preventDefault(); | 194 event.preventDefault(); |
195 if (elementDragEnd) | 195 if (elementDragEnd) |
196 elementDragEnd(/** @type {!MouseEvent} */ (event)); | 196 elementDragEnd(/** @type {!MouseEvent} */ (event)); |
197 } | 197 } |
198 | 198 |
199 /** | 199 /** |
200 * @param {!Element} element | |
201 * @param {function(number, number, !MouseEvent): boolean} elementDragStart | |
202 * @param {function(number, number)} elementDrag | |
203 * @param {function(number, number)} elementDragEnd | |
204 * @param {string} cursor | |
205 * @param {?string=} hoverCursor | |
206 * @param {number=} startDelay | |
207 * @param {number=} friction | |
208 */ | |
209 WebInspector.installInertialDragHandle = function(element, elementDragStart, ele
mentDrag, elementDragEnd, cursor, hoverCursor, startDelay, friction) | |
210 { | |
211 WebInspector.installDragHandle(element, drag.bind(null, elementDragStart), d
rag.bind(null, elementDrag), dragEnd, cursor, hoverCursor, startDelay); | |
212 if (typeof friction !== "number") | |
213 friction = 50; | |
214 var lastX; | |
215 var lastY; | |
216 var lastTime; | |
217 var velocityX; | |
218 var velocityY; | |
219 var holding = false; | |
220 | |
221 /** | |
222 * @param {function(number, number, !MouseEvent): boolean} callback | |
223 * @param {!MouseEvent} event | |
224 * @return {boolean} | |
225 */ | |
226 function drag(callback, event) | |
227 { | |
228 lastTime = window.performance.now(); | |
229 lastX = event.pageX; | |
230 lastY = event.pageY; | |
231 holding = true; | |
232 return callback(lastX, lastY, event); | |
233 } | |
234 | |
235 /** | |
236 * @param {!MouseEvent} event | |
237 */ | |
238 function dragEnd(event) | |
239 { | |
240 var now = window.performance.now(); | |
241 var maxVelocity = 4; // 4px per millisecond. | |
242 var duration = now - lastTime || 1; | |
243 velocityX = Number.constrain((event.pageX - lastX) / duration, -maxVeloc
ity, maxVelocity); | |
244 velocityY = Number.constrain((event.pageY - lastY) / duration, -maxVeloc
ity, maxVelocity); | |
245 lastX = event.pageX; | |
246 lastY = event.pageY; | |
247 lastTime = now; | |
248 holding = false; | |
249 elementDrag(lastX, lastY); | |
250 element.window().requestAnimationFrame(animationStep); | |
251 } | |
252 | |
253 function animationStep() | |
254 { | |
255 var v2 = velocityX * velocityX + velocityY * velocityY; | |
256 if (v2 < 0.001 || holding) { | |
257 elementDragEnd(lastX, lastY); | |
258 return; | |
259 } | |
260 var now = window.performance.now(); | |
261 var duration = now - lastTime || 1; | |
262 element.window().requestAnimationFrame(animationStep); | |
263 lastTime = now; | |
264 lastX += velocityX * duration; | |
265 lastY += velocityY * duration; | |
266 var k = Math.pow(1 / (1 + friction), duration / 1000); | |
267 velocityX *= k; | |
268 velocityY *= k; | |
269 elementDrag(lastX, lastY); | |
270 } | |
271 } | |
272 | |
273 /** | |
274 * @constructor | 200 * @constructor |
275 * @param {!Document} document | 201 * @param {!Document} document |
276 * @param {boolean=} dimmed | 202 * @param {boolean=} dimmed |
277 */ | 203 */ |
278 WebInspector.GlassPane = function(document, dimmed) | 204 WebInspector.GlassPane = function(document, dimmed) |
279 { | 205 { |
280 this.element = createElement("div"); | 206 this.element = createElement("div"); |
281 var background = dimmed ? "rgba(255, 255, 255, 0.5)" : "transparent"; | 207 var background = dimmed ? "rgba(255, 255, 255, 0.5)" : "transparent"; |
282 this._zIndex = WebInspector._glassPane ? WebInspector._glassPane._zIndex + 1
000 : 3000; // Deliberately starts with 3000 to hide other z-indexed elements be
low. | 208 this._zIndex = WebInspector._glassPane ? WebInspector._glassPane._zIndex + 1
000 : 3000; // Deliberately starts with 3000 to hide other z-indexed elements be
low. |
283 this.element.style.cssText = "position:absolute;top:0;bottom:0;left:0;right:
0;background-color:" + background + ";z-index:" + this._zIndex + ";overflow:hidd
en;"; | 209 this.element.style.cssText = "position:absolute;top:0;bottom:0;left:0;right:
0;background-color:" + background + ";z-index:" + this._zIndex + ";overflow:hidd
en;"; |
(...skipping 1705 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1989 * @param {string} title | 1915 * @param {string} title |
1990 * @return {!Element} | 1916 * @return {!Element} |
1991 */ | 1917 */ |
1992 WebInspector.linkifyDocumentationURLAsNode = function(article, title) | 1918 WebInspector.linkifyDocumentationURLAsNode = function(article, title) |
1993 { | 1919 { |
1994 return WebInspector.linkifyURLAsNode("https://developers.google.com/web/tool
s/chrome-devtools/" + article, title, undefined, true); | 1920 return WebInspector.linkifyURLAsNode("https://developers.google.com/web/tool
s/chrome-devtools/" + article, title, undefined, true); |
1995 } | 1921 } |
1996 | 1922 |
1997 /** @type {!WebInspector.ThemeSupport} */ | 1923 /** @type {!WebInspector.ThemeSupport} */ |
1998 WebInspector.themeSupport; | 1924 WebInspector.themeSupport; |
OLD | NEW |