]> git.proxmox.com Git - mirror_xterm.js.git/blame - src/Interfaces.ts
Merge pull request #535 from Tyriar/534_phantomjs
[mirror_xterm.js.git] / src / Interfaces.ts
CommitLineData
e0d98711 1/**
1d300911 2 * @license MIT
e0d98711
DI
3 */
4
824a9c6d
PK
5export interface IBrowser {
6 isNode: boolean;
7 userAgent: string;
8 platform: string;
9 isFirefox: boolean;
10 isMSIE: boolean;
11 isMac: boolean;
12 isIpad: boolean;
13 isIphone: boolean;
14 isMSWindows: boolean;
15}
16
e0d98711 17export interface ITerminal {
30fcdd6c 18 element: HTMLElement;
e0d98711 19 rowContainer: HTMLElement;
824a9c6d 20 textarea: HTMLTextAreaElement;
92068f36 21 ybase: number;
e0d98711 22 ydisp: number;
92068f36 23 lines: ICircularList<string>;
e0d98711 24 rows: number;
92068f36 25 cols: number;
824a9c6d 26 browser: IBrowser;
92068f36
DI
27 writeBuffer: string[];
28 children: HTMLElement[];
29 cursorHidden: boolean;
30 cursorState: number;
31 x: number;
32 y: number;
33 defAttr: number;
e0d98711 34
30fcdd6c
DI
35 /**
36 * Emit the 'data' event and populate the given data.
37 * @param data The data to populate in the event.
38 */
39 handler(data: string);
e0d98711
DI
40 on(event: string, callback: () => void);
41 scrollDisp(disp: number, suppressScrollEvent: boolean);
824a9c6d 42 cancel(ev: Event, force?: boolean);
92068f36
DI
43 log(text: string): void;
44 emit(event: string, data: any);
45}
46
1306431e
DI
47export interface ICharMeasure {
48 width: number;
49 height: number;
50 measure(): void;
51}
52
92068f36
DI
53interface ICircularList<T> {
54 length: number;
55 maxLength: number;
56
57 forEach(callbackfn: (value: T, index: number, array: T[]) => void): void;
58 get(index: number): T;
59 set(index: number, value: T): void;
60 push(value: T): void;
61 pop(): T;
62 splice(start: number, deleteCount: number, ...items: T[]): void;
63 trimStart(count: number): void;
64 shiftElements(start: number, count: number, offset: number): void;
e0d98711 65}
04b1ebf1
DI
66
67/**
68 * Handles actions generated by the parser.
69 */
70export interface IInputHandler {
fa3484cd
DI
71 addChar(char: string, code: number): void;
72
f9a286a8
DI
73 /** C0 BEL */ bell(): void;
74 /** C0 LF */ lineFeed(): void;
75 /** C0 CR */ carriageReturn(): void;
76 /** C0 BS */ backspace(): void;
77 /** C0 HT */ tab(): void;
78 /** C0 SO */ shiftOut(): void;
79 /** C0 SI */ shiftIn(): void;
9b662080 80
f4846aa1
DI
81 /** CSI @ */ insertChars(params?: number[]): void;
82 /** CSI A */ cursorUp(params?: number[]): void;
83 /** CSI B */ cursorDown(params?: number[]): void;
84 /** CSI C */ cursorForward(params?: number[]): void;
85 /** CSI D */ cursorBackward(params?: number[]): void;
86 /** CSI E */ cursorNextLine(params?: number[]): void;
87 /** CSI F */ cursorPrecedingLine(params?: number[]): void;
88 /** CSI G */ cursorCharAbsolute(params?: number[]): void;
89 /** CSI H */ cursorPosition(params?: number[]): void;
90 /** CSI I */ cursorForwardTab(params?: number[]): void;
91 /** CSI J */ eraseInDisplay(params?: number[]): void;
92 /** CSI K */ eraseInLine(params?: number[]): void;
93 /** CSI L */ insertLines(params?: number[]): void;
94 /** CSI M */ deleteLines(params?: number[]): void;
95 /** CSI P */ deleteChars(params?: number[]): void;
96 /** CSI S */ scrollUp(params?: number[]): void;
97 /** CSI T */ scrollDown(params?: number[]): void;
98 /** CSI X */ eraseChars(params?: number[]): void;
99 /** CSI Z */ cursorBackwardTab(params?: number[]): void;
100 /** CSI ` */ charPosAbsolute(params?: number[]): void;
101 /** CSI a */ HPositionRelative(params?: number[]): void;
102 /** CSI b */ repeatPrecedingCharacter(params?: number[]): void;
103 /** CSI c */ sendDeviceAttributes(params?: number[]): void;
104 /** CSI d */ linePosAbsolute(params?: number[]): void;
105 /** CSI e */ VPositionRelative(params?: number[]): void;
106 /** CSI f */ HVPosition(params?: number[]): void;
107 /** CSI g */ tabClear(params?: number[]): void;
108 /** CSI h */ setMode(params?: number[]): void;
109 /** CSI l */ resetMode(params?: number[]): void;
110 /** CSI m */ charAttributes(params?: number[]): void;
111 /** CSI n */ deviceStatus(params?: number[]): void;
112 /** CSI p */ softReset(params?: number[]): void;
0bd469f5 113 /** CSI q */ setCursorStyle(params?: number[]): void;
f4846aa1
DI
114 /** CSI r */ setScrollRegion(params?: number[]): void;
115 /** CSI s */ saveCursor(params?: number[]): void;
116 /** CSI u */ restoreCursor(params?: number[]): void;
04b1ebf1 117}