提交 406bf941 编写于 作者: I isidor

zenMode configuraitons

上级 7b9d1c6a
......@@ -10,7 +10,7 @@ import { KeyCode, KeyMod, KeyChord } from 'vs/base/common/keyCodes';
import { Registry } from 'vs/platform/platform';
import { SyncActionDescriptor } from 'vs/platform/actions/common/actions';
import { IWorkbenchActionRegistry, Extensions } from 'vs/workbench/common/actionRegistry';
import { IPartService, IZenModeOptions } from 'vs/workbench/services/part/common/partService';
import { IPartService } from 'vs/workbench/services/part/common/partService';
class ToggleZenMode extends Action {
......@@ -26,8 +26,8 @@ class ToggleZenMode extends Action {
this.enabled = !!this.partService;
}
public run(options: IZenModeOptions): TPromise<any> {
this.partService.toggleZenMode(options);
public run(): TPromise<any> {
this.partService.toggleZenMode();
return TPromise.as(null);
}
}
......
......@@ -248,4 +248,29 @@ configurationRegistry.registerConfiguration({
'title': nls.localize('windowConfigurationTitle', "Window"),
'type': 'object',
'properties': properties
});
\ No newline at end of file
});
// Configuration: Zen Mode
configurationRegistry.registerConfiguration({
'id': 'zenMode',
'order': 9,
'title': nls.localize('zenModeConfigurationTitle', "Zen Mode"),
'type': 'object',
'properties': {
'zenMode.fullScreen': {
'type': 'boolean',
'default': true,
'description': nls.localize('zenMode.fullScreen', "Controls if turning on Zen Mode also puts the workbench into full screen mode.")
},
'zenMode.hideTabs': {
'type': 'boolean',
'default': true,
'description': nls.localize('zenMode.hideTabs', "Controls if turning on Zen Mode also hides workbench tabs.")
},
'zenMode.hideStatusBar': {
'type': 'boolean',
'default': true,
'description': nls.localize('zenMode.hideStatusBar', "Controls if turning on Zen Mode also hides the status bar at the bottom of the workbench.")
}
}
});
......@@ -41,7 +41,7 @@ import { QuickOpenController } from 'vs/workbench/browser/parts/quickopen/quickO
import { getServices } from 'vs/platform/instantiation/common/extensions';
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
import { WorkbenchEditorService } from 'vs/workbench/services/editor/browser/editorService';
import { Position, Parts, IPartService, ILayoutOptions, IZenModeOptions } from 'vs/workbench/services/part/common/partService';
import { Position, Parts, IPartService, ILayoutOptions } from 'vs/workbench/services/part/common/partService';
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
import { ContextMenuService } from 'vs/workbench/services/contextview/electron-browser/contextmenuService';
......@@ -97,6 +97,12 @@ interface WorkbenchParams {
serviceCollection: ServiceCollection;
}
interface IZenModeSettings {
fullScreen: boolean;
hideTabs: boolean;
hideStatusBar: boolean;
}
export interface IWorkbenchStartedInfo {
customKeybindingsCount: number;
restoreViewletDuration: number;
......@@ -1049,26 +1055,24 @@ export class Workbench implements IPartService {
return Identifiers.WORKBENCH_CONTAINER;
}
public toggleZenMode(options?: IZenModeOptions): void {
options = options || {};
public toggleZenMode(): void {
this.zenMode.active = !this.zenMode.active;
// Check if zen mode transitioned to full screen and if now we are out of zen mode -> we need to go out of full screen
let toggleFullScreen = false;
if (this.zenMode.active) {
toggleFullScreen = !browser.isFullscreen() && !options.noFullScreen;
const config = this.configurationService.getConfiguration<IZenModeSettings>('zenMode');
toggleFullScreen = !browser.isFullscreen() && config.fullScreen;
this.zenMode.transitionedToFullScreen = toggleFullScreen;
this.zenMode.wasSideBarVisible = this.isVisible(Parts.SIDEBAR_PART);
this.zenMode.wasPanelVisible = this.isVisible(Parts.PANEL_PART);
this.setPanelHidden(true, true);
this.setSideBarHidden(true, true);
if (!options.keepStatusBar) {
this.setActivityBarHidden(true, true);
if (config.hideStatusBar) {
this.setStatusBarHidden(true, true);
}
if (!options.keepActivityBar) {
this.setActivityBarHidden(true, true);
}
if (!options.keepTabs) {
if (config.hideTabs) {
this.editorPart.hideTabs(true);
}
} else {
......
......@@ -27,13 +27,6 @@ export interface ILayoutOptions {
toggleMaximizedPanel?: boolean;
}
export interface IZenModeOptions {
noFullScreen?: boolean;
keepStatusBar?: boolean;
keepTabs?: boolean;
keepActivityBar?: boolean;
}
export const IPartService = createDecorator<IPartService>('partService');
export interface IPartService {
......@@ -123,5 +116,5 @@ export interface IPartService {
/**
* Toggles the workbench in and out of zen mode - parts get hidden and window goes fullscreen.
*/
toggleZenMode(options?: IZenModeOptions): void;
toggleZenMode(): void;
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册