Reactos
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
26extern "C" {
27#endif
28
29
30#if 0
31
32VOID
33ConClearLine(IN PCON_STREAM Stream);
34
35#endif
36
37
38
39#include <wincon.h>
40
41typedef 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) \
52do { \
53 (pScreen)->Stream = (pStream); \
54 RtlZeroMemory(&(pScreen)->csbi, sizeof((pScreen)->csbi)); \
55 RtlZeroMemory(&(pScreen)->cci , sizeof((pScreen)->cci )); \
56} while (0)
57
58BOOL
59ConGetScreenInfo(
60 IN PCON_SCREEN Screen,
61 OUT PCONSOLE_SCREEN_BUFFER_INFO pcsbi);
62
63VOID
64ConClearScreen(IN PCON_SCREEN Screen);
65
66
67#ifdef __cplusplus
68}
69#endif
70
71#endif /* __SCREEN_H__ */
72
73/* EOF */