Skip to content

Commit

Permalink
core: added appearance and editor layout sub-menus
Browse files Browse the repository at this point in the history
The commit adds the registration of an `appearance` and `editor layout` submenu to the
`view` main-menu.
Names have also been localized.
The `appearance` menu is used to group menu items related to the
appearance of the workbench or layout. The `editor layout` menu groups
items related to splitting the workbench. Commands present in vscode's
appearance and editor layout menu that exist in the framework were moved to these new
submenus.
  • Loading branch information
Archie27376 committed Oct 25, 2021
1 parent 0c23cc7 commit 03eaa69
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 14 deletions.
56 changes: 43 additions & 13 deletions packages/core/src/browser/common-frontend-contribution.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,19 @@ 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_EDITOR_SUBMENU = [...VIEW_APPEARANCE, '2_editor_submenu'];
export const VIEW_EDITOR_SUBMENU_SPLIT = [...VIEW_EDITOR_SUBMENU, '1_editor_submenu_split'];
export const VIEW_EDITOR_SUBMENU_ORTHO = [...VIEW_EDITOR_SUBMENU, '2_editor_submenu_ortho'];
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'];

Expand Down Expand Up @@ -231,6 +237,11 @@ export namespace CommonCommands {
category: VIEW_CATEGORY,
label: 'Toggle Maximized'
}, 'theia/core/common/toggleMaximized', VIEW_CATEGORY_KEY);
export const SHOW_MENU_BAR = Command.toLocalizedCommand({
id: 'window.menuBarVisibility',
category: VIEW_CATEGORY,
label: 'Show Menu Bar'
}, 'vscode/layoutActions/miShowMenuBar', VIEW_CATEGORY_KEY);
export const OPEN_VIEW = Command.toLocalizedCommand({
id: 'core.openView',
category: VIEW_CATEGORY,
Expand Down Expand Up @@ -285,7 +296,6 @@ export namespace CommonCommands {
id: 'workbench.action.configureLanguage',
label: 'Configure Display Language'
}, 'vscode/localizationsActions/configureLocale');

}

export const supportCut = browser.isNative || document.queryCommandSupported('cut');
Expand Down Expand Up @@ -532,18 +542,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',
label: 'Toggle Status Bar'
order: '2',
label: nls.localize('vscode/layoutActions/toggleStatusbar', '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, {
Expand Down Expand Up @@ -571,11 +581,16 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
label: CommonCommands.COLLAPSE_PANEL.label,
order: '4'
});
registry.registerMenuAction(SHELL_TABBAR_CONTEXT_MENU, {
registry.registerMenuAction(CommonMenus.VIEW_APPEARANCE_SUBMENU_SCREEN, {
commandId: CommonCommands.TOGGLE_MAXIMIZED.id,
label: CommonCommands.TOGGLE_MAXIMIZED.label,
order: '5'
});
registry.registerMenuAction(CommonMenus.VIEW_APPEARANCE_SUBMENU_BAR, {
commandId: CommonCommands.SHOW_MENU_BAR.id,
label: nls.localize('vscode/layoutActions/toggleMenuBar', 'Toggle Menu Bar'),
order: '0'
});
registry.registerMenuAction(CommonMenus.HELP, {
commandId: CommonCommands.ABOUT_COMMAND.id,
label: CommonCommands.ABOUT_COMMAND.label,
Expand All @@ -599,6 +614,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 {
Expand Down Expand Up @@ -788,6 +805,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),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,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 {
Expand Down Expand Up @@ -359,5 +359,10 @@ export class ElectronMenuContribution extends BrowserMenuBarContribution impleme
registry.registerMenuAction(ElectronMenus.FILE_CLOSE, {
commandId: ElectronCommands.CLOSE_WINDOW.id,
});
registry.registerMenuAction(CommonMenus.VIEW_APPEARANCE_SUBMENU_SCREEN, {
commandId: ElectronCommands.TOGGLE_FULL_SCREEN.id,
label: nls.localize('vscode/windowActions/miToggleFullScreen', 'Full Screen'),
order: '0'
});
}
}
37 changes: 37 additions & 0 deletions packages/editor/src/browser/editor-menu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,43 @@ export class EditorMenuContribution implements MenuContribution {
label: nls.localize('vscode/editor.contribution/closeEditor', 'Close Editor'),
order: '1'
});
registry.registerMenuAction(CommonMenus.VIEW_EDITOR_SUBMENU_SPLIT, {
commandId: EditorCommands.SPLIT_EDITOR_RIGHT.id,
label: nls.localize('vscode/editorActions/splitEditorGroupRight', 'Split Editor Right'),
order: '0'
});

registry.registerMenuAction(CommonMenus.VIEW_EDITOR_SUBMENU_SPLIT, {
commandId: EditorCommands.SPLIT_EDITOR_LEFT.id,
label: nls.localize('vscode/editorActions/splitEditorGroupLeft', 'Split Editor Left'),
order: '1'
});

registry.registerMenuAction(CommonMenus.VIEW_EDITOR_SUBMENU_SPLIT, {
commandId: EditorCommands.SPLIT_EDITOR_UP.id,
label: nls.localize('vscode/editorActions/splitEditorGroupUp', 'Split Editor Up'),
order: '2'
});

registry.registerMenuAction(CommonMenus.VIEW_EDITOR_SUBMENU_SPLIT, {
commandId: EditorCommands.SPLIT_EDITOR_DOWN.id,
label: nls.localize('vscode/editorActions/splitEditorGroupDown', 'Split Editor Down'),
order: '3'
});

registry.registerMenuAction(CommonMenus.VIEW_EDITOR_SUBMENU_ORTHO, {
commandId: EditorCommands.SPLIT_EDITOR_HORIZONTAL.id,
label: nls.localize('theia/editor/splitHorizontal', 'Split Editor Horizontal'),
order: '1'
});

registry.registerMenuAction(CommonMenus.VIEW_EDITOR_SUBMENU_ORTHO, {
commandId: EditorCommands.SPLIT_EDITOR_VERTICAL.id,
label: nls.localize('theia/editor/splitVertical', 'Split Editor Vertical'),
order: '2'
});

registry.registerSubmenu(CommonMenus.VIEW_EDITOR_SUBMENU, nls.localize('vscode/editor.contribution/miEditorLayout', 'Editor Layout'));
}

}

0 comments on commit 03eaa69

Please sign in to comment.