Preparing search index...

    Module LensStudio:DialogPlugin

    Module providing base classes for building dialog-style plugins in Lens Studio.

    // DialogPlugin is the base class for plugins that present modal or non-modal dialogs.
    //
    // Pattern:
    // 1. Extend DialogPlugin
    // 2. In descriptor(), set menuActionHierarchy for menu placement
    // 3. Override show(parent) — build UI inside a Dialog and return it
    // 4. Override deinit() — clean up resources

    export class DialogPluginExampleDialog extends DialogPlugin {
    connections: any[];
    static descriptor() {
    const d = new Descriptor();
    d.id = 'com.docs.DialogPluginExample';
    d.name = 'DialogPlugin Example';
    d.description = 'Demonstrates a minimal DialogPlugin';
    d.menuActionHierarchy = ['Window', 'Examples', 'DialogPlugin Example'];
    return d;
    }
    constructor(pluginSystem: Editor.PluginSystem, descriptor?: Descriptor) {
    super(pluginSystem, descriptor);
    this.connections = [];
    }
    show(parent: Widget): Dialog {
    const dialog = new Dialog(parent);
    const layout = new BoxLayout();
    layout.setDirection(Direction.TopToBottom);
    layout.spacing = 8;
    dialog.layout = layout;

    const label = new Label(dialog);
    label.text = 'This dialog was opened via the menu action.';
    label.wordWrap = true;
    layout.addWidget(label);

    const closeBtn = new PushButton(dialog);
    closeBtn.text = 'Close';
    this.connections.push(closeBtn.onClick.connect(() => dialog.accept()));
    layout.addWidget(closeBtn);

    return dialog;
    }
    deinit(): void {
    this.connections.forEach((c: any) => c?.disconnect());
    this.connections = [];
    }
    }

    Classes

    Descriptor
    DialogPlugin