mirror of
https://github.com/coder/code-server.git
synced 2026-05-11 14:57:26 +02:00
69 lines
2.2 KiB
TypeScript
69 lines
2.2 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { URI } from 'vs/base/common/uri';
|
|
|
|
export interface ICommonMenubarService {
|
|
updateMenubar(windowId: number, menuData: IMenubarData): Promise<void>;
|
|
}
|
|
|
|
export interface IMenubarData {
|
|
menus: { [id: string]: IMenubarMenu };
|
|
keybindings: { [id: string]: IMenubarKeybinding };
|
|
}
|
|
|
|
export interface IMenubarMenu {
|
|
items: Array<MenubarMenuItem>;
|
|
}
|
|
|
|
export interface IMenubarKeybinding {
|
|
label: string;
|
|
userSettingsLabel?: string;
|
|
isNative?: boolean; // Assumed true if missing
|
|
}
|
|
|
|
export interface IMenubarMenuItemAction {
|
|
id: string;
|
|
label: string;
|
|
checked?: boolean; // Assumed false if missing
|
|
enabled?: boolean; // Assumed true if missing
|
|
}
|
|
|
|
export interface IMenubarMenuRecentItemAction {
|
|
id: string;
|
|
label: string;
|
|
uri: URI;
|
|
remoteAuthority?: string;
|
|
enabled?: boolean;
|
|
}
|
|
|
|
export interface IMenubarMenuItemSubmenu {
|
|
id: string;
|
|
label: string;
|
|
submenu: IMenubarMenu;
|
|
}
|
|
|
|
export interface IMenubarMenuItemSeparator {
|
|
id: 'vscode.menubar.separator';
|
|
}
|
|
|
|
export type MenubarMenuItem = IMenubarMenuItemAction | IMenubarMenuItemSubmenu | IMenubarMenuItemSeparator | IMenubarMenuRecentItemAction;
|
|
|
|
export function isMenubarMenuItemSubmenu(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemSubmenu {
|
|
return (<IMenubarMenuItemSubmenu>menuItem).submenu !== undefined;
|
|
}
|
|
|
|
export function isMenubarMenuItemSeparator(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemSeparator {
|
|
return (<IMenubarMenuItemSeparator>menuItem).id === 'vscode.menubar.separator';
|
|
}
|
|
|
|
export function isMenubarMenuItemRecentAction(menuItem: MenubarMenuItem): menuItem is IMenubarMenuRecentItemAction {
|
|
return (<IMenubarMenuRecentItemAction>menuItem).uri !== undefined;
|
|
}
|
|
|
|
export function isMenubarMenuItemAction(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemAction {
|
|
return !isMenubarMenuItemSubmenu(menuItem) && !isMenubarMenuItemSeparator(menuItem) && !isMenubarMenuItemRecentAction(menuItem);
|
|
}
|