2 /* Copyright 1998 - Joseph Pranevich */
4 /* Include file for definitions pertaining to Wine's text-console
15 /* Can we compile with curses/ncurses? */
16 #if ( (defined(HAVE_LIBNCURSES) || defined(HAVE_LIBCURSES)) && \
17 (defined(HAVE_CURSES_H) || defined(HAVE_NCURSES_H)) \
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... */
28 typedef struct CONSOLE_DRIVER
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
)();
38 /* Color-control functions */
39 int (*allocColor
)(int color
);
40 void (*setBackgroundColor
)(int fg
, int bg
);
42 /* Keyboard Functions */
43 int (*checkForKeystroke
)(char *, char *);
44 void (*getKeystroke
)(char *, char *);
46 /* Windowing Functions */
47 void (*resizeScreen
)(int, int);
48 void (*notifyResizeScreen
)(int, int); /* May be rethought later... */
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);
55 /* Accellerator Functions (Keyboard) */
56 char (*getCharacter
)();
68 CONSOLE_device driver
; /* Global driver struct */
71 void CONSOLE_Init(char *drivers
);
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
);
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();
100 /* TTY specific defines */
101 void TTY_Write(char out
, int fg_color
, int bg_color
, int attribute
);
103 void TTY_GetKeystroke(char *, char *);
107 /* ncurses defines */
108 void NCURSES_Write(char out
, int fg_color
, int bg_color
, int attribute
);
109 void NCURSES_Start();
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
);
123 #endif /* WINE_NCURSES */
125 /* Xterm specific defines */
129 void XTERM_ResizeScreen(int x
, int y
);
132 /* These will eventually be hex triples for dynamic allocation */
137 #define WINE_MAGENTA 5
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
150 #endif /* CONSOLE_H */