23 lines
621 B
TypeScript
23 lines
621 B
TypeScript
import { NodeWidget } from "../../QtGui/QWidget";
|
|
import { EventEmitter } from "events";
|
|
|
|
export abstract class SignalNodeWidget extends NodeWidget {
|
|
private emitter: EventEmitter;
|
|
constructor(native: any) {
|
|
super();
|
|
if (native.setupSignalListeners) {
|
|
this.emitter = new EventEmitter();
|
|
native.setupSignalListeners(this.emitter.emit.bind(this.emitter));
|
|
} else {
|
|
throw new Error("Signal Listeners not implemented on native side");
|
|
}
|
|
}
|
|
|
|
setSignalListener = (
|
|
signalType: string,
|
|
callback: (payload?: any) => void
|
|
) => {
|
|
this.emitter.on(signalType, callback);
|
|
};
|
|
}
|