提交 7a8ad748 编写于 作者: B Benjamin Pasero

labels - adopt SingleResourceLabel for no tabs title

上级 41347912
......@@ -29,6 +29,9 @@ export interface IResourceLabelHandle extends IDisposable {
readonly element: HTMLElement;
setLabel(label: IResourceLabel, options?: IResourceLabelOptions): void;
clear(): void;
onClick(callback: (event: MouseEvent) => void): IDisposable;
}
export class ResourceLabels extends Disposable {
......@@ -40,9 +43,8 @@ export class ResourceLabels extends Disposable {
@IExtensionService private extensionService: IExtensionService,
@IConfigurationService private configurationService: IConfigurationService,
@IModelService private modelService: IModelService,
@IDecorationsService protected decorationsService: IDecorationsService,
@IThemeService private themeService: IThemeService,
@ILabelService protected labelService: ILabelService
@IDecorationsService private decorationsService: IDecorationsService,
@IThemeService private themeService: IThemeService
) {
super();
......@@ -86,6 +88,8 @@ export class ResourceLabels extends Disposable {
const label: IResourceLabelHandle = {
element: widget.element,
setLabel: (label: IResourceLabel, options?: IResourceLabelOptions) => widget.setLabel(label, options),
clear: () => widget.clear(),
onClick: (callback: (event: MouseEvent) => void) => widget.onClick(callback),
dispose: () => this.disposeWidget(widget)
};
......@@ -118,6 +122,31 @@ export class ResourceLabels extends Disposable {
}
}
export class SingleResourceLabel extends ResourceLabels {
private _label: IResourceLabelHandle;
constructor(
container: HTMLElement,
options: IIconLabelCreationOptions,
@IInstantiationService instantiationService: IInstantiationService,
@IExtensionService extensionService: IExtensionService,
@IConfigurationService configurationService: IConfigurationService,
@IModelService modelService: IModelService,
@IDecorationsService decorationsService: IDecorationsService,
@IThemeService themeService: IThemeService,
@ILabelService labelService: ILabelService
) {
super(instantiationService, extensionService, configurationService, modelService, decorationsService, themeService);
this._label = this._register(this.create(container, options));
}
get element(): IResourceLabelHandle {
return this._label;
}
}
class ResourceLabelWidget extends IconLabel {
private _onDidRender = this._register(new Emitter<void>());
......
......@@ -6,7 +6,7 @@
import 'vs/css!./media/notabstitlecontrol';
import { toResource, Verbosity, IEditorInput } from 'vs/workbench/common/editor';
import { TitleControl, IToolbarActions } from 'vs/workbench/browser/parts/editor/titleControl';
import { ResourceLabel } from 'vs/workbench/browser/labels';
import { SingleResourceLabel, IResourceLabelHandle } from 'vs/workbench/browser/labels';
import { TAB_ACTIVE_FOREGROUND, TAB_UNFOCUSED_ACTIVE_FOREGROUND } from 'vs/workbench/common/theme';
import { EventType as TouchEventType, GestureEvent, Gesture } from 'vs/base/browser/touch';
import { addDisposableListener, EventType, addClass, EventHelper, removeClass, toggleClass } from 'vs/base/browser/dom';
......@@ -22,7 +22,7 @@ interface IRenderedEditorLabel {
export class NoTabsTitleControl extends TitleControl {
private titleContainer: HTMLElement;
private editorLabel: ResourceLabel;
private editorLabel: IResourceLabelHandle;
private activeLabel: IRenderedEditorLabel = Object.create(null);
protected create(parent: HTMLElement): void {
......@@ -40,7 +40,7 @@ export class NoTabsTitleControl extends TitleControl {
this.titleContainer.appendChild(labelContainer);
// Editor Label
this.editorLabel = this._register(this.instantiationService.createInstance(ResourceLabel, labelContainer, void 0));
this.editorLabel = this._register(this.instantiationService.createInstance(SingleResourceLabel, labelContainer, void 0)).element;
this._register(this.editorLabel.onClick(e => this.onTitleLabelClick(e)));
// Breadcrumbs
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册