From 8119bb0a4ae942ff5eb8aa5ea9f37ae984358c44 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Fri, 26 Dec 2025 04:31:06 -0800 Subject: [PATCH] Simplify window interaction --- demo/client.ts | 17 ++++++----------- demo/components/window/vtWindow.ts | 10 ---------- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/demo/client.ts b/demo/client.ts index e1f3f065..8db3ec43 100644 --- a/demo/client.ts +++ b/demo/client.ts @@ -66,7 +66,6 @@ let controlBar: ControlBar; let addonsWindow: AddonsWindow; let gpuWindow: GpuWindow; let optionsWindow: OptionsWindow; -let vtWindow: VtWindow; const addons: AddonCollection = { attach: { name: 'attach', ctor: AttachAddon, canChange: false }, @@ -206,26 +205,22 @@ if (document.location.pathname === '/test') { const typedTerm = createTerminal(); controlBar = new ControlBar(document.getElementById('sidebar'), document.querySelector('.banner-tabs'), []); - addonsWindow = new AddonsWindow(typedTerm, addons); - controlBar.registerWindow(addonsWindow); + addonsWindow = controlBar.registerWindow(new AddonsWindow(typedTerm, addons)); actionElements = { findNext: addonsWindow.findNextInput, findPrevious: addonsWindow.findPreviousInput, findResults: addonsWindow.findResultsSpan }; - gpuWindow = new GpuWindow(typedTerm, addons); - controlBar.registerWindow(gpuWindow, { afterId: 'addons', hidden: true, smallTab: true }); - optionsWindow = new OptionsWindow(typedTerm, addons, { updateTerminalSize, updateTerminalContainerBackground }); + gpuWindow = controlBar.registerWindow(new GpuWindow(typedTerm, addons), { afterId: 'addons', hidden: true, smallTab: true }); const styleWindow = controlBar.registerWindow(new StyleWindow(typedTerm, addons)); - paddingElement = styleWindow.paddingElement; - controlBar.registerWindow(optionsWindow); + optionsWindow = controlBar.registerWindow(new OptionsWindow(typedTerm, addons, { updateTerminalSize, updateTerminalContainerBackground })); controlBar.registerWindow(new TestWindow(typedTerm, addons, { disposeRecreateButtonHandler, createNewWindowButtonHandler })); - vtWindow = new VtWindow(typedTerm, addons); - controlBar.registerWindow(vtWindow); - vtWindow.initTerminal(term); + controlBar.registerWindow(new VtWindow(typedTerm, addons)); controlBar.activateDefaultTab(); // TODO: Most of below should be encapsulated within windows + paddingElement = styleWindow.paddingElement; + controlBar.setTabVisible('gpu', true); gpuWindow.setTextureAtlas(addons.webgl.instance.textureAtlas); addons.webgl.instance.onChangeTextureAtlas(e => gpuWindow.setTextureAtlas(e)); diff --git a/demo/components/window/vtWindow.ts b/demo/components/window/vtWindow.ts index 787c4b86..b059a5cf 100644 --- a/demo/components/window/vtWindow.ts +++ b/demo/components/window/vtWindow.ts @@ -24,16 +24,6 @@ export class VtWindow extends BaseWindow implements IControlWindow { const vtContainer = document.createElement('div'); vtContainer.id = 'vt-container'; container.appendChild(vtContainer); - } - - public initTerminal(term: Terminal): void { - this._term = term; - this._addVtButtons(); - } - - private _addVtButtons(): void { - const vtContainer = this._container.querySelector('#vt-container'); - if (!vtContainer) return; const vtFragment = document.createDocumentFragment(); const buttonSpecs: { [key: string]: { label: string; description: string; paramCount?: number } } = {