← all demos

Extending

Controls the toolkit doesn't ship. createRow hands you a row and a controller, bind registers an effect the row owns, and onDestroy registers the cleanup — which is all a custom control needs to behave like a built-in one, down to lining up in the same column via .gui-control.

State

Log

Try: drag the Heading dial, or tab to it and use the arrows, then press Destroy the graph — its frame loop stops with it, because it was registered through onDestroy. Custom rows join randomizeAll() and honour disabled like anything else.