From fd9a90a8496e781724e596f33300974c2159c64c Mon Sep 17 00:00:00 2001 From: Erik Onarheim Date: Sun, 1 Dec 2019 11:43:03 -0600 Subject: [PATCH] [#1345] Fix typing on pointer event handlers --- src/engine/Input/Pointer.ts | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/src/engine/Input/Pointer.ts b/src/engine/Input/Pointer.ts index 930e92cd4..10c3a25ed 100644 --- a/src/engine/Input/Pointer.ts +++ b/src/engine/Input/Pointer.ts @@ -3,7 +3,7 @@ import { Vector } from '../Algebra'; import { Class } from '../Class'; import * as Actors from '../Util/Actors'; import { removeItemFromArray } from '../Util/Util'; -import { PointerEvent } from './PointerEvents'; +import { PointerEvent, PointerMoveEvent, PointerDownEvent, PointerUpEvent } from './PointerEvents'; export interface ActorsUnderPointer { [ActorId: number]: Actor; @@ -107,6 +107,27 @@ export class Pointer extends Class { this.on('up', this._onPointerUp); } + on(event: 'move', handler: (event: PointerMoveEvent) => void): void; + on(event: 'down', handler: (event: PointerDownEvent) => void): void; + on(event: 'up', handler: (event: PointerUpEvent) => void): void; + on(event: string, handler: (event: any) => void): void { + super.on(event, handler); + } + + once(event: 'move', handler: (event: PointerMoveEvent) => void): void; + once(event: 'down', handler: (event: PointerDownEvent) => void): void; + once(event: 'up', handler: (event: PointerUpEvent) => void): void; + once(event: string, handler: (event: any) => void): void { + super.once(event, handler); + } + + off(event: 'move', handler?: (event: PointerMoveEvent) => void): void; + off(event: 'down', handler?: (event: PointerDownEvent) => void): void; + off(event: 'up', handler?: (event: PointerUpEvent) => void): void; + off(event: string, handler?: (event: any) => void): void { + super.off(event, handler); + } + /** * Update the state of current pointer, meant to be called a the end of frame */ @@ -203,20 +224,20 @@ export class Pointer extends Class { return this._actorsUnderPointer.hasOwnProperty(actor.id.toString()); } - private _onPointerMove(ev: PointerEvent): void { + private _onPointerMove(ev: PointerMoveEvent): void { this.lastPagePos = new Vector(ev.pagePos.x, ev.pagePos.y); this.lastScreenPos = new Vector(ev.screenPos.x, ev.screenPos.y); this.lastWorldPos = new Vector(ev.worldPos.x, ev.worldPos.y); } - private _onPointerDown(ev: PointerEvent): void { + private _onPointerDown(ev: PointerDownEvent): void { this.lastPagePos = new Vector(ev.pagePos.x, ev.pagePos.y); this.lastScreenPos = new Vector(ev.screenPos.x, ev.screenPos.y); this.lastWorldPos = new Vector(ev.worldPos.x, ev.worldPos.y); this._isDown = true; } - private _onPointerUp(): void { + private _onPointerUp(_ev: PointerUpEvent): void { this._isDown = false; this.dragTarget = null; }