From 36f8ca87d03a31dfdd4a41f7c99bf7ed245bc0a9 Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Wed, 31 May 2000 09:02:51 +0000 Subject: [PATCH] * new version (2.07) of ncrt and associated files committed --- packages/ncurses/ncrt.inc | 14 + packages/ncurses/ncrt.pp | 1 + packages/ncurses/ncurses.pp | 2645 ++++++++++++++++++----------------- packages/ncurses/ocrt.pp | 24 + 4 files changed, 1391 insertions(+), 1293 deletions(-) diff --git a/packages/ncurses/ncrt.inc b/packages/ncurses/ncrt.inc index 298e677afc..c8a5a3a3f8 100644 --- a/packages/ncurses/ncrt.inc +++ b/packages/ncurses/ncrt.inc @@ -32,6 +32,10 @@ 2.06 | 01/11/00 | kjw | 1) Oops! 2.04 change went back to stdscr vs. ActiveWn. | Keypressed works correctly with windows again. | 2) ClrEol works correctly now with color. + 2.07 | 01/31/00 | kjw | 1) Added NCRT_VERSION constants. + | 2) Added prev_textattr to detect a change in + | TextAttr value so current color gets updated. + | 3) See ocrt.pp ------------------------------------------------------------------------------ } @@ -59,6 +63,11 @@ Procedure Window(x,y,x1,y1 : integer); Const + NCRT_VERSION_MAJOR = 2; + NCRT_VERSION_MINOR = 7; + NCRT_VERSION_PATCH = 0; + NCRT_VERSION = '2.07.00'; + { CRT modes } BW40 = 0; { 40x25 B/W on Color Adapter } CO40 = 1; { 40x25 Color on Color Adapter } @@ -165,6 +174,7 @@ Var MaxRows, { set at startup to terminal values } MaxCols : longint; { for columns and rows } tios : TermIOS; { saves the term settings at startup } + prev_textattr : integer; { detect change in TextAttr } {========================================================================== This code chunk is from the FPC source tree in rtl/inc/textrec.inc. @@ -335,6 +345,7 @@ End; Procedure nWinColor(win : pWindow; att : integer); Begin wattr_set(win,CursesAtts(att)); + prev_textattr := att; End; { clear the specified window } @@ -523,6 +534,8 @@ End; { write a string to a window at the current cursor position } Procedure nWrite(win : pWindow; s : string); Begin + If TextAttr <> prev_textattr Then + nWinColor(win,TextAttr); waddstr(win,StrPCopy(ps,s)); If doRefresh Then wrefresh(win); End; @@ -742,6 +755,7 @@ End; function Keypressed : boolean; var l : longint; + fd : fdSet; Begin Keypressed := FALSE; nodelay(ActiveWn,bool(TRUE)); diff --git a/packages/ncurses/ncrt.pp b/packages/ncurses/ncrt.pp index 664c9b3170..874a85ee87 100644 --- a/packages/ncurses/ncrt.pp +++ b/packages/ncurses/ncrt.pp @@ -24,6 +24,7 @@ Unit nCrt; 2.04 | 01/04/00 | kjw | See ncrt.inc 2.05 | 01/06/00 | kjw | See ncrt.inc, ocrt.pp 2.06 | 01/11/00 | kjw | See ncrt.inc. + 2.07 | 01/31/00 | kjw | See ncrt.inc, ocrt.pp ------------------------------------------------------------------------------ } Interface diff --git a/packages/ncurses/ncurses.pp b/packages/ncurses/ncurses.pp index 26f279db2a..3b101841d0 100644 --- a/packages/ncurses/ncurses.pp +++ b/packages/ncurses/ncurses.pp @@ -1,10 +1,9 @@ -{ - $Id$ +unit ncurses; + +{ Unit to access the ncurses library Copyright (c) 1998 by Michael Van Canneyt member of the Free Pascal development team - Unit to access the ncurses library - See the file COPYING.FPC included in this distribution, for details about the copyright. @@ -13,38 +12,52 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. **********************************************************************} - { - Many thanks to Ken Wright for his patches ! + Many thanks to Ken Wright for his patches !! } -unit ncurses; -interface + interface -{$packrecords C} +{$packrecords 4} {$linklib ncurses} {$linklib c} -{ Manually Added types } -Type - Bool = byte; - PINTEGER = ^Longint; - PLongint = ^ longint; - PFILE = pointer; + { Manually Added types } + Type -const - NCURSES_VERSION_MAJOR = 5; - NCURSES_VERSION_MINOR = 0; - NCURSES_VERSION_PATCH = 19991023; - NCURSES_VERSION = '5.0'; + Bool = byte; + PINTEGER = ^Longint; + PLongint = ^ longint; + PFILE = pointer; -type - chtype = longint; - pchtype = pchar; + const + NCURSES_VERSION_MAJOR = 3; + NCURSES_VERSION_MINOR = 0; + NCURSES_VERSION_PATCH = 980228; + NCURSES_VERSION = '3.0'; + { + #ifdef NCURSES_NOMACROS + #define NCURSES_ATTR_T attr_t + #endif -const - CXX_BUILTIN_BOOL = 1; -type - CXX_TYPE_OF_BOOL = char; + #ifndef NCURSES_ATTR_T + #define NCURSES_ATTR_T int + #endif + + #ifndef NCURSES_CONST + #define NCURSES_CONST + #endif + } + + type + + chtype = longint; + pchtype = pchar; + + const + CXX_BUILTIN_BOOL = 1; + type + + CXX_TYPE_OF_BOOL = char; Var COLORS : longint;external name 'COLORS'; @@ -78,8 +91,8 @@ Var function ACS_HLINE : chtype; function ACS_VLINE : chtype; function ACS_PLUS : chtype; - function ACS_S1 : chtype; - function ACS_S9 : chtype; + function ACS_S1 : chtype; + function ACS_S9 : chtype; function ACS_DIAMOND : chtype; function ACS_CKBOARD : chtype; function ACS_DEGREE : chtype; @@ -92,11 +105,11 @@ Var function ACS_BOARD : chtype; function ACS_LANTERN : chtype; function ACS_BLOCK : chtype; - function ACS_S3 : chtype; - function ACS_S7 : chtype; + function ACS_S3 : chtype; + function ACS_S7 : chtype; function ACS_LEQUAL : chtype; function ACS_GEQUAL : chtype; - function ACS_PI : chtype; + function ACS_PI : chtype; function ACS_NEQUAL : chtype; function ACS_STERLING : chtype; { @@ -106,17 +119,17 @@ Var here only uses B and S. } { - #define ACS_BSSB ACS_ULCORNER - #define ACS_SSBB ACS_LLCORNER - #define ACS_BBSS ACS_URCORNER - #define ACS_SBBS ACS_LRCORNER - #define ACS_SBSS ACS_RTEE - #define ACS_SSSB ACS_LTEE - #define ACS_SSBS ACS_BTEE - #define ACS_BSSS ACS_TTEE - #define ACS_BSBS ACS_HLINE - #define ACS_SBSB ACS_VLINE - #define ACS_SSSS ACS_PLUS + #define ACS_BSSB ACS_ULCORNER + #define ACS_SSBB ACS_LLCORNER + #define ACS_BBSS ACS_URCORNER + #define ACS_SBBS ACS_LRCORNER + #define ACS_SBSS ACS_RTEE + #define ACS_SSSB ACS_LTEE + #define ACS_SSBS ACS_BTEE + #define ACS_BSSS ACS_TTEE + #define ACS_BSBS ACS_HLINE + #define ACS_SBSB ACS_VLINE + #define ACS_SSSS ACS_PLUS } Const ERR = -(1); @@ -202,223 +215,223 @@ Var COLS : longint;external name 'COLS'; TABSIZE : longint;external name 'TABSIZE'; - Function define_key(_para1:pchar; _para2:longint):longint; cdecl;external; - Function keyok(_para1:longint; _para2:bool):longint; cdecl;external; - Function resizeterm(_para1:longint; _para2:longint):longint; cdecl;external; - Function use_default_colors:longint; cdecl;external; - Function wresize(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external; + Function define_key(_para1:pchar; _para2:longint):longint; cdecl; + Function keyok(_para1:longint; _para2:bool):longint; cdecl; + Function resizeterm(_para1:longint; _para2:longint):longint; cdecl; + Function use_default_colors:longint; cdecl; + Function wresize(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl; { - extern char ttytype[]; + extern char ttytype[]; } - Function baudrate:longint; cdecl;external; - Function beep:longint; cdecl;external; - Function can_change_color:bool; cdecl;external; - Function cbreak:longint; cdecl;external; - Function clearok(_para1:pWINDOW; _para2:bool):longint; cdecl;external; - Function color_content(_para1:longint; _para2:plongint; _para3:plongint; _para4:plongint):longint; cdecl;external; + Function baudrate:longint; cdecl; + Function beep:longint; cdecl; + Function can_change_color:bool; cdecl; + Function cbreak:longint; cdecl; + Function clearok(_para1:pWINDOW; _para2:bool):longint; cdecl; + Function color_content(_para1:longint; _para2:plongint; _para3:plongint; _para4:plongint):longint; cdecl; Function copywin(_para1:pWINDOW; _para2:pWINDOW; _para3:longint; _para4:longint; _para5:longint; - _para6:longint; _para7:longint; _para8:longint; _para9:longint):longint;cdecl;external; - Function curs_set(_para1:longint):longint; cdecl;external; - Function def_prog_mode:longint; cdecl;external; - Function def_shell_mode:longint; cdecl;external; - Function delay_output(_para1:longint):longint; cdecl;external; - procedure delscreen(_para1:pSCREEN);cdecl;external; - Function delwin(_para1:pWINDOW):longint; cdecl;external; + _para6:longint; _para7:longint; _para8:longint; _para9:longint):longint;cdecl; + Function curs_set(_para1:longint):longint; cdecl; + Function def_prog_mode:longint; cdecl; + Function def_shell_mode:longint; cdecl; + Function delay_output(_para1:longint):longint; cdecl; + procedure delscreen(_para1:pSCREEN);cdecl; + Function delwin(_para1:pWINDOW):longint; cdecl; - Function doupdate:longint; cdecl;external; + Function doupdate:longint; cdecl; - Function echo:longint; cdecl;external; - Function endwin:longint; cdecl;external; - Function erasechar:char; cdecl;external; - procedure filter;cdecl;external; - Function flash:longint; cdecl;external; - Function flushinp:longint; cdecl;external; + Function echo:longint; cdecl; + Function endwin:longint; cdecl; + Function erasechar:char; cdecl; + procedure filter;cdecl; + Function flash:longint; cdecl; + Function flushinp:longint; cdecl; - Function halfdelay(_para1:longint):longint; cdecl;external; - Function has_colors:bool; cdecl;external; - Function has_ic:longint; cdecl;external; - Function has_il:longint; cdecl;external; - procedure idcok(_para1:pWINDOW; _para2:bool);cdecl;external; - Function idlok(_para1:pWINDOW; _para2:bool):longint; cdecl;external; - procedure immedok(_para1:pWINDOW; _para2:bool);cdecl;external; + Function halfdelay(_para1:longint):longint; cdecl; + Function has_colors:bool; cdecl; + Function has_ic:longint; cdecl; + Function has_il:longint; cdecl; + procedure idcok(_para1:pWINDOW; _para2:bool);cdecl; + Function idlok(_para1:pWINDOW; _para2:bool):longint; cdecl; + procedure immedok(_para1:pWINDOW; _para2:bool);cdecl; - Function init_color(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint; cdecl;external; - Function init_pair(_para1:longint; _para2:longint; _para3:longint):longint; cdecl;external; - Function intrflush(_para1:pWINDOW; _para2:bool):longint; cdecl;external; - Function isendwin:longint; cdecl;external; - Function is_linetouched(_para1:pWINDOW; _para2:longint):longint; cdecl;external; - Function is_wintouched(_para1:pWINDOW):longint; cdecl;external; + Function init_color(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint; cdecl; + Function init_pair(_para1:longint; _para2:longint; _para3:longint):longint; cdecl; + Function intrflush(_para1:pWINDOW; _para2:bool):longint; cdecl; + Function isendwin:longint; cdecl; + Function is_linetouched(_para1:pWINDOW; _para2:longint):longint; cdecl; + Function is_wintouched(_para1:pWINDOW):longint; cdecl; - Function keypad(_para1:pWINDOW; _para2:bool):longint; cdecl;external; - Function killchar:char; cdecl;external; - Function leaveok(_para1:pWINDOW; _para2:bool):longint; cdecl;external; + Function keypad(_para1:pWINDOW; _para2:bool):longint; cdecl; + Function killchar:char; cdecl; + Function leaveok(_para1:pWINDOW; _para2:bool):longint; cdecl; - Function meta(_para1:pWINDOW; _para2:bool):longint; cdecl;external; - Function mvcur(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint; cdecl;external; - Function mvderwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external; + Function meta(_para1:pWINDOW; _para2:bool):longint; cdecl; + Function mvcur(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint; cdecl; + Function mvderwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl; { - extern int mvprintw(int,int,const char ,...) - GCC_PRINTFLIKE(3,4); - extern int mvscanw(int,int,const char ,...) - GCC_SCANFLIKE(3,4); + extern int mvprintw(int,int,const char ,...) + GCC_PRINTFLIKE(3,4); + extern int mvscanw(int,int,const char ,...) + GCC_SCANFLIKE(3,4); } - Function mvwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external; + Function mvwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl; { - extern int mvwprintw(WINDOW ,int,int,const char ,...) - GCC_PRINTFLIKE(4,5); - extern int mvwscanw(WINDOW ,int,int,const char ,...) - GCC_SCANFLIKE(4,5); + extern int mvwprintw(WINDOW ,int,int,const char ,...) + GCC_PRINTFLIKE(4,5); + extern int mvwscanw(WINDOW ,int,int,const char ,...) + GCC_SCANFLIKE(4,5); } - Function napms(_para1:longint):longint; cdecl;external; + Function napms(_para1:longint):longint; cdecl; - Function nl:longint; cdecl;external; - Function nocbreak:longint; cdecl;external; - Function nodelay(_para1:pWINDOW; _para2:bool):longint; cdecl;external; - Function noecho:longint; cdecl;external; - Function nonl:longint; cdecl;external; - Function noqiflush:longint; cdecl;external; - Function noraw:longint; cdecl;external; - Function notimeout(_para1:pWINDOW; _para2:bool):longint; cdecl;external; + Function nl:longint; cdecl; + Function nocbreak:longint; cdecl; + Function nodelay(_para1:pWINDOW; _para2:bool):longint; cdecl; + Function noecho:longint; cdecl; + Function nonl:longint; cdecl; + Function noqiflush:longint; cdecl; + Function noraw:longint; cdecl; + Function notimeout(_para1:pWINDOW; _para2:bool):longint; cdecl; - Function overlay(_para1:pWINDOW; _para2:pWINDOW):longint; cdecl;external; + Function overlay(_para1:pWINDOW; _para2:pWINDOW):longint; cdecl; - Function overwrite(_para1:pWINDOW; _para2:pWINDOW):longint; cdecl;external; - Function pair_content(_para1:longint; _para2:plongint; _para3:plongint):longint; cdecl;external; + Function overwrite(_para1:pWINDOW; _para2:pWINDOW):longint; cdecl; + Function pair_content(_para1:longint; _para2:plongint; _para3:plongint):longint; cdecl; - Function pechochar(_para1:pWINDOW; _para2:chtype):longint; cdecl;external; + Function pechochar(_para1:pWINDOW; _para2:chtype):longint; cdecl; Function pnoutrefresh(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint; - _para6:longint; _para7:longint):longint;cdecl;external; + _para6:longint; _para7:longint):longint;cdecl; Function prefresh(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint; - _para6:longint; _para7:longint):longint;cdecl;external; + _para6:longint; _para7:longint):longint;cdecl; { - extern int printw(const char ,...) - GCC_PRINTFLIKE(1,2); + extern int printw(const char ,...) + GCC_PRINTFLIKE(1,2); } - Function putp(_para1:pchar):longint; cdecl;external; - Function putwin(_para1:pWINDOW; _para2:pFILE):longint; cdecl;external; - Function qiflush:longint; cdecl;external; - Function raw:longint; cdecl;external; - Function resetty:longint; cdecl;external; - Function reset_prog_mode:longint; cdecl;external; - Function reset_shell_mode:longint; cdecl;external; + Function putp(_para1:pchar):longint; cdecl; + Function putwin(_para1:pWINDOW; _para2:pFILE):longint; cdecl; + Function qiflush:longint; cdecl; + Function raw:longint; cdecl; + Function resetty:longint; cdecl; + Function reset_prog_mode:longint; cdecl; + Function reset_shell_mode:longint; cdecl; { - Function ripoffline(_para1:longint; init:function (_para1:pWINDOW; _para2:longint):longint):longint; cdecl;external; + Function ripoffline(_para1:longint; init:function (_para1:pWINDOW; _para2:longint):longint):longint; cdecl; } - Function savetty:longint; cdecl;external; + Function savetty:longint; cdecl; { - extern int scanw(const char ,...) - GCC_SCANFLIKE(1,2); + extern int scanw(const char ,...) + GCC_SCANFLIKE(1,2); } - Function scr_dump(_para1:pchar):longint; cdecl;external; + Function scr_dump(_para1:pchar):longint; cdecl; - Function scr_init(_para1:pchar):longint; cdecl;external; - Function scrollok(_para1:pWINDOW; _para2:bool):longint; cdecl;external; + Function scr_init(_para1:pchar):longint; cdecl; + Function scrollok(_para1:pWINDOW; _para2:bool):longint; cdecl; - Function scr_restore(_para1:pchar):longint; cdecl;external; + Function scr_restore(_para1:pchar):longint; cdecl; - Function scr_set(_para1:pchar):longint; cdecl;external; + Function scr_set(_para1:pchar):longint; cdecl; - Function slk_attroff(_para1:attr_t):longint; cdecl;external; + Function slk_attroff(_para1:attr_t):longint; cdecl; - Function slk_attron(_para1:attr_t):longint; cdecl;external; + Function slk_attron(_para1:attr_t):longint; cdecl; - Function slk_attrset(_para1:attr_t):longint; cdecl;external; - Function slk_attr:attr_t; cdecl;external; - Function slk_clear:longint; cdecl;external; - Function slk_init(_para1:longint):longint; cdecl;external; + Function slk_attrset(_para1:attr_t):longint; cdecl; + Function slk_attr:attr_t; cdecl; + Function slk_clear:longint; cdecl; + Function slk_init(_para1:longint):longint; cdecl; - Function slk_noutrefresh:longint; cdecl;external; - Function slk_refresh:longint; cdecl;external; - Function slk_restore:longint; cdecl;external; + Function slk_noutrefresh:longint; cdecl; + Function slk_refresh:longint; cdecl; + Function slk_restore:longint; cdecl; - Function slk_set(_para1:longint; _para2:pchar; _para3:longint):longint; cdecl;external; - Function slk_touch:longint; cdecl;external; - Function start_color:longint; cdecl;external; + Function slk_set(_para1:longint; _para2:pchar; _para3:longint):longint; cdecl; + Function slk_touch:longint; cdecl; + Function start_color:longint; cdecl; - Function syncok(_para1:pWINDOW; _para2:bool):longint; cdecl;external; - Function termattrs:chtype; cdecl;external; + Function syncok(_para1:pWINDOW; _para2:bool):longint; cdecl; + Function termattrs:chtype; cdecl; - Function tigetflag(_para1:pchar):longint; cdecl;external; + Function tigetflag(_para1:pchar):longint; cdecl; - Function tigetnum(_para1:pchar):longint; cdecl;external; + Function tigetnum(_para1:pchar):longint; cdecl; - Function derwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl;external; - Function dupwin (_para1:pWINDOW):PWINDOW; cdecl;external; - Function getwin (_para1:pFILE):PWINDOW; cdecl;external; - Function initscr :PWINDOW; cdecl;external; - Function keyname (_para1:longint):pchar; cdecl;external; - Function longname :pchar; cdecl;external; - Function newpad (_para1:longint; _para2:longint):PWINDOW; cdecl;external; - Function newterm (_para1:pchar; _para2:pFILE; _para3:pFILE):PSCREEN; cdecl;external; - Function newwin (_para1:longint; _para2:longint; _para3:longint; _para4:longint):PWINDOW; cdecl;external; - Function set_term (_para1:pSCREEN):PSCREEN; cdecl;external; - Function slk_label (_para1:longint):pchar; cdecl;external; - Function subpad (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl;external; - Function subwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl;external; - Function termname :pchar; cdecl;external; - Function tigetstr (_para1:pchar):pchar; cdecl;external; - Function typeahead(_para1:longint):longint; cdecl;external; - Function ungetch(_para1:longint):longint; cdecl;external; - procedure use_env(_para1:bool);cdecl;external; - Function vidattr(_para1:chtype):longint; cdecl;external; + Function derwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl; + Function dupwin (_para1:pWINDOW):PWINDOW; cdecl; + Function getwin (_para1:pFILE):PWINDOW; cdecl; + Function initscr :PWINDOW; cdecl; + Function keyname (_para1:longint):pchar; cdecl; + Function longname :pchar; cdecl; + Function newpad (_para1:longint; _para2:longint):PWINDOW; cdecl; + Function newterm (_para1:pchar; _para2:pFILE; _para3:pFILE):PSCREEN; cdecl; + Function newwin (_para1:longint; _para2:longint; _para3:longint; _para4:longint):PWINDOW; cdecl; + Function set_term (_para1:pSCREEN):PSCREEN; cdecl; + Function slk_label (_para1:longint):pchar; cdecl; + Function subpad (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl; + Function subwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl; + Function termname :pchar; cdecl; + Function tigetstr (_para1:pchar):pchar; cdecl; + Function typeahead(_para1:longint):longint; cdecl; + Function ungetch(_para1:longint):longint; cdecl; + procedure use_env(_para1:bool);cdecl; + Function vidattr(_para1:chtype):longint; cdecl; { - Function vidputs(_para1:chtype; _para2:function (_para1:longint):longint):longint; cdecl;external; + Function vidputs(_para1:chtype; _para2:function (_para1:longint):longint):longint; cdecl; } { - Function vwprintw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint; cdecl;external; - Function vwscanw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint; cdecl;external; + Function vwprintw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint; cdecl; + Function vwscanw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint; cdecl; } - Function waddch(_para1:pWINDOW; _para2:chtype):longint; cdecl;external; - Function waddchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint; cdecl;external; - Function waddnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;external; - Function wattr_on(_para1:pWINDOW; _para2:attr_t):longint; cdecl;external; - Function wattr_off(_para1:pWINDOW; _para2:attr_t):longint; cdecl;external; - Function wbkgd(_para1:pWINDOW; _para2:chtype):longint; cdecl;external; - procedure wbkgdset(_para1:pWINDOW; _para2:chtype);cdecl;external; + Function waddch(_para1:pWINDOW; _para2:chtype):longint; cdecl; + Function waddchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint; cdecl; + Function waddnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl; + Function wattr_on(_para1:pWINDOW; _para2:attr_t):longint; cdecl; + Function wattr_off(_para1:pWINDOW; _para2:attr_t):longint; cdecl; + Function wbkgd(_para1:pWINDOW; _para2:chtype):longint; cdecl; + procedure wbkgdset(_para1:pWINDOW; _para2:chtype);cdecl; Function wborder(_para1:pWINDOW; _para2:chtype; _para3:chtype; _para4:chtype; _para5:chtype; - _para6:chtype; _para7:chtype; _para8:chtype; _para9:chtype):longint;cdecl;external; - Function wchgat(_para1:pWINDOW; _para2:longint; _para3:attr_t; _para4:longint; _para5:pointer):longint; cdecl;external; - Function wclear(_para1:pWINDOW):longint; cdecl;external; - Function wclrtobot(_para1:pWINDOW):longint; cdecl;external; - Function wclrtoeol(_para1:pWINDOW):longint; cdecl;external; - procedure wcursyncup(_para1:pWINDOW);cdecl;external; - Function wdelch(_para1:pWINDOW):longint; cdecl;external; - Function wechochar(_para1:pWINDOW; _para2:chtype):longint; cdecl;external; - Function werase(_para1:pWINDOW):longint; cdecl;external; - Function wgetch(_para1:pWINDOW):longint; cdecl;external; - Function wgetnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;external; - Function whline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint; cdecl;external; + _para6:chtype; _para7:chtype; _para8:chtype; _para9:chtype):longint;cdecl; + Function wchgat(_para1:pWINDOW; _para2:longint; _para3:attr_t; _para4:longint; _para5:pointer):longint; cdecl; + Function wclear(_para1:pWINDOW):longint; cdecl; + Function wclrtobot(_para1:pWINDOW):longint; cdecl; + Function wclrtoeol(_para1:pWINDOW):longint; cdecl; + procedure wcursyncup(_para1:pWINDOW);cdecl; + Function wdelch(_para1:pWINDOW):longint; cdecl; + Function wechochar(_para1:pWINDOW; _para2:chtype):longint; cdecl; + Function werase(_para1:pWINDOW):longint; cdecl; + Function wgetch(_para1:pWINDOW):longint; cdecl; + Function wgetnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl; + Function whline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint; cdecl; Function winch (win : PWindow) : longint; - Function winchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint; cdecl;external; - Function winnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;external; - Function winsch(_para1:pWINDOW; _para2:chtype):longint; cdecl;external; - Function winsdelln(_para1:pWINDOW; _para2:longint):longint; cdecl;external; - Function winsnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;external; - Function wmove(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external; - Function wnoutrefresh(_para1:pWINDOW):longint; cdecl;external; + Function winchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint; cdecl; + Function winnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl; + Function winsch(_para1:pWINDOW; _para2:chtype):longint; cdecl; + Function winsdelln(_para1:pWINDOW; _para2:longint):longint; cdecl; + Function winsnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl; + Function wmove(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl; + Function wnoutrefresh(_para1:pWINDOW):longint; cdecl; { - extern int wprintw(WINDOW ,const char ,...) - GCC_PRINTFLIKE(2,3); + extern int wprintw(WINDOW ,const char ,...) + GCC_PRINTFLIKE(2,3); } - Function wredrawln(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external; - Function wrefresh(_para1:pWINDOW):longint; cdecl;external; + Function wredrawln(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl; + Function wrefresh(_para1:pWINDOW):longint; cdecl; { - extern int wscanw(WINDOW ,const char ,...) - GCC_SCANFLIKE(2,3); + extern int wscanw(WINDOW ,const char ,...) + GCC_SCANFLIKE(2,3); } - Function wscrl(_para1:pWINDOW; _para2:longint):longint; cdecl;external; - Function wsetscrreg(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external; - procedure wsyncdown(_para1:pWINDOW);cdecl;external; - procedure wsyncup(_para1:pWINDOW);cdecl;external; - Function wtimeout(_para1:pWINDOW; _para2:longint):longint; cdecl;external; - Function wtouchln(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint):longint; cdecl;external; - Function wvline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint; cdecl;external; + Function wscrl(_para1:pWINDOW; _para2:longint):longint; cdecl; + Function wsetscrreg(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl; + procedure wsyncdown(_para1:pWINDOW);cdecl; + procedure wsyncup(_para1:pWINDOW);cdecl; + Function wtimeout(_para1:pWINDOW; _para2:longint):longint; cdecl; + Function wtouchln(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint):longint; cdecl; + Function wvline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint; cdecl; Function mvwchgat(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint; _para6:longint; - _para7:longint):longint;cdecl;external; + _para7:longint):longint;Cdecl; const A_NORMAL = 0; @@ -568,7 +581,7 @@ Var function mvinchnstr(y,x : longint; s : pchar;n : longint) : longint; function mvinchstr(y,x : longint; s : pchar) : longint; function mvinnstr(y,x : longint; s : pchar;n : longint) : longint; - function mvinsch(y,x: longint;c : chtype) : longint; + function mvinsch(y,x,c : longint) : longint; function mvinsnstr(y,x : longint; s : pchar;n : longint) : longint; function mvinsstr(y,x : longint; s : pchar) : longint; function mvinstr(y,x : longint; s : pchar) : longint; @@ -577,1105 +590,1151 @@ Var function attr_off(a : longint) : longint; function attr_on(a : longint) : longint; function attr_set(a : longint) : longint; + function box_set(w : pwindow;v,h : longint) : longint; function chgat(n,a,c,o : longint) : longint; function getbkgd(win : pwindow) : longint; + function hline_set(c,n : longint) : longint; function slk_attr_off(a : longint) : longint; function slk_attr_on(a : longint) : longint; function slk_attr_set(a : longint) : longint; function vid_attr(a : longint) : longint; + function vline_set(c,n : longint) : longint; function wattr_get(win : pwindow) : longint; { Pseudo-character tokens outside ASCII range. The curses wgetch() function will return any given one of these only if the corresponding k- capability is defined in your terminal's terminfo entry. } - const {octal} - KEY_CODE_YES = 256; {0400} - KEY_MIN = 257; {0401} - KEY_BREAK = 257; {0401} - KEY_DOWN = 258; {0402} - KEY_UP = 259; {0403} - KEY_LEFT = 260; {0404} - KEY_RIGHT = 261; {0405} - KEY_HOME = 262; {0406} - KEY_BACKSPACE = 263; {0407} - KEY_F0 = 264; {0410} + const {octal} + KEY_CODE_YES = 256; {0400} + KEY_MIN = 257; {0401} + KEY_BREAK = 257; {0401} + KEY_DOWN = 258; {0402} + KEY_UP = 259; {0403} + KEY_LEFT = 260; {0404} + KEY_RIGHT = 261; {0405} + KEY_HOME = 262; {0406} + KEY_BACKSPACE = 263; {0407} + KEY_F0 = 264; {0410} function KEY_F(n : longint) : longint; const - KEY_DL = 328; {0510} - KEY_IL = 329; {0511} - KEY_DC = 330; {0512} - KEY_IC = 331; {0513} - KEY_EIC = 332; {0514} - KEY_CLEAR = 333; {0515} - KEY_EOS = 334; {0516} - KEY_EOL = 335; {0517} - KEY_SF = 336; {0520} - KEY_SR = 337; {0521} - KEY_NPAGE = 338; {0522} - KEY_PPAGE = 339; {0523} - KEY_STAB = 340; {0524} - KEY_CTAB = 341; {0525} - KEY_CATAB = 342; {0526} - KEY_ENTER = 343; {0527} - KEY_SRESET = 344; {0530} - KEY_RESET = 345; {0531} - KEY_PRINT = 346; {0532} - KEY_LL = 347; {0533} - KEY_A1 = 348; {0534} - KEY_A3 = 349; {0535} - KEY_B2 = 350; {0536} - KEY_C1 = 351; {0537} - KEY_C3 = 352; {0540} - KEY_BTAB = 353; {0541} - KEY_BEG = 354; {0542} - KEY_CANCEL = 355; {0543} - KEY_CLOSE = 356; {0544} - KEY_COMMAND = 357; {0545} - KEY_COPY = 358; {0546} - KEY_CREATE = 359; {0547} - KEY_END = 360; {0550} - KEY_EXIT = 361; {0551} - KEY_FIND = 362; {0552} - KEY_HELP = 363; {0553} - KEY_MARK = 364; {0554} - KEY_MESSAGE = 365; {0555} - KEY_MOVE = 366; {0556} - KEY_NEXT = 367; {0557} - KEY_OPEN = 368; {0560} - KEY_OPTIONS = 369; {0561} - KEY_PREVIOUS = 370; {0562} - KEY_REDO = 371; {0563} - KEY_REFERENCE = 372; {0564} - KEY_REFRESH = 373; {0565} - KEY_REPLACE = 374; {0566} - KEY_RESTART = 375; {0567} - KEY_RESUME = 376; {0570} - KEY_SAVE = 377; {0571} - KEY_SBEG = 378; {0572} - KEY_SCANCEL = 379; {0573} - KEY_SCOMMAND = 380; {0574} - KEY_SCOPY = 381; {0575} - KEY_SCREATE = 382; {0576} - KEY_SDC = 383; {0577} - KEY_SDL = 384; {0600} - KEY_SELECT = 385; {0601} - KEY_SEND = 386; {0602} - KEY_SEOL = 387; {0603} - KEY_SEXIT = 388; {0604} - KEY_SFIND = 389; {0605} - KEY_SHELP = 390; {0606} - KEY_SHOME = 391; {0607} - KEY_SIC = 392; {0610} - KEY_SLEFT = 393; {0611} - KEY_SMESSAGE = 394; {0612} - KEY_SMOVE = 395; {0613} - KEY_SNEXT = 396; {0614} - KEY_SOPTIONS = 397; {0615} - KEY_SPREVIOUS = 398; {0616} - KEY_SPRINT = 399; {0617} - KEY_SREDO = 400; {0620} - KEY_SREPLACE = 401; {0621} - KEY_SRIGHT = 402; {0622} - KEY_SRSUME = 403; {0623} - KEY_SSAVE = 404; {0624} - KEY_SSUSPEND = 405; {0625} - KEY_SUNDO = 406; {0626} - KEY_SUSPEND = 407; {0627} - KEY_UNDO = 408; {0630} - KEY_MOUSE = 409; {0631} - KEY_RESIZE = 410; {0632} - KEY_MAX = 511; {0777} - - function mcprint(_para1:pchar; _para2:longint):longint;cdecl;external; - function has_key(_para1:longint):longint;cdecl;external; - -implementation - -function wgetstr(w : pwindow;s : pchar) : longint; -begin - wgetstr:=wgetnstr(w,s,-(1)); -end; - -function getnstr(s : pchar;n : longint) : longint; -begin - getnstr:=wgetnstr(stdscr,s,n); -end; - -function setterm(term : longint) : longint; -begin - { - setterm:=setupterm(term,1,plongint(0)); - } - setterm:=0; -end; - -function fixterm : longint; -begin - fixterm:=reset_prog_mode; -end; - -function resetterm : longint; -begin - resetterm:=reset_shell_mode; -end; - -function saveterm : longint; -begin - saveterm:=def_prog_mode; -end; - -function crmode : longint; -begin - crmode:=cbreak; -end; - -function nocrmode : longint; -begin - nocrmode:=nocbreak; -end; - -procedure getsyx(var y,x : longint); -begin - getyx(stdscr,y,x); -end; - -function getattrs(win : pwindow) : longint; -var - if_local1 : longint; -begin - if win<>nil then - if_local1:=win^._attrs - else - if_local1:=A_NORMAL; - getattrs:=if_local1; -end; - -function getcurx(win : pwindow) : longint; -var - if_local1 : longint; -begin - if win<>nil then - if_local1:=win^._curx - else - if_local1:=ERR; - getcurx:=if_local1; -end; - -function getcury(win : pwindow) : longint; -var - if_local1 : longint; -begin - if win<>Nil then - if_local1:=win^._cury - else - if_local1:=ERR; - getcury:=if_local1; -end; -function getbegx(win : pwindow) : longint; -var - if_local1 : longint; - -begin - if win<>Nil then - if_local1:=win^._begx - else - if_local1:=ERR; - getbegx:=if_local1; -end; - -function getbegy(win : pwindow) : longint; -var - if_local1 : longint; -begin - if win<>Nil then - if_local1:=win^._begy - else - if_local1:=ERR; - getbegy:=if_local1; -end; - -function getmaxx(win : pwindow) : longint; -var - if_local1 : longint; -begin - if win<>Nil then - if_local1:=(win^._maxx) + 1 - else - if_local1:=ERR; - getmaxx:=if_local1; -end; - -function getmaxy(win : pwindow) : longint; -var - if_local1 : longint; -begin - if win<>Nil then - if_local1:=(win^._maxy) + 1 - else - if_local1:=ERR; - getmaxy:=if_local1; -end; - -function getparx(win : pwindow) : longint; -var - if_local1 : longint; -begin - if win<>Nil then - if_local1:=win^._parx - else - if_local1:=ERR; - getparx:=if_local1; -end; - -function getpary(win : pwindow) : longint; -var - if_local1 : longint; -begin - if win<>Nil then - if_local1:=win^._pary - else - if_local1:=ERR; - getpary:=if_local1; -end; - -function wstandout(win : pwindow) : longint; -begin - wstandout:=wattr_set(win,A_STANDOUT); -end; - -function wstandend(win : pwindow) : longint; -begin - wstandend:=wattr_set(win,A_NORMAL); -end; - -function wattron(win : pwindow;at : longint) : longint; -begin - wattron:=wattr_on(win,at); -end; - -function wattroff(win : pwindow;at : longint) : longint; -begin - wattroff:=wattr_off(win,at); -end; - -function wattrset(win : pwindow;at : longint) : longint; -begin - wattrset:=wattr_set(win,at); -end; - -function scroll(win : pwindow) : longint; -begin - scroll:=wscrl(win,1); -end; - -function touchwin(win : pwindow) : longint; -begin - touchwin:=wtouchln(win,0,getmaxy(win),1); -end; - -function touchline(win : pwindow;s,c : longint) : longint; -begin - touchline:=wtouchln(win,s,c,1); -end; - -function untouchwin(win : pwindow) : longint; -begin - untouchwin:=wtouchln(win,0,getmaxy(win),0); -end; - -function box(win : pwindow;v,h : longint) : longint; -begin - box:=wborder(win,v,v,h,h,0,0,0,0); -end; - -function border(ls,rs,ts,bs,tl,tr,bl,br : longint) : longint; -begin - border:=wborder(stdscr,ls,rs,ts,bs,tl,tr,bl,br); -end; - -function hline(ch,n : longint) : longint; -begin - hline:=whline(stdscr,ch,n); -end; - -function vline(ch,n : longint) : longint; -begin - vline:=wvline(stdscr,ch,n); -end; - -function winstr(w : pwindow;s : pchar) : longint; -begin - winstr:=winnstr(w,s,-(1)); -end; - -function winchstr(w : pwindow;s : pchar) : longint; -begin - winchstr:=winchnstr(w,s,-1); -end; - -function winsstr(w : pwindow;s : pchar) : longint; -begin - winsstr:=winsnstr(w,s,-(1)); -end; - -function redrawwin(w : pwindow) : longint; -begin - redrawwin:=wredrawln(w,0,(w^._maxy) + 1); -end; - -function waddstr(win : pwindow;st : pchar) : longint; -begin - waddstr:=waddnstr(win,st,-1); -end; - -function waddchstr(win : pwindow;st : pchar) : longint; -begin - waddchstr:=waddchnstr(win,st,-1); -end; - -function addch(ch : longint) : longint; -begin - addch:=waddch(stdscr,ch); -end; - -function addchnstr(st : pchar;n : longint) : longint; -begin - addchnstr:=waddchnstr(stdscr,st,n); -end; - -function addchstr(st : pchar) : longint; -begin - addchstr:=waddchstr(stdscr,st); -end; - -function addnstr(st : pchar;n : longint) : longint; -begin - addnstr:=waddnstr(stdscr,st,n); -end; - -function addstr(st : pchar) : longint; -begin - addstr:=waddnstr(stdscr,st,-1); -end; - -function attroff(at : longint) : longint; -begin - attroff:=wattroff(stdscr,at); -end; - -function attron(at : longint) : longint; -begin - attron:=wattron(stdscr,at); -end; - -function attrset(at : longint) : longint; -begin - attrset:=wattrset(stdscr,at); -end; - -function bkgd(ch : longint) : longint; -begin - bkgd:=wbkgd(stdscr,ch); -end; - -procedure bkgdset(ch : longint); -begin - wbkgdset(stdscr,ch); -end; - -function clear : longint; -begin - clear:=wclear(stdscr); -end; - -function clrtobot : longint; -begin - clrtobot:=wclrtobot(stdscr); -end; - -function clrtoeol : longint; -begin - clrtoeol:=wclrtoeol(stdscr); -end; - -function delch : longint; -begin - delch:=wdelch(stdscr); -end; - -function deleteln : longint; -begin - deleteln:=winsdelln(stdscr,-1); -end; - -function echochar(c : longint) : longint; -begin - echochar:=wechochar(stdscr,c); -end; - -function erase : longint; -begin - erase:=werase(stdscr); -end; - -function getch : longint; -begin - getch:=wgetch(stdscr); -end; - -function getstr(st : pchar) : longint; -begin - getstr:=wgetstr(stdscr,st); -end; - -function inch : longint; -begin - inch:=winch(stdscr); -end; - -function inchnstr(s : pchar;n : longint) : longint; -begin - inchnstr:=winchnstr(stdscr,s,n); -end; - -function inchstr(s : pchar) : longint; -begin - inchstr:=winchstr(stdscr,s); -end; - -function innstr(s : pchar;n : longint) : longint; -begin - innstr:=winnstr(stdscr,s,n); -end; - -function insch(c : longint) : longint; -begin - insch:=winsch(stdscr,c); -end; - -function insdelln(n : longint) : longint; -begin - insdelln:=winsdelln(stdscr,n); -end; - -function insertln : longint; -begin - insertln:=winsdelln(stdscr,1); -end; - -function insnstr(s : pchar;n : longint) : longint; -begin - insnstr:=winsnstr(stdscr,s,n); -end; - -function insstr(s : pchar) : longint; -begin - insstr:=winsstr(stdscr,s); -end; - -function instr(s : pchar) : longint; -begin - instr:=winstr(stdscr,s); -end; - -function move(y,x : longint) : longint; -begin - move:=wmove(stdscr,y,x); -end; - -function refresh : longint; -begin - refresh:=wrefresh(stdscr); -end; - -function scrl(n : longint) : longint; -begin - scrl:=wscrl(stdscr,n); -end; - -function setscrreg(t,b : longint) : longint; -begin - setscrreg:=wsetscrreg(stdscr,t,b); -end; - -function standend : longint; -begin - standend:=wstandend(stdscr); -end; - -function standout : longint; -begin - standout:=wstandout(stdscr); -end; - -function timeout(delay : longint) : longint; -begin - timeout:=wtimeout(stdscr,delay); -end; - -function wdeleteln(win : pwindow) : longint; -begin - wdeleteln:=winsdelln(win,-1); -end; - -function winsertln(win : pwindow) : longint; -begin - winsertln:=winsdelln(win,1); -end; - -function mvaddch(y,x,ch : longint) : longint; -begin - mvaddch:=mvwaddch(stdscr,y,x,ch); -end; - -function mvaddchnstr(y,x: longint;st : pchar;n : longint) : longint; -begin - mvaddchnstr:=mvwaddchnstr(stdscr,y,x,st,n); -end; - -function mvaddchstr(y,x : longint;st : pchar) : longint; -begin - mvaddchstr:=mvwaddchstr(stdscr,y,x,st); -end; - -function mvaddnstr(y,x: longint;st : pchar; n : longint) : longint; -begin - mvaddnstr:=mvwaddnstr(stdscr,y,x,st,n); -end; - -function mvaddstr(y,x : longint;st : pchar) : longint; -begin - mvaddstr:=mvwaddstr(stdscr,y,x,st); -end; - -function mvdelch(y,x : longint) : longint; -begin - mvdelch:=mvwdelch(stdscr,y,x); -end; - -function mvgetch(y,x : longint) : longint; -begin - mvgetch:=mvwgetch(stdscr,y,x); -end; - -function mvgetnstr(y,x : longint;st : pchar;n : longint) : longint; -begin - mvgetnstr:=mvwgetnstr(stdscr,y,x,st,n); -end; - -function mvgetstr(y,x: longint;st : pchar) : longint; -begin - mvgetstr:=mvwgetstr(stdscr,y,x,st); -end; - -function mvhline(y,x : longint;c : chtype;n : longint) : longint; -begin - mvhline:=mvwhline(stdscr,y,x,c,n); -end; - -function mvinch(y,x : longint) : longint; -begin - mvinch:=mvwinch(stdscr,y,x); -end; - -function mvinchnstr(y,x : longint;s : pchar;n : longint) : longint; -begin - mvinchnstr:=mvwinchnstr(stdscr,y,x,s,n); -end; - -function mvinchstr(y,x : longint;s : pchar) : longint; -begin - mvinchstr:=mvwinchstr(stdscr,y,x,s); -end; - -function mvinnstr(y,x : longint;s : pchar;n : longint) : longint; -begin - mvinnstr:=mvwinnstr(stdscr,y,x,s,n); -end; - -function mvinsch(y,x: longint;c : chtype) : longint; -begin - mvinsch:=mvwinsch(stdscr,y,x,c); -end; - -function mvinsnstr(y,x : longint;s : pchar;n : longint) : longint; -begin - mvinsnstr:=mvwinsnstr(stdscr,y,x,s,n); -end; - -function mvinsstr(y,x : longint;s : pchar) : longint; -begin - mvinsstr:=mvwinsstr(stdscr,y,x,s); -end; - -function mvinstr(y,x : longint;s : pchar) : longint; -begin - mvinstr:=mvwinstr(stdscr,y,x,s); -end; - -function mvvline(y,x,c,n : longint) : longint; -begin - mvvline:=mvwvline(stdscr,y,x,c,n); -end; - -function attr_get : longint; -begin - attr_get:=wattr_get(stdscr); -end; - -function attr_off(a : longint) : longint; -begin - attr_off:=wattr_off(stdscr,a); -end; - -function attr_on(a : longint) : longint; -begin - attr_on:=wattr_on(stdscr,a); -end; - -function attr_set(a : longint) : longint; -begin - attr_set:=wattr_set(stdscr,a); -end; - -function chgat(n,a,c,o : longint) : longint; -begin - chgat:=wchgat(stdscr,n,a,c,pointer(o)); -end; - -function getbkgd(win : pwindow) : longint; -begin - getbkgd:=win^._bkgd; -end; - -function mvchgat(y,x,n,a,c,o : longint) : longint; -begin - mvchgat:=mvwchgat(stdscr,y,x,n,a,c,o); -end; - -function slk_attr_off(a : longint) : longint; -begin - slk_attr_off:=slk_attroff(a); -end; - -function slk_attr_on(a : longint) : longint; -begin - slk_attr_on:=slk_attron(a); -end; - -function slk_attr_set(a : longint) : longint; -begin - slk_attr_set:=slk_attrset(a); -end; - -function vid_attr(a : longint) : longint; -begin - vid_attr:=vidattr(a); -end; - -function wattr_get(win : pwindow) : longint; -begin - wattr_get:=win^._attrs; -end; - -function KEY_F(n : longint) : longint; -begin - KEY_F:=KEY_F0 + n; -end; - -procedure getyx(win : pwindow; var y,x : longint); -begin - X:=ERR; - Y:=ERR; - if Win<>Nil then - begin - Y:=win^._cury; - X:=Win^._curx; - end; -end; - -procedure getbegyx(win : pwindow; var y,x : longint); -begin - X:=ERR; - Y:=ERR; - if Win<>Nil then - begin - Y:=win^._begy; - X:=Win^._begx; - end; -end; - -procedure getmaxyx(win : pwindow; var y,x : longint); -begin - X:=ERR; - Y:=ERR; - if Win<>Nil then - begin - Y:=win^._maxy+1; - X:=Win^._maxx+1; - end; -end; - -procedure getparyx(win : pwindow; var y,x : longint); -begin - X:=ERR; - Y:=ERR; - if Win<>Nil then - begin - Y:=win^._pary; - X:=Win^._parx; - end; -end; - -function winch (win : PWindow) : longint; -begin - if win<>nil then - winch:=win^._line[win^._cury].text[Win^ ._curx] - else - winch:=0; -end; - -function wattr_set(win : pwindow; at : longint) : longint; -begin - If win<>nil then - begin - win^._attrs := at; - wattr_set:=at; - end - else - wattr_set:=0; -end; - -procedure setsyx (y,x : longint); -begin - stdscr^._cury := y; - stdscr^._curx := x; -end; - -function mvwaddch(win : pwindow;y,x : longint; ch : chtype) : longint; -begin - if wmove(win,y,x) = ERR then - exit(ERR) - else - exit(waddch(win,ch)) -end; - -function mvwaddchnstr(win : pwindow;y,x : longint;st : pchar;n : longint) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(waddchnstr(win,st,n)) -end; - -function mvwaddchstr(win : pwindow;y,x : longint;st : pchar) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(waddchnstr(win,st,-1)) -end; - -function mvwaddnstr(win : pwindow;y,x : longint;st : pchar;n : longint) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(waddnstr(win,st,n)) -end; - -function mvwaddstr(win : pwindow;y,x : longint;st : pchar) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(waddnstr(win,st,-1)) -end; - -function mvwdelch(win : pwindow;y,x : longint) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(wdelch(win)) -end; - -function mvwgetch(win : pwindow;y,x : longint) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(wgetch(win)) -end; - -function mvwgetnstr(win : pwindow;y,x : longint;st : pchar;n: longint) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(wgetnstr(win,st,n)) -end; - -function mvwgetstr(win : pwindow;y,x : longint;st: pchar) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(wgetstr(win,st)) -end; - -function mvwhline(win : pwindow;y,x : longint;c : chtype;n : longint) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(whline(win,c,n)) -end; - -function mvwinch(win : pwindow;y,x : longint) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(winch(win)) -end; - -function mvwinchnstr(win : pwindow;y,x : longint;s : pchar; n : longint) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(winchnstr(win,s,n)) -end; - -function mvwinchstr(win : pwindow;y,x : longint;s : pchar) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(winchstr(win,s)) -end; - -function mvwinnstr(win : pwindow;y,x : longint;s : pchar;n : longint) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(winnstr(win,s,n)) -end; - -function mvwinsch(win : pwindow;y,x : longint;c : chtype) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(winsch(win,c)) -end; - -function mvwinsnstr(win : pwindow;y,x : longint;s : pchar;n : longint) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(winsnstr(win,s,n)) -end; - -function mvwinsstr(win : pwindow;y,x : longint;s : pchar) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(winsstr(win,s)) -end; - -function mvwinstr(win : pwindow;y,x : longint;s : pchar) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(winstr(win,s)) -end; - -function mvwvline(win : pwindow;y,x : longint;c : chtype;n : longint) : longint; -begin - if wmove (win,y,x)=ERR then - exit(ERR) - else - exit(wvline(win,c,n)) -end; - -function color_pair(n : longint): longint; -begin - color_pair:=n shl 8; -end; - -function ACS_ULCORNER : chtype; -begin - ACS_ULCORNER:=acs_map['l']; -end; - -function ACS_LLCORNER : chtype; -begin - ACS_LLCORNER:=acs_map['m']; -end; - -function ACS_URCORNER : chtype; -begin - ACS_URCORNER:=acs_map['k']; -end; - -function ACS_LRCORNER : chtype; -begin - ACS_LRCORNER:=acs_map['j']; -end; - -function ACS_LTEE : chtype; -begin - ACS_LTEE:=acs_map['t']; -end; - -function ACS_RTEE : chtype; -begin - ACS_RTEE:=acs_map['u']; -end; - -function ACS_BTEE : chtype; -begin - ACS_BTEE:=acs_map['v']; -end; - -function ACS_TTEE : chtype; -begin - ACS_TTEE:=acs_map['w']; -end; - -function ACS_HLINE : chtype; -begin - ACS_HLINE:=acs_map['q']; -end; - -function ACS_VLINE : chtype; -begin - ACS_VLINE:=acs_map['x']; -end; - -function ACS_PLUS : chtype; -begin - ACS_PLUS:=acs_map['n']; -end; - -function ACS_S1 : chtype; -begin - ACS_S1 :=acs_map['o']; -end; - -function ACS_S9 : chtype; -begin - ACS_S9 :=acs_map['s']; -end; - -function ACS_DIAMOND : chtype; -begin - ACS_DIAMOND:=acs_map['`']; -end; - -function ACS_CKBOARD : chtype; -begin - ACS_CKBOARD:=acs_map['a']; -end; - -function ACS_DEGREE : chtype; -begin - ACS_DEGREE:=acs_map['f']; -end; - -function ACS_PLMINUS : chtype; -begin - ACS_PLMINUS:=acs_map['g']; -end; - -function ACS_BULLET : chtype; -begin - ACS_BULLET:=acs_map['~']; -end; - -function ACS_LARROW : chtype; -begin - ACS_LARROW:=acs_map[',']; -end; - -function ACS_RARROW : chtype; -begin - ACS_RARROW:=acs_map['+']; -end; - -function ACS_DARROW : chtype; -begin - ACS_DARROW:=acs_map['.']; -end; - -function ACS_UARROW : chtype; -begin - ACS_UARROW:=acs_map['-']; -end; - -function ACS_BOARD : chtype; -begin - ACS_BOARD:=acs_map['h']; -end; - -function ACS_LANTERN : chtype; -begin - ACS_LANTERN:=acs_map['i']; -end; - -function ACS_BLOCK : chtype; -begin - ACS_BLOCK:=acs_map['0']; -end; - -function ACS_S3 : chtype; -begin - ACS_S3 :=acs_map['p']; -end; - -function ACS_S7 : chtype; -begin - ACS_S7 :=acs_map['r']; -end; - -function ACS_LEQUAL : chtype; -begin - ACS_LEQUAL:=acs_map['y']; -end; - -function ACS_GEQUAL : chtype; -begin - ACS_GEQUAL:=acs_map['z']; -end; - -function ACS_PI : chtype; -begin - ACS_PI :=acs_map['{']; -end; - -function ACS_NEQUAL : chtype; -begin - ACS_NEQUAL:=acs_map['|']; -end; - -function ACS_STERLING : chtype; -begin - ACS_STERLING:=acs_map['}']; -end; - -end. + KEY_DL = 328; {0510} + KEY_IL = 329; {0511} + KEY_DC = 330; {0512} + KEY_IC = 331; {0513} + KEY_EIC = 332; {0514} + KEY_CLEAR = 333; {0515} + KEY_EOS = 334; {0516} + KEY_EOL = 335; {0517} + KEY_SF = 336; {0520} + KEY_SR = 337; {0521} + KEY_NPAGE = 338; {0522} + KEY_PPAGE = 339; {0523} + KEY_STAB = 340; {0524} + KEY_CTAB = 341; {0525} + KEY_CATAB = 342; {0526} + KEY_ENTER = 343; {0527} + KEY_SRESET = 344; {0530} + KEY_RESET = 345; {0531} + KEY_PRINT = 346; {0532} + KEY_LL = 347; {0533} + KEY_A1 = 348; {0534} + KEY_A3 = 349; {0535} + KEY_B2 = 350; {0536} + KEY_C1 = 351; {0537} + KEY_C3 = 352; {0540} + KEY_BTAB = 353; {0541} + KEY_BEG = 354; {0542} + KEY_CANCEL = 355; {0543} + KEY_CLOSE = 356; {0544} + KEY_COMMAND = 357; {0545} + KEY_COPY = 358; {0546} + KEY_CREATE = 359; {0547} + KEY_END = 360; {0550} + KEY_EXIT = 361; {0551} + KEY_FIND = 362; {0552} + KEY_HELP = 363; {0553} + KEY_MARK = 364; {0554} + KEY_MESSAGE = 365; {0555} + KEY_MOVE = 366; {0556} + KEY_NEXT = 367; {0557} + KEY_OPEN = 368; {0560} + KEY_OPTIONS = 369; {0561} + KEY_PREVIOUS = 370; {0562} + KEY_REDO = 371; {0563} + KEY_REFERENCE = 372; {0564} + KEY_REFRESH = 373; {0565} + KEY_REPLACE = 374; {0566} + KEY_RESTART = 375; {0567} + KEY_RESUME = 376; {0570} + KEY_SAVE = 377; {0571} + KEY_SBEG = 378; {0572} + KEY_SCANCEL = 379; {0573} + KEY_SCOMMAND = 380; {0574} + KEY_SCOPY = 381; {0575} + KEY_SCREATE = 382; {0576} + KEY_SDC = 383; {0577} + KEY_SDL = 384; {0600} + KEY_SELECT = 385; {0601} + KEY_SEND = 386; {0602} + KEY_SEOL = 387; {0603} + KEY_SEXIT = 388; {0604} + KEY_SFIND = 389; {0605} + KEY_SHELP = 390; {0606} + KEY_SHOME = 391; {0607} + KEY_SIC = 392; {0610} + KEY_SLEFT = 393; {0611} + KEY_SMESSAGE = 394; {0612} + KEY_SMOVE = 395; {0613} + KEY_SNEXT = 396; {0614} + KEY_SOPTIONS = 397; {0615} + KEY_SPREVIOUS = 398; {0616} + KEY_SPRINT = 399; {0617} + KEY_SREDO = 400; {0620} + KEY_SREPLACE = 401; {0621} + KEY_SRIGHT = 402; {0622} + KEY_SRSUME = 403; {0623} + KEY_SSAVE = 404; {0624} + KEY_SSUSPEND = 405; {0625} + KEY_SUNDO = 406; {0626} + KEY_SUSPEND = 407; {0627} + KEY_UNDO = 408; {0630} + KEY_MOUSE = 409; {0631} + KEY_RESIZE = 410; {0632} + KEY_MAX = 511; {0777} + + function mcprint(_para1:pchar; _para2:longint):longint;cdecl; + function has_key(_para1:longint):longint;cdecl; + + implementation + +const External_library=''; + + function define_key(_para1:pchar; _para2:longint):longint;Cdecl; External; + function keyok(_para1:longint; _para2:bool):longint;Cdecl; External; + function resizeterm(_para1:longint; _para2:longint):longint;Cdecl; External; + function use_default_colors:longint;Cdecl; External; + function wresize(_para1:pWINDOW; _para2:longint; _para3:longint):longint;Cdecl; External; + function baudrate:longint;Cdecl; External; + function beep:longint;Cdecl; External; + function can_change_color:bool;Cdecl; External; + function cbreak:longint;Cdecl; External; + function clearok(_para1:pWINDOW; _para2:bool):longint;Cdecl; External; + function color_content(_para1:longint; _para2:plongint; _para3:plongint; _para4:plongint):longint;Cdecl; External; + function copywin(_para1:pWINDOW; _para2:pWINDOW; _para3:longint; _para4:longint; _para5:longint; + _para6:longint; _para7:longint; _para8:longint; _para9:longint):longint;Cdecl; External; + function curs_set(_para1:longint):longint;Cdecl; External; + function def_prog_mode:longint;Cdecl; External; + function def_shell_mode:longint;Cdecl; External; + function delay_output(_para1:longint):longint;Cdecl; External; + procedure delscreen(_para1:pSCREEN);Cdecl; External; + function delwin(_para1:pWINDOW):longint;Cdecl; External; + function doupdate:longint;Cdecl; External; + function echo:longint;Cdecl; External; + function endwin:longint;Cdecl; External; + function erasechar:char;Cdecl; External; + procedure filter;Cdecl; External; + function flash:longint;Cdecl; External; + function flushinp:longint;Cdecl; External; + function halfdelay(_para1:longint):longint;Cdecl; External; + function has_colors:bool;Cdecl; External; + function has_ic:longint;Cdecl; External; + function has_il:longint;Cdecl; External; + procedure idcok(_para1:pWINDOW; _para2:bool);Cdecl; External; + function idlok(_para1:pWINDOW; _para2:bool):longint;Cdecl; External; + procedure immedok(_para1:pWINDOW; _para2:bool);Cdecl; External; + function init_color(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint;Cdecl; External; + function init_pair(_para1:longint; _para2:longint; _para3:longint):longint;Cdecl; External; + function intrflush(_para1:pWINDOW; _para2:bool):longint;Cdecl; External; + function isendwin:longint;Cdecl; External; + function is_linetouched(_para1:pWINDOW; _para2:longint):longint;Cdecl; External; + function is_wintouched(_para1:pWINDOW):longint;Cdecl; External; + function keypad(_para1:pWINDOW; _para2:bool):longint;Cdecl; External; + function killchar:char;Cdecl; External; + function leaveok(_para1:pWINDOW; _para2:bool):longint;Cdecl; External; + function meta(_para1:pWINDOW; _para2:bool):longint;Cdecl; External; + function mvcur(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint;Cdecl; External; + function mvderwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint;Cdecl; External; + function mvwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint;Cdecl; External; + function napms(_para1:longint):longint;Cdecl; External; + function nl:longint;Cdecl; External; + function nocbreak:longint;Cdecl; External; + function nodelay(_para1:pWINDOW; _para2:bool):longint;Cdecl; External; + function noecho:longint;Cdecl; External; + function nonl:longint;Cdecl; External; + function noqiflush:longint;Cdecl; External; + function noraw:longint;Cdecl; External; + function notimeout(_para1:pWINDOW; _para2:bool):longint;Cdecl; External; + function overlay(_para1:pWINDOW; _para2:pWINDOW):longint;Cdecl; External; + function overwrite(_para1:pWINDOW; _para2:pWINDOW):longint;Cdecl; External; + function pair_content(_para1:longint; _para2:plongint; _para3:plongint):longint;Cdecl; External; + function pechochar(_para1:pWINDOW; _para2:chtype):longint;Cdecl; External; + function pnoutrefresh(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint; + _para6:longint; _para7:longint):longint;Cdecl; External; + function prefresh(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint; + _para6:longint; _para7:longint):longint;Cdecl; External; + function putp(_para1:pchar):longint;Cdecl; External; + function putwin(_para1:pWINDOW; _para2:pFILE):longint;Cdecl; External; + function qiflush:longint;Cdecl; External; + function raw:longint;Cdecl; External; + function resetty:longint;Cdecl; External; + function reset_prog_mode:longint;Cdecl; External; + function reset_shell_mode:longint;Cdecl; External; { - $Log$ - Revision 1.5 2000-02-27 14:40:41 peter - * removed warnings/notes - + function ripoffline(_para1:longint; init:function (_para1:pWINDOW; _para2:longint):longint):longint;Cdecl; External; } + function savetty:longint;Cdecl; External; + function scr_dump(_para1:pchar):longint;Cdecl; External; + function scr_init(_para1:pchar):longint;Cdecl; External; + function scrollok(_para1:pWINDOW; _para2:bool):longint;Cdecl; External; + function scr_restore(_para1:pchar):longint;Cdecl; External; + function scr_set(_para1:pchar):longint;Cdecl; External; + function slk_attroff(_para1:attr_t):longint;Cdecl; External; + function slk_attron(_para1:attr_t):longint;Cdecl; External; + function slk_attrset(_para1:attr_t):longint;Cdecl; External; + function slk_attr:attr_t;Cdecl; External; + function slk_clear:longint;Cdecl; External; + function slk_init(_para1:longint):longint;Cdecl; External; + function slk_noutrefresh:longint;Cdecl; External; + function slk_refresh:longint;Cdecl; External; + function slk_restore:longint;Cdecl; External; + function slk_set(_para1:longint; _para2:pchar; _para3:longint):longint;Cdecl; External; + function slk_touch:longint;Cdecl; External; + function start_color:longint;Cdecl; External; + function syncok(_para1:pWINDOW; _para2:bool):longint;Cdecl; External; + function termattrs:chtype;Cdecl; External; + function tigetflag(_para1:pchar):longint;Cdecl; External; + function tigetnum(_para1:pchar):longint;Cdecl; External; + function typeahead(_para1:longint):longint;Cdecl; External; + function ungetch(_para1:longint):longint;Cdecl; External; + procedure use_env(_para1:bool);Cdecl; External; + function vidattr(_para1:chtype):longint;Cdecl; External; +{ + function vidputs(_para1:chtype; _para2:function (_para1:longint):longint):longint;Cdecl; External; + function vwprintw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint;Cdecl; External; + function vwscanw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint;Cdecl; External; +} + function waddch(_para1:pWINDOW; _para2:chtype):longint;Cdecl; External; + function waddchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint;Cdecl; External; + function waddnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint;Cdecl; External; + function wattr_on(_para1:pWINDOW; _para2:attr_t):longint;Cdecl; External; + function wattr_off(_para1:pWINDOW; _para2:attr_t):longint;Cdecl; External; + function wbkgd(_para1:pWINDOW; _para2:chtype):longint;Cdecl; External; + procedure wbkgdset(_para1:pWINDOW; _para2:chtype);Cdecl; External; + function wborder(_para1:pWINDOW; _para2:chtype; _para3:chtype; _para4:chtype; _para5:chtype; + _para6:chtype; _para7:chtype; _para8:chtype; _para9:chtype):longint;Cdecl; External; + function wchgat(_para1:pWINDOW; _para2:longint; _para3:attr_t; _para4:longint; _para5:pointer):longint;Cdecl; External; + function wclear(_para1:pWINDOW):longint;Cdecl; External; + function wclrtobot(_para1:pWINDOW):longint;Cdecl; External; + function wclrtoeol(_para1:pWINDOW):longint;Cdecl; External; + procedure wcursyncup(_para1:pWINDOW);Cdecl; External; + function wdelch(_para1:pWINDOW):longint;Cdecl; External; + function wechochar(_para1:pWINDOW; _para2:chtype):longint;Cdecl; External; + function werase(_para1:pWINDOW):longint;Cdecl; External; + function wgetch(_para1:pWINDOW):longint;Cdecl; External; + function wgetnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint;Cdecl; External; + function whline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint;Cdecl; External; + function winchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint;Cdecl; External; + function winnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint;Cdecl; External; + function winsch(_para1:pWINDOW; _para2:chtype):longint;Cdecl; External; + function winsdelln(_para1:pWINDOW; _para2:longint):longint;Cdecl; External; + function winsnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint;Cdecl; External; + function wmove(_para1:pWINDOW; _para2:longint; _para3:longint):longint;Cdecl; External; + function wnoutrefresh(_para1:pWINDOW):longint;Cdecl; External; + function wredrawln(_para1:pWINDOW; _para2:longint; _para3:longint):longint;Cdecl; External; + function wrefresh(_para1:pWINDOW):longint;Cdecl; External; + function wscrl(_para1:pWINDOW; _para2:longint):longint;Cdecl; External; + function wsetscrreg(_para1:pWINDOW; _para2:longint; _para3:longint):longint;Cdecl; External; + procedure wsyncdown(_para1:pWINDOW);Cdecl; External; + procedure wsyncup(_para1:pWINDOW);Cdecl; External; + function wtimeout(_para1:pWINDOW; _para2:longint):longint;Cdecl; External; + function wtouchln(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint):longint;Cdecl; External; + function wvline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint;Cdecl; External; + function mvwchgat(_para1:pWINDOW; _para2:longint; _para3:longint; + _para4:longint; _para5:longint; _para6:longint; + _para7:longint):longint;Cdecl; External; + function wgetstr(w : pwindow;s : pchar) : longint; + begin + wgetstr:=wgetnstr(w,s,-(1)); + end; + function getnstr(s : pchar;n : longint) : longint; + begin + getnstr:=wgetnstr(stdscr,s,n); + end; + function setterm(term : longint) : longint; + begin + { + setterm:=setupterm(term,1,plongint(0)); + } + end; + function fixterm : longint; + begin + fixterm:=reset_prog_mode; + end; + function resetterm : longint; + begin + resetterm:=reset_shell_mode; + end; + function saveterm : longint; + begin + saveterm:=def_prog_mode; + end; + function crmode : longint; + begin + crmode:=cbreak; + end; + function nocrmode : longint; + begin + nocrmode:=nocbreak; + end; + procedure getsyx(var y,x : longint); + begin + getyx(stdscr,y,x); + end; + function getattrs(win : pwindow) : longint; + var + if_local1 : longint; + + begin + if win<>nil then + if_local1:=win^._attrs + else + if_local1:=A_NORMAL; + getattrs:=if_local1; + end; + function getcurx(win : pwindow) : longint; + var + if_local1 : longint; + + begin + if win<>nil then + if_local1:=win^._curx + else + if_local1:=ERR; + getcurx:=if_local1; + end; + function getcury(win : pwindow) : longint; + var + if_local1 : longint; + + begin + if win<>Nil then + if_local1:=win^._cury + else + if_local1:=ERR; + getcury:=if_local1; + end; + function getbegx(win : pwindow) : longint; + var + if_local1 : longint; + + begin + if win<>Nil then + if_local1:=win^._begx + else + if_local1:=ERR; + getbegx:=if_local1; + end; + function getbegy(win : pwindow) : longint; + var + if_local1 : longint; + + begin + if win<>Nil then + if_local1:=win^._begy + else + if_local1:=ERR; + getbegy:=if_local1; + end; + function getmaxx(win : pwindow) : longint; + var + if_local1 : longint; + + begin + if win<>Nil then + if_local1:=(win^._maxx) + 1 + else + if_local1:=ERR; + getmaxx:=if_local1; + end; + function getmaxy(win : pwindow) : longint; + var + if_local1 : longint; + + begin + if win<>Nil then + if_local1:=(win^._maxy) + 1 + else + if_local1:=ERR; + getmaxy:=if_local1; + end; + function getparx(win : pwindow) : longint; + var + if_local1 : longint; + + begin + if win<>Nil then + if_local1:=win^._parx + else + if_local1:=ERR; + getparx:=if_local1; + end; + function getpary(win : pwindow) : longint; + var + if_local1 : longint; + + begin + if win<>Nil then + if_local1:=win^._pary + else + if_local1:=ERR; + getpary:=if_local1; + end; + function wstandout(win : pwindow) : longint; + begin + wstandout:=wattr_set(win,A_STANDOUT); + end; + function wstandend(win : pwindow) : longint; + begin + wstandend:=wattr_set(win,A_NORMAL); + end; + function wattron(win : pwindow;at : longint) : longint; + begin + wattron:=wattr_on(win,at); + end; + function wattroff(win : pwindow;at : longint) : longint; + begin + wattroff:=wattr_off(win,at); + end; + function wattrset(win : pwindow;at : longint) : longint; + begin + wattrset:=wattr_set(win,at); + end; + function scroll(win : pwindow) : longint; + begin + scroll:=wscrl(win,1); + end; + function touchwin(win : pwindow) : longint; + begin + touchwin:=wtouchln(win,0,getmaxy(win),1); + end; + function touchline(win : pwindow;s,c : longint) : longint; + begin + touchline:=wtouchln(win,s,c,1); + end; + function untouchwin(win : pwindow) : longint; + begin + untouchwin:=wtouchln(win,0,getmaxy(win),0); + end; + function box(win : pwindow;v,h : longint) : longint; + begin + box:=wborder(win,v,v,h,h,0,0,0,0); + end; + function border(ls,rs,ts,bs,tl,tr,bl,br : longint) : longint; + begin + border:=wborder(stdscr,ls,rs,ts,bs,tl,tr,bl,br); + end; + function hline(ch,n : longint) : longint; + begin + hline:=whline(stdscr,ch,n); + end; + function vline(ch,n : longint) : longint; + begin + vline:=wvline(stdscr,ch,n); + end; + function winstr(w : pwindow;s : pchar) : longint; + begin + winstr:=winnstr(w,s,-(1)); + end; + function winchstr(w : pwindow;s : pchar) : longint; + begin + { + winchstr:=winchnstr(w,s,-1); + } + end; + function winsstr(w : pwindow;s : pchar) : longint; + begin + winsstr:=winsnstr(w,s,-(1)); + end; + function redrawwin(w : pwindow) : longint; + begin + redrawwin:=wredrawln(w,0,(w^._maxy) + 1); + end; + function waddstr(win : pwindow;st : pchar) : longint; + begin + waddstr:=waddnstr(win,st,-1); + end; + function waddchstr(win : pwindow;st : pchar) : longint; + begin + waddchstr:=waddchnstr(win,st,-1); + end; + function addch(ch : longint) : longint; + begin + addch:=waddch(stdscr,ch); + end; + function addchnstr(st : pchar;n : longint) : longint; + begin + addchnstr:=waddchnstr(stdscr,st,n); + end; + function addchstr(st : pchar) : longint; + begin + addchstr:=waddchstr(stdscr,st); + end; + function addnstr(st : pchar;n : longint) : longint; + begin + addnstr:=waddnstr(stdscr,st,n); + end; + function addstr(st : pchar) : longint; + begin + addstr:=waddnstr(stdscr,st,-1); + end; + function attroff(at : longint) : longint; + begin + attroff:=wattroff(stdscr,at); + end; + function attron(at : longint) : longint; + begin + attron:=wattron(stdscr,at); + end; + function attrset(at : longint) : longint; + begin + attrset:=wattrset(stdscr,at); + end; + function bkgd(ch : longint) : longint; + begin + bkgd:=wbkgd(stdscr,ch); + end; + procedure bkgdset(ch : longint); + begin + wbkgdset(stdscr,ch); + end; + function clear : longint; + begin + clear:=wclear(stdscr); + end; + function clrtobot : longint; + begin + clrtobot:=wclrtobot(stdscr); + end; + function clrtoeol : longint; + begin + clrtoeol:=wclrtoeol(stdscr); + end; + function delch : longint; + begin + delch:=wdelch(stdscr); + end; + function deleteln : longint; + begin + deleteln:=winsdelln(stdscr,-1); + end; + function echochar(c : longint) : longint; + begin + echochar:=wechochar(stdscr,c); + end; + function erase : longint; + begin + erase:=werase(stdscr); + end; + function getch : longint; + begin + getch:=wgetch(stdscr); + end; + function getstr(st : pchar) : longint; + begin + getstr:=wgetstr(stdscr,st); + end; + function inch : longint; + begin + inch:=winch(stdscr); + end; + function inchnstr(s : pchar;n : longint) : longint; + begin + inchnstr:=winchnstr(stdscr,s,n); + end; + function inchstr(s : pchar) : longint; + begin + inchstr:=winchstr(stdscr,s); + end; + function innstr(s : pchar;n : longint) : longint; + begin + innstr:=winnstr(stdscr,s,n); + end; + function insch(c : longint) : longint; + begin + insch:=winsch(stdscr,c); + end; + function insdelln(n : longint) : longint; + begin + insdelln:=winsdelln(stdscr,n); + end; + function insertln : longint; + begin + insertln:=winsdelln(stdscr,1); + end; + function insnstr(s : pchar;n : longint) : longint; + begin + insnstr:=winsnstr(stdscr,s,n); + end; + function insstr(s : pchar) : longint; + begin + insstr:=winsstr(stdscr,s); + end; + function instr(s : pchar) : longint; + begin + instr:=winstr(stdscr,s); + end; + function move(y,x : longint) : longint; + begin + move:=wmove(stdscr,y,x); + end; + function refresh : longint; + begin + refresh:=wrefresh(stdscr); + end; + function scrl(n : longint) : longint; + begin + scrl:=wscrl(stdscr,n); + end; + function setscrreg(t,b : longint) : longint; + begin + setscrreg:=wsetscrreg(stdscr,t,b); + end; + function standend : longint; + begin + standend:=wstandend(stdscr); + end; + function standout : longint; + begin + standout:=wstandout(stdscr); + end; + function timeout(delay : longint) : longint; + begin + timeout:=wtimeout(stdscr,delay); + end; + function wdeleteln(win : pwindow) : longint; + begin + wdeleteln:=winsdelln(win,-1); + end; + function winsertln(win : pwindow) : longint; + begin + winsertln:=winsdelln(win,1); + end; + function mvaddch(y,x,ch : longint) : longint; + begin + mvaddch:=mvwaddch(stdscr,y,x,ch); + end; + function mvaddchnstr(y,x: longint;st : pchar;n : longint) : longint; + begin + mvaddchnstr:=mvwaddchnstr(stdscr,y,x,st,n); + end; + function mvaddchstr(y,x : longint;st : pchar) : longint; + begin + mvaddchstr:=mvwaddchstr(stdscr,y,x,st); + end; + function mvaddnstr(y,x: longint;st : pchar; n : longint) : longint; + begin + mvaddnstr:=mvwaddnstr(stdscr,y,x,st,n); + end; + function mvaddstr(y,x : longint;st : pchar) : longint; + begin + mvaddstr:=mvwaddstr(stdscr,y,x,st); + end; + function mvdelch(y,x : longint) : longint; + begin + mvdelch:=mvwdelch(stdscr,y,x); + end; + function mvgetch(y,x : longint) : longint; + begin + mvgetch:=mvwgetch(stdscr,y,x); + end; + function mvgetnstr(y,x : longint;st : pchar;n : longint) : longint; + begin + mvgetnstr:=mvwgetnstr(stdscr,y,x,st,n); + end; + function mvgetstr(y,x: longint;st : pchar) : longint; + begin + mvgetstr:=mvwgetstr(stdscr,y,x,st); + end; + function mvhline(y,x : longint;c : chtype;n : longint) : longint; + begin + mvhline:=mvwhline(stdscr,y,x,c,n); + end; + function mvinch(y,x : longint) : longint; + begin + mvinch:=mvwinch(stdscr,y,x); + end; + function mvinchnstr(y,x : longint;s : pchar;n : longint) : longint; + begin + mvinchnstr:=mvwinchnstr(stdscr,y,x,s,n); + end; + function mvinchstr(y,x : longint;s : pchar) : longint; + begin + mvinchstr:=mvwinchstr(stdscr,y,x,s); + end; + function mvinnstr(y,x : longint;s : pchar;n : longint) : longint; + begin + mvinnstr:=mvwinnstr(stdscr,y,x,s,n); + end; + function mvinsch(y,x: longint;c : chtype) : longint; + begin + mvinsch:=mvwinsch(stdscr,y,x,c); + end; + function mvinsnstr(y,x : longint;s : pchar;n : longint) : longint; + begin + mvinsnstr:=mvwinsnstr(stdscr,y,x,s,n); + end; + function mvinsstr(y,x : longint;s : pchar) : longint; + begin + mvinsstr:=mvwinsstr(stdscr,y,x,s); + end; + function mvinstr(y,x : longint;s : pchar) : longint; + begin + mvinstr:=mvwinstr(stdscr,y,x,s); + end; + function mvvline(y,x,c,n : longint) : longint; + begin + mvvline:=mvwvline(stdscr,y,x,c,n); + end; + + function attr_get : longint; + begin + attr_get:=wattr_get(stdscr); + end; + function attr_off(a : longint) : longint; + begin + attr_off:=wattr_off(stdscr,a); + end; + function attr_on(a : longint) : longint; + begin + attr_on:=wattr_on(stdscr,a); + end; + function attr_set(a : longint) : longint; + begin + attr_set:=wattr_set(stdscr,a); + end; + function box_set(w : pwindow;v,h : longint) : longint; + begin + { + box_set:=wborder_set(w,v,v,h,h,0,0,0,9); + } + end; + function chgat(n,a,c,o : longint) : longint; + begin + { + chgat:=wchgat(stdscr,n,a,c,o); + } + end; + function getbkgd(win : pwindow) : longint; + begin + getbkgd:=win^._bkgd; + end; + function hline_set(c,n : longint) : longint; + begin + { + hline_set:=whline_set(stdscr,c,n); + } + end; + function mvchgat(y,x,n,a,c,o : longint) : longint; + begin + mvchgat:=mvwchgat(stdscr,y,x,n,a,c,o); + end; + + function mvhline_set(y,x,c,n : longint) : longint; + begin + { + mvhline_set:=mvwhline_set(stdscr,y,x,c,n); + } + end; + function mvvline_set(y,x,c,n : longint) : longint; + begin + { + mvvline_set:=mvwvline_set(stdscr,y,x,c,n); + } + end; + function slk_attr_off(a : longint) : longint; + begin + slk_attr_off:=slk_attroff(a); + end; + function slk_attr_on(a : longint) : longint; + begin + slk_attr_on:=slk_attron(a); + end; + function slk_attr_set(a : longint) : longint; + begin + slk_attr_set:=slk_attrset(a); + end; + function vid_attr(a : longint) : longint; + begin + vid_attr:=vidattr(a); + end; + function vline_set(c,n : longint) : longint; + begin + { + vline_set:=vhline_set(stdscr,c,n); + } + end; + + function wattr_get(win : pwindow) : longint; + begin + wattr_get:=win^._attrs; + end; + function KEY_F(n : longint) : longint; + begin + KEY_F:=KEY_F0 + n; + end; + function mcprint(_para1:pchar; _para2:longint):longint;Cdecl; External; + function has_key(_para1:longint):longint;Cdecl; External; + function derwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW;cdecl; external; + function dupwin (_para1:pWINDOW):PWINDOW;cdecl; external; + Function getwin (_para1:pFILE):PWINDOW;cdecl; external; + function initscr :PWINDOW;cdecl; external; + function keyname (_para1:longint):pchar;cdecl; external; + function longname :pchar;cdecl; external; + function newpad (_para1:longint; _para2:longint):PWINDOW;cdecl; external; + Function newterm (_para1:pchar; _para2:pFILE; _para3:pFILE):PSCREEN;cdecl; external; + Function newwin (_para1:longint; _para2:longint; _para3:longint; _para4:longint):PWINDOW;cdecl; external; + Function set_term (_para1:pSCREEN):PSCREEN;cdecl; external; + Function slk_label (_para1:longint):pchar;cdecl; external; + function subpad (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW;cdecl; external; + Function subwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW;cdecl; external; + Function termname :pchar;cdecl; external; + Function tigetstr (_para1:pchar):pchar;cdecl; external; + + procedure getyx(win : pwindow; var y,x : longint); + begin + X:=ERR; + Y:=ERR; + if Win<>Nil then + begin + Y:=win^._cury; + X:=Win^._curx; + end; + end; + procedure getbegyx(win : pwindow; var y,x : longint); + begin + X:=ERR; + Y:=ERR; + if Win<>Nil then + begin + Y:=win^._begy; + X:=Win^._begx; + end; + end; + procedure getmaxyx(win : pwindow; var y,x : longint); + begin + X:=ERR; + Y:=ERR; + if Win<>Nil then + begin + Y:=win^._maxy+1; + X:=Win^._maxx+1; + end; + end; + procedure getparyx(win : pwindow; var y,x : longint); + begin + X:=ERR; + Y:=ERR; + if Win<>Nil then + begin + Y:=win^._pary; + X:=Win^._parx; + end; + end; + function winch (win : PWindow) : longint; + begin + if win<>nil then + winch:=win^._line[win^._cury].text[Win^ ._curx] + else + winch:=0; + end; + function wattr_set(win : pwindow; at : longint) : longint; + begin + If win<>nil then + begin + win^._attrs := at; + wattr_set:=at; + end + else + wattr_set:=0; + end; + procedure setsyx (y,x : longint); + begin + stdscr^._cury := y; + stdscr^._curx := x; + end; + function mvwaddch(win : pwindow;y,x : longint; ch : chtype) : longint; + begin + if wmove(win,y,x) = ERR then + exit(ERR) + else + exit(waddch(win,ch)) + end; + function mvwaddchnstr(win : pwindow;y,x : longint;st : pchar;n : longint) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(waddchnstr(win,st,n)) + end; + function mvwaddchstr(win : pwindow;y,x : longint;st : pchar) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(waddchnstr(win,st,-1)) + end; + function mvwaddnstr(win : pwindow;y,x : longint;st : pchar;n : longint) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(waddnstr(win,st,n)) + end; + function mvwaddstr(win : pwindow;y,x : longint;st : pchar) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(waddnstr(win,st,-1)) + end; + function mvwdelch(win : pwindow;y,x : longint) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(wdelch(win)) + end; + function mvwgetch(win : pwindow;y,x : longint) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(wgetch(win)) + end; + function mvwgetnstr(win : pwindow;y,x : longint;st : pchar;n: longint) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(wgetnstr(win,st,n)) + end; + function mvwgetstr(win : pwindow;y,x : longint;st: pchar) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(wgetstr(win,st)) + end; + function mvwhline(win : pwindow;y,x : longint;c : chtype;n : longint) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(whline(win,c,n)) + end; + function mvwinch(win : pwindow;y,x : longint) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(winch(win)) + end; + function mvwinchnstr(win : pwindow;y,x : longint;s : pchar; n : longint) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(winchnstr(win,s,n)) + end; + function mvwinchstr(win : pwindow;y,x : longint;s : pchar) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(winchstr(win,s)) + end; + function mvwinnstr(win : pwindow;y,x : longint;s : pchar;n : longint) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(winnstr(win,s,n)) + end; + function mvwinsch(win : pwindow;y,x : longint;c : chtype) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(winsch(win,c)) + end; + function mvwinsnstr(win : pwindow;y,x : longint;s : pchar;n : longint) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(winsnstr(win,s,n)) + end; + function mvwinsstr(win : pwindow;y,x : longint;s : pchar) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(winsstr(win,s)) + end; + function mvwinstr(win : pwindow;y,x : longint;s : pchar) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(winstr(win,s)) + end; + function mvwvline(win : pwindow;y,x : longint;c : chtype;n : longint) : longint; + begin + if wmove (win,y,x)=ERR then + exit(ERR) + else + exit(wvline(win,c,n)) + end; + function color_pair(n : longint): longint; + begin + color_pair:=n shl 8; + end; + + function ACS_ULCORNER : chtype; + begin + ACS_ULCORNER:=acs_map['l']; + end; + function ACS_LLCORNER : chtype; + begin + ACS_LLCORNER:=acs_map['m']; + end; + function ACS_URCORNER : chtype; + begin + ACS_URCORNER:=acs_map['k']; + end; + function ACS_LRCORNER : chtype; + begin + ACS_LRCORNER:=acs_map['j']; + end; + function ACS_LTEE : chtype; + begin + ACS_LTEE:=acs_map['t']; + end; + function ACS_RTEE : chtype; + begin + ACS_RTEE:=acs_map['u']; + end; + function ACS_BTEE : chtype; + begin + ACS_BTEE:=acs_map['v']; + end; + function ACS_TTEE : chtype; + begin + ACS_TTEE:=acs_map['w']; + end; + function ACS_HLINE : chtype; + begin + {----------------- + o = upper line + q = middle line + s = bottom line + -----------------} + ACS_HLINE:=acs_map['q']; + end; + function ACS_VLINE : chtype; + begin + ACS_VLINE:=acs_map['x']; + end; + function ACS_PLUS : chtype; + begin + ACS_PLUS:=acs_map['n']; + end; + function ACS_S1 : chtype; + begin + ACS_S1 :=acs_map['o']; + end; + function ACS_S9 : chtype; + begin + ACS_S9 :=acs_map['s']; + end; + function ACS_DIAMOND : chtype; + begin + ACS_DIAMOND:=acs_map['`']; + end; + function ACS_CKBOARD : chtype; + begin + ACS_CKBOARD:=acs_map['a']; + end; + function ACS_DEGREE : chtype; + begin + ACS_DEGREE:=acs_map['f']; + end; + function ACS_PLMINUS : chtype; + begin + ACS_PLMINUS:=acs_map['g']; + end; + function ACS_BULLET : chtype; + begin + ACS_BULLET:=acs_map['~']; + end; + + function ACS_LARROW : chtype; + begin + ACS_LARROW:=acs_map[',']; + end; + function ACS_RARROW : chtype; + begin + ACS_RARROW:=acs_map['+']; + end; + function ACS_DARROW : chtype; + begin + ACS_DARROW:=acs_map['.']; + end; + function ACS_UARROW : chtype; + begin + ACS_UARROW:=acs_map['-']; + end; + function ACS_BOARD : chtype; + begin + ACS_BOARD:=acs_map['h']; + end; + function ACS_LANTERN : chtype; + begin + ACS_LANTERN:=acs_map['i']; + end; + function ACS_BLOCK : chtype; + begin + ACS_BLOCK:=acs_map['0']; + end; + function ACS_S3 : chtype; + begin + ACS_S3 :=acs_map['p']; + end; + function ACS_S7 : chtype; + begin + ACS_S7 :=acs_map['r']; + end; + function ACS_LEQUAL : chtype; + begin + ACS_LEQUAL:=acs_map['y']; + end; + function ACS_GEQUAL : chtype; + begin + ACS_GEQUAL:=acs_map['z']; + end; + function ACS_PI : chtype; + begin + ACS_PI :=acs_map['{']; + end; + function ACS_NEQUAL : chtype; + begin + ACS_NEQUAL:=acs_map['|']; + end; + function ACS_STERLING : chtype; + begin + ACS_STERLING:=acs_map['}']; + end; +end. diff --git a/packages/ncurses/ocrt.pp b/packages/ncurses/ocrt.pp index d95ef3d7ab..79ddcad41b 100644 --- a/packages/ncurses/ocrt.pp +++ b/packages/ncurses/ocrt.pp @@ -63,6 +63,9 @@ Unit oCrt; | 3) nSEdit was not handling tec.firsttime correctly | when a tec.special was processed. 2.06 | 01/11/00 | kjw | See ncrt.inc. + 2.07 | 01/31/00 | kjw | 1) See ncrt.inc. + | 2) Added getcolor, getframecolor, getheadercolor + | methods to tnWindow. ------------------------------------------------------------------------------ } Interface @@ -176,6 +179,9 @@ Type Function GetHeader : string; Procedure PutHeader(hdr : string; hcolor : integer; hpos : tnJustify); Procedure SetColor(att : integer); + Function GetColor : integer; + Function GetFrameColor : integer; + Function GetHeaderColor : integer; Procedure PutFrame(att : integer); Procedure Move(x,y : integer); Procedure Scroll(ln : integer; dir : tnUpDown); @@ -433,6 +439,24 @@ Begin If visible Then wrefresh(wn); End; +{ get the writeable window color } +Function tnWindow.GetColor : integer; +Begin + GetColor := wincolor; +End; + +{ get the frame color } +Function tnWindow.GetFrameColor : integer; +Begin + GetFrameColor := framecolor; +End; + +{ get the header color } +Function tnWindow.GetHeaderColor : integer; +Begin + GetHeaderColor := hdrcolor; +End; + { frame an un-framed window, or update the frame color of a framed window } Procedure tnWindow.PutFrame(att : integer); Var