API Reference / @gtkx/runtime / withSignals
Function: withSignals()
withSignals<
T,TSignals>(base,signals):SignalBaseClass<InstanceType<T>,ConstructorParameters<T>,TSignals,Textends new (...args) =>unknown?false:true>
Defined in: packages/runtime/src/register-class.ts:490
Returns an unregistered subclass of base that declares signals, so a class extending it can emit, connect and listen to them on this inside its own body. registerClass installs these signals together with its signals option when it registers that class; a name declared in both is an error.
Type Parameters
T
T extends AnyClass
TSignals
TSignals extends Record<string, SignalSpec>
Parameters
base
T
The generated or registered class to extend.
signals
TSignals
Signal specs keyed by name, as in the signals option of registerClass.
Returns
SignalBaseClass<InstanceType<T>, ConstructorParameters<T>, TSignals, T extends new (...args) => unknown ? false : true>
A base class whose instances carry the declared signals in their type.
Example
class Counter extends withSignals(GObject.Object, { "cycle-completed": { paramTypes: [GObject.TYPE_INT] } }) {
tick(cycles: number): void {
this.emit("cycle-completed", cycles);
}
}
const RegisteredCounter = registerClass(Counter, { typeName: "ExampleCounter" });