@@ -16,9 +16,12 @@ if ('WebAssembly' in window) {
1616import { Terminal , ITerminalOptions , type ITheme } from '@xterm/xterm' ;
1717import { AttachAddon } from '@xterm/addon-attach' ;
1818import { AddonImageWindow } from './components/window/addonImageWindow' ;
19+ import { AddonLigaturesWindow } from './components/window/addonLigaturesWindow' ;
20+ import { AddonProgressWindow } from './components/window/addonProgressWindow' ;
1921import { AddonSearchWindow } from './components/window/addonSearchWindow' ;
2022import { AddonSerializeWindow } from './components/window/addonSerializeWindow' ;
2123import { AddonWebFontsWindow } from './components/window/addonWebFontsWindow' ;
24+ import { AddonWebLinksWindow } from './components/window/addonWebLinksWindow' ;
2225import { AddonsWindow } from './components/window/addonsWindow' ;
2326import { CellInspectorWindow } from './components/window/cellInspectorWindow' ;
2427import { ControlBar } from './components/controlBar' ;
@@ -213,11 +216,14 @@ if (document.location.pathname === '/test') {
213216 controlBar . registerWindow ( new CellInspectorWindow ( typedTerm , addons ) ) ;
214217 controlBar . registerWindow ( new VtWindow ( typedTerm , addons ) ) ;
215218 addonsWindow = controlBar . registerWindow ( new AddonsWindow ( typedTerm , addons ) ) ;
216- addonSearchWindow = controlBar . registerWindow ( new AddonSearchWindow ( typedTerm , addons ) , { afterId : 'addons' , hidden : true , italics : true } ) ;
219+ controlBar . registerWindow ( new AddonImageWindow ( typedTerm , addons ) , { afterId : 'addons' , hidden : true , italics : true } ) ;
220+ controlBar . registerWindow ( new AddonLigaturesWindow ( typedTerm , addons ) , { afterId : 'addon-image' , hidden : true , italics : true } ) ;
221+ controlBar . registerWindow ( new AddonProgressWindow ( typedTerm , addons ) , { afterId : 'addon-ligatures' , hidden : true , italics : true } ) ;
222+ addonSearchWindow = controlBar . registerWindow ( new AddonSearchWindow ( typedTerm , addons ) , { afterId : 'addon-progress' , hidden : true , italics : true } ) ;
217223 controlBar . registerWindow ( new AddonSerializeWindow ( typedTerm , addons ) , { afterId : 'addon-search' , hidden : true , italics : true } ) ;
218- controlBar . registerWindow ( new AddonImageWindow ( typedTerm , addons ) , { afterId : 'addon-serialize' , hidden : true , italics : true } ) ;
219- controlBar . registerWindow ( new AddonWebFontsWindow ( typedTerm , addons ) , { afterId : 'addon-image ' , hidden : true , italics : true } ) ;
220- addonWebglWindow = controlBar . registerWindow ( new WebglWindow ( typedTerm , addons ) , { afterId : 'addon-web-fonts ' , hidden : true , italics : true } ) ;
224+ controlBar . registerWindow ( new AddonWebFontsWindow ( typedTerm , addons ) , { afterId : 'addon-serialize' , hidden : true , italics : true } ) ;
225+ controlBar . registerWindow ( new AddonWebLinksWindow ( typedTerm , addons ) , { afterId : 'addon-web-fonts ' , hidden : true , italics : true } ) ;
226+ addonWebglWindow = controlBar . registerWindow ( new WebglWindow ( typedTerm , addons ) , { afterId : 'addon-web-links ' , hidden : true , italics : true } ) ;
221227 controlBar . registerWindow ( new TestWindow ( typedTerm , addons , { disposeRecreateButtonHandler, createNewWindowButtonHandler } ) , { afterId : 'options' } ) ;
222228 actionElements = {
223229 findNext : addonSearchWindow . findNextInput ,
@@ -229,11 +235,14 @@ if (document.location.pathname === '/test') {
229235 // TODO: Most of below should be encapsulated within windows
230236 paddingElement = styleWindow . paddingElement ;
231237
232- controlBar . setTabVisible ( 'addon-webgl' , true ) ;
238+ controlBar . setTabVisible ( 'addon-image' , ! ! addons . image . instance ) ;
239+ controlBar . setTabVisible ( 'addon-ligatures' , ! ! addons . ligatures . instance ) ;
240+ controlBar . setTabVisible ( 'addon-progress' , ! ! addons . progress . instance ) ;
233241 controlBar . setTabVisible ( 'addon-search' , true ) ;
234242 controlBar . setTabVisible ( 'addon-serialize' , true ) ;
235- controlBar . setTabVisible ( 'addon-image' , true ) ;
236243 controlBar . setTabVisible ( 'addon-web-fonts' , true ) ;
244+ controlBar . setTabVisible ( 'addon-web-links' , ! ! addons . webLinks . instance ) ;
245+ controlBar . setTabVisible ( 'addon-webgl' , true ) ;
237246 addonWebglWindow . setTextureAtlas ( addons . webgl . instance ! . textureAtlas ! ) ;
238247 addons . webgl . instance ! . onChangeTextureAtlas ( e => addonWebglWindow . setTextureAtlas ( e ) ) ;
239248 addons . webgl . instance ! . onAddTextureAtlasCanvas ( e => addonWebglWindow . appendTextureAtlas ( e ) ) ;
@@ -500,6 +509,12 @@ function initAddons(term: Terminal): void {
500509 addons [ name ] . instance ! . onDidChangeResults ( e => updateFindResults ( e ) ) ;
501510 } else if ( name === 'serialize' ) {
502511 controlBar . setTabVisible ( 'addon-serialize' , true ) ;
512+ } else if ( name === 'ligatures' ) {
513+ controlBar . setTabVisible ( 'addon-ligatures' , true ) ;
514+ } else if ( name === 'progress' ) {
515+ controlBar . setTabVisible ( 'addon-progress' , true ) ;
516+ } else if ( name === 'webLinks' ) {
517+ controlBar . setTabVisible ( 'addon-web-links' , true ) ;
503518 }
504519 }
505520 catch {
@@ -516,6 +531,12 @@ function initAddons(term: Terminal): void {
516531 controlBar . setTabVisible ( 'addon-search' , false ) ;
517532 } else if ( name === 'serialize' ) {
518533 controlBar . setTabVisible ( 'addon-serialize' , false ) ;
534+ } else if ( name === 'ligatures' ) {
535+ controlBar . setTabVisible ( 'addon-ligatures' , false ) ;
536+ } else if ( name === 'progress' ) {
537+ controlBar . setTabVisible ( 'addon-progress' , false ) ;
538+ } else if ( name === 'webLinks' ) {
539+ controlBar . setTabVisible ( 'addon-web-links' , false ) ;
519540 }
520541 addon . instance ! . dispose ( ) ;
521542 addon . instance = undefined ;
0 commit comments