Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/platform/menubar/common/menubar.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { URI } from '../../../base/common/uri.js';
7
8
export interface ICommonMenubarService {
9
updateMenubar(windowId: number, menuData: IMenubarData): Promise<void>;
10
}
11
12
export interface IMenubarData {
13
menus: { [id: string]: IMenubarMenu };
14
keybindings: { [id: string]: IMenubarKeybinding };
15
}
16
17
export interface IMenubarMenu {
18
items: Array<MenubarMenuItem>;
19
}
20
21
export interface IMenubarKeybinding {
22
label: string;
23
userSettingsLabel?: string;
24
isNative?: boolean; // Assumed true if missing
25
}
26
27
export interface IMenubarMenuItemAction {
28
id: string;
29
label: string;
30
checked?: boolean; // Assumed false if missing
31
enabled?: boolean; // Assumed true if missing
32
}
33
34
export interface IMenubarMenuRecentItemAction {
35
id: string;
36
label: string;
37
uri: URI;
38
remoteAuthority?: string;
39
enabled?: boolean;
40
}
41
42
export interface IMenubarMenuItemSubmenu {
43
id: string;
44
label: string;
45
submenu: IMenubarMenu;
46
}
47
48
export interface IMenubarMenuItemSeparator {
49
id: 'vscode.menubar.separator';
50
}
51
52
export type MenubarMenuItem = IMenubarMenuItemAction | IMenubarMenuItemSubmenu | IMenubarMenuItemSeparator | IMenubarMenuRecentItemAction;
53
54
export function isMenubarMenuItemSubmenu(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemSubmenu {
55
return (<IMenubarMenuItemSubmenu>menuItem).submenu !== undefined;
56
}
57
58
export function isMenubarMenuItemSeparator(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemSeparator {
59
return (<IMenubarMenuItemSeparator>menuItem).id === 'vscode.menubar.separator';
60
}
61
62
export function isMenubarMenuItemRecentAction(menuItem: MenubarMenuItem): menuItem is IMenubarMenuRecentItemAction {
63
return (<IMenubarMenuRecentItemAction>menuItem).uri !== undefined;
64
}
65
66
export function isMenubarMenuItemAction(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemAction {
67
return !isMenubarMenuItemSubmenu(menuItem) && !isMenubarMenuItemSeparator(menuItem) && !isMenubarMenuItemRecentAction(menuItem);
68
}
69
70