[SETUPLIB][USETUP] Add support for setup error handling.
[reactos.git] / base / setup / usetup / consup.h
1 /*
2 * ReactOS kernel
3 * Copyright (C) 2002 ReactOS Team
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19 /*
20 * COPYRIGHT: See COPYING in the top level directory
21 * PROJECT: ReactOS text-mode setup
22 * FILE: base/setup/usetup/consup.h
23 * PURPOSE: Console support functions
24 * PROGRAMMER:
25 */
26
27 #pragma once
28
29 #define FOREGROUND_WHITE (FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)
30 #define FOREGROUND_YELLOW (FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN)
31 #define BACKGROUND_WHITE (BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE)
32
33 /* Text style */
34 #define TEXT_STYLE_NORMAL 0x00000001
35 #define TEXT_STYLE_HIGHLIGHT 0x00000002
36 #define TEXT_STYLE_UNDERLINE 0x00000004
37
38 /* Text type */
39 #define TEXT_TYPE_REGULAR 0x00000008
40 #define TEXT_TYPE_STATUS 0x00000010
41
42 /* Text align */
43 #define TEXT_ALIGN_DEFAULT 0x00000020
44 #define TEXT_ALIGN_RIGHT 0x00000040
45 #define TEXT_ALIGN_LEFT 0x00000080
46 #define TEXT_ALIGN_CENTER 0x00000100
47
48 /* Text padding */
49 #define TEXT_PADDING_SMALL 0x00000200 /* One space */
50 #define TEXT_PADDING_MEDIUM 0x00000400 /* Two spaces */
51 #define TEXT_PADDING_BIG 0x00000800 /* Three spaces */
52
53 extern HANDLE StdInput, StdOutput;
54 extern SHORT xScreen, yScreen;
55
56 BOOLEAN
57 CONSOLE_Init(
58 VOID);
59
60 VOID
61 CONSOLE_ClearScreen(VOID);
62
63 VOID
64 CONSOLE_ConInKey(
65 OUT PINPUT_RECORD Buffer);
66
67 BOOLEAN
68 CONSOLE_ConInKeyPeek(
69 OUT PINPUT_RECORD Buffer);
70
71 VOID
72 CONSOLE_ConOutChar(
73 IN CHAR c);
74
75 VOID
76 CONSOLE_ConOutPrintfV(
77 IN LPCSTR szFormat,
78 IN va_list args);
79
80 VOID
81 __cdecl
82 CONSOLE_ConOutPrintf(
83 IN LPCSTR szFormat,
84 ...);
85
86 VOID
87 CONSOLE_ConOutPuts(
88 IN LPCSTR szText);
89
90 BOOL
91 CONSOLE_Flush(VOID);
92
93 VOID
94 CONSOLE_GetCursorXY(
95 PSHORT x,
96 PSHORT y);
97
98 SHORT
99 CONSOLE_GetCursorX(VOID);
100
101 SHORT
102 CONSOLE_GetCursorY(VOID);
103
104 VOID
105 CONSOLE_InvertTextXY(
106 IN SHORT x,
107 IN SHORT y,
108 IN SHORT col,
109 IN SHORT row);
110
111 VOID
112 CONSOLE_NormalTextXY(
113 IN SHORT x,
114 IN SHORT y,
115 IN SHORT col,
116 IN SHORT row);
117
118 VOID
119 __cdecl
120 CONSOLE_PrintTextXY(
121 IN SHORT x,
122 IN SHORT y,
123 IN LPCSTR fmt, ...);
124
125 VOID
126 __cdecl
127 CONSOLE_PrintTextXYN(
128 IN SHORT x,
129 IN SHORT y,
130 IN SHORT len,
131 IN LPCSTR fmt, ...);
132
133 VOID
134 CONSOLE_SetCursorType(
135 IN BOOL bInsert,
136 IN BOOL bVisible);
137
138 VOID
139 CONSOLE_SetCursorXY(
140 IN SHORT x,
141 IN SHORT y);
142
143 VOID
144 CONSOLE_SetCursorXY(
145 IN SHORT x,
146 IN SHORT y);
147
148 VOID
149 CONSOLE_SetHighlightedTextXY(
150 IN SHORT x,
151 IN SHORT y,
152 IN LPCSTR Text);
153
154 VOID
155 CONSOLE_SetInputTextXY(
156 IN SHORT x,
157 IN SHORT y,
158 IN SHORT len,
159 IN LPCWSTR Text);
160
161 VOID
162 CONSOLE_SetInvertedTextXY(
163 IN SHORT x,
164 IN SHORT y,
165 IN LPCSTR Text);
166
167 VOID
168 CONSOLE_SetStatusTextV(
169 IN LPCSTR fmt,
170 IN va_list args);
171
172 VOID
173 __cdecl
174 CONSOLE_SetStatusText(
175 IN LPCSTR fmt,
176 ...);
177
178 VOID
179 CONSOLE_SetStatusTextXV(
180 IN SHORT x,
181 IN LPCSTR fmt,
182 IN va_list args);
183
184 VOID
185 __cdecl
186 CONSOLE_SetStatusTextX(
187 IN SHORT x,
188 IN LPCSTR fmt,
189 ...);
190
191 VOID
192 __cdecl
193 CONSOLE_SetStatusTextAutoFitX(
194 IN SHORT x,
195 IN LPCSTR fmt, ...);
196
197 VOID
198 CONSOLE_SetTextXY(
199 IN SHORT x,
200 IN SHORT y,
201 IN LPCSTR Text);
202
203 VOID
204 CONSOLE_SetUnderlinedTextXY(
205 IN SHORT x,
206 IN SHORT y,
207 IN LPCSTR Text);
208
209 VOID
210 CONSOLE_SetStyledText(
211 IN SHORT x,
212 IN SHORT y,
213 IN INT Flags,
214 IN LPCSTR Text);
215
216 VOID
217 CONSOLE_ClearStyledText(IN SHORT x,
218 IN SHORT y,
219 IN INT Flags,
220 IN SHORT Length);
221
222 /* EOF */