import { FrontendApplicationContribution, FrontendApplication, Widget, Message } from "@theia/core/lib/browser"; import { injectable, inject } from "inversify"; import { ArduinoToolbar } from "./arduino-toolbar"; import { TabBarToolbarRegistry } from "@theia/core/lib/browser/shell/tab-bar-toolbar"; import { CommandRegistry } from "@theia/core"; import { LabelParser } from "@theia/core/lib/browser/label-parser"; export class ArduinoToolbarContainer extends Widget { constructor(protected left: ArduinoToolbar, protected right: ArduinoToolbar) { super(); this.id = 'arduino-toolbar-container'; } onAfterAttach(msg: Message) { Widget.attach(this.left, this.node); Widget.attach(this.right, this.node); } } @injectable() export class ArduinoToolbarContribution implements FrontendApplicationContribution { protected arduinoToolbarContainer: ArduinoToolbarContainer; constructor( @inject(TabBarToolbarRegistry) protected tabBarToolBarRegistry: TabBarToolbarRegistry, @inject(CommandRegistry) protected commandRegistry: CommandRegistry, @inject(LabelParser) protected labelParser: LabelParser) { const leftToolbarWidget = new ArduinoToolbar(tabBarToolBarRegistry, commandRegistry, labelParser, 'left'); const rightToolbarWidget = new ArduinoToolbar(tabBarToolBarRegistry, commandRegistry, labelParser, 'right'); this.arduinoToolbarContainer = new ArduinoToolbarContainer(leftToolbarWidget, rightToolbarWidget); } onStart(app: FrontendApplication) { app.shell.addWidget(this.arduinoToolbarContainer, { area: 'top' }); } }