OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 * @param {symbol} eventType | 103 * @param {symbol} eventType |
104 * @param {function(!Common.Event)} listener | 104 * @param {function(!Common.Event)} listener |
105 * @param {!Object=} thisObject | 105 * @param {!Object=} thisObject |
106 * @return {!Common.EventTarget.EventDescriptor} | 106 * @return {!Common.EventTarget.EventDescriptor} |
107 */ | 107 */ |
108 addEventListener(eventType, listener, thisObject) { | 108 addEventListener(eventType, listener, thisObject) { |
109 return this._window.addEventListener(eventType, listener, thisObject); | 109 return this._window.addEventListener(eventType, listener, thisObject); |
110 } | 110 } |
111 | 111 |
112 /** | 112 /** |
| 113 * @param {?function(!Event):boolean} clickHandler |
| 114 */ |
| 115 setClickHandler(clickHandler) { |
| 116 this._window.setClickHandler(clickHandler); |
| 117 } |
| 118 |
| 119 /** |
113 * @param {number} zoomFactor | 120 * @param {number} zoomFactor |
114 * @param {number} referencePoint | 121 * @param {number} referencePoint |
115 */ | 122 */ |
116 zoom(zoomFactor, referencePoint) { | 123 zoom(zoomFactor, referencePoint) { |
117 this._window._zoom(zoomFactor, referencePoint); | 124 this._window._zoom(zoomFactor, referencePoint); |
118 } | 125 } |
119 | 126 |
120 /** | 127 /** |
121 * @param {boolean} enabled | 128 * @param {boolean} enabled |
122 */ | 129 */ |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 } | 185 } |
179 | 186 |
180 /** | 187 /** |
181 * @param {boolean} enabled | 188 * @param {boolean} enabled |
182 */ | 189 */ |
183 setEnabled(enabled) { | 190 setEnabled(enabled) { |
184 this._enabled = enabled; | 191 this._enabled = enabled; |
185 } | 192 } |
186 | 193 |
187 /** | 194 /** |
| 195 * @param {?function(!Event):boolean} clickHandler |
| 196 */ |
| 197 setClickHandler(clickHandler) { |
| 198 this._clickHandler = clickHandler; |
| 199 } |
| 200 |
| 201 /** |
188 * @param {!Event} event | 202 * @param {!Event} event |
189 */ | 203 */ |
190 _resizerElementStartDragging(event) { | 204 _resizerElementStartDragging(event) { |
191 if (!this._enabled) | 205 if (!this._enabled) |
192 return false; | 206 return false; |
193 this._resizerParentOffsetLeft = event.pageX - event.offsetX - event.target.o
ffsetLeft; | 207 this._resizerParentOffsetLeft = event.pageX - event.offsetX - event.target.o
ffsetLeft; |
194 event.stopPropagation(); | 208 event.stopPropagation(); |
195 return true; | 209 return true; |
196 } | 210 } |
197 | 211 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 } | 247 } |
234 | 248 |
235 /** | 249 /** |
236 * @param {!Event} event | 250 * @param {!Event} event |
237 */ | 251 */ |
238 _endWindowSelectorDragging(event) { | 252 _endWindowSelectorDragging(event) { |
239 var window = this._overviewWindowSelector._close(event.x - this._offsetLeft)
; | 253 var window = this._overviewWindowSelector._close(event.x - this._offsetLeft)
; |
240 delete this._overviewWindowSelector; | 254 delete this._overviewWindowSelector; |
241 var clickThreshold = 3; | 255 var clickThreshold = 3; |
242 if (window.end - window.start < clickThreshold) { | 256 if (window.end - window.start < clickThreshold) { |
243 if (this.dispatchEventToListeners(UI.OverviewGrid.Events.Click, event)) | 257 if (this._clickHandler && this._clickHandler.call(null, event)) |
244 return; | 258 return; |
245 var middle = window.end; | 259 var middle = window.end; |
246 window.start = Math.max(0, middle - UI.OverviewGrid.MinSelectableSize / 2)
; | 260 window.start = Math.max(0, middle - UI.OverviewGrid.MinSelectableSize / 2)
; |
247 window.end = Math.min(this._parentElement.clientWidth, middle + UI.Overvie
wGrid.MinSelectableSize / 2); | 261 window.end = Math.min(this._parentElement.clientWidth, middle + UI.Overvie
wGrid.MinSelectableSize / 2); |
248 } else if (window.end - window.start < UI.OverviewGrid.MinSelectableSize) { | 262 } else if (window.end - window.start < UI.OverviewGrid.MinSelectableSize) { |
249 if (this._parentElement.clientWidth - window.end > UI.OverviewGrid.MinSele
ctableSize) | 263 if (this._parentElement.clientWidth - window.end > UI.OverviewGrid.MinSele
ctableSize) |
250 window.end = window.start + UI.OverviewGrid.MinSelectableSize; | 264 window.end = window.start + UI.OverviewGrid.MinSelectableSize; |
251 else | 265 else |
252 window.start = window.end - UI.OverviewGrid.MinSelectableSize; | 266 window.start = window.end - UI.OverviewGrid.MinSelectableSize; |
253 } | 267 } |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 left = Number.constrain(left, 0, 1 - newWindowSize); | 412 left = Number.constrain(left, 0, 1 - newWindowSize); |
399 | 413 |
400 right = reference + (right - reference) * factor; | 414 right = reference + (right - reference) * factor; |
401 right = Number.constrain(right, newWindowSize, 1); | 415 right = Number.constrain(right, newWindowSize, 1); |
402 this._setWindow(left, right); | 416 this._setWindow(left, right); |
403 } | 417 } |
404 }; | 418 }; |
405 | 419 |
406 /** @enum {symbol} */ | 420 /** @enum {symbol} */ |
407 UI.OverviewGrid.Events = { | 421 UI.OverviewGrid.Events = { |
408 WindowChanged: Symbol('WindowChanged'), | 422 WindowChanged: Symbol('WindowChanged') |
409 Click: Symbol('Click') | |
410 }; | 423 }; |
411 | 424 |
412 /** | 425 /** |
413 * @unrestricted | 426 * @unrestricted |
414 */ | 427 */ |
415 UI.OverviewGrid.WindowSelector = class { | 428 UI.OverviewGrid.WindowSelector = class { |
416 constructor(parent, position) { | 429 constructor(parent, position) { |
417 this._startPosition = position; | 430 this._startPosition = position; |
418 this._width = parent.offsetWidth; | 431 this._width = parent.offsetWidth; |
419 this._windowSelector = createElement('div'); | 432 this._windowSelector = createElement('div'); |
(...skipping 14 matching lines...) Expand all Loading... |
434 position = Math.max(0, Math.min(position, this._width)); | 447 position = Math.max(0, Math.min(position, this._width)); |
435 if (position < this._startPosition) { | 448 if (position < this._startPosition) { |
436 this._windowSelector.style.left = position + 'px'; | 449 this._windowSelector.style.left = position + 'px'; |
437 this._windowSelector.style.right = this._width - this._startPosition + 'px
'; | 450 this._windowSelector.style.right = this._width - this._startPosition + 'px
'; |
438 } else { | 451 } else { |
439 this._windowSelector.style.left = this._startPosition + 'px'; | 452 this._windowSelector.style.left = this._startPosition + 'px'; |
440 this._windowSelector.style.right = this._width - position + 'px'; | 453 this._windowSelector.style.right = this._width - position + 'px'; |
441 } | 454 } |
442 } | 455 } |
443 }; | 456 }; |
OLD | NEW |