nodeguy/src/lib/core/EventNodeWidget/index.ts

20 lines
595 B
TypeScript

import { NodeWidget } from "../../QtGui/QWidget";
import { EventEmitter } from "events";
export abstract class EventNodeWidget extends NodeWidget {
private emitter: EventEmitter;
constructor(native: any) {
super();
if (native.setupEventListeners) {
this.emitter = new EventEmitter();
native.setupEventListeners(this.emitter.emit.bind(this.emitter));
} else {
throw new Error("Event Listeners not implemented on native side");
}
}
setEventListener(eventType: string, callback: (payload?: any) => void) {
this.emitter.on(eventType, callback);
}
}