/contrib/ee/new_curse.h
https://bitbucket.org/freebsd/freebsd-head/ · C++ Header · 260 lines · 206 code · 14 blank · 40 comment · 1 complexity · 53f5bf8ec2ff5b62b65dc55e44f89d8f MD5 · raw file
- /*
- | new_curse.h
- |
- | A subset of curses developed for use with ae.
- |
- | written by Hugh Mahon
- |
- | THIS MATERIAL IS PROVIDED "AS IS". THERE ARE
- | NO WARRANTIES OF ANY KIND WITH REGARD TO THIS
- | MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE
- | IMPLIED WARRANTIES OF MERCHANTABILITY AND
- | FITNESS FOR A PARTICULAR PURPOSE. Neither
- | Hewlett-Packard nor Hugh Mahon shall be liable
- | for errors contained herein, nor for
- | incidental or consequential damages in
- | connection with the furnishing, performance or
- | use of this material. Neither Hewlett-Packard
- | nor Hugh Mahon assumes any responsibility for
- | the use or reliability of this software or
- | documentation. This software and
- | documentation is totally UNSUPPORTED. There
- | is no support contract available. Hewlett-
- | Packard has done NO Quality Assurance on ANY
- | of the program or documentation. You may find
- | the quality of the materials inferior to
- | supported materials.
- |
- | This software is not a product of Hewlett-Packard, Co., or any
- | other company. No support is implied or offered with this software.
- | You've got the source, and you're on your own.
- |
- | This software may be distributed under the terms of Larry Wall's
- | Artistic license, a copy of which is included in this distribution.
- |
- | This notice must be included with this software and any derivatives.
- |
- | Copyright (c) 1986, 1987, 1988, 1991, 1995 Hugh Mahon
- | All are rights reserved.
- |
- */
- #include <stdio.h>
- #ifdef SYS5
- #include <termio.h>
- #else
- #include <sgtty.h>
- #include <fcntl.h>
- #endif
- #define KEY_BREAK 0401
- #define KEY_DOWN 0402
- #define KEY_UP 0403
- #define KEY_LEFT 0404
- #define KEY_RIGHT 0405
- #define KEY_HOME 0406
- #define KEY_BACKSPACE 0407
- #define KEY_F0 0410
- #define KEY_F(n) (KEY_F0+(n))
- #define KEY_DL 0510
- #define KEY_IL 0511
- #define KEY_DC 0512
- #define KEY_IC 0513
- #define KEY_EIC 0514
- #define KEY_CLEAR 0515
- #define KEY_EOS 0516
- #define KEY_EOL 0517
- #define KEY_SF 0520
- #define KEY_SR 0521
- #define KEY_NPAGE 0522
- #define KEY_PPAGE 0523
- #define KEY_STAB 0524
- #define KEY_CTAB 0525
- #define KEY_CATAB 0526
- #define KEY_ENTER 0527
- #define KEY_SRESET 0530
- #define KEY_RESET 0531
- #define KEY_PRINT 0532
- #define KEY_LL 0533
- #define KEY_A1 0534
- #define KEY_A3 0535
- #define KEY_B2 0536
- #define KEY_C1 0537
- #define KEY_C3 0540
- #define KEY_BTAB 0541
- #define KEY_BEG 0542
- #define KEY_CANCEL 0543
- #define KEY_CLOSE 0544
- #define KEY_COMMAND 0545
- #define KEY_COPY 0546
- #define KEY_CREATE 0547
- #define KEY_END 0550
- #define KEY_EXIT 0551
- #define KEY_FIND 0552
- #define KEY_HELP 0553
- #define KEY_MARK 0554
- #define KEY_MESSAGE 0555
- #define KEY_MOVE 0556
- #define KEY_NEXT 0557
- #define KEY_OPEN 0560
- #define KEY_OPTIONS 0561
- #define KEY_PREVIOUS 0562
- #define KEY_REDO 0563
- #define KEY_REFERENCE 0564
- #define KEY_REFRESH 0565
- #define KEY_REPLACE 0566
- #define KEY_RESTART 0567
- #define KEY_RESUME 0570
- #define KEY_SAVE 0571
- #define KEY_SBEG 0572
- #define KEY_SCANCEL 0573
- #define KEY_SCOMMAND 0574
- #define KEY_SCOPY 0575
- #define KEY_SCREATE 0576
- #define KEY_SDC 0577
- #define KEY_SDL 0600
- #define KEY_SELECT 0601
- #define KEY_SEND 0602
- #define KEY_SEOL 0603
- #define KEY_SEXIT 0604
- #define KEY_SFIND 0605
- #define KEY_SHELP 0606
- #define KEY_SHOME 0607
- #define KEY_SIC 0610
- #define KEY_SLEFT 0611
- #define KEY_SMESSAGE 0612
- #define KEY_SMOVE 0613
- #define KEY_SNEXT 0614
- #define KEY_SOPTIONS 0615
- #define KEY_SPREVIOUS 0616
- #define KEY_SPRINT 0617
- #define KEY_SREDO 0620
- #define KEY_SREPLACE 0621
- #define KEY_SRIGHT 0622
- #define KEY_SRSUME 0623
- #define KEY_SSAVE 0624
- #define KEY_SSUSPEND 0625
- #define KEY_SUNDO 0626
- #define KEY_SUSPEND 0627
- #define KEY_UNDO 0630
- #define TRUE 1
- #define FALSE 0
- #define A_STANDOUT 0001 /* standout mode */
- #define A_NC_BIG5 0x0100 /* Handle Chinese Big5 characters */
- #define SCROLL 1 /* text has been scrolled */
- #define CLEAR 2 /* window has been cleared */
- #define CHANGE 3 /* window has been changed */
- #define UP 1 /* direction of scroll */
- #define DOWN 2
- struct _line {
- struct _line *next_screen;
- struct _line *prev_screen;
- char *row;
- char *attributes;
- int last_char;
- int changed;
- int scroll;
- int number;
- };
- struct _line *top_of_win;
- typedef struct WIND {
- int SR; /* starting row */
- int SC; /* starting column */
- int LC; /* last column */
- int LX; /* last cursor column position */
- int LY; /* last cursor row position */
- int Attrib; /* attributes active in window */
- int Num_lines; /* number of lines */
- int Num_cols; /* number of columns */
- int scroll_up; /* number of lines moved */
- int scroll_down;
- int SCROLL_CLEAR; /* indicates that window has been scrolled or cleared */
- struct _line *first_line;
- struct _line **line_array;
- } WINDOW;
- extern WINDOW *curscr;
- extern WINDOW *stdscr;
- extern int LINES, COLS;
- #if defined(__STDC__) || defined(__cplusplus)
- #define P_(s) s
- #else
- #define P_(s) ()
- #endif
- extern void copy_window P_((WINDOW *origin, WINDOW *destination));
- extern void reinitscr P_((int));
- extern void initscr P_((void));
- extern int Get_int P_((void));
- extern int INFO_PARSE P_((void));
- extern int AtoI P_((void));
- extern void Key_Get P_((void));
- extern void keys_vt100 P_((void));
- extern struct _line *Screenalloc P_((int columns));
- extern WINDOW *newwin P_((int lines, int cols, int start_l, int start_c));
- extern int Operation P_((int Temp_Stack[], int place));
- extern void Info_Out P_((char *string, int p_list[], int place));
- extern void wmove P_((WINDOW *window, int row, int column));
- extern void clear_line P_((struct _line *line, int column, int cols));
- extern void werase P_((WINDOW *window));
- extern void wclrtoeol P_((WINDOW *window));
- extern void wrefresh P_((WINDOW *window));
- extern void touchwin P_((WINDOW *window));
- extern void wnoutrefresh P_((WINDOW *window));
- extern void flushinp P_((void));
- extern void ungetch P_((int c));
- extern int wgetch P_((WINDOW *window));
- extern void Clear P_((int));
- extern int Get_key P_((int first_char));
- extern void waddch P_((WINDOW *window, int c));
- extern void winsertln P_((WINDOW *window));
- extern void wdeleteln P_((WINDOW *window));
- extern void wclrtobot P_((WINDOW *window));
- extern void wstandout P_((WINDOW *window));
- extern void wstandend P_((WINDOW *window));
- extern void waddstr P_((WINDOW *window, char *string));
- extern void clearok P_((WINDOW *window, int flag));
- extern void echo P_((void));
- extern void noecho P_((void));
- extern void raw P_((void));
- extern void noraw P_((void));
- extern void nl P_((void));
- extern void nonl P_((void));
- extern void saveterm P_((void));
- extern void fixterm P_((void));
- extern void resetterm P_((void));
- extern void nodelay P_((WINDOW *window, int flag));
- extern void idlok P_((WINDOW *window, int flag));
- extern void keypad P_((WINDOW *window, int flag));
- extern void savetty P_((void));
- extern void resetty P_((void));
- extern void endwin P_((void));
- extern void delwin P_((WINDOW *window));
- extern void wprintw P_((WINDOW *window, const char* format, ...));
- extern void iout P_((WINDOW *window, int value));
- extern int Comp_line P_((struct _line *line1, struct _line *line2));
- extern struct _line *Insert_line P_((int row, int end_row, WINDOW *window));
- extern struct _line *Delete_line P_((int row, int end_row, WINDOW *window));
- extern void CLEAR_TO_EOL P_((WINDOW *window, int row, int column));
- extern int check_delete P_((WINDOW *window, int line, int offset, struct _line *pointer_new, struct _line *pointer_old));
- extern int check_insert P_((WINDOW *window, int line, int offset, struct _line *pointer_new, struct _line *pointer_old));
- extern void doupdate P_((void));
- extern void Position P_((WINDOW *window, int row, int col));
- extern void Char_del P_((char *line, char *attrib, int offset, int maxlen));
- extern void Char_ins P_((char *line, char *attrib, int newc, int newatt, int offset, int maxlen));
- extern void attribute_on P_((void));
- extern void attribute_off P_((void));
- extern void Char_out P_((int newc, int newatt, char *line, char *attrib, int offset));
- extern void nc_setattrib P_((int));
- extern void nc_clearattrib P_((int));
- #undef P_