Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/editor/common/config/editorZoom.ts
3295 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 { Emitter, Event } from '../../../base/common/event.js';
7
8
export interface IEditorZoom {
9
onDidChangeZoomLevel: Event<number>;
10
getZoomLevel(): number;
11
setZoomLevel(zoomLevel: number): void;
12
}
13
14
export const EditorZoom: IEditorZoom = new class implements IEditorZoom {
15
16
private _zoomLevel: number = 0;
17
18
private readonly _onDidChangeZoomLevel = new Emitter<number>();
19
public readonly onDidChangeZoomLevel: Event<number> = this._onDidChangeZoomLevel.event;
20
21
public getZoomLevel(): number {
22
return this._zoomLevel;
23
}
24
25
public setZoomLevel(zoomLevel: number): void {
26
zoomLevel = Math.min(Math.max(-5, zoomLevel), 20);
27
if (this._zoomLevel === zoomLevel) {
28
return;
29
}
30
31
this._zoomLevel = zoomLevel;
32
this._onDidChangeZoomLevel.fire(this._zoomLevel);
33
}
34
};
35
36