mirror of
https://github.com/coder/code-server.git
synced 2026-05-11 23:07:27 +02:00
Merge commit 'be3e8236086165e5e45a5a10783823874b3f3ebd' as 'lib/vscode'
This commit is contained in:
67
lib/vscode/src/vs/platform/menubar/common/menubar.ts
Normal file
67
lib/vscode/src/vs/platform/menubar/common/menubar.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* 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 IMenubarMenuUriItemAction {
|
||||
id: string;
|
||||
label: string;
|
||||
uri: URI;
|
||||
enabled?: boolean;
|
||||
}
|
||||
|
||||
export interface IMenubarMenuItemSubmenu {
|
||||
id: string;
|
||||
label: string;
|
||||
submenu: IMenubarMenu;
|
||||
}
|
||||
|
||||
export interface IMenubarMenuItemSeparator {
|
||||
id: 'vscode.menubar.separator';
|
||||
}
|
||||
|
||||
export type MenubarMenuItem = IMenubarMenuItemAction | IMenubarMenuItemSubmenu | IMenubarMenuItemSeparator | IMenubarMenuUriItemAction;
|
||||
|
||||
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 isMenubarMenuItemUriAction(menuItem: MenubarMenuItem): menuItem is IMenubarMenuUriItemAction {
|
||||
return (<IMenubarMenuUriItemAction>menuItem).uri !== undefined;
|
||||
}
|
||||
|
||||
export function isMenubarMenuItemAction(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemAction {
|
||||
return !isMenubarMenuItemSubmenu(menuItem) && !isMenubarMenuItemSeparator(menuItem) && !isMenubarMenuItemUriAction(menuItem);
|
||||
}
|
||||
Reference in New Issue
Block a user