Removed use of per-thread wait_struct, cleaned up a bit.
[wine.git] / include / console.h
blob802359ecb142ea64be4fb8949cffe591a526f92e
1 /* console.h */
2 /* Copyright 1998 - Joseph Pranevich */
4 /* Include file for definitions pertaining to Wine's text-console
5 interface.
6 */
8 #ifndef CONSOLE_H
9 #define CONSOLE_H
11 #include <stdio.h>
12 #include "config.h"
14 /* Can we compile with curses/ncurses? */
15 #if ( (defined(HAVE_LIBNCURSES) || defined(HAVE_LIBCURSES)) && \
16 (defined(HAVE_CURSES_H) || defined(HAVE_NCURSES_H)) \
18 # define WINE_NCURSES
19 #else
20 # undef WINE_NCURSES
21 #endif
23 #define CONSOLE_DEFAULT_DRIVER "tty"
24 /* If you have problems, try setting the next line to xterm */
25 #define CONSOLE_XTERM_PROG "xterm" /* We should check for this first... */
27 typedef struct CONSOLE_DRIVER
29 void (*init)(void);
30 void (*close)(void);
31 void (*write)(char, int, int, int);
32 void (*moveCursor)(char, char);
33 void (*getCursorPosition)(char *, char *);
34 void (*getCharacterAtCursor)(char *, int *, int *, int *);
35 void (*clearScreen)(void);
37 /* Color-control functions */
38 int (*allocColor)(int color);
39 void (*setBackgroundColor)(int fg, int bg);
41 /* Keyboard Functions */
42 int (*checkForKeystroke)(char *, char *);
43 void (*getKeystroke)(char *, char *);
45 /* Windowing Functions */
46 void (*resizeScreen)(int, int);
47 void (*notifyResizeScreen)(int, int); /* May be rethought later... */
49 /* Accellerator Functions (Screen) */
50 void (*clearWindow)(char, char, char, char, int, int);
51 void (*scrollUpWindow)(char, char, char, char, char, int, int);
52 void (*scrollDownWindow)(char, char, char, char, char, int, int);
54 /* Accellerator Functions (Keyboard) */
55 char (*getCharacter)(void);
57 /* Other functions */
58 void (*refresh)(void);
60 /* Other data */
61 int norefresh;
62 char *driver_list;
63 FILE *console_out;
64 FILE *console_in;
65 int x_res;
66 int y_res;
68 } CONSOLE_device;
70 CONSOLE_device driver; /* Global driver struct */
72 /* Generic defines */
73 int CONSOLE_Init(char *drivers);
74 void CONSOLE_Close();
75 void CONSOLE_Write(char out, int fg_color, int bg_color, int attribute);
76 void CONSOLE_MoveCursor(char row, char col);
77 void CONSOLE_ClearWindow(char, char, char, char, int, int);
78 void CONSOLE_ScrollUpWindow(char, char, char, char, char, int, int);
79 void CONSOLE_ScrollDownWindow(char, char, char, char, char, int, int);
80 int CONSOLE_CheckForKeystroke(char *, char*);
81 void CONSOLE_GetKeystroke(char *, char *);
82 void CONSOLE_GetCursorPosition(char *, char *);
83 void CONSOLE_GetCharacterAtCursor(char *, int *, int *, int *);
84 void CONSOLE_Refresh(void);
85 void CONSOLE_SetRefresh(int);
86 int CONSOLE_GetRefresh(void);
87 void CONSOLE_ClearScreen(void);
88 char CONSOLE_GetCharacter(void);
89 void CONSOLE_ResizeScreen(int, int);
90 void CONSOLE_NotifyResizeScreen(int, int);
91 void CONSOLE_WriteRawString(char *);
92 int CONSOLE_AllocColor(int);
93 void CONSOLE_SetBackgroundColor(int fg, int bg);
95 /* Generic Defines */
96 void GENERIC_Start(void);
97 void GENERIC_ClearWindow(char, char, char, char, int, int);
98 void GENERIC_ScrollUpWindow(char, char, char, char, char, int, int);
99 void GENERIC_ScrollDownWindow(char, char, char, char, char, int, int);
100 char GENERIC_GetCharacter(void);
102 /* TTY specific defines */
103 void TTY_Write(char out, int fg_color, int bg_color, int attribute);
104 void TTY_Start(void);
105 void TTY_GetKeystroke(char *, char *);
107 #ifdef WINE_NCURSES
109 /* ncurses defines */
110 void NCURSES_Write(char out, int fg_color, int bg_color, int attribute);
111 void NCURSES_Start(void);
112 void NCURSES_Init(void);
113 void NCURSES_Close(void);
114 int NCURSES_CheckForKeystroke(char *, char *);
115 void NCURSES_GetKeystroke(char *, char *);
116 void NCURSES_MoveCursor(char ,char);
117 void NCURSES_GetCursorPosition(char *, char *);
118 void NCURSES_GetCharacterAtCursor(char *, int *, int *, int *);
119 void NCURSES_Refresh(void);
120 void NCURSES_ClearScreen(void);
121 void NCURSES_NotifyResizeScreen(int x, int y);
122 int NCURSES_AllocColor(int);
123 void NCURSES_SetBackgroundColor(int fg, int bg);
125 #endif /* WINE_NCURSES */
127 /* Xterm specific defines */
128 void XTERM_Start(void);
129 void XTERM_Close(void);
130 void XTERM_Init(void);
131 void XTERM_ResizeScreen(int x, int y);
133 /* Color defines */
134 /* These will eventually be hex triples for dynamic allocation */
135 #define WINE_BLACK 1
136 #define WINE_BLUE 2
137 #define WINE_GREEN 3
138 #define WINE_CYAN 4
139 #define WINE_MAGENTA 5
140 #define WINE_BROWN 6
141 #define WINE_RED 7
142 #define WINE_LIGHT_GRAY 8
143 #define WINE_DARK_GRAY 9
144 #define WINE_LIGHT_BLUE 10
145 #define WINE_LIGHT_GREEN 11
146 #define WINE_LIGHT_RED 12
147 #define WINE_LIGHT_MAGENTA 13
148 #define WINE_LIGHT_CYAN 14
149 #define WINE_YELLOW 15
150 #define WINE_WHITE 16
152 #endif /* CONSOLE_H */