76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav GlassYUI.add('event-mousewheel', function(Y) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass/**
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * Adds mousewheel event support
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @module event
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @submodule event-mousewheel
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass */
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glassvar DOM_MOUSE_SCROLL = 'DOMMouseScroll',
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass fixArgs = function(args) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var a = Y.Array(args, 0, true), target;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if (Y.UA.gecko) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass a[0] = DOM_MOUSE_SCROLL;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass target = Y.config.win;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass } else {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass target = Y.config.doc;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if (a.length < 3) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass a[2] = target;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass } else {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass a.splice(2, 0, target);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass return a;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass };
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass/**
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * Mousewheel event. This listener is automatically attached to the
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * correct target, so one should not be supplied. Mouse wheel
66fb9cd912d23b294b8ed1016dfde1d09196d994Luke Smith * direction and velocity is stored in the 'wheelDelta' field.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @event mousewheel
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @param type {string} 'mousewheel'
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @param fn {function} the callback to execute
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @param context optional context object
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @param args 0..n additional arguments to provide to the listener.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @return {EventHandle} the detach handle
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @for YUI
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass */
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav GlassY.Env.evt.plugins.mousewheel = {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass on: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass return Y.Event._attach(fixArgs(arguments));
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass },
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass detach: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass return Y.Event.detach.apply(Y.Event, fixArgs(arguments));
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass};
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass}, '@VERSION@' ,{requires:['node-base']});