[CONUTILS] In ConWrite(), emit an \r when a \n is encountered but not already precede...
[reactos.git] / sdk / lib / conutils / screen.h
1 /*
2 * PROJECT: ReactOS Console Utilities Library
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Console/terminal screen management.
5 * COPYRIGHT: Copyright 2017-2018 ReactOS Team
6 * Copyright 2017-2018 Hermes Belusca-Maito
7 */
8
9 /**
10 * @file screen.h
11 * @ingroup ConUtils
12 *
13 * @brief Console/terminal screen management.
14 **/
15
16 #ifndef __SCREEN_H__
17 #define __SCREEN_H__
18
19 #pragma once
20
21 #ifndef _UNICODE
22 #error The ConUtils library at the moment only supports compilation with _UNICODE defined!
23 #endif
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29
30 #if 0
31
32 VOID
33 ConClearLine(IN PCON_STREAM Stream);
34
35 #endif
36
37
38
39 #include <wincon.h>
40
41 typedef struct _CON_SCREEN
42 {
43 PCON_STREAM Stream; // Out
44 // PCON_STREAM In;
45 CONSOLE_SCREEN_BUFFER_INFO csbi;
46 CONSOLE_CURSOR_INFO cci;
47 } CON_SCREEN, *PCON_SCREEN;
48
49 #define INIT_CON_SCREEN(pStream) {(pStream)} /* {(pStream), {{}}, {{}}} */
50
51 #define InitializeConScreen(pScreen, pStream) \
52 do { \
53 (pScreen)->Stream = (pStream); \
54 RtlZeroMemory(&(pScreen)->csbi, sizeof((pScreen)->csbi)); \
55 RtlZeroMemory(&(pScreen)->cci , sizeof((pScreen)->cci )); \
56 } while (0)
57
58 BOOL
59 ConGetScreenInfo(
60 IN PCON_SCREEN Screen,
61 OUT PCONSOLE_SCREEN_BUFFER_INFO pcsbi);
62
63 VOID
64 ConClearScreen(IN PCON_SCREEN Screen);
65
66
67 #ifdef __cplusplus
68 }
69 #endif
70
71 #endif /* __SCREEN_H__ */
72
73 /* EOF */