From ed15ed69e6e99864484466606d1874f3b5050457 Mon Sep 17 00:00:00 2001 From: Dante-Di-Domenico Date: Wed, 29 Sep 2021 15:30:11 -0400 Subject: [PATCH] core: added `appearance` sub-menu The commit adds the registration of an `appearance` submenu to the `view` main-menu. The `appearance` menu is used to group menu items related to the appearance of the workbench or layout. Commands present in vscode's appearance menu that exist in the framework were moved to this new submenu. --- .../browser/common-frontend-contribution.ts | 53 ++++++++++++++----- .../menu/electron-menu-contribution.ts | 7 ++- 2 files changed, 46 insertions(+), 14 deletions(-) diff --git a/packages/core/src/browser/common-frontend-contribution.ts b/packages/core/src/browser/common-frontend-contribution.ts index caee45b7ee5e3..7989a2b042b0f 100644 --- a/packages/core/src/browser/common-frontend-contribution.ts +++ b/packages/core/src/browser/common-frontend-contribution.ts @@ -76,13 +76,16 @@ export namespace CommonMenus { export const VIEW = [...MAIN_MENU_BAR, '4_view']; export const VIEW_PRIMARY = [...VIEW, '0_primary']; - export const VIEW_VIEWS = [...VIEW, '1_views']; - export const VIEW_LAYOUT = [...VIEW, '2_layout']; - export const VIEW_TOGGLE = [...VIEW, '3_toggle']; + export const VIEW_APPEARANCE = [...VIEW, '1_appearance']; + export const VIEW_APPEARANCE_SUBMENU = [...VIEW_APPEARANCE, '1_appearance_submenu']; + export const VIEW_APPEARANCE_SUBMENU_SCREEN = [...VIEW_APPEARANCE_SUBMENU, '2_appearance_submenu_screen']; + export const VIEW_APPEARANCE_SUBMENU_BAR = [...VIEW_APPEARANCE_SUBMENU, '3_appearance_submenu_bar']; + export const VIEW_VIEWS = [...VIEW, '2_views']; + export const VIEW_LAYOUT = [...VIEW, '3_layout']; + export const VIEW_TOGGLE = [...VIEW, '4_toggle']; export const SETTINGS_OPEN = [...SETTINGS_MENU, '1_settings_open']; export const SETTINGS__THEME = [...SETTINGS_MENU, '2_settings_theme']; - // last menu item export const HELP = [...MAIN_MENU_BAR, '9_help']; @@ -227,6 +230,11 @@ export namespace CommonCommands { category: VIEW_CATEGORY, label: 'Toggle Maximized' }; + export const SHOW_MENU_BAR: Command = { + id: 'window.menuBarVisibility', + category: VIEW_CATEGORY, + label: 'Show Menu Bar' + }; export const OPEN_VIEW: Command = { id: 'core.openView', category: VIEW_CATEGORY, @@ -281,7 +289,6 @@ export namespace CommonCommands { id: 'workbench.action.configureLanguage', label: 'Configure Display Language' }, 'vscode/localizationsActions/configureLocale'); - } export const supportCut = browser.isNative || document.queryCommandSupported('cut'); @@ -528,18 +535,18 @@ export class CommonFrontendContribution implements FrontendApplicationContributi order: '3' }); - registry.registerMenuAction(CommonMenus.VIEW_LAYOUT, { + registry.registerMenuAction(CommonMenus.VIEW_APPEARANCE_SUBMENU_BAR, { commandId: CommonCommands.TOGGLE_BOTTOM_PANEL.id, - order: '0' + order: '1' }); - registry.registerMenuAction(CommonMenus.VIEW_LAYOUT, { + registry.registerMenuAction(CommonMenus.VIEW_APPEARANCE_SUBMENU_BAR, { commandId: CommonCommands.TOGGLE_STATUS_BAR.id, - order: '1', + order: '2', label: 'Toggle Status Bar' }); - registry.registerMenuAction(CommonMenus.VIEW_LAYOUT, { + registry.registerMenuAction(CommonMenus.VIEW_APPEARANCE_SUBMENU_BAR, { commandId: CommonCommands.COLLAPSE_ALL_PANELS.id, - order: '2' + order: '3' }); registry.registerMenuAction(SHELL_TABBAR_CONTEXT_MENU, { @@ -567,10 +574,15 @@ export class CommonFrontendContribution implements FrontendApplicationContributi label: 'Collapse', order: '4' }); - registry.registerMenuAction(SHELL_TABBAR_CONTEXT_MENU, { + registry.registerMenuAction(CommonMenus.VIEW_APPEARANCE_SUBMENU_SCREEN, { commandId: CommonCommands.TOGGLE_MAXIMIZED.id, label: 'Toggle Maximized', - order: '5' + order: '1' + }); + registry.registerMenuAction(CommonMenus.VIEW_APPEARANCE_SUBMENU_BAR, { + commandId: CommonCommands.SHOW_MENU_BAR.id, + label: 'Toggle Menu Bar', + order: '0' }); registry.registerMenuAction(CommonMenus.HELP, { commandId: CommonCommands.ABOUT_COMMAND.id, @@ -595,6 +607,8 @@ export class CommonFrontendContribution implements FrontendApplicationContributi registry.registerMenuAction(CommonMenus.SETTINGS__THEME, { commandId: CommonCommands.SELECT_ICON_THEME.id }); + + registry.registerSubmenu(CommonMenus.VIEW_APPEARANCE_SUBMENU, 'Appearance'); } registerCommands(commandRegistry: CommandRegistry): void { @@ -784,6 +798,19 @@ export class CommonFrontendContribution implements FrontendApplicationContributi commandRegistry.registerCommand(CommonCommands.TOGGLE_STATUS_BAR, { execute: () => this.preferenceService.updateValue('workbench.statusBar.visible', !this.preferences['workbench.statusBar.visible']) }); + commandRegistry.registerCommand(CommonCommands.SHOW_MENU_BAR, { + isEnabled: () => !isOSX, + isVisible: () => !isOSX, + execute: () => { + const menuBarVisibility = 'window.menuBarVisibility'; + const visibility = this.preferences[menuBarVisibility]; + if (visibility !== 'compact') { + this.preferenceService.updateValue(menuBarVisibility, 'compact'); + } else { + this.preferenceService.updateValue(menuBarVisibility, 'classic'); + } + } + }); commandRegistry.registerCommand(CommonCommands.TOGGLE_MAXIMIZED, { isEnabled: (event?: Event) => this.canToggleMaximized(event), isVisible: (event?: Event) => this.canToggleMaximized(event), diff --git a/packages/core/src/electron-browser/menu/electron-menu-contribution.ts b/packages/core/src/electron-browser/menu/electron-menu-contribution.ts index aaf1926e0c99a..f31593e7749ba 100644 --- a/packages/core/src/electron-browser/menu/electron-menu-contribution.ts +++ b/packages/core/src/electron-browser/menu/electron-menu-contribution.ts @@ -60,7 +60,7 @@ export namespace ElectronCommands { export namespace ElectronMenus { export const VIEW_WINDOW = [...CommonMenus.VIEW, 'window']; - export const VIEW_ZOOM = [...CommonMenus.VIEW, 'zoom']; + export const VIEW_ZOOM = [...CommonMenus.VIEW_APPEARANCE_SUBMENU, '4_appearance_submenu_zoom']; } export namespace ElectronMenus { @@ -269,5 +269,10 @@ export class ElectronMenuContribution implements FrontendApplicationContribution registry.registerMenuAction(ElectronMenus.FILE_CLOSE, { commandId: ElectronCommands.CLOSE_WINDOW.id, }); + registry.registerMenuAction(CommonMenus.VIEW_APPEARANCE_SUBMENU_SCREEN, { + commandId: ElectronCommands.TOGGLE_FULL_SCREEN.id, + label: 'Full Screen', + order: '0' + }); } }