Host-rendered prefabs (SDK 1.0)
Discover et.prefabs.v1 (UI capability) and et.surface.v1 for the host Canvas
surface renderer. C uses the node types in ui.h; C++ authors use
PanelBuilder::prefab(type, nodeId, targetId, parentId). Configure ordinary UI
properties; no Qt type, controller pointer or authored QML crosses the boundary.
| Node | Configuration / host behavior |
|---|---|
| FIELD_EDITOR | target is numeric field ID; resolved bounds, digits, units and enum options; Enter commits, Escape reverts; read-only and capability guards |
| CALIBRATION_TABLE | target is real table ID; existing heatmap, selection, keyboard/clipboard, axis operations, trace and undo/redo |
| CURVE_EDITOR | target is real curve ID; existing numeric grid, graph and grouped drag undo |
| TABLE_SURFACE | target is table ID; host isometric surface, rotation/zoom and data refresh |
| CHANNEL_PICKER | options are bounded newline metadata labels; value is selected label; TWO_WAY enables multiple selections; search and optional persistence |
| LIVE_PANEL | target is a channel ID; host snapshot quality/timestamp/units and bounded 512-point history; STEP configures 1..30 display Hz; empty target uses plugin DATA and VALUE |
| DATALOG_PANEL | host open-log picker, ranges, channel selection, cursors and graph; requires datalog.read; recording controls are hidden |
| ANALYSIS_PANEL | VALUE summary, DATA tabular preview, MINIMUM progress percent; emits analyze/cancel/apply COMMIT strings; TWO_WAY enables Apply only with host Apply permission |
Calibration targets are resolved by the host. Invalid IDs show an unavailable state. Editors are per-instance and retain the established ET controls, colormaps, clipboard parsing and keyboard behavior. Host capability/session/ownership guards run before writes, including keyboard and clipboard actions. Undo/redo from a prefab is rejected when an external edit has intervened. Prefab controllers are not exposed to workers. All panel restoration rules in UI.md apply; restoration never replays actions or calibration writes.
An empty calibration target selects an independent plugin dataset. DATA is initial row-major TSV; COLUMNS is width, VALUE is the edited TSV. Set PERSIST to retain VALUE with the panel. Dataset Enter/Escape, clipboard, undo/redo and finite range validation remain local to the panel; COMMIT notifies the plugin. These values never implicitly become a tune proposal. Graph datasets use sequential point indices; host calibration IDs expose the complete INI axis semantics.
Prefab field/table/curve edits are explicit user edits through native controllers; programmatic multi-field transactions use TUNE.md. A worker cannot obtain extra rights by enabling a button. Plugin panels use the current theme and scale, and inherit workspace/floating/modal ownership and crash recovery.