/* * Include file for definitions pertaining to Wine's text-console * interface. * * Copyright 1998 - Joseph Pranevich * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __WINE_CONSOLE_H #define __WINE_CONSOLE_H #ifndef __WINE_CONFIG_H # error You must include config.h to use this header #endif #include /* Can we compile with curses/ncurses? */ #if ( (defined(HAVE_LIBNCURSES) || defined(HAVE_LIBCURSES)) && \ (defined(HAVE_CURSES_H) || defined(HAVE_NCURSES_H)) \ ) # define WINE_NCURSES #else # undef WINE_NCURSES #endif #define CONSOLE_DEFAULT_DRIVER "tty" typedef struct CONSOLE_DRIVER { void (*init)(void); void (*close)(void); void (*write)(char, int, int, int); void (*moveCursor)(char, char); void (*getCursorPosition)(char *, char *); void (*getCharacterAtCursor)(char *, int *, int *, int *); void (*clearScreen)(void); /* Color-control functions */ int (*allocColor)(int color); void (*setBackgroundColor)(int fg, int bg); void (*getBackgroundColor)(int *fg, int *bg); /* Keyboard Functions */ int (*checkForKeystroke)(char *, char *); void (*getKeystroke)(char *, char *); /* Windowing Functions */ void (*resizeScreen)(int, int); void (*notifyResizeScreen)(int, int); /* May be rethought later... */ /* Accelerator Functions (Screen) */ void (*clearWindow)(char, char, char, char, int, int); void (*scrollUpWindow)(char, char, char, char, char, int, int); void (*scrollDownWindow)(char, char, char, char, char, int, int); /* Accelerator Functions (Keyboard) */ char (*getCharacter)(void); /* Other functions */ void (*refresh)(void); /* Other data */ int norefresh; FILE *console_out; FILE *console_in; int x_res; int y_res; } CONSOLE_device; extern CONSOLE_device driver; /* Global driver struct */ /* Generic defines */ void CONSOLE_Close(void); void CONSOLE_Write(char out, int fg_color, int bg_color, int attribute); void CONSOLE_MoveCursor(char row, char col); void CONSOLE_ClearWindow(char, char, char, char, int, int); void CONSOLE_ScrollUpWindow(char, char, char, char, char, int, int); void CONSOLE_ScrollDownWindow(char, char, char, char, char, int, int); int CONSOLE_CheckForKeystroke(char *, char*); void CONSOLE_GetKeystroke(char *, char *); void CONSOLE_GetCursorPosition(char *, char *); void CONSOLE_GetCharacterAtCursor(char *, int *, int *, int *); void CONSOLE_Refresh(void); void CONSOLE_SetRefresh(int); int CONSOLE_GetRefresh(void); void CONSOLE_ClearScreen(void); char CONSOLE_GetCharacter(void); void CONSOLE_ResizeScreen(int, int); void CONSOLE_NotifyResizeScreen(int, int); void CONSOLE_WriteRawString(char *); int CONSOLE_AllocColor(int); void CONSOLE_SetBackgroundColor(int fg, int bg); void CONSOLE_GetBackgroundColor(int *fg, int *bg); /* Generic Defines */ void GENERIC_Start(void); void GENERIC_ClearWindow(char, char, char, char, int, int); void GENERIC_ScrollUpWindow(char, char, char, char, char, int, int); void GENERIC_ScrollDownWindow(char, char, char, char, char, int, int); char GENERIC_GetCharacter(void); /* TTY specific defines */ void TTY_Write(char out, int fg_color, int bg_color, int attribute); void TTY_Start(void); void TTY_GetKeystroke(char *, char *); #ifdef WINE_NCURSES /* ncurses defines */ void NCURSES_Write(char out, int fg_color, int bg_color, int attribute); void NCURSES_Start(void); void NCURSES_Init(void); void NCURSES_Close(void); int NCURSES_CheckForKeystroke(char *, char *); void NCURSES_GetKeystroke(char *, char *); void NCURSES_MoveCursor(char ,char); void NCURSES_GetCursorPosition(char *, char *); void NCURSES_GetCharacterAtCursor(char *, int *, int *, int *); void NCURSES_Refresh(void); void NCURSES_ClearScreen(void); void NCURSES_NotifyResizeScreen(int x, int y); int NCURSES_AllocColor(int); void NCURSES_SetBackgroundColor(int fg, int bg); void NCURSES_GetBackgroundColor(int *fg, int *bg); #endif /* WINE_NCURSES */ /* Xterm specific defines */ void XTERM_Start(void); void XTERM_Close(void); void XTERM_Init(void); void XTERM_ResizeScreen(int x, int y); /* Color defines */ /* These will eventually be hex triples for dynamic allocation */ /* Triplets added by A.C. and commented out until the support */ /* code can be written into the console routines. */ #define WINE_BLACK 1 /* 0x000000 */ #define WINE_BLUE 2 /* 0x0000ff */ #define WINE_GREEN 3 /* 0x008000 */ #define WINE_CYAN 4 /* 0x00eeee */ #define WINE_MAGENTA 5 /* 0xcd00cd */ #define WINE_BROWN 6 /* 0xcd3333 */ #define WINE_RED 7 /* 0xff0000 */ #define WINE_LIGHT_GRAY 8 /* 0xc0c0c0 */ #define WINE_DARK_GRAY 9 /* 0x808080 */ #define WINE_LIGHT_BLUE 10 /* 0x98f5ff */ #define WINE_LIGHT_GREEN 11 /* 0x00ff00 */ #define WINE_LIGHT_RED 12 /* 0xee6363 */ #define WINE_LIGHT_MAGENTA 13 /* 0xff00ff */ #define WINE_LIGHT_CYAN 14 /* 0x00ffff */ #define WINE_YELLOW 15 /* 0xffff00 */ #define WINE_WHITE 16 /* 0xffffff */ #endif /* CONSOLE_H */