client/player/development-bundle/ui/jquery.ui.mouse.js
author hurons
Wed, 09 Jun 2010 16:48:35 +0200
changeset 1 436d4791d7ac
permissions -rw-r--r--
premier version du player test de commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     1
/*!
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     2
 * jQuery UI Mouse 1.8.1
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     3
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     4
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     5
 * Dual licensed under the MIT (MIT-LICENSE.txt)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     6
 * and GPL (GPL-LICENSE.txt) licenses.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     7
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     8
 * http://docs.jquery.com/UI/Mouse
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     9
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    10
 * Depends:
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    11
 *	jquery.ui.widget.js
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    12
 */
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    13
(function($) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    14
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    15
$.widget("ui.mouse", {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    16
	options: {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    17
		cancel: ':input,option',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    18
		distance: 1,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    19
		delay: 0
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    20
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    21
	_mouseInit: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    22
		var self = this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    23
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    24
		this.element
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    25
			.bind('mousedown.'+this.widgetName, function(event) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    26
				return self._mouseDown(event);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    27
			})
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    28
			.bind('click.'+this.widgetName, function(event) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    29
				if(self._preventClickEvent) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    30
					self._preventClickEvent = false;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    31
					event.stopImmediatePropagation();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    32
					return false;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    33
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    34
			});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    35
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    36
		this.started = false;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    37
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    38
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    39
	// TODO: make sure destroying one instance of mouse doesn't mess with
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    40
	// other instances of mouse
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    41
	_mouseDestroy: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    42
		this.element.unbind('.'+this.widgetName);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    43
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    44
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    45
	_mouseDown: function(event) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    46
		// don't let more than one widget handle mouseStart
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    47
		// TODO: figure out why we have to use originalEvent
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    48
		event.originalEvent = event.originalEvent || {};
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    49
		if (event.originalEvent.mouseHandled) { return; }
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    50
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    51
		// we may have missed mouseup (out of window)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    52
		(this._mouseStarted && this._mouseUp(event));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    53
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    54
		this._mouseDownEvent = event;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    55
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    56
		var self = this,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    57
			btnIsLeft = (event.which == 1),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    58
			elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    59
		if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    60
			return true;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    61
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    62
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    63
		this.mouseDelayMet = !this.options.delay;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    64
		if (!this.mouseDelayMet) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    65
			this._mouseDelayTimer = setTimeout(function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    66
				self.mouseDelayMet = true;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    67
			}, this.options.delay);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    68
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    69
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    70
		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    71
			this._mouseStarted = (this._mouseStart(event) !== false);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    72
			if (!this._mouseStarted) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    73
				event.preventDefault();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    74
				return true;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    75
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    76
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    77
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    78
		// these delegates are required to keep context
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    79
		this._mouseMoveDelegate = function(event) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    80
			return self._mouseMove(event);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    81
		};
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    82
		this._mouseUpDelegate = function(event) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    83
			return self._mouseUp(event);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    84
		};
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    85
		$(document)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    86
			.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    87
			.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    88
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    89
		// preventDefault() is used to prevent the selection of text here -
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    90
		// however, in Safari, this causes select boxes not to be selectable
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    91
		// anymore, so this fix is needed
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    92
		($.browser.safari || event.preventDefault());
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    93
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    94
		event.originalEvent.mouseHandled = true;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    95
		return true;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    96
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    97
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    98
	_mouseMove: function(event) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    99
		// IE mouseup check - mouseup happened when mouse was out of window
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   100
		if ($.browser.msie && !event.button) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   101
			return this._mouseUp(event);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   102
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   103
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   104
		if (this._mouseStarted) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   105
			this._mouseDrag(event);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   106
			return event.preventDefault();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   107
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   108
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   109
		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   110
			this._mouseStarted =
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   111
				(this._mouseStart(this._mouseDownEvent, event) !== false);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   112
			(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   113
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   114
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   115
		return !this._mouseStarted;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   116
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   117
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   118
	_mouseUp: function(event) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   119
		$(document)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   120
			.unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   121
			.unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   122
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   123
		if (this._mouseStarted) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   124
			this._mouseStarted = false;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   125
			this._preventClickEvent = (event.target == this._mouseDownEvent.target);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   126
			this._mouseStop(event);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   127
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   128
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   129
		return false;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   130
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   131
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   132
	_mouseDistanceMet: function(event) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   133
		return (Math.max(
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   134
				Math.abs(this._mouseDownEvent.pageX - event.pageX),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   135
				Math.abs(this._mouseDownEvent.pageY - event.pageY)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   136
			) >= this.options.distance
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   137
		);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   138
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   139
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   140
	_mouseDelayMet: function(event) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   141
		return this.mouseDelayMet;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   142
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   143
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   144
	// These are placeholder methods, to be overriden by extending plugin
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   145
	_mouseStart: function(event) {},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   146
	_mouseDrag: function(event) {},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   147
	_mouseStop: function(event) {},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   148
	_mouseCapture: function(event) { return true; }
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   149
});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   150
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   151
})(jQuery);