| Index: Source/devtools/front_end/ui/UIUtils.js
|
| diff --git a/Source/devtools/front_end/ui/UIUtils.js b/Source/devtools/front_end/ui/UIUtils.js
|
| index 075fce202a68e7e6f34d276454d4a7338ee89ca8..57f0d156edeffa10a54af1dcad0f1ab71c6233e4 100644
|
| --- a/Source/devtools/front_end/ui/UIUtils.js
|
| +++ b/Source/devtools/front_end/ui/UIUtils.js
|
| @@ -979,6 +979,98 @@ WebInspector.animateFunction = function(func, params, frames, animationComplete)
|
| return cancelAnimation;
|
| }
|
|
|
| +/**
|
| + * @constructor
|
| + * @extends {WebInspector.Object}
|
| + * @param {!Element} element
|
| + */
|
| +WebInspector.LongClickController = function(element)
|
| +{
|
| + this._element = element;
|
| +}
|
| +
|
| +/**
|
| + * @enum {string}
|
| + */
|
| +WebInspector.LongClickController.Events = {
|
| + LongClick: "LongClick",
|
| + LongPress: "LongPress"
|
| +};
|
| +
|
| +WebInspector.LongClickController.prototype = {
|
| + reset: function()
|
| + {
|
| + if (this._longClickInterval) {
|
| + clearInterval(this._longClickInterval);
|
| + delete this._longClickInterval;
|
| + }
|
| + },
|
| +
|
| + enable: function()
|
| + {
|
| + if (this._longClickData)
|
| + return;
|
| + var boundMouseDown = mouseDown.bind(this);
|
| + var boundMouseUp = mouseUp.bind(this);
|
| + var boundReset = this.reset.bind(this);
|
| +
|
| + this._element.addEventListener("mousedown", boundMouseDown, false);
|
| + this._element.addEventListener("mouseout", boundReset, false);
|
| + this._element.addEventListener("mouseup", boundMouseUp, false);
|
| + this._element.addEventListener("click", boundReset, true);
|
| +
|
| + var longClicks = 0;
|
| +
|
| + this._longClickData = { mouseUp: boundMouseUp, mouseDown: boundMouseDown, reset: boundReset };
|
| +
|
| + /**
|
| + * @param {!Event} e
|
| + * @this {WebInspector.LongClickController}
|
| + */
|
| + function mouseDown(e)
|
| + {
|
| + if (e.which !== 1)
|
| + return;
|
| + longClicks = 0;
|
| + this._longClickInterval = setInterval(longClicked.bind(this, e), 200);
|
| + }
|
| +
|
| + /**
|
| + * @param {!Event} e
|
| + * @this {WebInspector.LongClickController}
|
| + */
|
| + function mouseUp(e)
|
| + {
|
| + if (e.which !== 1)
|
| + return;
|
| + this.reset();
|
| + }
|
| +
|
| + /**
|
| + * @param {!Event} e
|
| + * @this {WebInspector.LongClickController}
|
| + */
|
| + function longClicked(e)
|
| + {
|
| + ++longClicks;
|
| + this.dispatchEventToListeners(longClicks === 1 ? WebInspector.LongClickController.Events.LongClick : WebInspector.LongClickController.Events.LongPress, e);
|
| + }
|
| + },
|
| +
|
| + disable: function()
|
| + {
|
| + if (!this._longClickData)
|
| + return;
|
| + this._element.removeEventListener("mousedown", this._longClickData.mouseDown, false);
|
| + this._element.removeEventListener("mouseout", this._longClickData.reset, false);
|
| + this._element.removeEventListener("mouseup", this._longClickData.mouseUp, false);
|
| + this._element.addEventListener("click", this._longClickData.reset, true);
|
| + delete this._longClickData;
|
| + },
|
| +
|
| + __proto__: WebInspector.Object.prototype
|
| +}
|
| +
|
| ;(function() {
|
|
|
| function windowLoaded()
|
|
|