37 lines
883 B
TypeScript
37 lines
883 B
TypeScript
/**
|
|
* Copyright (c) 2018 The xterm.js authors. All rights reserved.
|
|
* @license MIT
|
|
*/
|
|
|
|
import { EventEmitter, IEvent } from 'common/EventEmitter';
|
|
import { Disposable } from 'common/Lifecycle';
|
|
import { IMarker } from 'common/Types';
|
|
|
|
export class Marker extends Disposable implements IMarker {
|
|
private static _nextId = 1;
|
|
|
|
private _id: number = Marker._nextId++;
|
|
public isDisposed: boolean = false;
|
|
|
|
public get id(): number { return this._id; }
|
|
|
|
private _onDispose = new EventEmitter<void>();
|
|
public get onDispose(): IEvent<void> { return this._onDispose.event; }
|
|
|
|
constructor(
|
|
public line: number
|
|
) {
|
|
super();
|
|
}
|
|
|
|
public dispose(): void {
|
|
if (this.isDisposed) {
|
|
return;
|
|
}
|
|
this.isDisposed = true;
|
|
this.line = -1;
|
|
// Emit before super.dispose such that dispose listeners get a change to react
|
|
this._onDispose.fire();
|
|
}
|
|
}
|