]> git.proxmox.com Git - mirror_xterm.js.git/blobdiff - src/Interfaces.ts
Merge pull request #535 from Tyriar/534_phantomjs
[mirror_xterm.js.git] / src / Interfaces.ts
index 878092866261945a05fec50a5e28b479a91c6084..92094c9553a820042d8a16bb0d7d8e5292adab45 100644 (file)
@@ -18,10 +18,19 @@ export interface ITerminal {
   element: HTMLElement;
   rowContainer: HTMLElement;
   textarea: HTMLTextAreaElement;
+  ybase: number;
   ydisp: number;
-  lines: string[];
+  lines: ICircularList<string>;
   rows: number;
+  cols: number;
   browser: IBrowser;
+  writeBuffer: string[];
+  children: HTMLElement[];
+  cursorHidden: boolean;
+  cursorState: number;
+  x: number;
+  y: number;
+  defAttr: number;
 
   /**
    * Emit the 'data' event and populate the given data.
@@ -31,6 +40,28 @@ export interface ITerminal {
   on(event: string, callback: () => void);
   scrollDisp(disp: number, suppressScrollEvent: boolean);
   cancel(ev: Event, force?: boolean);
+  log(text: string): void;
+  emit(event: string, data: any);
+}
+
+export interface ICharMeasure {
+  width: number;
+  height: number;
+  measure(): void;
+}
+
+interface ICircularList<T> {
+  length: number;
+  maxLength: number;
+
+  forEach(callbackfn: (value: T, index: number, array: T[]) => void): void;
+  get(index: number): T;
+  set(index: number, value: T): void;
+  push(value: T): void;
+  pop(): T;
+  splice(start: number, deleteCount: number, ...items: T[]): void;
+  trimStart(count: number): void;
+  shiftElements(start: number, count: number, offset: number): void;
 }
 
 /**
@@ -79,6 +110,7 @@ export interface IInputHandler {
   /** CSI m */ charAttributes(params?: number[]): void;
   /** CSI n */ deviceStatus(params?: number[]): void;
   /** CSI p */ softReset(params?: number[]): void;
+  /** CSI q */ setCursorStyle(params?: number[]): void;
   /** CSI r */ setScrollRegion(params?: number[]): void;
   /** CSI s */ saveCursor(params?: number[]): void;
   /** CSI u */ restoreCursor(params?: number[]): void;