VT100 - Replace global buffer with per-terminal, further implementation of escape...
[tpg/acess2.git] / Usermode / Applications / gui_terminal_src / include / display.h
1 /*
2  * Acess GUI Terminal
3  * - By John Hodge (thePowersGang)
4  *
5  * display.h
6  * - RichText terminal translation
7  */
8 #ifndef _DISPLAY_H_
9 #define _DISPLAY_H_
10
11 #include <stdint.h>
12 #include <stddef.h>     // size_t
13 #include <stdbool.h>
14
15 typedef struct sTerminal        tTerminal;
16
17 extern tTerminal        *Display_Init(int Cols, int Lines, int ExtraScrollbackLines);
18
19 // TermState is a variable used by the terminal emulation code
20 extern void     *Display_GetTermState(tTerminal *Term);
21 extern void     Display_SetTermState(tTerminal *Term, void *State);
22
23 extern void     Display_SendInput(tTerminal *Term, const char *String);
24
25 extern void     Display_AddText(tTerminal *Term, size_t Length, const char *UTF8Text);
26 extern void     Display_Newline(tTerminal *Term, bool bCarriageReturn);
27 extern void     Display_SetScrollArea(tTerminal *Term, int Start, int Count);   // Only valid in AltBuffer
28 extern void     Display_ScrollDown(tTerminal *Term, int Count);
29 extern void     Display_SetCursor(tTerminal *Term, int Row, int Col);
30 extern void     Display_MoveCursor(tTerminal *Term, int RelRow, int RelCol);
31 extern void     Display_SaveCursor(tTerminal *Term);
32 extern void     Display_RestoreCursor(tTerminal *Term);
33 extern void     Display_ClearLine(tTerminal *Term, int Dir);    // 0: All, 1: Forward, -1: Reverse
34 extern void     Display_ClearLines(tTerminal *Term, int Dir);   // 0: All, 1: Forward, -1: Reverse
35 extern void     Display_ResetAttributes(tTerminal *Term);
36 extern void     Display_SetForeground(tTerminal *Term, uint32_t RGB);
37 extern void     Display_SetBackground(tTerminal *Term, uint32_t RGB);
38 /**
39  * \brief Ensure that recent updates are flushed to the server
40  * \note Called at the end of an "input" buffer
41  */
42 extern void     Display_Flush(tTerminal *Term);
43
44 /**
45  * \brief Switch the display to the alternate buffer (no scrollback)
46  */
47 extern void     Display_ShowAltBuffer(tTerminal *Term, bool AltBufEnabled);
48
49 extern void     Display_SetTitle(tTerminal *Term, const char *Title);
50
51 #endif
52

UCC git Repository :: git.ucc.asn.au