| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- export default function Mouse(eventBus) {
- var self = this;
- this._lastMoveEvent = null;
- function setLastMoveEvent(mousemoveEvent) {
- self._lastMoveEvent = mousemoveEvent;
- }
- eventBus.on('canvas.init', function(context) {
- var svg = self._svg = context.svg;
- svg.addEventListener('mousemove', setLastMoveEvent);
- });
- eventBus.on('canvas.destroy', function() {
- self._lastMouseEvent = null;
- self._svg.removeEventListener('mousemove', setLastMoveEvent);
- });
- }
- Mouse.$inject = [ 'eventBus' ];
- Mouse.prototype.getLastMoveEvent = function() {
- return this._lastMoveEvent || createMoveEvent(0, 0);
- };
- // helpers //////////
- export function createMoveEvent(x, y) {
- var event = document.createEvent('MouseEvent');
- var screenX = x,
- screenY = y,
- clientX = x,
- clientY = y;
- if (event.initMouseEvent) {
- event.initMouseEvent(
- 'mousemove',
- true,
- true,
- window,
- 0,
- screenX,
- screenY,
- clientX,
- clientY,
- false,
- false,
- false,
- false,
- 0,
- null
- );
- }
- return event;
- }
|