| @@ -225,6 +225,8 @@ function CodesToEventName(codes, mouse){ | |||
| case 8000: | |||
| ename += ((ename !== "") ? "+" : "") + "mousemove"; | |||
| break; | |||
| case 8001: | |||
| ename += ((ename !== "") ? "+" : "") + "wheel"; | |||
| default: | |||
| ename += ((ename !== "") ? "+" : "") + "mousebtn" + codes[i].toString(); | |||
| } | |||
| @@ -267,6 +269,8 @@ function ReorderEventName(ename){ | |||
| } | |||
| } else if (key === "mousemove"){ | |||
| mcodes.push(8000); | |||
| } else if (key === "wheel"){ | |||
| mcodes.push(8001); | |||
| } | |||
| // Now handle keyboard event names. | |||
| @@ -475,6 +479,7 @@ export default class Input{ | |||
| x: pos.x, | |||
| y: pos.y, | |||
| button: this.__mouseLastButton, | |||
| delta: 0, | |||
| action: "mousemove" | |||
| }; | |||
| if (ename !== "" && ename !== "mousemove") | |||
| @@ -503,6 +508,7 @@ export default class Input{ | |||
| x: pos.x, | |||
| y: pos.y, | |||
| button: button, | |||
| delta: 0, | |||
| action: "mousedown" | |||
| }; | |||
| this.__mousePosition = pos; | |||
| @@ -540,6 +546,7 @@ export default class Input{ | |||
| x: pos.x, | |||
| y: pos.y, | |||
| button: button, | |||
| delta: 0, | |||
| action: "mouseup" | |||
| } | |||
| this.__emitter.emit("mouseup", data); | |||
| @@ -552,9 +559,25 @@ export default class Input{ | |||
| }).bind(this); | |||
| var handle_mousewheel = (function(e){ | |||
| if (this.__preventDefaults) | |||
| e.preventDefault(); | |||
| // TODO: Finish me! | |||
| var pos = mousePosition(e); | |||
| if (pos.inbounds === true){ | |||
| if (this.__preventDefaults) | |||
| e.preventDefault(); | |||
| var ename = MouseEventName("wheel"); | |||
| var data = { | |||
| source: this, | |||
| lastX: pos.lastX, | |||
| lastY: pos.lastY, | |||
| x: pos.x, | |||
| y: pos.y, | |||
| button: this.__mouseLastButton, | |||
| delta: Math.sign(e.deltaY), | |||
| action: "wheel" | |||
| }; | |||
| if (ename !== "wheel") | |||
| this.__emitter.emit(ename, data); | |||
| this.__emitter.emit("wheel", data); | |||
| } | |||
| }).bind(this); | |||
| // This event is purely for preventing Default behaviors on mouse events we're not using. | |||
| @@ -577,7 +600,8 @@ export default class Input{ | |||
| window.addEventListener("mousemove", handle_mousemove); | |||
| window.addEventListener("mousedown", handle_mousedown); | |||
| window.addEventListener("mouseup", handle_mouseup); | |||
| window.addEventListener("mousewheel", handle_mousewheel); | |||
| window.addEventListener("mousewheel", handle_mousewheel); // For older browsers? | |||
| window.addEventListener("wheel", handle_mousewheel); | |||
| window.addEventListener("click", handle_mouseprevdef); | |||
| window.addEventListener("dblclick", handle_mouseprevdef); | |||
| window.addEventListener("contextmenu", handle_mouseprevdef); | |||
| @@ -586,7 +610,8 @@ export default class Input{ | |||
| window.removeEventListener("mousemove", handle_mousemove); | |||
| window.removeEventListener("mousedown", handle_mousedown); | |||
| window.removeEventListener("mouseup", handle_mouseup); | |||
| window.removeEventListener("mousewheel", handle_mousewheel); | |||
| window.removeEventListener("mousewheel", handle_mousewheel); // For older browsers? | |||
| window.removeEventListener("wheel", handle_mousewheel); | |||
| window.removeEventListener("click", handle_mouseprevdef); | |||
| window.removeEventListener("dblclick", handle_mouseprevdef); | |||
| window.removeEventListener("contextmenu", handle_mouseprevdef); | |||
| @@ -679,7 +704,7 @@ export default class Input{ | |||
| } | |||
| listen(ename, func, owner=null, once=false){ | |||
| if ((["keyup", "keydown", "keypress", "mousemove", "mousedown", "mouseup", "mouseclick"]).indexOf(ename) >= 0){ | |||
| if ((["keyup", "keydown", "keypress", "mousemove", "mousedown", "mouseup", "mouseclick", "wheel"]).indexOf(ename) >= 0){ | |||
| this.__emitter.listen(ename, func, owner, once); | |||
| } else { | |||
| ename = ReorderEventName(ename); | |||
| @@ -692,7 +717,7 @@ export default class Input{ | |||
| } | |||
| unlisten(ename, func, owner=null){ | |||
| if ((["keyup", "keydown", "keypress", "mousemove", "mousedown", "mouseup", "mouseclick"]).indexOf(ename) >= 0){ | |||
| if ((["keyup", "keydown", "keypress", "mousemove", "mousedown", "mouseup", "mouseclick", "wheel"]).indexOf(ename) >= 0){ | |||
| this.__emitter.unlisten(ename, func, owner); | |||
| } else { | |||
| ename = ReorderEventName(ename); | |||