Tool event listener API
This page demonstrates best-practice event subscriptions for integrating the toolkit into larger apps (e.g. custom topbars, side panels, and state stores).
Two event surfaces:
- Project hooks (recommended): subscribe with
tk.on(name, fn)/tk.off(name, fn). This is equivalent totk.paperScope.project.on/off, but avoids exposing Paper.js internals in your app code. - Toolkit hooks (optional): subscribe with
tk.addHandler(name, fn)/tk.removeHandler(name, fn). Enable emission vianew AnnotationToolkit(viewer, { events: { toolkit: true } }).
Tip: always unsubscribe on teardown/unmount to prevent listener buildup.