source: trunk/include/console.h@ 10

Last change on this file since 10 was 10, checked in by phaller, 26 years ago

Experimental support vor EMX/GCC 0.9d as build environment. IBM VAC++ 3 remains default. (SET CCENV=VAC3 or EMX)

File size: 4.5 KB
Line 
1/* $Id: console.h,v 1.2 1999-05-27 15:17:57 phaller Exp $ */
2
3#ifndef __CONSOLE_H__
4#define __CONSOLE_H__
5
6#pragma pack(4)
7
8#ifndef _OS2WIN_H
9typedef struct _COORD {
10 SHORT X;
11 SHORT Y;
12} COORD, *PCOORD;
13#endif
14
15typedef struct _SMALL_RECT {
16 SHORT Left;
17 SHORT Top;
18 SHORT Right;
19 SHORT Bottom;
20} SMALL_RECT, *PSMALL_RECT;
21
22typedef struct _KEY_EVENT_RECORD {
23 BOOL bKeyDown;
24 WORD wRepeatCount;
25 WORD wVirtualKeyCode;
26 WORD wVirtualScanCode;
27 union {
28 WCHAR UnicodeChar;
29 CHAR AsciiChar;
30 } uChar;
31 DWORD dwControlKeyState;
32} KEY_EVENT_RECORD, *PKEY_EVENT_RECORD;
33
34//
35// ControlKeyState flags
36//
37
38#define RIGHT_ALT_PRESSED 0x0001 // the right alt key is pressed.
39#define LEFT_ALT_PRESSED 0x0002 // the left alt key is pressed.
40#define RIGHT_CTRL_PRESSED 0x0004 // the right ctrl key is pressed.
41#define LEFT_CTRL_PRESSED 0x0008 // the left ctrl key is pressed.
42#define SHIFT_PRESSED 0x0010 // the shift key is pressed.
43#define NUMLOCK_ON 0x0020 // the numlock light is on.
44#define SCROLLLOCK_ON 0x0040 // the scrolllock light is on.
45#define CAPSLOCK_ON 0x0080 // the capslock light is on.
46#define ENHANCED_KEY 0x0100 // the key is enhanced.
47
48typedef struct _MOUSE_EVENT_RECORD {
49 COORD dwMousePosition;
50 DWORD dwButtonState;
51 DWORD dwControlKeyState;
52 DWORD dwEventFlags;
53} MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD;
54
55//
56// ButtonState flags
57//
58
59#define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
60#define RIGHTMOST_BUTTON_PRESSED 0x0002
61#define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004
62#define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008
63#define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010
64
65//
66// EventFlags
67//
68
69#define MOUSE_MOVED 0x0001
70#define DOUBLE_CLICK 0x0002
71
72typedef struct _WINDOW_BUFFER_SIZE_RECORD {
73 COORD dwSize;
74} WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD;
75
76typedef struct _MENU_EVENT_RECORD {
77 UINT dwCommandId;
78} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
79
80typedef struct _FOCUS_EVENT_RECORD {
81 BOOL bSetFocus;
82} FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD;
83
84typedef struct _INPUT_RECORD {
85 WORD EventType;
86 union {
87 KEY_EVENT_RECORD KeyEvent;
88 MOUSE_EVENT_RECORD MouseEvent;
89 WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
90 MENU_EVENT_RECORD MenuEvent;
91 FOCUS_EVENT_RECORD FocusEvent;
92 } Event;
93} INPUT_RECORD, *PINPUT_RECORD;
94
95//
96// EventType flags:
97//
98
99#define KEY_EVENT 0x0001 // Event contains key event record
100#define MOUSE_EVENT 0x0002 // Event contains mouse event record
101#define WINDOW_BUFFER_SIZE_EVENT 0x0004 // Event contains window change event record
102#define MENU_EVENT 0x0008 // Event contains menu event record
103#define FOCUS_EVENT 0x0010 // event contains focus change
104
105typedef struct _CHAR_INFO {
106 union {
107 WCHAR UnicodeChar;
108 CHAR AsciiChar;
109 } Char;
110 WORD Attributes;
111} CHAR_INFO, *PCHAR_INFO;
112
113//
114// Attributes flags:
115//
116
117#define FOREGROUND_BLUE 0x0001 // text color contains blue.
118#define FOREGROUND_GREEN 0x0002 // text color contains green.
119#define FOREGROUND_RED 0x0004 // text color contains red.
120#define FOREGROUND_INTENSITY 0x0008 // text color is intensified.
121#define BACKGROUND_BLUE 0x0010 // background color contains blue.
122#define BACKGROUND_GREEN 0x0020 // background color contains green.
123#define BACKGROUND_RED 0x0040 // background color contains red.
124#define BACKGROUND_INTENSITY 0x0080 // background color is intensified.
125
126
127typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
128 COORD dwSize;
129 COORD dwCursorPosition;
130 WORD wAttributes;
131 SMALL_RECT srWindow;
132 COORD dwMaximumWindowSize;
133} CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO;
134
135typedef struct _CONSOLE_CURSOR_INFO {
136 DWORD dwSize;
137 BOOL bVisible;
138} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
139
140//
141// typedef for ctrl-c handler routines
142//
143
144typedef BOOL (* __stdcall PHANDLER_ROUTINE)(DWORD CtrlType); /*PLF Fri 97-06-20 17:17:42*/
145
146#define CTRL_C_EVENT 0
147#define CTRL_BREAK_EVENT 1
148#define CTRL_CLOSE_EVENT 2
149// 3 is reserved!
150// 4 is reserved!
151#define CTRL_LOGOFF_EVENT 5
152#define CTRL_SHUTDOWN_EVENT 6
153
154//
155// Input Mode flags:
156//
157
158#define ENABLE_PROCESSED_INPUT 0x0001
159#define ENABLE_LINE_INPUT 0x0002
160#define ENABLE_ECHO_INPUT 0x0004
161#define ENABLE_WINDOW_INPUT 0x0008
162#define ENABLE_MOUSE_INPUT 0x0010
163
164//
165// Output Mode flags:
166//
167
168#define ENABLE_PROCESSED_OUTPUT 0x0001
169#define ENABLE_WRAP_AT_EOL_OUTPUT 0x0002
170
171
172#pragma pack()
173
174#endif
Note: See TracBrowser for help on using the repository browser.