12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { bind } from 'min-dash';
- export default function MouseTracking(eventBus, canvas) {
- this._eventBus = eventBus;
- this._canvas = canvas;
- this._init();
- }
- MouseTracking.$inject = [
- 'eventBus',
- 'canvas'
- ];
- MouseTracking.prototype.getHoverContext = function() {
- var viewbox = this._canvas.viewbox();
- return {
- element: this._hoverElement,
- point: {
- x: viewbox.x + Math.round(this._mouseX / viewbox.scale),
- y: viewbox.y + Math.round(this._mouseY / viewbox.scale)
- }
- };
- };
- MouseTracking.prototype._init = function() {
- var eventBus = this._eventBus,
- canvas = this._canvas;
- var container = canvas.getContainer();
- this._setMousePosition = bind(this._setMousePosition, this);
- container.addEventListener('mousemove', this._setMousePosition);
- eventBus.on('diagram.destroy', function() {
- container.removeEventListener('mousemove', this._setMousePosition);
- }, this);
- eventBus.on('element.hover', this._setHoverElement, this);
- };
- MouseTracking.prototype._setHoverElement = function(event) {
- this._hoverElement = event.element;
- };
- MouseTracking.prototype._setMousePosition = function(event) {
- this._mouseX = event.layerX;
- this._mouseY = event.layerY;
- };
|