Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/base/browser/ui/iconLabel/simpleIconLabel.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { reset } from '../../dom.js';
7
import type { IManagedHover } from '../hover/hover.js';
8
import { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';
9
import { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';
10
import { renderLabelWithIcons } from './iconLabels.js';
11
import { IDisposable } from '../../../common/lifecycle.js';
12
13
export class SimpleIconLabel implements IDisposable {
14
15
private hover?: IManagedHover;
16
17
constructor(
18
private readonly _container: HTMLElement
19
) { }
20
21
set text(text: string) {
22
reset(this._container, ...renderLabelWithIcons(text ?? ''));
23
}
24
25
set title(title: string) {
26
if (!this.hover && title) {
27
this.hover = getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate('mouse'), this._container, title);
28
} else if (this.hover) {
29
this.hover.update(title);
30
}
31
}
32
33
dispose(): void {
34
this.hover?.dispose();
35
}
36
}
37
38