ncurses.pp 45 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691
  1. {
  2. $Id$
  3. Copyright (c) 1998 by Michael Van Canneyt
  4. member of the Free Pascal development team
  5. Unit to access the ncurses library
  6. See the file COPYING.FPC included in this distribution,
  7. for details about the copyright.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  11. **********************************************************************}
  12. {
  13. Many thanks to Ken Wright for his patches !
  14. }
  15. unit ncurses;
  16. interface
  17. {$packrecords C}
  18. {$linklib ncurses}
  19. {$linklib c}
  20. { Manually Added types }
  21. Type
  22. Bool = byte;
  23. PINTEGER = ^Longint;
  24. PLongint = ^ longint;
  25. PFILE = pointer;
  26. const
  27. NCURSES_VERSION_MAJOR = 5;
  28. NCURSES_VERSION_MINOR = 0;
  29. NCURSES_VERSION_PATCH = 19991023;
  30. NCURSES_VERSION = '5.0';
  31. type
  32. chtype = longint;
  33. pchtype = pchar;
  34. const
  35. CXX_BUILTIN_BOOL = 1;
  36. type
  37. CXX_TYPE_OF_BOOL = char;
  38. Var
  39. COLORS : longint;external name 'COLORS';
  40. COLOR_PAIRS : longint;external name 'COLOR_PAIRS';
  41. const
  42. COLOR_BLACK = 0;
  43. COLOR_RED = 1;
  44. COLOR_GREEN = 2;
  45. COLOR_YELLOW = 3;
  46. COLOR_BLUE = 4;
  47. COLOR_MAGENTA = 5;
  48. COLOR_CYAN = 6;
  49. COLOR_WHITE = 7;
  50. Type
  51. tacs_map = array [char] of chtype;
  52. pacs_map = ^tacs_map;
  53. Var
  54. acs_map : tacs_map;external name 'acs_map';
  55. function ACS_ULCORNER : chtype;
  56. function ACS_LLCORNER : chtype;
  57. function ACS_URCORNER : chtype;
  58. function ACS_LRCORNER : chtype;
  59. function ACS_LTEE : chtype;
  60. function ACS_RTEE : chtype;
  61. function ACS_BTEE : chtype;
  62. function ACS_TTEE : chtype;
  63. function ACS_HLINE : chtype;
  64. function ACS_VLINE : chtype;
  65. function ACS_PLUS : chtype;
  66. function ACS_S1 : chtype;
  67. function ACS_S9 : chtype;
  68. function ACS_DIAMOND : chtype;
  69. function ACS_CKBOARD : chtype;
  70. function ACS_DEGREE : chtype;
  71. function ACS_PLMINUS : chtype;
  72. function ACS_BULLET : chtype;
  73. function ACS_LARROW : chtype;
  74. function ACS_RARROW : chtype;
  75. function ACS_DARROW : chtype;
  76. function ACS_UARROW : chtype;
  77. function ACS_BOARD : chtype;
  78. function ACS_LANTERN : chtype;
  79. function ACS_BLOCK : chtype;
  80. function ACS_S3 : chtype;
  81. function ACS_S7 : chtype;
  82. function ACS_LEQUAL : chtype;
  83. function ACS_GEQUAL : chtype;
  84. function ACS_PI : chtype;
  85. function ACS_NEQUAL : chtype;
  86. function ACS_STERLING : chtype;
  87. {
  88. Line drawing ACS names are of the form ACS_trbl, where t is the top, r
  89. is the right, b is the bottom, and l is the left. t, r, b, and l might
  90. be B (blank), S (single), D (double), or T (thick). The subset defined
  91. here only uses B and S.
  92. }
  93. {
  94. #define ACS_BSSB ACS_ULCORNER
  95. #define ACS_SSBB ACS_LLCORNER
  96. #define ACS_BBSS ACS_URCORNER
  97. #define ACS_SBBS ACS_LRCORNER
  98. #define ACS_SBSS ACS_RTEE
  99. #define ACS_SSSB ACS_LTEE
  100. #define ACS_SSBS ACS_BTEE
  101. #define ACS_BSSS ACS_TTEE
  102. #define ACS_BSBS ACS_HLINE
  103. #define ACS_SBSB ACS_VLINE
  104. #define ACS_SSSS ACS_PLUS
  105. }
  106. Const
  107. ERR = -(1);
  108. OK = 0;
  109. _SUBWIN = $01;
  110. _ENDLINE = $02;
  111. _FULLWIN = $04;
  112. _SCROLLWIN = $08;
  113. _ISPAD = $10;
  114. _HASMOVED = $20;
  115. _WRAPPED = $40;
  116. {
  117. this value is used in the firstchar and lastchar fields to mark
  118. unchanged lines
  119. }
  120. _NOCHANGE = -(1);
  121. {
  122. this value is used in the oldindex field to mark lines created by insertions
  123. and scrolls.
  124. }
  125. _NEWINDEX = -(1);
  126. {
  127. typedef struct screen SCREEN;
  128. typedef struct _win_st WINDOW;
  129. }
  130. type
  131. attr_t = chtype;
  132. ldat = record
  133. text : ^chtype;
  134. firstchar : integer;
  135. lastchar : integer;
  136. oldindex : integer;
  137. end;
  138. _win_st = record
  139. _cury : integer;
  140. _curx : integer;
  141. _maxy : integer;
  142. _maxx : integer;
  143. _begy : integer;
  144. _begx : integer;
  145. _flags : integer;
  146. _attrs : attr_t;
  147. _bkgd : chtype;
  148. _notimeout : bool;
  149. _clear : bool;
  150. _leaveok : bool;
  151. _scroll : bool;
  152. _idlok : bool;
  153. _idcok : bool;
  154. _immed : bool;
  155. _sync : bool;
  156. _use_keypad : bool;
  157. _delay : longint;
  158. _line : ^ldat;
  159. _regtop : integer;
  160. _regbottom : integer;
  161. _parx : longint;
  162. _pary : longint;
  163. _parent : ^WINDOW;
  164. _pad : record
  165. _pad_y : integer;
  166. _pad_x : integer;
  167. _pad_top : integer;
  168. _pad_left : integer;
  169. _pad_bottom : integer;
  170. _pad_right : integer;
  171. end;
  172. _yoffset : integer;
  173. end;
  174. WINDOW = _win_st;
  175. PWINDOW = ^WINDOW;
  176. SCREEN=WINDOW;
  177. PSCREEN = PWINDOW;
  178. var
  179. stdscr : PWINDOW;external name 'stdscr';
  180. curscr : PWINDOW;external name 'curscr';
  181. newscr : PWINDOW;external name 'newscr';
  182. LINES : longint;external name 'LINES';
  183. COLS : longint;external name 'COLS';
  184. TABSIZE : longint;external name 'TABSIZE';
  185. ESCDELAY: longint;external name 'ESCDELAY';
  186. Function define_key(_para1:pchar; _para2:longint):longint; cdecl;external;
  187. Function keyok(_para1:longint; _para2:bool):longint; cdecl;external;
  188. Function resizeterm(_para1:longint; _para2:longint):longint; cdecl;external;
  189. Function use_default_colors:longint; cdecl;external;
  190. Function wresize(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external;
  191. {
  192. extern char ttytype[];
  193. }
  194. Function baudrate:longint; cdecl;external;
  195. Function beep:longint; cdecl;external;
  196. Function can_change_color:bool; cdecl;external;
  197. Function cbreak:longint; cdecl;external;
  198. Function clearok(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
  199. Function color_content(_para1:longint; _para2:plongint; _para3:plongint; _para4:plongint):longint; cdecl;external;
  200. Function copywin(_para1:pWINDOW; _para2:pWINDOW; _para3:longint; _para4:longint; _para5:longint;
  201. _para6:longint; _para7:longint; _para8:longint; _para9:longint):longint;cdecl;external;
  202. Function curs_set(_para1:longint):longint; cdecl;external;
  203. Function def_prog_mode:longint; cdecl;external;
  204. Function def_shell_mode:longint; cdecl;external;
  205. Function delay_output(_para1:longint):longint; cdecl;external;
  206. procedure delscreen(_para1:pSCREEN);cdecl;external;
  207. Function delwin(_para1:pWINDOW):longint; cdecl;external;
  208. Function doupdate:longint; cdecl;external;
  209. Function echo:longint; cdecl;external;
  210. Function endwin:longint; cdecl;external;
  211. Function erasechar:char; cdecl;external;
  212. procedure filter;cdecl;external;
  213. Function flash:longint; cdecl;external;
  214. Function flushinp:longint; cdecl;external;
  215. Function halfdelay(_para1:longint):longint; cdecl;external;
  216. Function has_colors:bool; cdecl;external;
  217. Function has_ic:longint; cdecl;external;
  218. Function has_il:longint; cdecl;external;
  219. procedure idcok(_para1:pWINDOW; _para2:bool);cdecl;external;
  220. Function idlok(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
  221. procedure immedok(_para1:pWINDOW; _para2:bool);cdecl;external;
  222. Function init_color(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint; cdecl;external;
  223. Function init_pair(_para1:longint; _para2:longint; _para3:longint):longint; cdecl;external;
  224. Function intrflush(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
  225. Function isendwin:longint; cdecl;external;
  226. Function is_linetouched(_para1:pWINDOW; _para2:longint):longint; cdecl;external;
  227. Function is_wintouched(_para1:pWINDOW):longint; cdecl;external;
  228. Function keypad(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
  229. Function killchar:char; cdecl;external;
  230. Function leaveok(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
  231. Function meta(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
  232. Function mvcur(_para1:longint; _para2:longint; _para3:longint; _para4:longint):longint; cdecl;external;
  233. Function mvderwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external;
  234. {
  235. extern int mvprintw(int,int,const char ,...)
  236. GCC_PRINTFLIKE(3,4);
  237. extern int mvscanw(int,int,const char ,...)
  238. GCC_SCANFLIKE(3,4);
  239. }
  240. Function mvwin(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external;
  241. {
  242. extern int mvwprintw(WINDOW ,int,int,const char ,...)
  243. GCC_PRINTFLIKE(4,5);
  244. extern int mvwscanw(WINDOW ,int,int,const char ,...)
  245. GCC_SCANFLIKE(4,5);
  246. }
  247. Function napms(_para1:longint):longint; cdecl;external;
  248. Function nl:longint; cdecl;external;
  249. Function nocbreak:longint; cdecl;external;
  250. Function nodelay(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
  251. Function noecho:longint; cdecl;external;
  252. Function nonl:longint; cdecl;external;
  253. Function noqiflush:longint; cdecl;external;
  254. Function noraw:longint; cdecl;external;
  255. Function notimeout(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
  256. Function overlay(_para1:pWINDOW; _para2:pWINDOW):longint; cdecl;external;
  257. Function overwrite(_para1:pWINDOW; _para2:pWINDOW):longint; cdecl;external;
  258. Function pair_content(_para1:longint; _para2:plongint; _para3:plongint):longint; cdecl;external;
  259. Function pechochar(_para1:pWINDOW; _para2:chtype):longint; cdecl;external;
  260. Function pnoutrefresh(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint;
  261. _para6:longint; _para7:longint):longint;cdecl;external;
  262. Function prefresh(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint;
  263. _para6:longint; _para7:longint):longint;cdecl;external;
  264. {
  265. extern int printw(const char ,...)
  266. GCC_PRINTFLIKE(1,2);
  267. }
  268. Function putp(_para1:pchar):longint; cdecl;external;
  269. Function putwin(_para1:pWINDOW; _para2:pFILE):longint; cdecl;external;
  270. Function qiflush:longint; cdecl;external;
  271. Function raw:longint; cdecl;external;
  272. Function resetty:longint; cdecl;external;
  273. Function reset_prog_mode:longint; cdecl;external;
  274. Function reset_shell_mode:longint; cdecl;external;
  275. {
  276. Function ripoffline(_para1:longint; init:function (_para1:pWINDOW; _para2:longint):longint):longint; cdecl;external;
  277. }
  278. Function savetty:longint; cdecl;external;
  279. {
  280. extern int scanw(const char ,...)
  281. GCC_SCANFLIKE(1,2);
  282. }
  283. Function scr_dump(_para1:pchar):longint; cdecl;external;
  284. Function scr_init(_para1:pchar):longint; cdecl;external;
  285. Function scrollok(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
  286. Function scr_restore(_para1:pchar):longint; cdecl;external;
  287. Function scr_set(_para1:pchar):longint; cdecl;external;
  288. Function slk_attroff(_para1:attr_t):longint; cdecl;external;
  289. Function slk_attron(_para1:attr_t):longint; cdecl;external;
  290. Function slk_attrset(_para1:attr_t):longint; cdecl;external;
  291. Function slk_attr:attr_t; cdecl;external;
  292. Function slk_clear:longint; cdecl;external;
  293. Function slk_init(_para1:longint):longint; cdecl;external;
  294. Function slk_noutrefresh:longint; cdecl;external;
  295. Function slk_refresh:longint; cdecl;external;
  296. Function slk_restore:longint; cdecl;external;
  297. Function slk_set(_para1:longint; _para2:pchar; _para3:longint):longint; cdecl;external;
  298. Function slk_touch:longint; cdecl;external;
  299. Function start_color:longint; cdecl;external;
  300. Function syncok(_para1:pWINDOW; _para2:bool):longint; cdecl;external;
  301. Function termattrs:chtype; cdecl;external;
  302. Function tigetflag(_para1:pchar):longint; cdecl;external;
  303. Function tigetnum(_para1:pchar):longint; cdecl;external;
  304. Function derwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl;external;
  305. Function dupwin (_para1:pWINDOW):PWINDOW; cdecl;external;
  306. Function getwin (_para1:pFILE):PWINDOW; cdecl;external;
  307. Function initscr :PWINDOW; cdecl;external;
  308. Function keyname (_para1:longint):pchar; cdecl;external;
  309. Function longname :pchar; cdecl;external;
  310. Function newpad (_para1:longint; _para2:longint):PWINDOW; cdecl;external;
  311. Function newterm (_para1:pchar; _para2:pFILE; _para3:pFILE):PSCREEN; cdecl;external;
  312. Function newwin (_para1:longint; _para2:longint; _para3:longint; _para4:longint):PWINDOW; cdecl;external;
  313. Function set_term (_para1:pSCREEN):PSCREEN; cdecl;external;
  314. Function slk_label (_para1:longint):pchar; cdecl;external;
  315. Function subpad (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl;external;
  316. Function subwin (_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint; _para5:longint):PWINDOW; cdecl;external;
  317. Function termname :pchar; cdecl;external;
  318. Function tigetstr (_para1:pchar):pchar; cdecl;external;
  319. Function typeahead(_para1:longint):longint; cdecl;external;
  320. Function ungetch(_para1:longint):longint; cdecl;external;
  321. procedure use_env(_para1:bool);cdecl;external;
  322. Function vidattr(_para1:chtype):longint; cdecl;external;
  323. {
  324. Function vidputs(_para1:chtype; _para2:function (_para1:longint):longint):longint; cdecl;external;
  325. }
  326. {
  327. Function vwprintw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint; cdecl;external;
  328. Function vwscanw(_para1:pWINDOW; _para2:pchar; _para3:va_list):longint; cdecl;external;
  329. }
  330. Function waddch(_para1:pWINDOW; _para2:chtype):longint; cdecl;external;
  331. Function waddchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint; cdecl;external;
  332. Function waddnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;external;
  333. Function wattr_on(_para1:pWINDOW; _para2:attr_t):longint; cdecl;external;
  334. Function wattr_off(_para1:pWINDOW; _para2:attr_t):longint; cdecl;external;
  335. Function wbkgd(_para1:pWINDOW; _para2:chtype):longint; cdecl;external;
  336. procedure wbkgdset(_para1:pWINDOW; _para2:chtype);cdecl;external;
  337. Function wborder(_para1:pWINDOW; _para2:chtype; _para3:chtype; _para4:chtype; _para5:chtype;
  338. _para6:chtype; _para7:chtype; _para8:chtype; _para9:chtype):longint;cdecl;external;
  339. Function wchgat(_para1:pWINDOW; _para2:longint; _para3:attr_t; _para4:longint; _para5:pointer):longint; cdecl;external;
  340. Function wclear(_para1:pWINDOW):longint; cdecl;external;
  341. Function wclrtobot(_para1:pWINDOW):longint; cdecl;external;
  342. Function wclrtoeol(_para1:pWINDOW):longint; cdecl;external;
  343. procedure wcursyncup(_para1:pWINDOW);cdecl;external;
  344. Function wdelch(_para1:pWINDOW):longint; cdecl;external;
  345. Function wechochar(_para1:pWINDOW; _para2:chtype):longint; cdecl;external;
  346. Function werase(_para1:pWINDOW):longint; cdecl;external;
  347. Function wgetch(_para1:pWINDOW):longint; cdecl;external;
  348. Function wgetnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;external;
  349. Function whline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint; cdecl;external;
  350. Function winch (win : PWindow) : longint;
  351. Function winchnstr(_para1:pWINDOW; _para2:pchtype; _para3:longint):longint; cdecl;external;
  352. Function winnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;external;
  353. Function winsch(_para1:pWINDOW; _para2:chtype):longint; cdecl;external;
  354. Function winsdelln(_para1:pWINDOW; _para2:longint):longint; cdecl;external;
  355. Function winsnstr(_para1:pWINDOW; _para2:pchar; _para3:longint):longint; cdecl;external;
  356. Function wmove(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external;
  357. Function wnoutrefresh(_para1:pWINDOW):longint; cdecl;external;
  358. {
  359. extern int wprintw(WINDOW ,const char ,...)
  360. GCC_PRINTFLIKE(2,3);
  361. }
  362. Function wredrawln(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external;
  363. Function wrefresh(_para1:pWINDOW):longint; cdecl;external;
  364. {
  365. extern int wscanw(WINDOW ,const char ,...)
  366. GCC_SCANFLIKE(2,3);
  367. }
  368. Function wscrl(_para1:pWINDOW; _para2:longint):longint; cdecl;external;
  369. Function wsetscrreg(_para1:pWINDOW; _para2:longint; _para3:longint):longint; cdecl;external;
  370. procedure wsyncdown(_para1:pWINDOW);cdecl;external;
  371. procedure wsyncup(_para1:pWINDOW);cdecl;external;
  372. Function wtimeout(_para1:pWINDOW; _para2:longint):longint; cdecl;external;
  373. Function wtouchln(_para1:pWINDOW; _para2:longint; _para3:longint; _para4:longint):longint; cdecl;external;
  374. Function wvline(_para1:pWINDOW; _para2:chtype; _para3:longint):longint; cdecl;external;
  375. Function mvwchgat(_para1:pWINDOW; _para2:longint; _para3:longint;
  376. _para4:longint; _para5:longint; _para6:longint;
  377. _para7:longint):longint;cdecl;external;
  378. const
  379. A_NORMAL = 0;
  380. A_ATTRIBUTES = (not 0) shl 8;
  381. A_CHARTEXT=(1 shl (0 + 8)) - 1;
  382. A_COLOR=((1 shl 8) - 1) shl 8;
  383. A_STANDOUT = 1 shl (8 + 8);
  384. A_UNDERLINE = 1 shl (9 + 8);
  385. A_REVERSE = 1 shl (10 + 8);
  386. A_BLINK = 1 shl (11 + 8);
  387. A_DIM = 1 shl (12 + 8);
  388. A_BOLD = 1 shl (13 + 8);
  389. A_ALTCHARSET = 1 shl (14 + 8);
  390. A_INVIS = 1 shl (15 + 8);
  391. A_PROTECT = 1 shl (16 + 8);
  392. A_HORIZONTAL = 1 shl (17 + 8);
  393. A_LEFT = 1 shl (18 + 8);
  394. A_LOW = 1 shl (19 + 8);
  395. A_RIGHT = 1 shl (20 + 8);
  396. A_TOP = 1 shl (21 + 8);
  397. A_VERTICAL = 1 shl (22 + 8);
  398. Function color_pair(n : longint): longint;
  399. {
  400. PAIR_NUMBER = (a(@(A_COLOR))) shr 8;
  401. }
  402. {
  403. pseudo functions
  404. }
  405. function wgetstr(w : pwindow;s : pchar) : longint;
  406. function getnstr(s : pchar;n : longint) : longint;
  407. function setterm(term : longint) : longint;
  408. function fixterm : longint;
  409. function resetterm : longint;
  410. function saveterm : longint;
  411. function crmode : longint;
  412. function nocrmode : longint;
  413. procedure getyx (win : pwindow; var y,x : longint);
  414. procedure getbegyx(win : pwindow; var y,x : longint);
  415. procedure getmaxyx(win : pwindow; var y,x : longint);
  416. procedure getparyx(win : pwindow; var y,x : longint);
  417. Procedure getsyx (var y,x : longint);
  418. procedure setsyx (y,x : longint);
  419. function getattrs(win : pwindow) : longint;
  420. function getcurx(win : pwindow) : longint;
  421. function getcury(win : pwindow) : longint;
  422. function getbegx(win : pwindow) : longint;
  423. function getbegy(win : pwindow) : longint;
  424. function getmaxx(win : pwindow) : longint;
  425. function getmaxy(win : pwindow) : longint;
  426. function getparx(win : pwindow) : longint;
  427. function getpary(win : pwindow) : longint;
  428. function wstandout(win : pwindow) : longint;
  429. function wstandend(win : pwindow) : longint;
  430. function wattr_set(win : pwindow; at : longint) : longint;
  431. function wattron(win : pwindow;at : longint) : longint;
  432. function wattroff(win : pwindow;at : longint) : longint;
  433. function wattrset(win : pwindow;at : longint) : longint;
  434. function scroll(win : pwindow) : longint;
  435. function touchwin(win : pwindow) : longint;
  436. function touchline(win : pwindow;s,c : longint) : longint;
  437. function untouchwin(win : pwindow) : longint;
  438. function box(win : pwindow;v,h : longint) : longint;
  439. function border(ls,rs,ts,bs,tl,tr,bl,br : longint) : longint;
  440. function hline(ch,n : longint) : longint;
  441. function vline(ch,n : longint) : longint;
  442. function winstr(w : pwindow;s : pchar) : longint;
  443. function winchstr(w : pwindow;s : pchar) : longint;
  444. function winsstr(w : pwindow;s : pchar) : longint;
  445. function redrawwin(w : pwindow) : longint;
  446. function waddstr(win : pwindow;st : pchar) : longint;
  447. function waddchstr(win : pwindow;st : pchar) : longint;
  448. {
  449. pseudo functions for standard screen
  450. }
  451. function addch(ch : longint) : longint;
  452. function addchnstr(st : pchar;n : longint) : longint;
  453. function addchstr(st : pchar) : longint;
  454. function addnstr(st : pchar;n : longint) : longint;
  455. function addstr(st : pchar) : longint;
  456. function attroff(at : longint) : longint;
  457. function attron(at : longint) : longint;
  458. function attrset(at : longint) : longint;
  459. function bkgd(ch : longint) : longint;
  460. procedure bkgdset(ch : longint);
  461. function clear : longint;
  462. function clrtobot : longint;
  463. function clrtoeol : longint;
  464. function delch : longint;
  465. function deleteln : longint;
  466. function echochar(c : longint) : longint;
  467. function erase : longint;
  468. function getch : longint;
  469. function getstr(st : pchar) : longint;
  470. function inch : longint;
  471. function inchnstr(s : pchar;n : longint) : longint;
  472. function inchstr(s : pchar) : longint;
  473. function innstr(s : pchar;n : longint) : longint;
  474. function insch(c : longint) : longint;
  475. function insdelln(n : longint) : longint;
  476. function insertln : longint;
  477. function insnstr(s : pchar;n : longint) : longint;
  478. function insstr(s : pchar) : longint;
  479. function instr(s : pchar) : longint;
  480. function move(y,x : longint) : longint;
  481. function refresh : longint;
  482. function scrl(n : longint) : longint;
  483. function setscrreg(t,b : longint) : longint;
  484. function standend : longint;
  485. function standout : longint;
  486. function timeout(delay : longint) : longint;
  487. function wdeleteln(win : pwindow) : longint;
  488. function winsertln(win : pwindow) : longint;
  489. {
  490. mv functions
  491. }
  492. function mvwaddch(win : pwindow;y,x : longint; ch : chtype) : longint;
  493. function mvwaddchnstr(win : pwindow;y,x : longint;st : pchar;n : longint) : longint;
  494. function mvwaddchstr(win : pwindow;y,x : longint;st : pchar) : longint;
  495. function mvwaddnstr(win : pwindow;y,x : longint;st : pchar;n : longint) : longint;
  496. function mvwaddstr(win : pwindow;y,x : longint;st : pchar) : longint;
  497. function mvwdelch(win : pwindow;y,x : longint) : longint;
  498. function mvwgetch(win : pwindow;y,x : longint) : longint;
  499. function mvwgetnstr(win : pwindow;y,x : longint;st : pchar;n: longint) : longint;
  500. function mvwgetstr(win : pwindow;y,x : longint;st: pchar) : longint;
  501. function mvwhline(win : pwindow;y,x : longint;c : chtype;n : longint) : longint;
  502. function mvwinch(win : pwindow;y,x : longint) : longint;
  503. function mvwinchnstr(win : pwindow;y,x : longint;s : pchar; n : longint) : longint;
  504. function mvwinchstr(win : pwindow;y,x : longint;s : pchar) : longint;
  505. function mvwinnstr(win : pwindow;y,x : longint;s : pchar;n : longint) : longint;
  506. function mvwinsch(win : pwindow;y,x : longint;c : chtype) : longint;
  507. function mvwinsnstr(win : pwindow;y,x : longint;s : pchar;n : longint) : longint;
  508. function mvwinsstr(win : pwindow;y,x : longint;s : pchar) : longint;
  509. function mvwinstr(win : pwindow;y,x : longint;s : pchar) : longint;
  510. function mvwvline(win : pwindow;y,x : longint;c : chtype;n : longint) : longint;
  511. function mvaddch(y,x,ch : longint) : longint;
  512. function mvaddchnstr(y,x : longint; st: pchar;n : longint) : longint;
  513. function mvaddchstr(y,x : longint; st : pchar) : longint;
  514. function mvaddnstr(y,x : longint; st : pchar;n : longint) : longint;
  515. function mvaddstr(y,x : longint; st : pchar) : longint;
  516. function mvdelch(y,x : longint) : longint;
  517. function mvgetch(y,x : longint) : longint;
  518. function mvgetnstr(y,x : longint; st : pchar;n : longint) : longint;
  519. function mvgetstr(y,x : longint; st : pchar) : longint;
  520. function mvhline(y,x : longint;c : chtype;n : longint) : longint;
  521. function mvinch(y,x : longint) : longint;
  522. function mvinchnstr(y,x : longint; s : pchar;n : longint) : longint;
  523. function mvinchstr(y,x : longint; s : pchar) : longint;
  524. function mvinnstr(y,x : longint; s : pchar;n : longint) : longint;
  525. function mvinsch(y,x: longint;c : chtype) : longint;
  526. function mvinsnstr(y,x : longint; s : pchar;n : longint) : longint;
  527. function mvinsstr(y,x : longint; s : pchar) : longint;
  528. function mvinstr(y,x : longint; s : pchar) : longint;
  529. function mvvline(y,x,c,n : longint) : longint;
  530. function attr_get : longint;
  531. function attr_off(a : longint) : longint;
  532. function attr_on(a : longint) : longint;
  533. function attr_set(a : longint) : longint;
  534. function chgat(n,a,c,o : longint) : longint;
  535. function getbkgd(win : pwindow) : longint;
  536. function slk_attr_off(a : longint) : longint;
  537. function slk_attr_on(a : longint) : longint;
  538. function slk_attr_set(a : longint) : longint;
  539. function vid_attr(a : longint) : longint;
  540. function wattr_get(win : pwindow) : longint;
  541. {
  542. Pseudo-character tokens outside ASCII range. The curses wgetch() function
  543. will return any given one of these only if the corresponding k- capability
  544. is defined in your terminal's terminfo entry.
  545. }
  546. const {octal}
  547. KEY_CODE_YES = 256; {0400}
  548. KEY_MIN = 257; {0401}
  549. KEY_BREAK = 257; {0401}
  550. KEY_DOWN = 258; {0402}
  551. KEY_UP = 259; {0403}
  552. KEY_LEFT = 260; {0404}
  553. KEY_RIGHT = 261; {0405}
  554. KEY_HOME = 262; {0406}
  555. KEY_BACKSPACE = 263; {0407}
  556. KEY_F0 = 264; {0410}
  557. function KEY_F(n : longint) : longint;
  558. const
  559. KEY_DL = 328; {0510}
  560. KEY_IL = 329; {0511}
  561. KEY_DC = 330; {0512}
  562. KEY_IC = 331; {0513}
  563. KEY_EIC = 332; {0514}
  564. KEY_CLEAR = 333; {0515}
  565. KEY_EOS = 334; {0516}
  566. KEY_EOL = 335; {0517}
  567. KEY_SF = 336; {0520}
  568. KEY_SR = 337; {0521}
  569. KEY_NPAGE = 338; {0522}
  570. KEY_PPAGE = 339; {0523}
  571. KEY_STAB = 340; {0524}
  572. KEY_CTAB = 341; {0525}
  573. KEY_CATAB = 342; {0526}
  574. KEY_ENTER = 343; {0527}
  575. KEY_SRESET = 344; {0530}
  576. KEY_RESET = 345; {0531}
  577. KEY_PRINT = 346; {0532}
  578. KEY_LL = 347; {0533}
  579. KEY_A1 = 348; {0534}
  580. KEY_A3 = 349; {0535}
  581. KEY_B2 = 350; {0536}
  582. KEY_C1 = 351; {0537}
  583. KEY_C3 = 352; {0540}
  584. KEY_BTAB = 353; {0541}
  585. KEY_BEG = 354; {0542}
  586. KEY_CANCEL = 355; {0543}
  587. KEY_CLOSE = 356; {0544}
  588. KEY_COMMAND = 357; {0545}
  589. KEY_COPY = 358; {0546}
  590. KEY_CREATE = 359; {0547}
  591. KEY_END = 360; {0550}
  592. KEY_EXIT = 361; {0551}
  593. KEY_FIND = 362; {0552}
  594. KEY_HELP = 363; {0553}
  595. KEY_MARK = 364; {0554}
  596. KEY_MESSAGE = 365; {0555}
  597. KEY_MOVE = 366; {0556}
  598. KEY_NEXT = 367; {0557}
  599. KEY_OPEN = 368; {0560}
  600. KEY_OPTIONS = 369; {0561}
  601. KEY_PREVIOUS = 370; {0562}
  602. KEY_REDO = 371; {0563}
  603. KEY_REFERENCE = 372; {0564}
  604. KEY_REFRESH = 373; {0565}
  605. KEY_REPLACE = 374; {0566}
  606. KEY_RESTART = 375; {0567}
  607. KEY_RESUME = 376; {0570}
  608. KEY_SAVE = 377; {0571}
  609. KEY_SBEG = 378; {0572}
  610. KEY_SCANCEL = 379; {0573}
  611. KEY_SCOMMAND = 380; {0574}
  612. KEY_SCOPY = 381; {0575}
  613. KEY_SCREATE = 382; {0576}
  614. KEY_SDC = 383; {0577}
  615. KEY_SDL = 384; {0600}
  616. KEY_SELECT = 385; {0601}
  617. KEY_SEND = 386; {0602}
  618. KEY_SEOL = 387; {0603}
  619. KEY_SEXIT = 388; {0604}
  620. KEY_SFIND = 389; {0605}
  621. KEY_SHELP = 390; {0606}
  622. KEY_SHOME = 391; {0607}
  623. KEY_SIC = 392; {0610}
  624. KEY_SLEFT = 393; {0611}
  625. KEY_SMESSAGE = 394; {0612}
  626. KEY_SMOVE = 395; {0613}
  627. KEY_SNEXT = 396; {0614}
  628. KEY_SOPTIONS = 397; {0615}
  629. KEY_SPREVIOUS = 398; {0616}
  630. KEY_SPRINT = 399; {0617}
  631. KEY_SREDO = 400; {0620}
  632. KEY_SREPLACE = 401; {0621}
  633. KEY_SRIGHT = 402; {0622}
  634. KEY_SRSUME = 403; {0623}
  635. KEY_SSAVE = 404; {0624}
  636. KEY_SSUSPEND = 405; {0625}
  637. KEY_SUNDO = 406; {0626}
  638. KEY_SUSPEND = 407; {0627}
  639. KEY_UNDO = 408; {0630}
  640. KEY_MOUSE = 409; {0631}
  641. KEY_RESIZE = 410; {0632}
  642. KEY_MAX = 511; {0777}
  643. function mcprint(_para1:pchar; _para2:longint):longint;cdecl;external;
  644. function has_key(_para1:longint):longint;cdecl;external;
  645. implementation
  646. function wgetstr(w : pwindow;s : pchar) : longint;
  647. begin
  648. wgetstr:=wgetnstr(w,s,-(1));
  649. end;
  650. function getnstr(s : pchar;n : longint) : longint;
  651. begin
  652. getnstr:=wgetnstr(stdscr,s,n);
  653. end;
  654. function setterm(term : longint) : longint;
  655. begin
  656. {
  657. setterm:=setupterm(term,1,plongint(0));
  658. }
  659. setterm:=0;
  660. end;
  661. function fixterm : longint;
  662. begin
  663. fixterm:=reset_prog_mode;
  664. end;
  665. function resetterm : longint;
  666. begin
  667. resetterm:=reset_shell_mode;
  668. end;
  669. function saveterm : longint;
  670. begin
  671. saveterm:=def_prog_mode;
  672. end;
  673. function crmode : longint;
  674. begin
  675. crmode:=cbreak;
  676. end;
  677. function nocrmode : longint;
  678. begin
  679. nocrmode:=nocbreak;
  680. end;
  681. procedure getsyx(var y,x : longint);
  682. begin
  683. getyx(stdscr,y,x);
  684. end;
  685. function getattrs(win : pwindow) : longint;
  686. var
  687. if_local1 : longint;
  688. begin
  689. if win<>nil then
  690. if_local1:=win^._attrs
  691. else
  692. if_local1:=A_NORMAL;
  693. getattrs:=if_local1;
  694. end;
  695. function getcurx(win : pwindow) : longint;
  696. var
  697. if_local1 : longint;
  698. begin
  699. if win<>nil then
  700. if_local1:=win^._curx
  701. else
  702. if_local1:=ERR;
  703. getcurx:=if_local1;
  704. end;
  705. function getcury(win : pwindow) : longint;
  706. var
  707. if_local1 : longint;
  708. begin
  709. if win<>Nil then
  710. if_local1:=win^._cury
  711. else
  712. if_local1:=ERR;
  713. getcury:=if_local1;
  714. end;
  715. function getbegx(win : pwindow) : longint;
  716. var
  717. if_local1 : longint;
  718. begin
  719. if win<>Nil then
  720. if_local1:=win^._begx
  721. else
  722. if_local1:=ERR;
  723. getbegx:=if_local1;
  724. end;
  725. function getbegy(win : pwindow) : longint;
  726. var
  727. if_local1 : longint;
  728. begin
  729. if win<>Nil then
  730. if_local1:=win^._begy
  731. else
  732. if_local1:=ERR;
  733. getbegy:=if_local1;
  734. end;
  735. function getmaxx(win : pwindow) : longint;
  736. var
  737. if_local1 : longint;
  738. begin
  739. if win<>Nil then
  740. if_local1:=(win^._maxx) + 1
  741. else
  742. if_local1:=ERR;
  743. getmaxx:=if_local1;
  744. end;
  745. function getmaxy(win : pwindow) : longint;
  746. var
  747. if_local1 : longint;
  748. begin
  749. if win<>Nil then
  750. if_local1:=(win^._maxy) + 1
  751. else
  752. if_local1:=ERR;
  753. getmaxy:=if_local1;
  754. end;
  755. function getparx(win : pwindow) : longint;
  756. var
  757. if_local1 : longint;
  758. begin
  759. if win<>Nil then
  760. if_local1:=win^._parx
  761. else
  762. if_local1:=ERR;
  763. getparx:=if_local1;
  764. end;
  765. function getpary(win : pwindow) : longint;
  766. var
  767. if_local1 : longint;
  768. begin
  769. if win<>Nil then
  770. if_local1:=win^._pary
  771. else
  772. if_local1:=ERR;
  773. getpary:=if_local1;
  774. end;
  775. function wstandout(win : pwindow) : longint;
  776. begin
  777. wstandout:=wattr_set(win,A_STANDOUT);
  778. end;
  779. function wstandend(win : pwindow) : longint;
  780. begin
  781. wstandend:=wattr_set(win,A_NORMAL);
  782. end;
  783. function wattron(win : pwindow;at : longint) : longint;
  784. begin
  785. wattron:=wattr_on(win,at);
  786. end;
  787. function wattroff(win : pwindow;at : longint) : longint;
  788. begin
  789. wattroff:=wattr_off(win,at);
  790. end;
  791. function wattrset(win : pwindow;at : longint) : longint;
  792. begin
  793. wattrset:=wattr_set(win,at);
  794. end;
  795. function scroll(win : pwindow) : longint;
  796. begin
  797. scroll:=wscrl(win,1);
  798. end;
  799. function touchwin(win : pwindow) : longint;
  800. begin
  801. touchwin:=wtouchln(win,0,getmaxy(win),1);
  802. end;
  803. function touchline(win : pwindow;s,c : longint) : longint;
  804. begin
  805. touchline:=wtouchln(win,s,c,1);
  806. end;
  807. function untouchwin(win : pwindow) : longint;
  808. begin
  809. untouchwin:=wtouchln(win,0,getmaxy(win),0);
  810. end;
  811. function box(win : pwindow;v,h : longint) : longint;
  812. begin
  813. box:=wborder(win,v,v,h,h,0,0,0,0);
  814. end;
  815. function border(ls,rs,ts,bs,tl,tr,bl,br : longint) : longint;
  816. begin
  817. border:=wborder(stdscr,ls,rs,ts,bs,tl,tr,bl,br);
  818. end;
  819. function hline(ch,n : longint) : longint;
  820. begin
  821. hline:=whline(stdscr,ch,n);
  822. end;
  823. function vline(ch,n : longint) : longint;
  824. begin
  825. vline:=wvline(stdscr,ch,n);
  826. end;
  827. function winstr(w : pwindow;s : pchar) : longint;
  828. begin
  829. winstr:=winnstr(w,s,-(1));
  830. end;
  831. function winchstr(w : pwindow;s : pchar) : longint;
  832. begin
  833. winchstr:=winchnstr(w,s,-1);
  834. end;
  835. function winsstr(w : pwindow;s : pchar) : longint;
  836. begin
  837. winsstr:=winsnstr(w,s,-(1));
  838. end;
  839. function redrawwin(w : pwindow) : longint;
  840. begin
  841. redrawwin:=wredrawln(w,0,(w^._maxy) + 1);
  842. end;
  843. function waddstr(win : pwindow;st : pchar) : longint;
  844. begin
  845. waddstr:=waddnstr(win,st,-1);
  846. end;
  847. function waddchstr(win : pwindow;st : pchar) : longint;
  848. begin
  849. waddchstr:=waddchnstr(win,st,-1);
  850. end;
  851. function addch(ch : longint) : longint;
  852. begin
  853. addch:=waddch(stdscr,ch);
  854. end;
  855. function addchnstr(st : pchar;n : longint) : longint;
  856. begin
  857. addchnstr:=waddchnstr(stdscr,st,n);
  858. end;
  859. function addchstr(st : pchar) : longint;
  860. begin
  861. addchstr:=waddchstr(stdscr,st);
  862. end;
  863. function addnstr(st : pchar;n : longint) : longint;
  864. begin
  865. addnstr:=waddnstr(stdscr,st,n);
  866. end;
  867. function addstr(st : pchar) : longint;
  868. begin
  869. addstr:=waddnstr(stdscr,st,-1);
  870. end;
  871. function attroff(at : longint) : longint;
  872. begin
  873. attroff:=wattroff(stdscr,at);
  874. end;
  875. function attron(at : longint) : longint;
  876. begin
  877. attron:=wattron(stdscr,at);
  878. end;
  879. function attrset(at : longint) : longint;
  880. begin
  881. attrset:=wattrset(stdscr,at);
  882. end;
  883. function bkgd(ch : longint) : longint;
  884. begin
  885. bkgd:=wbkgd(stdscr,ch);
  886. end;
  887. procedure bkgdset(ch : longint);
  888. begin
  889. wbkgdset(stdscr,ch);
  890. end;
  891. function clear : longint;
  892. begin
  893. clear:=wclear(stdscr);
  894. end;
  895. function clrtobot : longint;
  896. begin
  897. clrtobot:=wclrtobot(stdscr);
  898. end;
  899. function clrtoeol : longint;
  900. begin
  901. clrtoeol:=wclrtoeol(stdscr);
  902. end;
  903. function delch : longint;
  904. begin
  905. delch:=wdelch(stdscr);
  906. end;
  907. function deleteln : longint;
  908. begin
  909. deleteln:=winsdelln(stdscr,-1);
  910. end;
  911. function echochar(c : longint) : longint;
  912. begin
  913. echochar:=wechochar(stdscr,c);
  914. end;
  915. function erase : longint;
  916. begin
  917. erase:=werase(stdscr);
  918. end;
  919. function getch : longint;
  920. begin
  921. getch:=wgetch(stdscr);
  922. end;
  923. function getstr(st : pchar) : longint;
  924. begin
  925. getstr:=wgetstr(stdscr,st);
  926. end;
  927. function inch : longint;
  928. begin
  929. inch:=winch(stdscr);
  930. end;
  931. function inchnstr(s : pchar;n : longint) : longint;
  932. begin
  933. inchnstr:=winchnstr(stdscr,s,n);
  934. end;
  935. function inchstr(s : pchar) : longint;
  936. begin
  937. inchstr:=winchstr(stdscr,s);
  938. end;
  939. function innstr(s : pchar;n : longint) : longint;
  940. begin
  941. innstr:=winnstr(stdscr,s,n);
  942. end;
  943. function insch(c : longint) : longint;
  944. begin
  945. insch:=winsch(stdscr,c);
  946. end;
  947. function insdelln(n : longint) : longint;
  948. begin
  949. insdelln:=winsdelln(stdscr,n);
  950. end;
  951. function insertln : longint;
  952. begin
  953. insertln:=winsdelln(stdscr,1);
  954. end;
  955. function insnstr(s : pchar;n : longint) : longint;
  956. begin
  957. insnstr:=winsnstr(stdscr,s,n);
  958. end;
  959. function insstr(s : pchar) : longint;
  960. begin
  961. insstr:=winsstr(stdscr,s);
  962. end;
  963. function instr(s : pchar) : longint;
  964. begin
  965. instr:=winstr(stdscr,s);
  966. end;
  967. function move(y,x : longint) : longint;
  968. begin
  969. move:=wmove(stdscr,y,x);
  970. end;
  971. function refresh : longint;
  972. begin
  973. refresh:=wrefresh(stdscr);
  974. end;
  975. function scrl(n : longint) : longint;
  976. begin
  977. scrl:=wscrl(stdscr,n);
  978. end;
  979. function setscrreg(t,b : longint) : longint;
  980. begin
  981. setscrreg:=wsetscrreg(stdscr,t,b);
  982. end;
  983. function standend : longint;
  984. begin
  985. standend:=wstandend(stdscr);
  986. end;
  987. function standout : longint;
  988. begin
  989. standout:=wstandout(stdscr);
  990. end;
  991. function timeout(delay : longint) : longint;
  992. begin
  993. timeout:=wtimeout(stdscr,delay);
  994. end;
  995. function wdeleteln(win : pwindow) : longint;
  996. begin
  997. wdeleteln:=winsdelln(win,-1);
  998. end;
  999. function winsertln(win : pwindow) : longint;
  1000. begin
  1001. winsertln:=winsdelln(win,1);
  1002. end;
  1003. function mvaddch(y,x,ch : longint) : longint;
  1004. begin
  1005. mvaddch:=mvwaddch(stdscr,y,x,ch);
  1006. end;
  1007. function mvaddchnstr(y,x: longint;st : pchar;n : longint) : longint;
  1008. begin
  1009. mvaddchnstr:=mvwaddchnstr(stdscr,y,x,st,n);
  1010. end;
  1011. function mvaddchstr(y,x : longint;st : pchar) : longint;
  1012. begin
  1013. mvaddchstr:=mvwaddchstr(stdscr,y,x,st);
  1014. end;
  1015. function mvaddnstr(y,x: longint;st : pchar; n : longint) : longint;
  1016. begin
  1017. mvaddnstr:=mvwaddnstr(stdscr,y,x,st,n);
  1018. end;
  1019. function mvaddstr(y,x : longint;st : pchar) : longint;
  1020. begin
  1021. mvaddstr:=mvwaddstr(stdscr,y,x,st);
  1022. end;
  1023. function mvdelch(y,x : longint) : longint;
  1024. begin
  1025. mvdelch:=mvwdelch(stdscr,y,x);
  1026. end;
  1027. function mvgetch(y,x : longint) : longint;
  1028. begin
  1029. mvgetch:=mvwgetch(stdscr,y,x);
  1030. end;
  1031. function mvgetnstr(y,x : longint;st : pchar;n : longint) : longint;
  1032. begin
  1033. mvgetnstr:=mvwgetnstr(stdscr,y,x,st,n);
  1034. end;
  1035. function mvgetstr(y,x: longint;st : pchar) : longint;
  1036. begin
  1037. mvgetstr:=mvwgetstr(stdscr,y,x,st);
  1038. end;
  1039. function mvhline(y,x : longint;c : chtype;n : longint) : longint;
  1040. begin
  1041. mvhline:=mvwhline(stdscr,y,x,c,n);
  1042. end;
  1043. function mvinch(y,x : longint) : longint;
  1044. begin
  1045. mvinch:=mvwinch(stdscr,y,x);
  1046. end;
  1047. function mvinchnstr(y,x : longint;s : pchar;n : longint) : longint;
  1048. begin
  1049. mvinchnstr:=mvwinchnstr(stdscr,y,x,s,n);
  1050. end;
  1051. function mvinchstr(y,x : longint;s : pchar) : longint;
  1052. begin
  1053. mvinchstr:=mvwinchstr(stdscr,y,x,s);
  1054. end;
  1055. function mvinnstr(y,x : longint;s : pchar;n : longint) : longint;
  1056. begin
  1057. mvinnstr:=mvwinnstr(stdscr,y,x,s,n);
  1058. end;
  1059. function mvinsch(y,x: longint;c : chtype) : longint;
  1060. begin
  1061. mvinsch:=mvwinsch(stdscr,y,x,c);
  1062. end;
  1063. function mvinsnstr(y,x : longint;s : pchar;n : longint) : longint;
  1064. begin
  1065. mvinsnstr:=mvwinsnstr(stdscr,y,x,s,n);
  1066. end;
  1067. function mvinsstr(y,x : longint;s : pchar) : longint;
  1068. begin
  1069. mvinsstr:=mvwinsstr(stdscr,y,x,s);
  1070. end;
  1071. function mvinstr(y,x : longint;s : pchar) : longint;
  1072. begin
  1073. mvinstr:=mvwinstr(stdscr,y,x,s);
  1074. end;
  1075. function mvvline(y,x,c,n : longint) : longint;
  1076. begin
  1077. mvvline:=mvwvline(stdscr,y,x,c,n);
  1078. end;
  1079. function attr_get : longint;
  1080. begin
  1081. attr_get:=wattr_get(stdscr);
  1082. end;
  1083. function attr_off(a : longint) : longint;
  1084. begin
  1085. attr_off:=wattr_off(stdscr,a);
  1086. end;
  1087. function attr_on(a : longint) : longint;
  1088. begin
  1089. attr_on:=wattr_on(stdscr,a);
  1090. end;
  1091. function attr_set(a : longint) : longint;
  1092. begin
  1093. attr_set:=wattr_set(stdscr,a);
  1094. end;
  1095. function chgat(n,a,c,o : longint) : longint;
  1096. begin
  1097. chgat:=wchgat(stdscr,n,a,c,pointer(o));
  1098. end;
  1099. function getbkgd(win : pwindow) : longint;
  1100. begin
  1101. getbkgd:=win^._bkgd;
  1102. end;
  1103. function mvchgat(y,x,n,a,c,o : longint) : longint;
  1104. begin
  1105. mvchgat:=mvwchgat(stdscr,y,x,n,a,c,o);
  1106. end;
  1107. function slk_attr_off(a : longint) : longint;
  1108. begin
  1109. slk_attr_off:=slk_attroff(a);
  1110. end;
  1111. function slk_attr_on(a : longint) : longint;
  1112. begin
  1113. slk_attr_on:=slk_attron(a);
  1114. end;
  1115. function slk_attr_set(a : longint) : longint;
  1116. begin
  1117. slk_attr_set:=slk_attrset(a);
  1118. end;
  1119. function vid_attr(a : longint) : longint;
  1120. begin
  1121. vid_attr:=vidattr(a);
  1122. end;
  1123. function wattr_get(win : pwindow) : longint;
  1124. begin
  1125. wattr_get:=win^._attrs;
  1126. end;
  1127. function KEY_F(n : longint) : longint;
  1128. begin
  1129. KEY_F:=KEY_F0 + n;
  1130. end;
  1131. procedure getyx(win : pwindow; var y,x : longint);
  1132. begin
  1133. X:=ERR;
  1134. Y:=ERR;
  1135. if Win<>Nil then
  1136. begin
  1137. Y:=win^._cury;
  1138. X:=Win^._curx;
  1139. end;
  1140. end;
  1141. procedure getbegyx(win : pwindow; var y,x : longint);
  1142. begin
  1143. X:=ERR;
  1144. Y:=ERR;
  1145. if Win<>Nil then
  1146. begin
  1147. Y:=win^._begy;
  1148. X:=Win^._begx;
  1149. end;
  1150. end;
  1151. procedure getmaxyx(win : pwindow; var y,x : longint);
  1152. begin
  1153. X:=ERR;
  1154. Y:=ERR;
  1155. if Win<>Nil then
  1156. begin
  1157. Y:=win^._maxy+1;
  1158. X:=Win^._maxx+1;
  1159. end;
  1160. end;
  1161. procedure getparyx(win : pwindow; var y,x : longint);
  1162. begin
  1163. X:=ERR;
  1164. Y:=ERR;
  1165. if Win<>Nil then
  1166. begin
  1167. Y:=win^._pary;
  1168. X:=Win^._parx;
  1169. end;
  1170. end;
  1171. function winch (win : PWindow) : longint;
  1172. begin
  1173. if win<>nil then
  1174. winch:=win^._line[win^._cury].text[Win^ ._curx]
  1175. else
  1176. winch:=0;
  1177. end;
  1178. function wattr_set(win : pwindow; at : longint) : longint;
  1179. begin
  1180. If win<>nil then
  1181. begin
  1182. win^._attrs := at;
  1183. wattr_set:=at;
  1184. end
  1185. else
  1186. wattr_set:=0;
  1187. end;
  1188. procedure setsyx (y,x : longint);
  1189. begin
  1190. stdscr^._cury := y;
  1191. stdscr^._curx := x;
  1192. end;
  1193. function mvwaddch(win : pwindow;y,x : longint; ch : chtype) : longint;
  1194. begin
  1195. if wmove(win,y,x) = ERR then
  1196. exit(ERR)
  1197. else
  1198. exit(waddch(win,ch))
  1199. end;
  1200. function mvwaddchnstr(win : pwindow;y,x : longint;st : pchar;n : longint) : longint;
  1201. begin
  1202. if wmove (win,y,x)=ERR then
  1203. exit(ERR)
  1204. else
  1205. exit(waddchnstr(win,st,n))
  1206. end;
  1207. function mvwaddchstr(win : pwindow;y,x : longint;st : pchar) : longint;
  1208. begin
  1209. if wmove (win,y,x)=ERR then
  1210. exit(ERR)
  1211. else
  1212. exit(waddchnstr(win,st,-1))
  1213. end;
  1214. function mvwaddnstr(win : pwindow;y,x : longint;st : pchar;n : longint) : longint;
  1215. begin
  1216. if wmove (win,y,x)=ERR then
  1217. exit(ERR)
  1218. else
  1219. exit(waddnstr(win,st,n))
  1220. end;
  1221. function mvwaddstr(win : pwindow;y,x : longint;st : pchar) : longint;
  1222. begin
  1223. if wmove (win,y,x)=ERR then
  1224. exit(ERR)
  1225. else
  1226. exit(waddnstr(win,st,-1))
  1227. end;
  1228. function mvwdelch(win : pwindow;y,x : longint) : longint;
  1229. begin
  1230. if wmove (win,y,x)=ERR then
  1231. exit(ERR)
  1232. else
  1233. exit(wdelch(win))
  1234. end;
  1235. function mvwgetch(win : pwindow;y,x : longint) : longint;
  1236. begin
  1237. if wmove (win,y,x)=ERR then
  1238. exit(ERR)
  1239. else
  1240. exit(wgetch(win))
  1241. end;
  1242. function mvwgetnstr(win : pwindow;y,x : longint;st : pchar;n: longint) : longint;
  1243. begin
  1244. if wmove (win,y,x)=ERR then
  1245. exit(ERR)
  1246. else
  1247. exit(wgetnstr(win,st,n))
  1248. end;
  1249. function mvwgetstr(win : pwindow;y,x : longint;st: pchar) : longint;
  1250. begin
  1251. if wmove (win,y,x)=ERR then
  1252. exit(ERR)
  1253. else
  1254. exit(wgetstr(win,st))
  1255. end;
  1256. function mvwhline(win : pwindow;y,x : longint;c : chtype;n : longint) : longint;
  1257. begin
  1258. if wmove (win,y,x)=ERR then
  1259. exit(ERR)
  1260. else
  1261. exit(whline(win,c,n))
  1262. end;
  1263. function mvwinch(win : pwindow;y,x : longint) : longint;
  1264. begin
  1265. if wmove (win,y,x)=ERR then
  1266. exit(ERR)
  1267. else
  1268. exit(winch(win))
  1269. end;
  1270. function mvwinchnstr(win : pwindow;y,x : longint;s : pchar; n : longint) : longint;
  1271. begin
  1272. if wmove (win,y,x)=ERR then
  1273. exit(ERR)
  1274. else
  1275. exit(winchnstr(win,s,n))
  1276. end;
  1277. function mvwinchstr(win : pwindow;y,x : longint;s : pchar) : longint;
  1278. begin
  1279. if wmove (win,y,x)=ERR then
  1280. exit(ERR)
  1281. else
  1282. exit(winchstr(win,s))
  1283. end;
  1284. function mvwinnstr(win : pwindow;y,x : longint;s : pchar;n : longint) : longint;
  1285. begin
  1286. if wmove (win,y,x)=ERR then
  1287. exit(ERR)
  1288. else
  1289. exit(winnstr(win,s,n))
  1290. end;
  1291. function mvwinsch(win : pwindow;y,x : longint;c : chtype) : longint;
  1292. begin
  1293. if wmove (win,y,x)=ERR then
  1294. exit(ERR)
  1295. else
  1296. exit(winsch(win,c))
  1297. end;
  1298. function mvwinsnstr(win : pwindow;y,x : longint;s : pchar;n : longint) : longint;
  1299. begin
  1300. if wmove (win,y,x)=ERR then
  1301. exit(ERR)
  1302. else
  1303. exit(winsnstr(win,s,n))
  1304. end;
  1305. function mvwinsstr(win : pwindow;y,x : longint;s : pchar) : longint;
  1306. begin
  1307. if wmove (win,y,x)=ERR then
  1308. exit(ERR)
  1309. else
  1310. exit(winsstr(win,s))
  1311. end;
  1312. function mvwinstr(win : pwindow;y,x : longint;s : pchar) : longint;
  1313. begin
  1314. if wmove (win,y,x)=ERR then
  1315. exit(ERR)
  1316. else
  1317. exit(winstr(win,s))
  1318. end;
  1319. function mvwvline(win : pwindow;y,x : longint;c : chtype;n : longint) : longint;
  1320. begin
  1321. if wmove (win,y,x)=ERR then
  1322. exit(ERR)
  1323. else
  1324. exit(wvline(win,c,n))
  1325. end;
  1326. function color_pair(n : longint): longint;
  1327. begin
  1328. color_pair:=n shl 8;
  1329. end;
  1330. function ACS_ULCORNER : chtype;
  1331. begin
  1332. ACS_ULCORNER:=acs_map['l'];
  1333. end;
  1334. function ACS_LLCORNER : chtype;
  1335. begin
  1336. ACS_LLCORNER:=acs_map['m'];
  1337. end;
  1338. function ACS_URCORNER : chtype;
  1339. begin
  1340. ACS_URCORNER:=acs_map['k'];
  1341. end;
  1342. function ACS_LRCORNER : chtype;
  1343. begin
  1344. ACS_LRCORNER:=acs_map['j'];
  1345. end;
  1346. function ACS_LTEE : chtype;
  1347. begin
  1348. ACS_LTEE:=acs_map['t'];
  1349. end;
  1350. function ACS_RTEE : chtype;
  1351. begin
  1352. ACS_RTEE:=acs_map['u'];
  1353. end;
  1354. function ACS_BTEE : chtype;
  1355. begin
  1356. ACS_BTEE:=acs_map['v'];
  1357. end;
  1358. function ACS_TTEE : chtype;
  1359. begin
  1360. ACS_TTEE:=acs_map['w'];
  1361. end;
  1362. function ACS_HLINE : chtype;
  1363. begin
  1364. ACS_HLINE:=acs_map['q'];
  1365. end;
  1366. function ACS_VLINE : chtype;
  1367. begin
  1368. ACS_VLINE:=acs_map['x'];
  1369. end;
  1370. function ACS_PLUS : chtype;
  1371. begin
  1372. ACS_PLUS:=acs_map['n'];
  1373. end;
  1374. function ACS_S1 : chtype;
  1375. begin
  1376. ACS_S1 :=acs_map['o'];
  1377. end;
  1378. function ACS_S9 : chtype;
  1379. begin
  1380. ACS_S9 :=acs_map['s'];
  1381. end;
  1382. function ACS_DIAMOND : chtype;
  1383. begin
  1384. ACS_DIAMOND:=acs_map['`'];
  1385. end;
  1386. function ACS_CKBOARD : chtype;
  1387. begin
  1388. ACS_CKBOARD:=acs_map['a'];
  1389. end;
  1390. function ACS_DEGREE : chtype;
  1391. begin
  1392. ACS_DEGREE:=acs_map['f'];
  1393. end;
  1394. function ACS_PLMINUS : chtype;
  1395. begin
  1396. ACS_PLMINUS:=acs_map['g'];
  1397. end;
  1398. function ACS_BULLET : chtype;
  1399. begin
  1400. ACS_BULLET:=acs_map['~'];
  1401. end;
  1402. function ACS_LARROW : chtype;
  1403. begin
  1404. ACS_LARROW:=acs_map[','];
  1405. end;
  1406. function ACS_RARROW : chtype;
  1407. begin
  1408. ACS_RARROW:=acs_map['+'];
  1409. end;
  1410. function ACS_DARROW : chtype;
  1411. begin
  1412. ACS_DARROW:=acs_map['.'];
  1413. end;
  1414. function ACS_UARROW : chtype;
  1415. begin
  1416. ACS_UARROW:=acs_map['-'];
  1417. end;
  1418. function ACS_BOARD : chtype;
  1419. begin
  1420. ACS_BOARD:=acs_map['h'];
  1421. end;
  1422. function ACS_LANTERN : chtype;
  1423. begin
  1424. ACS_LANTERN:=acs_map['i'];
  1425. end;
  1426. function ACS_BLOCK : chtype;
  1427. begin
  1428. ACS_BLOCK:=acs_map['0'];
  1429. end;
  1430. function ACS_S3 : chtype;
  1431. begin
  1432. ACS_S3 :=acs_map['p'];
  1433. end;
  1434. function ACS_S7 : chtype;
  1435. begin
  1436. ACS_S7 :=acs_map['r'];
  1437. end;
  1438. function ACS_LEQUAL : chtype;
  1439. begin
  1440. ACS_LEQUAL:=acs_map['y'];
  1441. end;
  1442. function ACS_GEQUAL : chtype;
  1443. begin
  1444. ACS_GEQUAL:=acs_map['z'];
  1445. end;
  1446. function ACS_PI : chtype;
  1447. begin
  1448. ACS_PI :=acs_map['{'];
  1449. end;
  1450. function ACS_NEQUAL : chtype;
  1451. begin
  1452. ACS_NEQUAL:=acs_map['|'];
  1453. end;
  1454. function ACS_STERLING : chtype;
  1455. begin
  1456. ACS_STERLING:=acs_map['}'];
  1457. end;
  1458. end.
  1459. {
  1460. $Log$
  1461. Revision 1.1 2000-07-13 06:34:12 michael
  1462. + Initial import
  1463. Revision 1.8 2000/07/08 18:06:36 peter
  1464. * updated to latest ncrt package from Ken
  1465. Revision 1.7 2000/05/31 09:36:26 jonas
  1466. * restored (version included with ncrt 2.06 was outdated)
  1467. Revision 1.5 2000/02/27 14:40:41 peter
  1468. * removed warnings/notes
  1469. }