Path: blob/main/src/vs/platform/menubar/common/menubar.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 { URI } from '../../../base/common/uri.js';67export interface ICommonMenubarService {8updateMenubar(windowId: number, menuData: IMenubarData): Promise<void>;9}1011export interface IMenubarData {12menus: { [id: string]: IMenubarMenu };13keybindings: { [id: string]: IMenubarKeybinding };14}1516export interface IMenubarMenu {17items: Array<MenubarMenuItem>;18}1920export interface IMenubarKeybinding {21label: string;22userSettingsLabel?: string;23isNative?: boolean; // Assumed true if missing24}2526export interface IMenubarMenuItemAction {27id: string;28label: string;29checked?: boolean; // Assumed false if missing30enabled?: boolean; // Assumed true if missing31}3233export interface IMenubarMenuRecentItemAction {34id: string;35label: string;36uri: URI;37remoteAuthority?: string;38enabled?: boolean;39}4041export interface IMenubarMenuItemSubmenu {42id: string;43label: string;44submenu: IMenubarMenu;45}4647export interface IMenubarMenuItemSeparator {48id: 'vscode.menubar.separator';49}5051export type MenubarMenuItem = IMenubarMenuItemAction | IMenubarMenuItemSubmenu | IMenubarMenuItemSeparator | IMenubarMenuRecentItemAction;5253export function isMenubarMenuItemSubmenu(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemSubmenu {54return (<IMenubarMenuItemSubmenu>menuItem).submenu !== undefined;55}5657export function isMenubarMenuItemSeparator(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemSeparator {58return (<IMenubarMenuItemSeparator>menuItem).id === 'vscode.menubar.separator';59}6061export function isMenubarMenuItemRecentAction(menuItem: MenubarMenuItem): menuItem is IMenubarMenuRecentItemAction {62return (<IMenubarMenuRecentItemAction>menuItem).uri !== undefined;63}6465export function isMenubarMenuItemAction(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemAction {66return !isMenubarMenuItemSubmenu(menuItem) && !isMenubarMenuItemSeparator(menuItem) && !isMenubarMenuItemRecentAction(menuItem);67}686970