home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 2
/
goldfish_vol2_cd1.bin
/
files
/
dev
/
c
/
curses
/
curses.h
< prev
next >
Wrap
C/C++ Source or Header
|
1994-02-21
|
10KB
|
314 lines
/*
*
* Author : Simon J Raybould. (sie@fulcrum.bt.co.uk).
*
* Date : 16th Feb 1990
*
* Desc : Header file for my AMIGA CURSES package.
* This should be included instead of stdio.h, this will
* include stdio.h for you.
*
*
*
* THIS CODE IS COPYRIGHT S.J.R 1991, ALL RIGHTS ARE RESERVED.
*
* THIS SOURCE IS NOT PUBLIC DOMAIN, BUT IS FREELY DISTRIBUTABLE AS
* LONG AS IT REMAINS UNALTERED.
*
* NO IMPLICATION IS MADE AS TO IT BEING FIT FOR ANY PURPOSE AT ALL
* I SHALL NOT BE HELD RESPONSIBLE FOR ANY LOSS OF PROPERTY OR DAMAGE
* THAT MAY RESULT FROM ITS USE.
*
*
* $Log: curses.h,v $
* Revision 1.13 1993/05/17 23:33:10 sie
* Underscores added to names.
* Changes for version 2.10
*
* Revision 1.12 1992/12/25 22:18:08 sie
* GNU port
*
* Revision 1.11 92/06/20 10:58:39 sie
* Removed CreatWindow prototype.
*
* Revision 1.10 92/06/20 10:55:57 sie
* removed prototype for _setcursestype()
*
* Revision 1.9 92/06/10 23:44:32 sie
* Added serial support.
*
* Revision 1.8 92/01/25 23:52:19 sie
* defines for some more unsupported keys.
*
* Revision 1.7 91/12/30 10:31:27 sie
* Removed LRLine and LRATTRS.
* The speed increase caused by them was too insignificant.
*
* Revision 1.6 91/12/28 22:43:40 sie
* changed attrs to UBYTE from short + some tidying up.
*
* Revision 1.5 91/12/28 14:03:02 sie
* Removed WinStat.
* Renamed LineElement as lnel.
*
* Revision 1.4 91/12/27 10:01:32 sie
* Added some more key defines.
*
* Revision 1.3 91/09/07 11:54:52 sie
* V2.00 curses library.
*
* Revision 1.2 91/08/23 21:38:21 sie
* Port to GNU C.
*
* Revision 1.1 91/02/05 21:19:07 sie
* Initial revision
*
*
*/
#ifndef CURSES_H
#define CURSES_H
#ifndef stdin /* May be a better way to do this !! */
#include <stdio.h>
#endif
#include <exec/types.h> /* for prototypes & TRUE&FALSE */
#define ERR -1
#define OK 0
/*
* Macros
*/
#define addch(c) waddch(stdscr, (c))
#define addstr(str) waddstr(stdscr, (str))
#define attrset(attr) wattrset(stdscr, (attr))
#define attron(attr) wattron(stdscr, (attr))
#define attroff(attr) wattroff(stdscr, (attr))
#define clear() wclear(stdscr)
#define clrtoeol() wclrtoeol(stdscr)
#define clrtobot() wclrtobot(stdscr)
#define crmode() cbreak()
#define delch() wdelch(stdscr)
#define deleteln() wdeleteln(stdscr)
#define erase() werase(stdscr)
#define inch() winch(stdscr)
#define insch(c) winsch(stdscr, (c))
#define insertln() winsertln(stdscr)
#define getch() wgetch(stdscr)
#define getstr(ptr) wgetstr(stdscr, (ptr))
#define getyx(win,y,x) ((y) = (win)->_cury, (x) = (win)->_curx)
#define move(line, col) wmove(stdscr, (line), (col))
#define mvdelch(y, x) (move((y), (x)), delch())
#define mvwdelch(win, y, x) (wmove((win),(y),(x)),wdelch((win)))
#define mvgetch(y, x) (move((y), (x)), getch())
#define mvwgetch(win, y, x) (wmove((win),(y),(x)),wgetch((win)))
#define mvgetstr(y, x, ptr) (move((y), (x)), getstr((ptr)))
#define mvwgetstr(win, y, x, ptr) (wmove((win), (y), (x)), \
wgetstr((win), (ptr)))
#define mvinsch(y, x, c) (move((y), (x)), insch((c)))
#define mvwinsch(win, y, x, c) (wmove((win), (y), (x)), \
winsch((win), (c)))
#define mvinch(y, x) (move((y), (x)), inch())
#define mvwinch(win, y, x) (wmove((win), (y), (x)),winch((win)))
#define mvaddch(y, x, c) (move((y), (x)), addch((c)))
#define mvwaddch(win, y, x, c) (wmove((win), (y), (x)), \
waddch((win), (c)))
#define mvaddstr(y, x, str) (move((y), (x)), addstr((str)))
#define mvwaddstr(win, y, x, str) (wmove((win), (y), (x)), \
waddstr((win), (str)))
#define nocrmode() nocbreak()
#define noraw() nocbreak()
#define raw() cbreak()
#define refresh() wrefresh(stdscr)
#define noutrefresh() wnoutrefresh(stdscr)
#define setscrreg(top, bottom) wsetscrreg(stdscr, (top), (bottom))
#define standend() wstandend(stdscr)
#define standout() wstandout(stdscr)
/*
* NON STANDARD MACROS
*/
#define pencolour(n) wpencolour(stdscr, (n))
/*
* Colours
*/
#define COLOR_BLACK 0
#define COLOR_WHITE 1
#define COLOR_YELLOW 2
#define COLOR_BLUE 3
#define COLOR_MAGENTA 4
#define COLOR_CYAN 5
#define COLOR_RED 6
#define COLOR_GREEN 7
/*
* Video Attributes.
*/
#define A_NORMAL 0000
#define A_STANDOUT 0010
#define A_UNDERLINE 0020
#define A_BOLD 0040
#define A_REVERSE A_STANDOUT
#define A_BLINK A_NORMAL /* NOT SUPPORTED */
#define A_DIM A_NORMAL /* NOT SUPPORTED */
#define _STANDOUT A_STANDOUT /* for compatibility with old curses */
#define A_CLRPART 0007
#define A_ATRPART 0770
#define bool char
#define reg register
struct _win_st {
UBYTE _cury, _curx;
UBYTE _maxy, _maxx;
UBYTE _begy, _begx;
UBYTE _flags;
UBYTE _attrs;
bool _clear; /* T=clear on next refresh */
bool _scroll;
bool _nodelay; /* T=don't wait for tty input */
struct _win_st *ParentWin;
UBYTE ScrollTop;
UBYTE ScrollBot;
struct lnel {
bool Touched; /* This line needs refreshing */
char *Line; /* Actual text */
UBYTE *ATTRS; /* Attributes */
UBYTE StartCol;
UBYTE EndCol;
} *LnArry;
UBYTE NLines;
};
typedef struct _win_st WINDOW;
extern WINDOW *stdscr, *curscr;
extern int LINES, COLS, DEPTH;
/*
* Special keys.
*/
#define KEY_BACKSPACE 0010 /* backspace */
#define KEY_DC 0177 /* Delete character */
#define KEY_DOWN 0400 /* The down arrow key */
#define KEY_UP 0401 /* The up arrow key */
#define KEY_LEFT 0402 /* The left arrow key */
#define KEY_RIGHT 0403 /* The right arrow key */
#define KEY_HELP 0404 /* Help Key */
#define KEY_F0 0405 /* Function keys */
#define KEY_F(n) (KEY_F0+(n))
/*
* Keys not on Amiga keyboard
*/
#define KEY_IL 0501 /* Not supported */
#define KEY_DL 0502 /* Not supported */
#define KEY_CLEAR 0503 /* Not supported */
#define KEY_IC 0504 /* Not supported */
#define KEY_EIC 0505 /* Not supported */
#define KEY_HOME 0506 /* Not supported */
#define KEY_B2 0507 /* Not supported */
#define KEY_NPAGE 0510 /* Not supported */
#define KEY_PPAGE 0511 /* Not supported */
#define KEY_UNDO 0512 /* Not supported */
/*
* Prototypes.
*/
int initscr(void);
int endwin(void);
int init_color(WORD n, UWORD r, UWORD g, UWORD b);
int start_color(void);
int has_colors(void);
int waddstr(WINDOW *WinPtr, char *Str);
int waddch(WINDOW *WinPtr, char c);
int winsch(WINDOW *WinPtr, char c);
int wdelch(WINDOW *WinPtr);
int wclear(WINDOW *WinPtr);
int werase(WINDOW *WinPtr);
int clearok(WINDOW *WinPtr, int flag);
int wclrtoeol(WINDOW *WinPtr);
int wclrtobot(WINDOW *WinPtr);
int flushinp(void);
int wgetch(WINDOW *WinPtr);
int wgetstr(WINDOW *WinPtr, char *ptr);
int winch(WINDOW *WinPtr);
int wmove(WINDOW *WinPtr, short Line, short Col);
int mvcur(int CurLine, int CurCol, int NewLine, int NewCol);
int printw(char *fmt, ...);
int wprintw(WINDOW *WinPtr, char *fmt, ...);
int mvprintw(short Line, short Col, char *fmt, ...);
int mvwprintw(WINDOW *WinPtr, short Line, short Col, char *fmt, ...);
int wrefresh(WINDOW *WinPtr);
#ifndef NO_SCAN_PROTOS
int scanw(char *fmt, ...);
int wscanw(WINDOW *WinPtr, char *fmt, ...);
int mvscanw(short Line, short Col, char *fmt, ...);
int mvwscanw(WINDOW *WinPtr, short Line, short Col, char *fmt, ...);
#endif /* ndef NO_SCAN_PROTOS */
int wstandout(WINDOW *WinPtr);
int wstandend(WINDOW *WinPtr);
int wattrset(WINDOW *WinPtr, UBYTE attr);
int wattron(WINDOW *WinPtr, UBYTE attr);
int wattroff(WINDOW *WinPtr, UBYTE attr);
int cbreak(void);
int nocbreak(void);
int idlok(WINDOW *WinPtr, int flag);
int winsertln(WINDOW *WinPtr);
int wdeleteln(WINDOW *WinPtr);
int nodelay(WINDOW *WinPtr, int flag);
int echo(void);
int noecho(void);
int keypad(WINDOW *WinPtr, char flag);
int beep(void);
int flash(void);
int leaveok(WINDOW *WinPtr, int flag);
int resetty(void);
int savetty(void);
int resetterm(void);
int fixterm(void);
int saveterm(void);
int baudrate(void);
int nl(void);
int nonl(void);
int box(WINDOW *WinPtr, char vert, char hor);
WINDOW *subwin(WINDOW *Orig,
unsigned int NLines,
unsigned int NCols,
unsigned int StartLine,
unsigned int StartCol);
WINDOW *newwin(unsigned int NLines,
unsigned int NCols,
unsigned int StartLine,
unsigned int StartCol);
int touchwin(WINDOW *WinPtr);
int delwin(WINDOW *WinPtr);
int mvwin(WINDOW *WinPtr, short NewLine, short NewCol);
int scroll(WINDOW *WinPtr);
int wsetscrreg(WINDOW *WinPtr, short top, short bottom);
int scrollok(WINDOW *WinPtr, int flag);
int wnoutrefresh(WINDOW *WinPtr);
int doupdate(void);
int tgetent(char * , char * );
char * tgetstr(char * , char ** );
int tputs(char * , int , int (* )(char ));
char * tgoto(char * , int , int );
int tgetnum(char * );
int tgetflag(char * );
#endif /* CURSES_H */