ultrawidify/src/ext/lib/kbm/PlayerMouseHandler.ts

87 lines
1.8 KiB
TypeScript
Raw Normal View History

2022-09-28 01:18:58 +02:00
import EventBus, { EventBusCommand } from '../EventBus';
import Logger from '../Logger';
import Settings from '../Settings';
import { SiteSettings } from '../settings/SiteSettings';
2022-11-20 14:46:01 +01:00
import KbmBase from './KbmBase';
2022-09-28 01:18:58 +02:00
if(process.env.CHANNEL !== 'stable'){
console.info("Loading PlayerMouseHandler");
}
/**
* Handles keypress
*/
2022-11-20 14:46:01 +01:00
export class MouseHandler extends KbmBase {
listenFor: string[] = ['mousemove'];
2022-11-20 14:46:01 +01:00
2022-09-28 01:18:58 +02:00
playerElement: HTMLElement;
eventBusCommands: { [x: string]: EventBusCommand } = {
'kbm-enable': {
function: () => this.enable()
},
'kbm-disable': {
function: () => this.disable()
},
'kbm-set-config': {
function: (data: {config: any, temporary?: boolean}) => this.setConfig(data.config, data.temporary),
},
'uw-enable': {
function: () => this.load()
},
'uw-disable': {
function: () => this.disable()
},
}
//#region lifecycle
constructor(playerElement: HTMLElement, eventBus: EventBus, siteSettings: SiteSettings, settings: Settings, logger: Logger) {
super(eventBus, siteSettings, settings, logger);
2022-11-20 14:46:01 +01:00
2022-09-28 01:18:58 +02:00
this.logger = logger;
this.settings = settings;
this.siteSettings = siteSettings;
2022-09-28 01:18:58 +02:00
this.eventBus = eventBus;
this.playerElement = playerElement;
this.init();
2022-11-20 14:46:01 +01:00
2022-09-28 01:18:58 +02:00
}
init() {
this.logger.log('info', 'debug', '[MouseHandler::init] starting init');
}
load() {
// todo: process whether mouse movement should be enabled or disabled
2022-09-28 01:18:58 +02:00
this.addListener();
}
destroy() {
this.removeListener();
}
//#endregion
//#region listener setup, teardown, handling
handleEvent(event: MouseEvent) {
switch (event.type) {
case 'mousemove':
this.handleMouseMove(event)
}
}
//#endregion
enable() {
this.load();
}
disable() {
this.removeListener();
}
private handleMouseMove(event: MouseEvent) {
}
}