Docs Core

OpMenuRegistry

OP Create dialog surface registry: search words, row decorations, right-click items, filter stages. The raw master, promoted to /sys.

◈ Core

OpMenu Registry

The raw registry that manages TouchDesigner's OP Create dialog (/ui/dialogs/menu_op) as a single surface. Several tools want to decorate that one dialog at once, and without somewhere to arbitrate they would overwrite each other's changes; the registry is that somewhere. Remove the tools and the dialog goes back to stock.

It ships as its own core package, always installed, promoted to /sys with the global shortcut op.FNS_OPMENUREGISTRY.

The user-facing mods that ride on it are documented under OpMenuMods.

What tools contribute

Six kinds of contribution, and the code for every one of them lives in the publishing tool, in a callbacks DAT that tool owns. The registry only holds a reference, so it never names a tool and a tool's menu behaviour travels inside its own .tox:

  • Search words: extra words that match an operator type, so music finds Audio File In. See Custom Search Keywords.
  • Node-table decorations: relabel a row, such as the >>> that OpTemplates puts beside every type you have a template for.
  • Right-click menu items: entries appended after TD's own three, such as OpTemplates' Edit Templates....
  • Filter-chain nodes: Script DATs spliced into the node table's filter chain to filter or rewrite the operator list itself. Greg Hermanovic's IO filters are the worked example.
  • Panel injection: Panel COMPs wired into the dialog at a named anchor.
  • Alternatives: a tool, or a library of chains, that stands in for a stock operator type. Create that type with the alternatives shortcut held (Ctrl+Alt by default, the Alternatives Shortcut on the registry's Alternatives page) and every alternative any installed tool declared is offered; one is placed in the fresh operator's place with its wiring restored, several open a picker. A tool that is downloaded to your store and not in the project is offered too, below a divider, and placed from disk. OpTemplates is the first contributor; >>> marks a type with an alternative in the project, >> one whose only alternatives are in the store.

Get it

Tick it on the install page and it installs with the rest of your setup and stays up to date.

Download FNS_OpMenuRegistry.tox Version 3.2.6, the tool on its own. It works in any project, and this copy never updates itself.

Parameters

Registration

ControlType / defaultWhat it does
Widget COMPComp operator.. Panel COMP published as the toolbar widget. Defaults to the parent component.
Canonical NameCanonicalname textempty Unique name for this widget in the global toolbar registry.
Callback DATCallback operatorempty Optional DAT with toolbar callbacks for this widget.
Create CallbacksCreatecallbacks button Spawn an 'opmenu_callbacks' DAT into this tool from the registry's template and wire this host's Callback parameter to it. Safe to pulse again: an existing DAT is adopted, never overwritten.
PanelPanel operatorempty A Panel COMP to inject into /ui/dialogs/menu_op. The zero-code way to contribute a panel, with no callbacks DAT needed. Combined with anything onPanels() returns, not overridden by it.
Panel AnchorPanelanchor textsearchpanel Name of a panel inside /ui/dialogs/menu_op whose output the injected panel's input is wired to. Without it the panel drops out of the dialog's layout flow. Default: searchpanel.
Auto-registerAutoregister on / offoff When on, keep this widget published into the global toolbar registry while this component exists.
RegisterRegister button Publish once into the global toolbar registry, even if Auto-register is off.
UnregisterUnregister button Take this tool's contribution back out of the registry and turn Autoregister off, so it stays out. Register puts it back.
Registration StatusRegstatusread-only textempty Read-only status of this host registration.
Contribution OrderMenuorder number-1 Preferred order among registered widgets, managed by the global registry. -1 = no preference (append at the end).
DisplayedDisplayed on / offon Default visibility of the widget in the toolbar (managed by the global registry).
Help URLHelpurl textempty The tool's wiki/help page opened from the Configurator (right-click the Name cell). Leave empty to auto-discover from a docsHelper COMP (its Url par) inside the registered panel or its parent.
Promote ParametersPromotepars on / offon When on, the host mirrors its key Registration parameters onto the parent tool as a bound 'Registry' page. Turn off before shipping a tool that should not expose registry controls.
Pre-Save HealPresaveheal on / offon Before each project save, re-check this registry: update entries whose component moved, drop entries whose component is gone, and republish a host that initialised before the global registry existed. Off skips the sweep for this registry only.

Alternatives

ControlType / defaultWhat it does
Alternatives ShortcutShortcutalternatives textalt ctrl Modifier keys to hold while creating an operator to be offered the alternatives registered for its type (space-separated: alt, ctrl, shift, cmd). Without the keys the operator is created as normal. Applies on the /sys global; the master holds the value the global is promoted with.

What it adds to a registered tool

Every tool that registers gets these on its own Registry page.

ControlType / defaultWhat it does
Create CallbacksCreatecallbacks button Spawn an 'opmenu_callbacks' DAT into this tool from the registry's template and wire this host's Callback parameter to it. Safe to pulse again: an existing DAT is adopted, never overwritten.
Auto-registerAutoregister on / offoff When on, keep this widget published into the global toolbar registry while this component exists.
RegisterRegister button Publish once into the global toolbar registry, even if Auto-register is off.
UnregisterUnregister button Take this tool's contribution back out of the registry and turn Autoregister off, so it stays out. Register puts it back.
Registration StatusRegstatusread-only textempty Read-only status of this host registration.
Contribution OrderMenuorder number-1 Preferred order among registered widgets, managed by the global registry. -1 = no preference (append at the end).
DisplayedDisplayed on / offon Default visibility of the widget in the toolbar (managed by the global registry).

Edit this page on GitHub →