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