From ee95729a32532e53113b7a9627eefff15bf05383 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 19 Apr 2018 12:30:49 +0200 Subject: [PATCH] grid - restore watermark and background color --- .../parts/editor2/media/nextEditorpart.css | 11 +++++ .../{nexteditor => editor2}/nextEditorPart.ts | 45 ++++++++++++++++--- .../workbench/electron-browser/workbench.ts | 2 +- 3 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 src/vs/workbench/browser/parts/editor2/media/nextEditorpart.css rename src/vs/workbench/browser/parts/{nexteditor => editor2}/nextEditorPart.ts (56%) diff --git a/src/vs/workbench/browser/parts/editor2/media/nextEditorpart.css b/src/vs/workbench/browser/parts/editor2/media/nextEditorpart.css new file mode 100644 index 00000000000..fbe14826de9 --- /dev/null +++ b/src/vs/workbench/browser/parts/editor2/media/nextEditorpart.css @@ -0,0 +1,11 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +/* Letter press styling for empty editor */ +.monaco-workbench > .part.editor.empty { + background-repeat: no-repeat; + background-position: 50% 50%; + background-size: 260px 260px; +} \ No newline at end of file diff --git a/src/vs/workbench/browser/parts/nexteditor/nextEditorPart.ts b/src/vs/workbench/browser/parts/editor2/nextEditorPart.ts similarity index 56% rename from src/vs/workbench/browser/parts/nexteditor/nextEditorPart.ts rename to src/vs/workbench/browser/parts/editor2/nextEditorPart.ts index 15bacf7b2e8..2a59fea3f90 100644 --- a/src/vs/workbench/browser/parts/nexteditor/nextEditorPart.ts +++ b/src/vs/workbench/browser/parts/editor2/nextEditorPart.ts @@ -5,13 +5,17 @@ 'use strict'; +import 'vs/css!./media/nextEditorpart'; import 'vs/workbench/browser/parts/editor/editor.contribution'; import { IThemeService } from 'vs/platform/theme/common/themeService'; import { Part } from 'vs/workbench/browser/part'; import { INextEditorGroupService } from 'vs/workbench/services/group/common/nextGroupService'; -import { Dimension, addClass } from 'vs/base/browser/dom'; +import { Dimension, addClass, createCSSRule } from 'vs/base/browser/dom'; import { Event, Emitter } from 'vs/base/common/event'; import { INextWorkbenchEditorService } from 'vs/workbench/services/editor/common/nextEditorService'; +import { IEnvironmentService } from 'vs/platform/environment/common/environment'; +import { join } from 'vs/base/common/paths'; +import { editorBackground } from 'vs/platform/theme/common/colorRegistry'; export class NextEditorPart extends Part implements INextWorkbenchEditorService, INextEditorGroupService { @@ -23,11 +27,44 @@ export class NextEditorPart extends Part implements INextWorkbenchEditorService, constructor( id: string, + @IEnvironmentService private environmentService: IEnvironmentService, @IThemeService themeService: IThemeService ) { super(id, { hasTitle: false }, themeService); this._onLayout = new Emitter(); + + this.initStyles(); + } + + private initStyles(): void { + + // Letterpress Background when Empty + createCSSRule('.vs .monaco-workbench > .part.editor.empty', `background-image: url('${join(this.environmentService.appRoot, 'resources/letterpress.svg')}')`); + createCSSRule('.vs-dark .monaco-workbench > .part.editor.empty', `background-image: url('${join(this.environmentService.appRoot, 'resources/letterpress-dark.svg')}')`); + createCSSRule('.hc-black .monaco-workbench > .part.editor.empty', `background-image: url('${join(this.environmentService.appRoot, 'resources/letterpress-hc.svg')}')`); + } + + protected updateStyles(): void { + super.updateStyles(); + + // Part container + const container = this.getContainer(); + container.style.backgroundColor = this.getColor(editorBackground); + + // TODO@next set editor group color depending on group size + + // Content area + // const content = this.getContentArea(); + + // const groupCount = this.stacks.groups.length; + // if (groupCount > 1) { + // addClass(content, 'multiple-groups'); + // } else { + // removeClass(content, 'multiple-groups'); + // } + + // content.style.backgroundColor = groupCount > 0 ? this.getColor(EDITOR_GROUP_BACKGROUND) : null; } public get onLayout(): Event { @@ -42,12 +79,6 @@ export class NextEditorPart extends Part implements INextWorkbenchEditorService, return contentArea; } - protected updateStyles(): void { - super.updateStyles(); - - // TODO@next update styles - } - public layout(dimension: Dimension): Dimension[] { const sizes = super.layout(dimension); diff --git a/src/vs/workbench/electron-browser/workbench.ts b/src/vs/workbench/electron-browser/workbench.ts index 7f4103e675b..dab8b8a3ac4 100644 --- a/src/vs/workbench/electron-browser/workbench.ts +++ b/src/vs/workbench/electron-browser/workbench.ts @@ -110,7 +110,7 @@ import { registerWindowDriver } from 'vs/platform/driver/electron-browser/driver import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences'; import { PreferencesService } from 'vs/workbench/services/preferences/browser/preferencesService'; import { INextEditorService } from 'vs/workbench/services/editor/common/nextEditorService'; -import { NextEditorPart } from 'vs/workbench/browser/parts/nexteditor/nextEditorPart'; +import { NextEditorPart } from 'vs/workbench/browser/parts/editor2/nextEditorPart'; import { INextEditorGroupService } from 'vs/workbench/services/group/common/nextGroupService'; export const EditorsVisibleContext = new RawContextKey('editorIsOpen', false); -- GitLab