Path: blob/main/src/vs/platform/menubar/electron-main/menubarMainService.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { createDecorator, IInstantiationService } from '../../instantiation/common/instantiation.js';6import { ILifecycleMainService, LifecycleMainPhase } from '../../lifecycle/electron-main/lifecycleMainService.js';7import { ILogService } from '../../log/common/log.js';8import { ICommonMenubarService, IMenubarData } from '../common/menubar.js';9import { Menubar } from './menubar.js';10import { Disposable } from '../../../base/common/lifecycle.js';1112export const IMenubarMainService = createDecorator<IMenubarMainService>('menubarMainService');1314export interface IMenubarMainService extends ICommonMenubarService {15readonly _serviceBrand: undefined;16}1718export class MenubarMainService extends Disposable implements IMenubarMainService {1920declare readonly _serviceBrand: undefined;2122private readonly menubar: Promise<Menubar>;2324constructor(25@IInstantiationService private readonly instantiationService: IInstantiationService,26@ILifecycleMainService private readonly lifecycleMainService: ILifecycleMainService,27@ILogService private readonly logService: ILogService28) {29super();3031this.menubar = this.installMenuBarAfterWindowOpen();32}3334private async installMenuBarAfterWindowOpen(): Promise<Menubar> {35await this.lifecycleMainService.when(LifecycleMainPhase.AfterWindowOpen);3637return this._register(this.instantiationService.createInstance(Menubar));38}3940async updateMenubar(windowId: number, menus: IMenubarData): Promise<void> {41this.logService.trace('menubarService#updateMenubar', windowId);4243const menubar = await this.menubar;44menubar.updateMenu(menus, windowId);45}46}474849