diff --git a/src/vs/workbench/browser/part.ts b/src/vs/workbench/browser/part.ts index f3c89df68fc9bb6addec2d2ca444a401f78ab2e4..73f7e68d58a0a7a30e2f6addae7da03f500ab393 100644 --- a/src/vs/workbench/browser/part.ts +++ b/src/vs/workbench/browser/part.ts @@ -40,6 +40,10 @@ export abstract class Part extends Component { } } + protected updateStyles(): void { + // Subclasses to override + } + /** * Note: Clients should not call this method, the workbench calls this * method. Calling it otherwise may result in unexpected behavior. @@ -52,6 +56,8 @@ export abstract class Part extends Component { this.contentArea = this.createContentArea(parent); this.partLayout = new PartLayout(this.parent, this.options, this.titleArea, this.contentArea); + + this.updateStyles(); } /** @@ -68,6 +74,13 @@ export abstract class Part extends Component { return null; } + /** + * Returns the title area container. + */ + protected getTitleArea(): Builder { + return this.titleArea; + } + /** * Subclasses override to provide a content area implementation. */ diff --git a/src/vs/workbench/browser/parts/editor/editorPart.ts b/src/vs/workbench/browser/parts/editor/editorPart.ts index 99a5657711326c23b2705ebf22550c399e5acffb..509d66edfeace57ff4b55205bf51b873ee51d790 100644 --- a/src/vs/workbench/browser/parts/editor/editorPart.ts +++ b/src/vs/workbench/browser/parts/editor/editorPart.ts @@ -901,8 +901,6 @@ export class EditorPart extends Part implements IEditorPart, IEditorGroupService .div() .addClass('content'); - this.updateStyles(); - // get settings this.memento = this.getMemento(this.storageService, MementoScope.WORKSPACE); diff --git a/src/vs/workbench/browser/parts/panel/media/panelpart.css b/src/vs/workbench/browser/parts/panel/media/panelpart.css index 5df1755a733d7cbc89d3fb04e37ccf7eb2c23ebe..e0fd512989e511804b7d4a1acdcae0546bab2017 100644 --- a/src/vs/workbench/browser/parts/panel/media/panelpart.css +++ b/src/vs/workbench/browser/parts/panel/media/panelpart.css @@ -93,16 +93,7 @@ background: url('close-inverse.svg') center center no-repeat; } -/** TODO@theme */ - -.vs .monaco-workbench > .part.panel .title, -.vs-dark .monaco-workbench > .part.panel .title { - border-top-color: rgba(128, 128, 128, 0.35); -} - -.hc-black .monaco-workbench > .part.panel .title { - border-top-color: #6FC3DF; -} +/** TODO@theme (widgets) */ .vs .monaco-workbench > .part.panel > .title > .panel-switcher-container > .monaco-action-bar .action-item .action-label { color: rgba(66, 66, 66, 0.75); diff --git a/src/vs/workbench/browser/parts/panel/panelPart.ts b/src/vs/workbench/browser/parts/panel/panelPart.ts index 2a62f7857cca8e4553f7de981b2da9f8e295b9cc..1e700343b9e7edee64e244b55679d005d2b7488d 100644 --- a/src/vs/workbench/browser/parts/panel/panelPart.ts +++ b/src/vs/workbench/browser/parts/panel/panelPart.ts @@ -25,7 +25,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { ActionsOrientation, ActionBar } from 'vs/base/browser/ui/actionbar/actionbar'; import { ClosePanelAction, PanelAction, ToggleMaximizedPanelAction } from 'vs/workbench/browser/parts/panel/panelActions'; import { IThemeService } from 'vs/platform/theme/common/themeService'; -import { PANEL_BACKGROUND } from 'vs/workbench/common/theme'; +import { PANEL_BACKGROUND, PANEL_BORDER_TOP_COLOR } from 'vs/workbench/common/theme'; export class PanelPart extends CompositePart implements IPanelService { @@ -95,16 +95,12 @@ export class PanelPart extends CompositePart implements IPanelService { return this._onDidCompositeClose.event; } - public createContentArea(parent: Builder): Builder { - const contentArea = super.createContentArea(parent); - this.updateStyles(); - - return contentArea; - } - protected updateStyles(): void { const container = this.getContainer(); container.style('background-color', this.getColor(PANEL_BACKGROUND)); + + const title = this.getTitleArea(); + title.style('border-top-color', this.getColor(PANEL_BORDER_TOP_COLOR)); } public openPanel(id: string, focus?: boolean): TPromise { diff --git a/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts b/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts index ebe7b2d44c852b0fe61bfe28c4e8a18a49ff17db..baa5c6c3122c195420b4392a026de081bd7d45f9 100644 --- a/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts +++ b/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts @@ -127,8 +127,6 @@ export class StatusbarPart extends Part implements IStatusbarService { return dispose; })); - this.updateStyles(); - return this.statusItemsContainer; } diff --git a/src/vs/workbench/common/theme.ts b/src/vs/workbench/common/theme.ts index a9bc928e9f7b5e98085e549717c8af126236f6c7..17a8d96c7c0eb887ad9e0d6b67831caf09c17539 100644 --- a/src/vs/workbench/common/theme.ts +++ b/src/vs/workbench/common/theme.ts @@ -31,6 +31,12 @@ export const PANEL_BACKGROUND = registerColor('panelBackground', { hc: editorBackground }, nls.localize('panelBackground', "Panel background color. Panels are shown below the editor area and contain views like output and integrated terminal.")); +export const PANEL_BORDER_TOP_COLOR = registerColor('panelBorderTopColor', { + dark: '#80808059', // rgba(128, 128, 128, 0.35) + light: '#80808059', // rgba(128, 128, 128, 0.35) + hc: '#6FC3DF' +}, nls.localize('panelBorderTopColor', "Panel border color on the top separating to the editor. Panels are shown below the editor area and contain views like output and integrated terminal.")); + // < --- Status --- >