Browse Source

Add canvas:coords events

pull/5337/head
Artur Arseniev 3 years ago
parent
commit
f5c277c9f3
  1. 6
      src/canvas/model/Canvas.ts
  2. 9
      src/canvas/types.ts

6
src/canvas/model/Canvas.ts

@ -30,6 +30,7 @@ export default class Canvas extends ModuleModel<CanvasModule> {
super(module, { scripts, styles });
this.set('frames', new Frames(module));
this.on('change:zoom', this.onZoomChange);
this.on('change:x change:y', this.onCoordsChange);
this.listenTo(em, `change:device ${evDeviceUpdate}`, this.updateDevice);
this.listenTo(em, evPageSelect, this._pageUpdated);
}
@ -72,6 +73,11 @@ export default class Canvas extends ModuleModel<CanvasModule> {
em.trigger(module.events.zoom);
}
onCoordsChange() {
const { em, module } = this;
em.trigger(module.events.coords);
}
getPointerCoords(type: CoordinatesTypes = CoordinatesTypes.World): Coordinates {
const { pointer, pointerScreen } = this.attributes;
return type === CoordinatesTypes.World ? pointer : pointerScreen;

9
src/canvas/types.ts

@ -90,6 +90,15 @@ export enum CanvasEvents {
*/
viewportEnd = 'canvas:viewport:end',
/**
* @event `canvas:coords` Canvas coordinates updated.
* @example
* editor.on('canvas:coords', () => {
* console.log('Canvas coordinates updated:', editor.Canvas.getCoords());
* });
*/
coords = 'canvas:coords',
/**
* @event `canvas:zoom` Canvas zoom updated.
* @example

Loading…
Cancel
Save