export interface ITerminal {
element: HTMLElement;
rowContainer: HTMLElement;
+ selectionContainer: HTMLElement;
+ selectionManager: ISelectionManager;
+ charMeasure: ICharMeasure;
textarea: HTMLTextAreaElement;
- ybase: number;
- ydisp: number;
- lines: ICircularList<string>;
rows: number;
cols: number;
browser: IBrowser;
children: HTMLElement[];
cursorHidden: boolean;
cursorState: number;
- x: number;
- y: number;
defAttr: number;
+ scrollback: number;
+ buffer: any; // This should be a `Buffer` class, but it would result in circular dependency
+ viewport: any; // This should be a `Viewport` class, but it would result in circular dependency
/**
* Emit the 'data' event and populate the given data.
cancel(ev: Event, force?: boolean);
log(text: string): void;
emit(event: string, data: any);
+ reset(): void;
+ showCursor(): void;
+}
+
+export interface ISelectionManager {
+ selectionText: string;
+ selectionStart: [number, number];
+ selectionEnd: [number, number];
+
+ setSelection(row: number, col: number, length: number);
}
export interface ICharMeasure {