1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920 |
- {
- Interface to the ncurses library. Original ncurses library copyright:
- ****************************************************************************
- * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************}
- {$MODE OBJFPC}
- {$IFNDEF FPC_DOTTEDUNITS}
- unit ncurses;
- {$ENDIF FPC_DOTTEDUNITS}
- interface
- {$IFDEF FPC_DOTTEDUNITS}
- uses
- UnixApi.Types;
- {$ELSE FPC_DOTTEDUNITS}
- uses
- unixtype;
- {$ENDIF FPC_DOTTEDUNITS}
- {$PACKRECORDS C}
- {$LINKLIB ncursesw}
- {$LINKLIB c} // should be uses initc ?
- {$DEFINE USE_FPC_BYTEBOOL}
- const
- libncurses = 'ncursesw';
- type
- PFILE = Pointer;
- {$IFDEF USE_FPC_BYTEBOOL}
- Bool = ByteBool;
- {$ELSE USE_FPC_BYTEBOOL}
- Bool = Byte;
- {$ENDIF USE_FPC_BYTEBOOL}
- const
- {$IFDEF USE_FPC_BYTEBOOL}
- NC_FPC_TRUE = true;
- NC_FPC_FALSE = false;
- {$ELSE USE_FPC_BYTEBOOL}
- NC_FPC_TRUE = 1;
- NC_FPC_FALSE = 0;
- {$ENDIF USE_FPC_BYTEBOOL}
- const
- NCURSES_VERSION_MAJOR = 5;
- NCURSES_VERSION_MINOR = 6;
- NCURSES_VERSION_PATCH = 20061217;
- NCURSES_VERSION = '5.6';
- {$MACRO ON}
- {$IFNDEF NCURSES_MOUSE_VERSION}
- {$DEFINE NCURSES_MOUSE_VERSION:=2} // Can be changed for ancient versions of ncurses
- {$ENDIF}
- {$MACRO OFF}
- type
- pchtype = ^chtype;
- chtype = culong;
- pmmask_t = ^mmask_t;
- mmask_t = culong;
- { colors }
- var
- {$IFNDEF darwin}
- COLORS : cint cvar; external;
- COLOR_PAIRS : cint cvar; external;
- {$ELSE darwin}
- COLORS : cint external libncurses name 'COLORS';
- COLOR_PAIRS : cint external libncurses name 'COLOR_PAIRS';
- {$ENDIF darwin}
- const
- COLOR_BLACK = 0;
- COLOR_RED = 1;
- COLOR_GREEN = 2;
- COLOR_YELLOW = 3;
- COLOR_BLUE = 4;
- COLOR_MAGENTA = 5;
- COLOR_CYAN = 6;
- COLOR_WHITE = 7;
- type
- pNC_FPC_COLOR = ^NC_FPC_COLOR;
- NC_FPC_COLOR = Smallint;
- { line graphics }
- type
- tacs_map = array [AnsiChar] of chtype;
- pacs_map = ^tacs_map;
- var
- {$IFNDEF darwin}
- acs_map : tacs_map cvar; external;
- {$ELSE darwin}
- acs_map : tacs_map external libncurses name 'acs_map';
- {$ENDIF darwin}
- //function NCURSES_ACS(c : Longint) : Longint;
- (* VT100 symbols begin here *)
- function ACS_ULCORNER : chtype; inline; { upper left corner }
- function ACS_LLCORNER : chtype; inline; { lower left corner }
- function ACS_URCORNER : chtype; inline; { upper right corner }
- function ACS_LRCORNER : chtype; inline; { lower right corner }
- function ACS_LTEE : chtype; inline; { tee pointing right }
- function ACS_RTEE : chtype; inline; { tee pointing left }
- function ACS_BTEE : chtype; inline; { tee pointing up }
- function ACS_TTEE : chtype; inline; { tee pointing down }
- function ACS_HLINE : chtype; inline; { horizontal line }
- function ACS_VLINE : chtype; inline; { vertical line }
- function ACS_PLUS : chtype; inline; { large plus or crossover }
- function ACS_S1 : chtype; inline; { scan line 1 }
- function ACS_S9 : chtype; inline; { scan line 9 }
- function ACS_DIAMOND : chtype; inline; { diamond }
- function ACS_CKBOARD : chtype; inline; { checker board (stipple) }
- function ACS_DEGREE : chtype; inline; { degree symbol }
- function ACS_PLMINUS : chtype; inline; { plus/minus }
- function ACS_BULLET : chtype; inline; { bullet }
- (* Teletype 5410v1 symbols begin here *)
- function ACS_LARROW : chtype; inline; { arrow pointing left }
- function ACS_RARROW : chtype; inline; { arrow pointing right }
- function ACS_DARROW : chtype; inline; { arrow pointing down }
- function ACS_UARROW : chtype; inline; { arrow pointing up }
- function ACS_BOARD : chtype; inline; { board of squares }
- function ACS_LANTERN : chtype; inline; { lantern symbol }
- function ACS_BLOCK : chtype; inline; { solid square block }
- (*
- * These aren't documented, but a lot of System Vs have them anyway
- * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings).
- * The ACS_names may not match AT&T's, our source didn't know them.
- *)
- function ACS_S3 : chtype; inline; { scan line 3 }
- function ACS_S7 : chtype; inline; { scan line 7 }
- function ACS_LEQUAL : chtype; inline; { less/equal }
- function ACS_GEQUAL : chtype; inline; { greater/equal }
- function ACS_PI : chtype; inline; { Pi }
- function ACS_NEQUAL : chtype; inline; { not equal }
- function ACS_STERLING : chtype; inline; { UK pound sign }
- (*
- * Line drawing ACS names are of the form ACS_trbl, where t is the top, r
- * is the right, b is the bottom, and l is the left. t, r, b, and l might
- * be B (blank), S (single), D (double), or T (thick). The subset defined
- * here only uses B and S.
- *)
- {$IFDEF FPC_OBJFPC}
- property ACS_BSSB : chtype read ACS_ULCORNER;
- property ACS_SSBB : chtype read ACS_LLCORNER;
- property ACS_BBSS : chtype read ACS_URCORNER;
- property ACS_SBBS : chtype read ACS_LRCORNER;
- property ACS_SBSS : chtype read ACS_RTEE;
- property ACS_SSSB : chtype read ACS_LTEE;
- property ACS_SSBS : chtype read ACS_BTEE;
- property ACS_BSSS : chtype read ACS_TTEE;
- property ACS_BSBS : chtype read ACS_HLINE;
- property ACS_SBSB : chtype read ACS_VLINE;
- property ACS_SSSS : chtype read ACS_PLUS;
- {$ENDIF FPC_OBJFPC}
- const
- ERR = -(1);
- OK = 0;
- _SUBWIN = $01; { is this a sub-window? }
- _ENDLINE = $02; { is the window flush right? }
- _FULLWIN = $04; { is the window full-screen? }
- _SCROLLWIN = $08; { bottom edge is at screen bottom? }
- _ISPAD = $10; { is this window a pad? }
- _HASMOVED = $20; { has cursor moved since last refresh? }
- _WRAPPED = $40; { cursor was just wrappped }
- _NOCHANGE = -(1);
- {
- this value is used in the firstchar and lastchar fields to mark
- unchanged lines
- }
- _NEWINDEX = -(1);
- CCHARW_MAX = 5;
- type
- pattr_t = ^attr_t;
- attr_t = chtype; { ...must be at least as wide as chtype }
- pcchar_t = ^cchar_t;
- cchar_t = record
- attr : attr_t;
- chars : array[0..CCHARW_MAX - 1] of wchar_t;
- {$IFDEF NCURSES_EXT_COLORS}
- ext_color : cint; { color pair, must be more than 16-bits }
- {$ENDIF NCURSES_EXT_COLORS}
- end;
- ldat = record
- text : pcchar_t; { text of the line }
- firstchar : Smallint; { first changed character in the line }
- lastchar : Smallint; { last changed character in the line }
- oldindex : Smallint; { index of the line at last update }
- end;
- PWINDOW = ^TWINDOW;
- _win_st = record
- _cury, _curx : Smallint; { current cursor position }
- { window location and size }
- _maxy, _maxx : Smallint; { maximums of x and y, NOT window size }
- _begy, _begx : Smallint; { screen coords of upper-left-hand corner }
- _flags : Smallint; { window state flags }
- { attribute tracking }
- _attrs : attr_t; { current attribute for non-space character }
- _bkgd : chtype; { current background AnsiChar/attribute pair }
- { option values set by user }
- _notimeout : Bool; { no time out on function-key entry? }
- _clear : Bool; { consider all data in the window invalid? }
- _leaveok : Bool; { OK to not reset cursor on exit? }
- _scroll : Bool; { OK to scroll this window? }
- _idlok : Bool; { OK to use insert/delete line? }
- _idcok : Bool; { OK to use insert/delete AnsiChar? }
- _immed : Bool; { window in immed mode? (not yet used) }
- _sync : Bool; { window in sync mode? }
- _use_keypad : Bool; { process function keys into KEY_ symbols? }
- _delay : cint; { 0 = nodelay, <0 = blocking, >0 = delay }
- _line : ^ldat; { the actual line data }
- { global screen state }
- _regtop : Smallint; { top line of scrolling region }
- _regbottom : Smallint; { bottom line of scrolling region }
- { these are used only if this is a sub-window }
- _parx : cint; { x coordinate of this window in parent }
- _pary : cint; { y coordinate of this window in parent }
- _parent : PWINDOW; { pointer to parent if a sub-window }
- { these are used only if this is a pad }
- _pad : record
- _pad_y : Smallint;
- _pad_x : Smallint;
- _pad_top : Smallint;
- _pad_left : Smallint;
- _pad_bottom : Smallint;
- _pad_right : Smallint;
- end;
- _yoffset : Smallint; { real begy is _begy + _yoffset }
- _bkgrnd : cchar_t; { current background AnsiChar/attribute pair }
- {$IFDEF NCURSES_EXT_COLORS}
- _color : cint; { current color-pair for non-space character }
- {$ENDIF NCURSES_EXT_COLORS}
- end;
- TWINDOW = _win_st;
- TSCREEN = TWINDOW;
- PSCREEN = ^TSCREEN;
- var
- {$IFNDEF darwin}
- stdscr : PWINDOW cvar; external;
- curscr : PWINDOW cvar; external;
- newscr : PWINDOW cvar; external;
- LINES : Longint cvar; external;
- COLS : Longint cvar; external;
- TABSIZE : Longint cvar; external;
- ESCDELAY: Longint cvar; external; { ESC expire time in milliseconds }
- {$ELSE darwin}
- stdscr : PWINDOW external libncurses name 'stdscr';
- curscr : PWINDOW external libncurses name 'curscr';
- newscr : PWINDOW external libncurses name 'newscr';
- LINES : Longint external libncurses name 'LINES';
- COLS : Longint external libncurses name 'COLS';
- TABSIZE : Longint external libncurses name 'TABSIZE';
- ESCDELAY: Longint external libncurses name 'ESCDELAY';
- {$ENDIF darwin}
- (*
- * These functions are extensions - not in XSI Curses.
- *)
- function is_term_resized(_para1:Longint; _para2:Longint):Bool;cdecl;external libncurses;
- function keybound(_para1:Longint; _para2:Longint):PAnsiChar;cdecl;external libncurses;
- function curses_version:PAnsiChar;cdecl;external libncurses;
- function assume_default_colors(_para1:Longint; _para2:Longint):Longint; cdecl;external libncurses;
- function define_key(_para1:PAnsiChar; _para2:Longint):Longint; cdecl;external libncurses;
- function key_defined(_para1:PAnsiChar):Longint; cdecl;external libncurses;
- function keyok(_para1:Longint; _para2:Bool):Longint; cdecl;external libncurses;
- function resize_term(_para1:Longint; _para2:Longint):Longint; cdecl;external libncurses;
- function resizeterm(_para1:Longint; _para2:Longint):Longint; cdecl;external libncurses;
- function use_default_colors:Longint;cdecl;external libncurses;
- function use_extended_names(_para1:Bool):Longint; cdecl;external libncurses;
- function use_legacy_coding(_para1:Longint):Longint; cdecl;external libncurses;
- function wresize(_para1:PWINDOW; _para2:Longint; _para3:Longint):Longint; cdecl;external libncurses;
- procedure nofilter;cdecl;external libncurses;
- (*
- * Function prototypes. This is the complete XSI Curses list of required
- * functions.
- *)
- function baudrate:Longint; cdecl;external libncurses;
- function beep:Longint; cdecl;external libncurses;
- function can_change_color:Bool;cdecl;external libncurses;
- function cbreak:Longint; cdecl;external libncurses;
- //function color_content(_para1:Smallint; _para2:PSmallint; _para3:PSmallint; _para4:PSmallInt):Longint; cdecl;external libncurses;
- function color_content(color: NC_FPC_COLOR; r, g, b: PSmallint):Longint; cdecl;external libncurses;
- function copywin(_para1:PWINDOW; _para2:PWINDOW; _para3:Longint; _para4:Longint; _para5:Longint;
- _para6:Longint; _para7:Longint; _para8:Longint; _para9:Longint):Longint; cdecl;external libncurses;
- function curs_set(_para1:Longint):Longint; cdecl;external libncurses;
- function def_prog_mode:Longint; cdecl;external libncurses;
- function def_shell_mode:Longint; cdecl;external libncurses;
- function delay_output(_para1:Longint):Longint; cdecl;external libncurses;
- procedure delscreen(_para1:PSCREEN);cdecl;external libncurses;
- function delwin(_para1:PWINDOW):Longint; cdecl;external libncurses;
- function derwin(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:Longint; _para5:Longint):PWINDOW;cdecl;external libncurses;
- function doupdate:Longint; cdecl;external libncurses;
- function dupwin(_para1:PWINDOW):PWINDOW;cdecl;external libncurses;
- function echo:Longint; cdecl;external libncurses;
- function endwin:Longint; cdecl;external libncurses;
- function erasechar:PAnsiChar;cdecl;external libncurses;
- procedure filter;cdecl;external libncurses;
- function flash:Longint; cdecl;external libncurses;
- function flushinp:Longint; cdecl;external libncurses;
- function getwin(_para1:PFILE):PWINDOW;cdecl;external libncurses;
- function halfdelay(_para1:Longint):Longint; cdecl;external libncurses;
- function has_colors:Bool;cdecl;external libncurses;
- function has_ic:Bool;cdecl;external libncurses;
- function has_il:Bool;cdecl;external libncurses;
- procedure idcok(_para1:PWINDOW; _para2:Bool);cdecl;external libncurses;
- function idlok(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
- procedure immedok(_para1:PWINDOW; _para2:Bool);cdecl;external libncurses;
- function initscr:PWINDOW;cdecl;external libncurses;
- //function init_color(_para1:Smallint; _para2:Smallint; _para3:Smallint; _para4:Smallint):Longint; cdecl;external libncurses;
- function init_color(color: NC_FPC_COLOR; r, g, b: Smallint):Longint; cdecl;external libncurses;
- //function init_pair(_para1:Smallint; _para2:Smallint; _para3:Smallint):Longint; cdecl;external libncurses;
- function init_pair(pair: Smallint; f, b: NC_FPC_COLOR):Longint; cdecl;external libncurses; overload;
- function intrflush(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
- function isendwin:Bool;cdecl;external libncurses;
- function is_linetouched(_para1:PWINDOW; _para2:Longint):Bool;cdecl;external libncurses;
- function is_wintouched(_para1:PWINDOW):Bool;cdecl;external libncurses;
- function keyname(_para1:Longint):PAnsiChar;cdecl;external libncurses;
- function keypad(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
- function killchar:PAnsiChar;cdecl;external libncurses;
- function leaveok(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
- function longname:PAnsiChar;cdecl;external libncurses;
- function meta(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
- function mvcur(_para1:Longint; _para2:Longint; _para3:Longint; _para4:Longint):Longint; cdecl;external libncurses;
- function mvderwin(_para1:PWINDOW; _para2:Longint; _para3:Longint):Longint; cdecl;external libncurses;
- function mvwin(_para1:PWINDOW; _para2:Longint; _para3:Longint):Longint; cdecl;external libncurses;
- function napms(_para1:Longint):Longint; cdecl;external libncurses;
- function newpad(_para1:Longint; _para2:Longint):PWINDOW;cdecl;external libncurses;
- function newterm(_para1:PAnsiChar; _para2:PFILE; _para3:PFILE):PSCREEN;cdecl;external libncurses;
- function newwin(_para1:Longint; _para2:Longint; _para3:Longint; _para4:Longint):PWINDOW;cdecl;external libncurses;
- function nl:Longint; cdecl;external libncurses;
- function nocbreak:Longint; cdecl;external libncurses;
- function nodelay(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
- function noecho:Longint; cdecl;external libncurses;
- function nonl:Longint; cdecl;external libncurses;
- procedure noqiflush;cdecl;external libncurses;
- function noraw:Longint; cdecl;external libncurses;
- function notimeout(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
- function overlay(_para1:PWINDOW; _para2:PWINDOW):Longint; cdecl;external libncurses;
- function overwrite(_para1:PWINDOW; _para2:PWINDOW):Longint; cdecl;external libncurses;
- //function pair_content(_para1:Smallint; _para2:PSmallint; _para3:PSmallInt):Longint; cdecl;external libncurses;
- function pair_content(pair: Smallint; f, b: pNC_FPC_COLOR):Longint; cdecl;external libncurses;
- function pechochar(_para1:PWINDOW; _para2:chtype):Longint; cdecl;external libncurses;
- function pnoutrefresh(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:Longint; _para5:Longint;
- _para6:Longint; _para7:Longint):Longint; cdecl;external libncurses;
- function prefresh(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:Longint; _para5:Longint;
- _para6:Longint; _para7:Longint):Longint; cdecl;external libncurses;
- function putwin(_para1:PWINDOW; _para2:PFILE):Longint; cdecl;external libncurses;
- procedure qiflush;cdecl;external libncurses;
- function raw:Longint; cdecl;external libncurses;
- function resetty:Longint; cdecl;external libncurses;
- function reset_prog_mode:Longint; cdecl;external libncurses;
- function reset_shell_mode:Longint; cdecl;external libncurses;
- type TWinInit = function (win: PWINDOW; ncols: Longint): Longint; cdecl;
- function ripoffline(line: Longint; init: TWinInit):Longint; cdecl;external libncurses;
- function savetty:Longint; cdecl;external libncurses;
- function scr_dump(_para1:PAnsiChar):Longint; cdecl;external libncurses;
- function scr_init(_para1:PAnsiChar):Longint; cdecl;external libncurses;
- function scrollok(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
- function scr_restore(_para1:PAnsiChar):Longint; cdecl;external libncurses;
- function scr_set(_para1:PAnsiChar):Longint; cdecl;external libncurses;
- function set_term(_para1:PSCREEN):PSCREEN;cdecl;external libncurses;
- function slk_attroff(_para1:chtype):Longint; cdecl;external libncurses;
- function slk_attron(_para1:chtype):Longint; cdecl;external libncurses;
- function slk_attrset(_para1:chtype):Longint; cdecl;external libncurses;
- function slk_attr:attr_t;cdecl;external libncurses;
- function slk_attr_set(_para1:attr_t; _para2:Smallint; _para3:Pointer):Longint; cdecl;external libncurses;
- function slk_clear:Longint; cdecl;external libncurses;
- function slk_color(_para1:Smallint):Longint; cdecl;external libncurses;
- function slk_init(_para1:Longint):Longint; cdecl;external libncurses;
- function slk_label(_para1:Longint):PAnsiChar;cdecl;external libncurses;
- function slk_noutrefresh:Longint; cdecl;external libncurses;
- function slk_refresh:Longint; cdecl;external libncurses;
- function slk_restore:Longint; cdecl;external libncurses;
- function slk_set(_para1:Longint; _para2:PAnsiChar; _para3:Longint):Longint; cdecl;external libncurses;
- function slk_touch:Longint; cdecl;external libncurses;
- function start_color:Longint; cdecl;external libncurses;
- function subpad(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:Longint; _para5:Longint):PWINDOW;cdecl;external libncurses;
- function subwin(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:Longint; _para5:Longint):PWINDOW;cdecl;external libncurses;
- function syncok(_para1:PWINDOW; _para2:Bool):Longint; cdecl;external libncurses;
- function termattrs:chtype;cdecl;external libncurses;
- function termname:PAnsiChar;cdecl;external libncurses;
- function typeahead(_para1:Longint):Longint; cdecl;external libncurses;
- function ungetch(_para1:Longint):Longint; cdecl;external libncurses;
- procedure use_env(_para1:Bool);cdecl;external libncurses;
- function vidattr(_para1:chtype):Longint; cdecl;external libncurses;
- function waddch(_para1:PWINDOW; _para2:chtype):Longint; cdecl;external libncurses;
- function waddchnstr(_para1:PWINDOW; _para2:Pchtype; _para3:Longint):Longint; cdecl;external libncurses;
- function waddnstr(_para1:PWINDOW; _para2:PAnsiChar; _para3:Longint):Longint; cdecl;external libncurses;
- function wattr_on(_para1:PWINDOW; _para2:attr_t; _para3:Pointer):Longint; cdecl;external libncurses;
- function wattr_off(_para1:PWINDOW; _para2:attr_t; _para3:Pointer):Longint; cdecl;external libncurses;
- function wbkgd(_para1:PWINDOW; _para2:chtype):Longint; cdecl;external libncurses;
- procedure wbkgdset(_para1:PWINDOW; _para2:chtype);cdecl;external libncurses;
- function wborder(_para1:PWINDOW; _para2:chtype; _para3:chtype; _para4:chtype; _para5:chtype;
- _para6:chtype; _para7:chtype; _para8:chtype; _para9:chtype):Longint; cdecl;external libncurses;
- function wchgat(_para1:PWINDOW; _para2:Longint; _para3:attr_t; _para4:Smallint; _para5:Pointer):Longint; cdecl;external libncurses;
- function wclear(_para1:PWINDOW):Longint; cdecl;external libncurses;
- function wclrtobot(_para1:PWINDOW):Longint; cdecl;external libncurses;
- function wclrtoeol(_para1:PWINDOW):Longint; cdecl;external libncurses;
- function wcolor_set(_para1:PWINDOW; _para2:Smallint; _para3:Pointer):Longint; cdecl;external libncurses;
- procedure wcursyncup(_para1:PWINDOW);cdecl;external libncurses;
- function wdelch(_para1:PWINDOW):Longint; cdecl;external libncurses;
- function wechochar(_para1:PWINDOW; _para2:chtype):Longint; cdecl;external libncurses;
- function werase(_para1:PWINDOW):Longint; cdecl;external libncurses;
- function wgetch(_para1:PWINDOW):Longint; cdecl;external libncurses;
- function wgetnstr(_para1:PWINDOW; _para2:PAnsiChar; _para3:Longint):Longint; cdecl;external libncurses;
- function whline(_para1:PWINDOW; _para2:chtype; _para3:Longint):Longint; cdecl;external libncurses;
- function winch(_para1:PWINDOW):chtype;cdecl;external libncurses;
- function winchnstr(_para1:PWINDOW; _para2:Pchtype; _para3:Longint):Longint; cdecl;external libncurses;
- function winnstr(_para1:PWINDOW; _para2:PAnsiChar; _para3:Longint):Longint; cdecl;external libncurses;
- function winsch(_para1:PWINDOW; _para2:chtype):Longint; cdecl;external libncurses;
- function winsdelln(_para1:PWINDOW; _para2:Longint):Longint; cdecl;external libncurses;
- function winsnstr(_para1:PWINDOW; _para2:PAnsiChar; _para3:Longint):Longint; cdecl;external libncurses;
- { realised as inline function }
- //function wmove(_para1:PWINDOW; _para2:Longint; _para3:Longint):Longint; cdecl;external libncurses;
- function wnoutrefresh(_para1:PWINDOW):Longint; cdecl;external libncurses;
- function wredrawln(_para1:PWINDOW; _para2:Longint; _para3:Longint):Longint; cdecl;external libncurses;
- function wrefresh(_para1:PWINDOW):Longint; cdecl;external libncurses;
- function wscrl(_para1:PWINDOW; _para2:Longint):Longint; cdecl;external libncurses;
- function wsetscrreg(_para1:PWINDOW; _para2:Longint; _para3:Longint):Longint; cdecl;external libncurses;
- procedure wsyncdown(_para1:PWINDOW);cdecl;external libncurses;
- procedure wsyncup(_para1:PWINDOW);cdecl;external libncurses;
- procedure wtimeout(_para1:PWINDOW; _para2:Longint);cdecl;external libncurses;
- function wtouchln(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:Longint):Longint; cdecl;external libncurses;
- function wvline(_para1:PWINDOW; _para2:chtype; _para3:Longint):Longint; cdecl;external libncurses;
- (*
- * These are also declared in <ncursesw/term.h>:
- *)
- function tigetflag(_para1:PAnsiChar):Longint; cdecl;external libncurses;
- function tigetnum(_para1:PAnsiChar):Longint; cdecl;external libncurses;
- function tigetstr(_para1:PAnsiChar):PAnsiChar;cdecl;external libncurses;
- function putp(_para1:PAnsiChar):Longint; cdecl;external libncurses;
- var
- {$IFNDEF darwin}
- ttytype : array of PAnsiChar cvar; external; { needed for backward compatibility }
- {$ELSE darwin}
- ttytype : array of PAnsiChar external libncurses name 'ttytype';
- {$ENDIF darwin}
- (*
- * Function prototypes for wide-character operations.
- *)
- {function vid_puts(_para1:attr_t; _para2:Smallint; _para3:pointer; _para4:function (_para1:cint):cint):longint; cdecl;external libncurses;
- function vidputs(_para1:chtype; _para2:function (_para1:Longint):Longint):Longint; cdecl;external libncurses;}
- type TPutc = function(arg:Longint):Longint; cdecl;
- function vid_puts(attrs:attr_t; pair:Smallint; opts:Pointer; _putc:TPutc):Longint; cdecl;external libncurses;
- function vidputs(attrs:chtype; _putc:TPutc):Longint; cdecl;external libncurses;
- function erasewchar(_para1:Pwchar_t):Longint; cdecl;external libncurses;
- function getcchar(_para1:Pcchar_t; _para2:Pwchar_t; _para3:Pattr_t; _para4:PSmallInt; _para5:Pointer):Longint; cdecl;external libncurses;
- function key_name(_para1:wchar_t):PAnsiChar;cdecl;external libncurses;
- function killwchar(_para1:Pwchar_t):Longint; cdecl;external libncurses;
- function pecho_wchar(_para1:PWINDOW; _para2:Pcchar_t):Longint; cdecl;external libncurses;
- function setcchar(_para1:Pcchar_t; _para2:Pwchar_t; _para3:attr_t; _para4:Smallint; _para5:Pointer):Longint; cdecl;external libncurses;
- function slk_wset(_para1:Longint; _para2:Pwchar_t; _para3:Longint):Longint; cdecl;external libncurses;
- function term_attrs:attr_t;cdecl;external libncurses;
- function unget_wch(_para1:wchar_t):longint; cdecl;external libncurses;
- function vid_attr(_para1:attr_t; _para2:Smallint; _para3:pointer):longint; cdecl;external libncurses;
- function wadd_wch(_para1:PWINDOW; _para2:Pcchar_t):longint; cdecl;external libncurses;
- function wadd_wchnstr(_para1:PWINDOW; _para2:Pcchar_t; _para3:Longint):longint; cdecl;external libncurses;
- function waddnwstr(_para1:PWINDOW; _para2:Pwchar_t; _para3:Longint):longint; cdecl;external libncurses;
- function wbkgrnd(_para1:PWINDOW; _para2:Pcchar_t):longint; cdecl;external libncurses;
- procedure wbkgrndset(_para1:PWINDOW; _para2:Pcchar_t);cdecl;external libncurses;
- function wborder_set(_para1:PWINDOW; _para2:Pcchar_t; _para3:Pcchar_t; _para4:Pcchar_t; _para5:Pcchar_t;
- _para6:Pcchar_t; _para7:Pcchar_t; _para8:Pcchar_t; _para9:Pcchar_t):longint; cdecl;external libncurses;
- function wecho_wchar(_para1:PWINDOW; _para2:Pcchar_t):longint; cdecl;external libncurses;
- function wget_wch(_para1:PWINDOW; _para2:PLongint):longint; cdecl;external libncurses;
- function wgetbkgrnd(_para1:PWINDOW; _para2:Pcchar_t):longint; cdecl;external libncurses;
- function wgetn_wstr(_para1:PWINDOW; _para2:PLongint; _para3:Longint):longint; cdecl;external libncurses;
- function whline_set(_para1:PWINDOW; _para2:Pcchar_t; _para3:Longint):longint; cdecl;external libncurses;
- function win_wch(_para1:PWINDOW; _para2:Pcchar_t):longint; cdecl;external libncurses;
- function win_wchnstr(_para1:PWINDOW; _para2:Pcchar_t; _para3:Longint):longint; cdecl;external libncurses;
- function winnwstr(_para1:PWINDOW; _para2:Pwchar_t; _para3:Longint):longint; cdecl;external libncurses;
- function wins_nwstr(_para1:PWINDOW; _para2:Pwchar_t; _para3:Longint):longint; cdecl;external libncurses;
- function wins_wch(_para1:PWINDOW; _para2:Pcchar_t):longint; cdecl;external libncurses;
- function winwstr(_para1:PWINDOW; _para2:Pwchar_t):longint; cdecl;external libncurses;
- function wunctrl(_para1:Pcchar_t):Pwchar_t;cdecl;external libncurses;
- function wvline_set(_para1:PWINDOW; _para2:Pcchar_t; _para3:Longint):longint; cdecl;external libncurses;
- const
- A_NORMAL = 0;
- A_ATTRIBUTES = (not 0) shl 8;
- A_CHARTEXT=(1 shl (0 + 8)) - 1;
- A_COLOR=((1 shl 8) - 1) shl 8;
- A_STANDOUT = 1 shl (8 + 8);
- A_UNDERLINE = 1 shl (9 + 8);
- A_REVERSE = 1 shl (10 + 8);
- A_BLINK = 1 shl (11 + 8);
- A_DIM = 1 shl (12 + 8);
- A_BOLD = 1 shl (13 + 8);
- A_ALTCHARSET = 1 shl (14 + 8);
- A_INVIS = 1 shl (15 + 8);
- A_PROTECT = 1 shl (16 + 8);
- A_HORIZONTAL = 1 shl (17 + 8);
- A_LEFT = 1 shl (18 + 8);
- A_LOW = 1 shl (19 + 8);
- A_RIGHT = 1 shl (20 + 8);
- A_TOP = 1 shl (21 + 8);
- A_VERTICAL = 1 shl (22 + 8);
- const
- WA_ATTRIBUTES = A_ATTRIBUTES;
- WA_NORMAL = A_NORMAL;
- WA_STANDOUT = A_STANDOUT;
- WA_UNDERLINE = A_UNDERLINE;
- WA_REVERSE = A_REVERSE;
- WA_BLINK = A_BLINK;
- WA_DIM = A_DIM;
- WA_BOLD = A_BOLD;
- WA_ALTCHARSET = A_ALTCHARSET;
- WA_INVIS = A_INVIS;
- WA_PROTECT = A_PROTECT;
- WA_HORIZONTAL = A_HORIZONTAL;
- WA_LEFT = A_LEFT;
- WA_LOW = A_LOW;
- WA_RIGHT = A_RIGHT;
- WA_TOP = A_TOP;
- WA_VERTICAL = A_VERTICAL;
- function COLOR_PAIR(n: cint): cint; inline;
- function PAIR_NUMBER(attr: attr_t): longint; inline;
- function color_set(color_pair_number: Smallint; opts: Pointer): longint; inline;
- (* pseudo functions *)
- function wgetstr(win: PWINDOW; s: PAnsiChar): Longint;
- function getnstr(s: PAnsiChar;n: Longint): Longint; inline;
- function setterm(term: PAnsiChar): Longint; inline;
- function fixterm: Longint; inline;
- function resetterm: Longint; inline;
- function saveterm: Longint; inline;
- function crmode: Longint; inline;
- function nocrmode: Longint; inline;
- // formal parameter versions not endiansafe?
- procedure getyx (win: PWINDOW; var y,x: Smallint); inline; overload;
- procedure getbegyx(win: PWINDOW; var y,x: Smallint); inline; overload;
- procedure getmaxyx(win: PWINDOW; var y,x: Smallint); inline; overload;
- procedure getparyx(win: PWINDOW; var y,x: Smallint); inline; overload;
- procedure getsyx (var y,x: Smallint); inline; overload;
- procedure getyx (win: PWINDOW; var y,x: Longint); inline; overload;
- procedure getbegyx(win: PWINDOW; var y,x: Longint); inline; overload;
- procedure getmaxyx(win: PWINDOW; var y,x: Longint); inline; overload;
- procedure getparyx(win: PWINDOW; var y,x: Longint); inline; overload;
- procedure getsyx (var y,x: Longint); inline; overload;
- procedure setsyx (y,x: Smallint); inline;
- function getattrs(win: PWINDOW): attr_t; inline;
- function getcurx(win: PWINDOW): Smallint; inline;
- function getcury(win: PWINDOW): Smallint; inline;
- function getbegx(win: PWINDOW): Smallint; inline;
- function getbegy(win: PWINDOW): Smallint; inline;
- function getmaxx(win: PWINDOW): Smallint; inline;
- function getmaxy(win: PWINDOW): Smallint; inline;
- function getparx(win: PWINDOW): Smallint; inline;
- function getpary(win: PWINDOW): Smallint; inline;
- function wstandout(win: PWINDOW): Longint; inline;
- function wstandend(win: PWINDOW): Longint; inline;
- function wattr_set(win:PWINDOW; attrs:attr_t; pair:Smallint; opts:Pointer):Longint; inline;
- //function wattr_get(win: PWINDOW): longint;// original fpc ncurses?
- function wattr_get(win:PWINDOW; attrs:Pattr_t; pair:PSmallint; opts:Pointer):longint; // inline; breaks compilation on some architectures currently
- function wattron(win:PWINDOW; attrs: attr_t): Longint; inline;
- function wattroff(win:PWINDOW; attrs: attr_t): Longint; inline;
- function wattrset(win: PWINDOW; attrs: attr_t): longint; inline;
- function scroll(win: PWINDOW): longint; inline;
- function touchwin(win: PWINDOW): longint; inline;
- function touchline(win: PWINDOW;s,c: longint): longint; inline;
- function untouchwin(win: PWINDOW): longint; inline;
- function box(win:PWINDOW; v,h :chtype):Longint; inline;
- function border(ls,rs,ts,bs,tl,tr,bl,br: chtype): longint; inline;
- function hline(ch:chtype; n:longint): longint; inline;
- function vline(ch:chtype; n:longint): longint; inline;
- function winstr(win: PWINDOW;s: PAnsiChar): longint; inline;
- function winchstr(win: PWINDOW; chstr: pchtype): longint; inline;
- function winsstr(win: PWINDOW;s: PAnsiChar): longint; inline;
- function redrawwin(win: PWINDOW): longint; inline;
- function waddstr(win: PWINDOW;st: PAnsiChar): longint; inline;
- function waddchstr(win: PWINDOW; chstr: pchtype): longint; inline;
- {
- pseudo functions for standard screen
- }
- function addch(ch: chtype): longint; inline;
- function addchnstr(chstr: pchtype; n: longint): longint; inline;
- function addchstr(chstr: pchtype): longint; inline;
- function addnstr(str: PAnsiChar;n: longint): longint; inline;
- function addstr(str: PAnsiChar): longint; inline;
- function attroff(attrs: attr_t): longint; inline;
- function attron(attrs: attr_t): longint; inline;
- function attrset(attrs: attr_t): longint; inline;
- function bkgd(ch: chtype): longint; inline;
- procedure bkgdset(ch: chtype); inline;
- function clear: longint; inline;
- function clrtobot: longint; inline;
- function clrtoeol: longint; inline;
- function delch: longint; inline;
- function deleteln: longint; inline;
- function echochar(ch: chtype): longint; inline;
- function erase: longint; inline;
- function getch: longint; inline;
- function getstr(str: PAnsiChar): longint; inline;
- function inch: chtype; inline;
- function inchnstr(chstr: pchtype;n: longint): longint; inline;
- function inchstr(chstr: pchtype): longint; inline;
- function innstr(str: PAnsiChar;n: longint): longint; inline;
- function insch(ch: chtype): longint; inline;
- function insdelln(n: longint): longint; inline;
- function insertln: longint; inline;
- function insnstr(str: PAnsiChar;n: longint): longint; inline;
- function insstr(str: PAnsiChar): longint; inline;
- function instr(str: PAnsiChar): longint; inline;
- function move(y,x: Smallint): longint; inline;
- function refresh: longint; inline;
- function scrl(n: longint): longint; inline;
- function setscrreg(t,b: longint): longint; inline;
- function standend: longint; inline;
- function standout: longint; inline;
- procedure timeout(delay: longint); inline;
- function wdeleteln(win: PWINDOW): longint; inline;
- function winsertln(win: PWINDOW): longint; inline;
- {
- mv functions
- }
- function mvwaddch(win: PWINDOW;y,x: Smallint; ch: chtype): longint; inline;
- function mvwaddchnstr(win: PWINDOW;y,x: Smallint; chstr: pchtype; n: longint): longint; inline;
- function mvwaddchstr(win: PWINDOW;y,x: Smallint; chstr: pchtype): longint; inline;
- function mvwaddnstr(win: PWINDOW;y,x: Smallint; str: PAnsiChar; n: longint): longint; inline;
- function mvwaddstr(win: PWINDOW;y,x: Smallint; str: PAnsiChar): longint; inline;
- function mvwdelch(win: PWINDOW; y,x: Smallint): longint;
- function mvwchgat(win: PWINDOW;y, x: Smallint; n: Longint;attr: attr_t;
- color: Smallint; opts: Pointer): longint; inline;
- function mvwgetch(win: PWINDOW; y,x: Smallint): longint; inline;
- function mvwgetnstr(win: PWINDOW; y,x: Smallint; str: PAnsiChar; n: longint): longint; inline;
- function mvwgetstr(win: PWINDOW; y,x: Smallint; str: PAnsiChar): longint; inline;
- function mvwhline(win: PWINDOW; y,x: Smallint; ch: chtype; n: longint): longint; inline;
- function mvwinch(win: PWINDOW;y,x: Smallint): chtype; inline;
- function mvwinchnstr(win: PWINDOW;y,x: Smallint;chstr: pchtype; n: longint): longint; inline;
- function mvwinchstr(win: PWINDOW;y,x: Smallint;chstr: pchtype): longint; inline;
- function mvwinnstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar;n: longint): longint; inline;
- function mvwinsch(win: PWINDOW;y,x: Smallint;ch: chtype): longint; inline;
- function mvwinsnstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar;n: longint): longint; inline;
- function mvwinsstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar): longint; inline;
- function mvwinstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar): longint; inline;
- function mvwvline(win: PWINDOW;y,x: Smallint;ch: chtype;n: longint): longint; inline;
- function mvaddch(y,x: Smallint; ch: chtype): longint; inline;
- function mvaddchnstr(y,x: Smallint; chstr: pchtype;n: longint): longint; inline;
- function mvaddchstr(y,x: Smallint; chstr: pchtype): longint; inline;
- function mvaddnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint; inline;
- function mvaddstr(y,x: Smallint; str: PAnsiChar): longint; inline;
- function mvdelch(y,x: Smallint): longint; inline;
- function mvgetch(y,x: Smallint): longint; inline;
- function mvgetnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint; inline;
- function mvgetstr(y,x: Smallint; str: PAnsiChar): longint; inline;
- function mvhline(y,x: Smallint;ch: chtype;n: longint): longint; inline;
- function mvinch(y,x: Smallint): chtype; inline;
- function mvinchnstr(y,x: Smallint; chstr: pchtype;n: longint): longint; inline;
- function mvinchstr(y,x: Smallint; chstr: pchtype): longint; inline;
- function mvinnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint; inline;
- function mvinsch(y,x: Smallint;ch: chtype): longint; inline;
- function mvinsnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint; inline;
- function mvinsstr(y,x: Smallint; str: PAnsiChar): longint; inline;
- function mvinstr(y,x: Smallint; str: PAnsiChar): longint; inline;
- function mvvline(y,x: Smallint; ch:chtype; n:longint): longint; inline;
- function attr_get(attrs:Pattr_t; pair:PSmallint; opts:Pointer): longint; inline;
- function attr_off(attrs:attr_t; opts:Pointer): longint; inline;
- function attr_on(attrs:attr_t; opts:Pointer): longint; inline;
- function attr_set(attrs:attr_t; pair:Smallint; opts:Pointer): longint; inline;
- function chgat(n: Longint;attr: attr_t;color: Smallint; opts: Pointer): longint; inline;
- {not present in fpc ncurses}
- function mvchgat(y, x: Smallint; n: Longint;attr: attr_t;color: Smallint; opts: Pointer):Longint; inline;
- function getbkgd(win: PWINDOW): chtype; inline;
- function slk_attr_off(attrs: attr_t; opts: Pointer) : longint; inline;
- function slk_attr_on(attrs: attr_t; opts: Pointer): longint; inline;
- (*
- * 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.
- *
- * Some keys (KEY_A1, etc) are arranged like this:
- * a1 up a3
- * left b2 right
- * c1 down c3
- *
- * A few key codes do not depend upon the terminfo entry.
- *)
- const
- KEY_CODE_YES = 256; { A wchar_t contains a key code &0400 }
- KEY_MIN = 257; { Minimum curses key &0401 }
- KEY_BREAK = 257; { Break key (unreliable) &0401 }
- KEY_SRESET = 344; { Soft (partial) reset (unreliable) &0530 }
- KEY_RESET = 345; { Reset or hard reset (unreliable) &0531 }
- KEY_DOWN = 258; { down-arrow key &0402 }
- KEY_UP = 259; { up-arrow key &0403 }
- KEY_LEFT = 260; { left-arrow key &0404 }
- KEY_RIGHT = 261; { right-arrow key &0405 }
- KEY_HOME = 262; { home key &0406 }
- KEY_BACKSPACE = 263; { backspace key &0407 }
- KEY_F0 = 264; { Function keys. Space for 64 &0410 }
- { Manually Added KEY_F1 .. KEY_F12 }
- KEY_F1 = KEY_F0 + 1;
- KEY_F2 = KEY_F0 + 2;
- KEY_F3 = KEY_F0 + 3;
- KEY_F4 = KEY_F0 + 4;
- KEY_F5 = KEY_F0 + 5;
- KEY_F6 = KEY_F0 + 6;
- KEY_F7 = KEY_F0 + 7;
- KEY_F8 = KEY_F0 + 8;
- KEY_F9 = KEY_F0 + 9;
- KEY_F10 = KEY_F0 + 10;
- KEY_F11 = KEY_F0 + 11;
- KEY_F12 = KEY_F0 + 12;
- function KEY_F(n : Byte) : chtype; inline;
- const
- KEY_DL = 328; { delete-line key &0510 }
- KEY_IL = 329; { insert-line key &0511 }
- KEY_DC = 330; { delete-character key &0512 }
- KEY_IC = 331; { insert-character key &0513 }
- KEY_EIC = 332; { sent by rmir or smir in insert mode &0514 }
- KEY_CLEAR = 333; { clear-screen or erase key &0515 }
- KEY_EOS = 334; { clear-to-end-of-screen key &0516 }
- KEY_EOL = 335; { clear-to-end-of-line key &0517 }
- KEY_SF = 336; { scroll-forward key &0520 }
- KEY_SR = 337; { scroll-backward key &0521 }
- KEY_NPAGE = 338; { next-page key &0522 }
- KEY_PPAGE = 339; { previous-page key &0523 }
- KEY_STAB = 340; { set-tab key &0524 }
- KEY_CTAB = 341; { clear-tab key &0525 }
- KEY_CATAB = 342; { clear-all-tabs key &0526 }
- KEY_ENTER = 343; { enter/send key &0527 }
- KEY_PRINT = 346; { print key &0532 }
- KEY_LL = 347; { lower-left key (home down) &0533 }
- KEY_A1 = 348; { upper left of keypad &0534 }
- KEY_A3 = 349; { upper right of keypad &0535 }
- KEY_B2 = 350; { center of keypad &0536 }
- KEY_C1 = 351; { lower left of keypad &0537 }
- KEY_C3 = 352; { lower right of keypad &0540 }
- KEY_BTAB = 353; { back-tab key &0541 }
- KEY_BEG = 354; { begin key &0542 }
- KEY_CANCEL = 355; { cancel key &0543 }
- KEY_CLOSE = 356; { close key &0544 }
- KEY_COMMAND = 357; { command key &0545 }
- KEY_COPY = 358; { copy key &0546 }
- KEY_CREATE = 359; { create key &0547 }
- KEY_END = 360; { end key &0550 }
- KEY_EXIT = 361; { exit key &0551 }
- KEY_FIND = 362; { find key &0552 }
- KEY_HELP = 363; { help key &0553 }
- KEY_MARK = 364; { mark key &0554 }
- KEY_MESSAGE = 365; { message key &0555 }
- KEY_MOVE = 366; { move key &0556 }
- KEY_NEXT = 367; { next key &0557 }
- KEY_OPEN = 368; { open key &0560 }
- KEY_OPTIONS = 369; { options key &0561 }
- KEY_PREVIOUS = 370; { previous key &0562 }
- KEY_REDO = 371; { redo key &0563 }
- KEY_REFERENCE = 372; { reference key &0564 }
- KEY_REFRESH = 373; { refresh key &0565 }
- KEY_REPLACE = 374; { replace key &0566 }
- KEY_RESTART = 375; { restart key &0567 }
- KEY_RESUME = 376; { resume key &0570 }
- KEY_SAVE = 377; { save key &0571 }
- KEY_SBEG = 378; { shifted begin key &0572 }
- KEY_SCANCEL = 379; { shifted cancel key &0573 }
- KEY_SCOMMAND = 380; { shifted command key &0574 }
- KEY_SCOPY = 381; { shifted copy key &0575 }
- KEY_SCREATE = 382; { shifted create key &0576 }
- KEY_SDC = 383; { shifted delete-character key &0577 }
- KEY_SDL = 384; { shifted delete-line key &0600 }
- KEY_SELECT = 385; { select key &0601 }
- KEY_SEND = 386; { shifted end key &0602 }
- KEY_SEOL = 387; { shifted clear-to-end-of-line key &0603 }
- KEY_SEXIT = 388; { shifted exit key &0604 }
- KEY_SFIND = 389; { shifted find key &0605 }
- KEY_SHELP = 390; { shifted help key &0606 }
- KEY_SHOME = 391; { shifted home key &0607 }
- KEY_SIC = 392; { shifted insert-character key &0610 }
- KEY_SLEFT = 393; { shifted left-arrow key &0611 }
- KEY_SMESSAGE = 394; { shifted message key &0612 }
- KEY_SMOVE = 395; { shifted move key &0613 }
- KEY_SNEXT = 396; { shifted next key &0614 }
- KEY_SOPTIONS = 397; { shifted options key &0615 }
- KEY_SPREVIOUS = 398; { shifted previous key &0616 }
- KEY_SPRINT = 399; { shifted print key &0617 }
- KEY_SREDO = 400; { shifted redo key &0620 }
- KEY_SREPLACE = 401; { shifted replace key &0621 }
- KEY_SRIGHT = 402; { shifted right-arrow key &0622 }
- KEY_SRSUME = 403; { shifted resume key &0623 }
- KEY_SSAVE = 404; { shifted save key &0624 }
- KEY_SSUSPEND = 405; { shifted suspend key &0625 }
- KEY_SUNDO = 406; { shifted undo key &0626 }
- KEY_SUSPEND = 407; { suspend key &0627 }
- KEY_UNDO = 408; { undo key &0630}
- KEY_MOUSE = 409; { Mouse event has occurred &0631 }
- KEY_RESIZE = 410; { Terminal resize event &0632 }
- KEY_EVENT = 411; { We were interrupted by an event &0633 }
- KEY_MAX = 511; { Maximum key value is 0633 &0777 }
- type
- //tnc_wacs= array [AnsiChar] of cchar_t;
- tnc_wacs= array of cchar_t;
- pnc_wacs = ^tacs_map;
- var
- {$IFNDEF darwin}
- //_nc_wacs : pcchar_t cvar; external;
- _nc_wacs : tnc_wacs cvar; external;
- {$ELSE darwin}
- //_nc_wacs : pcchar_t external libncurses name '_nc_wacs';
- _nc_wacs : tnc_wacs external libncurses name '_nc_wacs';
- {$ENDIF darwin}
- function NCURSES_WACS(c: chtype): cchar_t; inline;
- function WACS_BSSB: cchar_t; inline;
- function WACS_SSBB: cchar_t; inline;
- function WACS_BBSS: cchar_t; inline;
- function WACS_SBBS: cchar_t; inline;
- function WACS_SBSS: cchar_t; inline;
- function WACS_SSSB: cchar_t; inline;
- function WACS_SSBS: cchar_t; inline;
- function WACS_BSSS: cchar_t; inline;
- function WACS_BSBS: cchar_t; inline;
- function WACS_SBSB: cchar_t; inline;
- function WACS_SSSS: cchar_t; inline;
- function WACS_S1: cchar_t; inline;
- function WACS_S9: cchar_t; inline;
- function WACS_DIAMOND: cchar_t; inline;
- function WACS_CKBOARD: cchar_t; inline;
- function WACS_DEGREE: cchar_t; inline;
- function WACS_PLMINUS: cchar_t; inline;
- function WACS_BULLET: cchar_t; inline;
- function WACS_LARROW: cchar_t; inline;
- function WACS_RARROW: cchar_t; inline;
- function WACS_DARROW: cchar_t; inline;
- function WACS_UARROW: cchar_t; inline;
- function WACS_BOARD: cchar_t; inline;
- function WACS_LANTERN: cchar_t; inline;
- function WACS_BLOCK: cchar_t; inline;
- function WACS_S3: cchar_t; inline;
- function WACS_S7: cchar_t; inline;
- function WACS_LEQUAL: cchar_t; inline;
- function WACS_GEQUAL: cchar_t; inline;
- function WACS_PI: cchar_t; inline;
- function WACS_NEQUAL: cchar_t; inline;
- function WACS_STERLING: cchar_t; inline;
- {$IFDEF FPC_OBJFPC}
- property WACS_ULCORNER : cchar_t read WACS_BSSB;
- property WACS_LLCORNER : cchar_t read WACS_SSBB;
- property WACS_URCORNER : cchar_t read WACS_BBSS;
- property WACS_LRCORNER : cchar_t read WACS_SBBS;
- property WACS_RTEE : cchar_t read WACS_SBSS;
- property WACS_LTEE : cchar_t read WACS_SSSB;
- property WACS_BTEE : cchar_t read WACS_SSBS;
- property WACS_TTEE : cchar_t read WACS_BSSS;
- property WACS_HLINE : cchar_t read WACS_BSBS;
- property WACS_VLINE : cchar_t read WACS_SBSB;
- property WACS_PLUS : cchar_t read WACS_SSSS;
- {$ENDIF FPC_OBJFPC}
- (* mouse interface *)
- (* event masks *)
- const
- BUTTON1_RELEASED = 1;
- BUTTON1_PRESSED = 2;
- BUTTON1_CLICKED = 4;
- BUTTON1_DOUBLE_CLICKED = 8;
- BUTTON1_TRIPLE_CLICKED = 16;
- BUTTON2_RELEASED = 1 shl 6;
- BUTTON2_PRESSED = 2 shl 6;
- BUTTON2_CLICKED = 4 shl 6;
- BUTTON2_DOUBLE_CLICKED = 8 shl 6;
- BUTTON2_TRIPLE_CLICKED = 16 shl 6;
- BUTTON3_RELEASED = 1 shl (2 * 6);
- BUTTON3_PRESSED = 2 shl (2 * 6);
- BUTTON3_CLICKED = 4 shl (2 * 6);
- BUTTON3_DOUBLE_CLICKED = 8 shl (2 * 6);
- BUTTON3_TRIPLE_CLICKED = 16 shl (2 * 6);
- BUTTON4_RELEASED = 1 shl (3 * 6);
- BUTTON4_PRESSED = 2 shl (3 * 6);
- BUTTON4_CLICKED = 4 shl (3 * 6);
- BUTTON4_DOUBLE_CLICKED = 8 shl (3 * 6);
- BUTTON4_TRIPLE_CLICKED = 16 shl (3 * 6);
- {$IF NCURSES_MOUSE_VERSION > 1}
- BUTTON5_RELEASED = BUTTON1_RELEASED shl (4 * 6);
- BUTTON5_PRESSED = BUTTON1_PRESSED shl (4 * 6);
- BUTTON5_CLICKED = BUTTON1_CLICKED shl (4 * 6);
- BUTTON5_DOUBLE_CLICKED = BUTTON1_DOUBLE_CLICKED shl (4 * 6);
- BUTTON5_TRIPLE_CLICKED = BUTTON1_TRIPLE_CLICKED shl (4 * 6);
- BUTTON_CTRL = 1 shl (5 * 6);
- BUTTON_SHIFT = 2 shl (5 * 6);
- BUTTON_ALT = 4 shl (5 * 6);
- REPORT_MOUSE_POSITION = 8 shl (5 * 6);
- {$ELSE}
- BUTTON1_RESERVED_EVENT = 32;
- BUTTON2_RESERVED_EVENT = 32 shl 6;
- BUTTON3_RESERVED_EVENT = 32 shl (2 * 6);
- BUTTON4_RESERVED_EVENT = 32 shl (3 * 6);
- BUTTON_CTRL = 1 shl (4 * 6);
- BUTTON_SHIFT = 2 shl (4 * 6);
- BUTTON_ALT = 4 shl (4 * 6);
- REPORT_MOUSE_POSITION = 8 shl (4 * 6);
- {$ENDIF}
- ALL_MOUSE_EVENTS = REPORT_MOUSE_POSITION - 1;
- (* macros to extract single event-bits from masks *)
- function BUTTON_RELEASE(e,x: longint): longint; inline;
- function BUTTON_PRESS(e,x: longint): longint; inline;
- function BUTTON_CLICK(e,x: longint): longint; inline;
- function BUTTON_DOUBLE_CLICK(e,x: longint): longint; inline;
- function BUTTON_TRIPLE_CLICK(e,x: longint): longint; inline;
- function BUTTON_RESERVED_EVENT(e,x: longint): longint; inline;
- function mouse_trafo(pY,pX: PLongint; to_screen: Bool): Bool; inline;
- type
- PMEVENT = ^MEVENT;
- MEVENT = record
- id : Smallint; { ID to distinguish multiple devices }
- x, y, z : Longint; { event coordinates (character-cell) }
- bstate : mmask_t; { button state bits }
- end;
- function getmouse(_para1:PMEVENT):longint; cdecl;external libncurses;
- function ungetmouse(_para1:PMEVENT):longint; cdecl;external libncurses;
- function mousemask(_para1:mmask_t; _para2:Pmmask_t):mmask_t;cdecl;external;
- function wenclose(_para1:PWINDOW; _para2:Longint; _para3:Longint):Bool;cdecl;external;
- function mouseinterval(_para1:Longint):longint; cdecl;external libncurses;
- function wmouse_trafo(_para1:PWINDOW; _para2:PLongint; _para3:PLongint; _para4:Bool):Bool;cdecl;external;
- {
- wide-character (enhanced) functionality
- }
- function add_wch(wch: pcchar_t): longint; inline;
- function add_wchnstr(wchstr: pcchar_t; n: longint): longint; inline;
- function add_wchstr(wchstr: pcchar_t): longint; inline;
- function addnwstr(wchstr: pwchar_t; n : longint) : longint; inline;
- function addwstr(wchstr: pwchar_t): longint; inline;
- function bkgrnd(wch: pcchar_t): longint; inline;
- procedure bkgrndset(wch: pcchar_t); inline;
- function border_set(ls,rs,ts,bs,tl,tr,bl,br: pcchar_t): longint; inline;
- function box_set(win: PWINDOW; verch,horch: pcchar_t): longint; inline;
- function echo_wchar(wch: Pcchar_t): longint; inline;
- function get_wch(wch: Plongint): longint; inline;
- function get_wstr(wstr: PLongint): longint; inline;
- function getbkgrnd(wch: pcchar_t): longint; inline;
- function getn_wstr(wstr: PLongint; n: longint): longint; inline;
- function hline_set(wch: pcchar_t; n: longint): longint; inline;
- function in_wch(wch: pcchar_t) : longint; inline;
- function in_wchnstr(wchstr: pcchar_t; n: longint): longint; inline;
- function in_wchstr(wchstr: pcchar_t): longint; inline;
- function innwstr(wstr: pwchar_t; n: longint): longint; inline;
- function ins_nwstr(wstr: pwchar_t; n: longint): longint; inline;
- function ins_wch(wch: pcchar_t): longint; inline;
- function ins_wstr(wstr: pwchar_t): longint; inline;
- function inwstr(wstr: pwchar_t): longint; inline;
- function vline_set(wch: pcchar_t; n: longint): longint; inline;
- function wadd_wchstr(win: PWINDOW; wchstr: pcchar_t): longint; inline;
- function waddwstr(win: PWINDOW; wstr :pwchar_t): longint; inline;
- function wget_wstr(win: PWINDOW; wstr: PLongint): longint; inline;
- function win_wchstr(win: PWINDOW; wchstr: pcchar_t): longint; inline;
- function wins_wstr(win: PWINDOW; wstr: pwchar_t): longint; inline;
- function mvadd_wch(y,x: Smallint; wch: pcchar_t): longint; inline;
- function mvadd_wchnstr(y,x: Smallint; wchstr: pcchar_t; n: longint): longint; inline;
- function mvadd_wchstr(y,x: Smallint; wchstr: pcchar_t): longint; inline;
- function mvaddnwstr(y,x: Smallint; wstr: pwchar_t; n: longint): longint; inline;
- function mvaddwstr(y,x: Smallint; wstr: pwchar_t): longint; inline;
- function mvget_wch(y,x: Smallint; wch: Plongint): longint; inline;
- function mvget_wstr(y,x: Smallint; wstr: Plongint): longint; inline;
- function mvgetn_wstr(y,x: Smallint; wstr: Plongint; n: longint): longint; inline;
- function mvhline_set(y,x: Smallint; wch: pcchar_t; n: longint): longint; inline;
- function mvin_wch(y,x: Smallint; wch: pcchar_t) : longint; inline;
- function mvin_wchnstr(y,x: Smallint; wchstr: pcchar_t; n: longint): longint; inline;
- function mvin_wchstr(y,x: Smallint; wchstr: pcchar_t): longint; inline;
- function mvinnwstr(y,x: Smallint; wstr: pwchar_t; n : longint): longint; inline;
- function mvins_nwstr(y,x: Smallint; wstr: pwchar_t; n : longint): longint; inline;
- function mvins_wch(y,x: Smallint; wch: pcchar_t): longint; inline;
- function mvins_wstr(y,x: Smallint; wstr: pwchar_t): longint; inline;
- function mvinwstr(y,x: Smallint; wstr: pwchar_t): longint; inline;
- function mvvline_set(y,x: Smallint; wch: pcchar_t; n : longint): longint; inline;
- function mvwadd_wch(win: PWINDOW; y,x: Smallint; wch: pcchar_t): longint; inline;
- function mvwadd_wchnstr(win: PWINDOW; y,x: Smallint; wchstr: pcchar_t; n: longint): longint; inline;
- function mvwadd_wchstr(win: PWINDOW; y,x: Smallint; wchstr: pcchar_t): longint; inline;
- function mvwaddnwstr(win: PWINDOW; y,x: Smallint; wstr: pwchar_t; n: longint): longint; inline;
- function mvwaddwstr(win: PWINDOW; y,x: Smallint; wstr: pwchar_t): longint; inline;
- function mvwget_wch(win: PWINDOW; y,x: Smallint; wch: Plongint): longint; inline;
- function mvwget_wstr(win: PWINDOW; y,x: Smallint; wstr: Plongint): longint; inline;
- function mvwgetn_wstr(win: PWINDOW; y,x: Smallint; wstr: Plongint; n: longint): longint; inline;
- function mvwhline_set(win: PWINDOW; y,x: Smallint; wch: pcchar_t; n: longint): longint; inline;
- function mvwin_wch(win: PWINDOW; y,x: Smallint; wch: pcchar_t): longint; inline;
- function mvwin_wchnstr(win: PWINDOW; y,x: Smallint; wchstr: pcchar_t; n: longint): longint; inline;
- function mvwin_wchstr(win: PWINDOW; y,x: Smallint; wchstr: pcchar_t): longint; inline;
- function mvwinnwstr(win: PWINDOW; y,x: Smallint; wstr: pwchar_t; n : longint): longint; inline;
- function mvwins_nwstr(win: PWINDOW; y,x: Smallint; wstr: pwchar_t; n: longint): longint; inline;
- function mvwins_wch(win: PWINDOW; y,x: Smallint; wch: pcchar_t): longint; inline;
- function mvwins_wstr(win: PWINDOW; y,x: Smallint; wstr: pwchar_t) : longint; inline;
- function mvwinwstr(win: PWINDOW; y,x: Smallint; wstr: pwchar_t) : longint; inline;
- function mvwvline_set(win: PWINDOW; y,x: Smallint; wch: pcchar_t; n: longint) : longint; inline;
- function wmove(win: PWINDOW; y,x: Smallint): Longint; inline;
- (* C varargs procedures*)
- function tparm(_para1:PAnsiChar):PAnsiChar;cdecl; varargs; external libncurses; overload;
- function mvprintw(_para1:Longint; _para2:Longint; _para3:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
- function mvscanw(_para1:Longint; _para2:Longint; _para3:PAnsiChar):Longint; cdecl; varargs;external libncurses; overload;
- function mvwprintw(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
- function mvwscanw(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
- function scanw(_para1:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
- function wprintw(_para1:PWINDOW; _para2:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
- function wscanw(_para1:PWINDOW; _para2:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
- function printw(_para1:PAnsiChar):Longint; cdecl; varargs; external libncurses; overload;
- {function vwprintw(_para1:PWINDOW; _para2:PAnsiChar; _para3:va_list):Longint; cdecl;external libncurses;
- function vw_printw(_para1:PWINDOW; _para2:PAnsiChar; _para3:va_list):Longint; cdecl;external libncurses;
- function vwscanw(_para1:PWINDOW; _para2:PAnsiChar; _para3:va_list):Longint; cdecl;external libncurses;
- function vw_scanw(_para1:PWINDOW; _para2:PAnsiChar; _para3:va_list):Longint; cdecl;external libncurses;}
- {$IF DEFINED(FPC_OBJFPC) OR DEFINED(FPC_DELPHI)}
- {function tparm(_para1:PAnsiChar; args:array of const):PAnsiChar;cdecl;external libncurses; overload;
- function mvprintw(_para1:Longint; _para2:Longint; _para3:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
- function mvscanw(_para1:Longint; _para2:Longint; _para3:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
- function mvwprintw(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
- function mvwscanw(_para1:PWINDOW; _para2:Longint; _para3:Longint; _para4:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
- function scanw(_para1:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
- function wprintw(_para1:PWINDOW; _para2:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
- function wscanw(_para1:PWINDOW; _para2:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;
- function printw(_para1:PAnsiChar; args:array of const):Longint; cdecl;external libncurses; overload;}
- {$ENDIF}
- implementation
- 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;
- function COLOR_PAIR(n : longint): longint;
- begin
- COLOR_PAIR:=n shl 8;
- end;
- function PAIR_NUMBER(attr: attr_t) : longint;
- begin
- PAIR_NUMBER := (attr AND A_COLOR) shr 8
- //#define PAIR_NUMBER(a) (NCURSES_CAST(int,(((a) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
- end;
- function color_set(color_pair_number: Smallint; opts: Pointer): longint; inline;
- begin
- color_set:=wcolor_set(stdscr,color_pair_number,opts);
- end;
- function wgetstr(win: PWINDOW; s: PAnsiChar): Longint;
- begin
- wgetstr := wgetnstr(win, s, -1);
- end;
- function getnstr(s: PAnsiChar;n: Longint): Longint;
- begin
- getnstr := wgetnstr(stdscr,s,n);
- end;
- {
- setupterm are declared in <ncursesw/term.h>:
- int setupterm(AnsiChar *term, int fildes, int *errret);
- }
- function setupterm(term:PAnsiChar; fildes:Longint; errret:Plongint):Longint; cdecl;external libncurses;
- function setterm(term: PAnsiChar): 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 getyx(win: PWINDOW; var y,x: Smallint);
- begin
- if win<>nil then
- begin
- y := win^._cury; x := win^._curx
- end
- else
- begin
- y := ERR; x := ERR
- end
- end;
- procedure getbegyx(win: PWINDOW; var y,x: Smallint);
- begin
- if win<>nil then
- begin
- y := win^._begy; x := win^._begx
- end
- else
- begin
- y := ERR; x := ERR
- end
- end;
- procedure getmaxyx(win: PWINDOW; var y,x: Smallint);
- begin
- if win<>nil then
- begin
- y := win^._maxy+1; x := win^._maxx+1
- end
- else
- begin
- y := ERR; x := ERR
- end
- end;
- procedure getparyx(win: PWINDOW; var y,x: Smallint);
- begin
- if win<>nil then
- begin
- y := win^._pary; x :=win^._parx
- end
- else
- begin
- y := ERR; x := ERR
- end
- end;
- procedure getsyx(var y,x: Smallint);
- begin
- {$IFNDEF USE_FPC_BYTEBOOL}
- if newscr^._leaveok = NC_FPC_TRUE then
- {$ELSE USE_FPC_BYTEBOOL}
- if newscr^._leaveok then
- {$ENDIF USE_FPC_BYTEBOOL}
- begin
- y := -1; x := -1
- end
- else
- begin
- y := newscr^._cury; x := newscr^._curx
- end
- end;
- procedure getyx(win: PWINDOW; var y,x: Longint);
- begin
- if win<>nil then
- begin
- y := win^._cury; x := win^._curx
- end
- else
- begin
- y := ERR; x := ERR
- end
- end;
- procedure getbegyx(win: PWINDOW; var y,x: Longint);
- begin
- if win<>nil then
- begin
- y := win^._begy; x := win^._begx
- end
- else
- begin
- y := ERR; x := ERR
- end
- end;
- procedure getmaxyx(win: PWINDOW; var y,x: Longint);
- begin
- if win<>nil then
- begin
- y := win^._maxy+1; x := win^._maxx+1
- end
- else
- begin
- y := ERR; x := ERR
- end
- end;
- procedure getparyx(win: PWINDOW; var y,x: Longint);
- begin
- if win<>nil then
- begin
- y := win^._pary; x :=win^._parx
- end
- else
- begin
- y := ERR; x := ERR
- end
- end;
- procedure getsyx(var y,x: Longint);
- begin
- {$IFNDEF USE_FPC_BYTEBOOL}
- if newscr^._leaveok = NC_FPC_TRUE then
- {$ELSE USE_FPC_BYTEBOOL}
- if newscr^._leaveok then
- {$ENDIF USE_FPC_BYTEBOOL}
- begin
- y := -1; x := -1
- end
- else
- begin
- y := newscr^._cury; x := newscr^._curx
- end
- end;
- procedure setsyx(y,x: Smallint);
- begin
- (*
- C macros:
- #define setsyx(y,x) do { if((y)==-1 && (x)==-1) newscr->_leaveok=TRUE; \
- else {newscr->_leaveok=FALSE;wmove(newscr,(y),(x));} \
- } while(0)
- *)
- if (x>=0) and (y >=0) AND (x<=newscr^._maxx) AND (y<=newscr^._maxy) then
- begin
- newscr^._curx := x;
- newscr^._cury := y;
- newscr^._flags := newscr^._flags AND not _WRAPPED;
- newscr^._flags := newscr^._flags OR _HASMOVED;
- newscr^._leaveok := NC_FPC_FALSE;
- end
- else if (x OR y = -1) then
- newscr^._leaveok := NC_FPC_TRUE
- //stdscr^._cury := y; //fpc ncurses original
- //stdscr^._curx := x;
- end;
- function getattrs(win: PWINDOW): attr_t;
- begin
- if win<>nil then
- getattrs:=win^._attrs
- else
- getattrs:=A_NORMAL;
- end;
- function getcurx(win: PWINDOW): Smallint;
- begin
- if win<>nil then
- getcurx:=win^._curx
- else
- getcurx:=ERR;
- end;
- function getcury(win: PWINDOW): Smallint;
- begin
- if win<>nil then
- getcury:=win^._cury
- else
- getcury:=ERR;
- end;
- function getbegx(win: PWINDOW): Smallint;
- begin
- if win<>nil then
- getbegx:=win^._begx
- else
- getbegx:=ERR;
- end;
- function getbegy(win: PWINDOW): Smallint;
- begin
- if win<>nil then
- getbegy:=win^._begy
- else
- getbegy:=ERR;
- end;
- function getmaxx(win: PWINDOW): Smallint;
- begin
- if win<>nil then
- getmaxx:=(win^._maxx) + 1
- else
- getmaxx:=ERR;
- end;
- function getmaxy(win: PWINDOW): Smallint;
- begin
- if win<>nil then
- getmaxy:=(win^._maxy) + 1
- else
- getmaxy:=ERR;
- end;
- function getparx(win: PWINDOW): Smallint;
- begin
- if win<>nil then
- getparx:=win^._parx
- else
- getparx:=ERR;
- end;
- function getpary(win: PWINDOW): Smallint;
- begin
- if win<>nil then
- getpary:=win^._pary
- else
- getpary:=ERR;
- end;
- function wstandout(win: PWINDOW): Longint;
- begin
- wstandout:=wattrset(win,A_STANDOUT);
- end;
- function wstandend(win: PWINDOW): Longint;
- begin
- wstandend:=wattrset(win,A_NORMAL);
- end;
- function wattr_set(win: PWINDOW; attrs: attr_t; pair: Smallint; opts: Pointer): Longint;
- begin
- { The parameter opts is reserved for future use, applications must supply a null pointer. }
- {
- C macros
- #define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
- }
- win^._attrs := (attrs AND not A_COLOR) OR COLOR_PAIR(pair);
- wattr_set := OK
- end;
- function wattr_get(win:PWINDOW; attrs:Pattr_t; pair:PSmallint; opts:Pointer):longint;
- begin
- {
- C macros
- #define wattr_get(win,a,p,opts) ((void)((a) != 0 && (*(a) = (win)->_attrs)), \
- (void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
- OK)
- }
- attrs^ := win^._attrs;
- pair^ := PAIR_NUMBER(win^._attrs);
- wattr_get := OK
- end;
- function wattron(win:PWINDOW; attrs: attr_t): Longint;
- begin
- wattron:=wattr_on(win, attrs, nil);
- end;
- function wattroff(win:PWINDOW; attrs: attr_t): longint;
- begin
- wattroff:=wattr_off(win, attrs, nil);
- end;
- function wattrset(win: PWINDOW; attrs: attr_t): longint;
- begin
- win^._attrs := attrs;
- wattrset := OK
- 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 :chtype):Longint;
- begin
- box:=wborder(win,v,v,h,h,0,0,0,0);
- end;
- function border(ls,rs,ts,bs,tl,tr,bl,br: chtype): longint;
- begin
- border:=wborder(stdscr,ls,rs,ts,bs,tl,tr,bl,br);
- end;
- function hline(ch:chtype; n:longint): longint;
- begin
- hline:=whline(stdscr,ch,n);
- end;
- function vline(ch:chtype; n:longint): longint;
- begin
- vline:=wvline(stdscr,ch,n);
- end;
- function winstr(win: PWINDOW;s: PAnsiChar): longint;
- begin
- winstr:=winnstr(win,s,-(1));
- end;
- function winchstr(win: PWINDOW; chstr: pchtype): longint;
- begin
- winchstr:=winchnstr(win,chstr,-(1));
- end;
- function winsstr(win: PWINDOW;s: PAnsiChar): longint;
- begin
- winsstr:=winsnstr(win,s,-(1));
- end;
- function redrawwin(win: PWINDOW): longint;
- begin
- redrawwin:=wredrawln(win,0,(win^._maxy)+1);
- end;
- function waddstr(win: PWINDOW;st: PAnsiChar): longint;
- begin
- waddstr:=waddnstr(win,st,-(1));
- end;
- function waddchstr(win: PWINDOW; chstr: pchtype): longint;
- begin
- waddchstr:=waddchnstr(win,chstr,-(1));
- end;
- {
- pseudo functions for standard screen
- }
- function addch(ch: chtype): longint;
- begin
- addch:=waddch(stdscr,ch);
- end;
- function addchnstr(chstr: pchtype; n: longint): longint;
- begin
- addchnstr:=waddchnstr(stdscr,chstr,n);
- end;
- function addchstr(chstr: pchtype): longint;
- begin
- addchstr:=waddchstr(stdscr,chstr);
- end;
- function addnstr(str: PAnsiChar;n: longint): longint;
- begin
- addnstr:=waddnstr(stdscr,str,n);
- end;
- function addstr(str: PAnsiChar): longint;
- begin
- addstr:=waddnstr(stdscr,str,-(1));
- end;
- function attroff(attrs: attr_t): longint;
- begin
- attroff:=wattroff(stdscr,attrs);
- end;
- function attron(attrs: attr_t): longint;
- begin
- attron:=wattron(stdscr,attrs);
- end;
- function attrset(attrs: attr_t): longint;
- begin
- //attrset:=wattrset(stdscr,attrs);
- stdscr^._attrs := attrs;
- attrset := OK
- end;
- function bkgd(ch: chtype): longint;
- begin
- bkgd:=wbkgd(stdscr,ch);
- end;
- procedure bkgdset(ch: chtype);
- 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(ch: chtype): longint;
- begin
- echochar:=wechochar(stdscr,ch);
- end;
- function erase: longint;
- begin
- erase:=werase(stdscr);
- end;
- function getch: longint;
- begin
- getch:=wgetch(stdscr);
- end;
- function getstr(str: PAnsiChar): longint;
- begin
- getstr:=wgetstr(stdscr,str);
- end;
- function inch: chtype;
- begin
- inch:=winch(stdscr);
- end;
- function inchnstr(chstr: pchtype;n: longint): longint;
- begin
- inchnstr:=winchnstr(stdscr,chstr ,n);
- end;
- function inchstr(chstr: pchtype): longint;
- begin
- inchstr:=winchstr(stdscr,chstr);
- end;
- function innstr(str: PAnsiChar;n: longint): longint;
- begin
- innstr:=winnstr(stdscr,str,n);
- end;
- function insch(ch: chtype): longint;
- begin
- insch:=winsch(stdscr,ch);
- end;
- function insdelln(n: longint): longint;
- begin
- insdelln:=winsdelln(stdscr,n);
- end;
- function insertln: longint;
- begin
- insertln:=winsdelln(stdscr,1);
- end;
- function insnstr(str: PAnsiChar;n: longint): longint;
- begin
- insnstr:=winsnstr(stdscr,str,n);
- end;
- function insstr(str: PAnsiChar): longint;
- begin
- insstr:=winsstr(stdscr,str);
- end;
- function instr(str: PAnsiChar): longint;
- begin
- instr:=winstr(stdscr,str);
- end;
- function move(y,x: Smallint): longint;
- begin
- if (x OR y >=0)AND(x<=stdscr^._maxx)AND(y<=stdscr^._maxy) then
- begin
- stdscr^._curx := x;
- stdscr^._cury := y;
- stdscr^._flags := stdscr^._flags AND not _WRAPPED;
- stdscr^._flags := stdscr^._flags OR _HASMOVED;
- move := OK
- end
- else
- move := ERR
- 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;
- procedure timeout(delay: longint);
- begin
- 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;
- {
- mv functions
- }
- function mvwaddch(win: PWINDOW;y,x: Smallint; ch: chtype): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwaddch := ERR
- else
- mvwaddch := waddch(win,ch)
- end;
- function mvwaddchnstr(win: PWINDOW;y,x: Smallint;chstr: pchtype;n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwaddchnstr := ERR
- else
- mvwaddchnstr := waddchnstr(win,chstr,n);
- end;
- function mvwaddchstr(win: PWINDOW;y,x: Smallint;chstr: pchtype): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwaddchstr := ERR
- else
- mvwaddchstr := waddchnstr(win,chstr,-(1))
- end;
- function mvwaddnstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar;n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwaddnstr := ERR
- else
- mvwaddnstr := waddnstr(win,str,n);
- end;
- function mvwaddstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwaddstr := ERR
- else
- mvwaddstr := waddnstr(win,str,-(1));
- end;
- function mvwdelch(win: PWINDOW;y,x: Smallint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwdelch := ERR
- else
- mvwdelch :=wdelch(win);
- end;
- function mvwchgat(win: PWINDOW;y, x: Smallint; n: Longint;attr: attr_t;
- color: Smallint; opts: Pointer): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwchgat := ERR
- else
- mvwchgat := wchgat(win,n,attr,color,opts);
- end;
- function mvwgetch(win: PWINDOW;y,x: Smallint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwgetch := ERR
- else
- mvwgetch := wgetch(win);
- end;
- function mvwgetnstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar;n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwgetnstr := ERR
- else
- mvwgetnstr := wgetnstr(win,str,n);
- end;
- function mvwgetstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwgetstr := ERR
- else
- mvwgetstr := wgetstr(win,str);
- end;
- function mvwhline(win: PWINDOW;y,x: Smallint;ch: chtype;n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwhline := ERR
- else
- mvwhline := whline(win,ch,n);
- end;
- function mvwinch(win: PWINDOW;y,x: Smallint): chtype;
- begin
- if wmove(win,y,x) = ERR then
- mvwinch := chtype(ERR)
- else
- mvwinch := winch(win);
- end;
- function mvwinchnstr(win: PWINDOW;y,x: Smallint;chstr: pchtype; n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwinchnstr := ERR
- else
- mvwinchnstr := winchnstr(win,chstr,n);
- end;
- function mvwinchstr(win: PWINDOW;y,x: Smallint;chstr: pchtype): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwinchstr := ERR
- else
- mvwinchstr := winchnstr(win,chstr,-(1));
- end;
- function mvwinnstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar;n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwinnstr := ERR
- else
- mvwinnstr := winnstr(win,str,n);
- end;
- function mvwinsch(win: PWINDOW;y,x: Smallint;ch: chtype): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwinsch := ERR
- else
- mvwinsch := winsch(win,ch);
- end;
- function mvwinsnstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar;n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwinsnstr := ERR
- else
- mvwinsnstr := winsnstr(win,str,n);
- end;
- function mvwinsstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwinsstr := ERR
- else
- mvwinsstr := winsnstr(win,str,-(1));
- end;
- function mvwinstr(win: PWINDOW;y,x: Smallint;str: PAnsiChar): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwinstr := ERR
- else
- mvwinstr := winnstr(win,str,-(1));
- end;
- function mvwvline(win: PWINDOW;y,x: Smallint;ch: chtype;n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwvline := ERR
- else
- mvwvline := wvline(win,ch,n);
- end;
- function mvaddch(y,x: Smallint; ch: chtype): longint;
- begin
- if move(y,x) = ERR then
- mvaddch := ERR
- else
- mvaddch := waddch(stdscr,ch)
- end;
- function mvaddchnstr(y,x: Smallint; chstr: pchtype;n: longint): longint;
- begin
- if move(y,x) = ERR then
- mvaddchnstr := ERR
- else
- mvaddchnstr := waddchnstr(stdscr,chstr,n);
- end;
- function mvaddchstr(y,x: Smallint; chstr: pchtype): longint;
- begin
- if move(y,x) = ERR then
- mvaddchstr := ERR
- else
- mvaddchstr := waddchnstr(stdscr,chstr,-(1));
- end;
- function mvaddnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint;
- begin
- if move(y,x) = ERR then
- mvaddnstr := ERR
- else
- mvaddnstr := waddnstr(stdscr,str,n);
- end;
- function mvaddstr(y,x: Smallint; str: PAnsiChar): longint;
- begin
- if move(y,x) = ERR then
- mvaddstr := ERR
- else
- mvaddstr := waddnstr(stdscr,str,-(1));
- end;
- function mvdelch(y,x: Smallint): longint;
- begin
- if move(y,x) = ERR then
- mvdelch := ERR
- else
- mvdelch := wdelch(stdscr);
- end;
- function mvgetch(y,x: Smallint): longint;
- begin
- if move(y,x) = ERR then
- mvgetch := ERR
- else
- mvgetch := wgetch(stdscr);
- end;
- function mvgetnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint;
- begin
- if move(y,x) = ERR then
- mvgetnstr := ERR
- else
- mvgetnstr := wgetnstr(stdscr,str,n);
- end;
- function mvgetstr(y,x: Smallint; str: PAnsiChar): longint;
- begin
- if move(y,x) = ERR then
- mvgetstr := ERR
- else
- mvgetstr := wgetnstr(stdscr,str,-(1));
- end;
- function mvhline(y,x: Smallint;ch: chtype;n: longint): longint;
- begin
- if move(y,x) = ERR then
- mvhline := ERR
- else
- mvhline := whline(stdscr,ch,n);
- end;
- function mvinch(y,x: Smallint): chtype;
- begin
- if move(y,x) = ERR then
- mvinch := chtype(ERR)
- else
- mvinch := winch(stdscr);
- end;
- function mvinchnstr(y,x: Smallint; chstr: pchtype;n: longint): longint;
- begin
- if move(y,x) = ERR then
- mvinchnstr := ERR
- else
- mvinchnstr := winchnstr(stdscr,chstr,n);
- end;
- function mvinchstr(y,x: Smallint; chstr: pchtype): longint;
- begin
- if move(y,x) = ERR then
- mvinchstr := ERR
- else
- mvinchstr := winchnstr(stdscr,chstr,-(1));
- end;
- function mvinnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint;
- begin
- if move(y,x) = ERR then
- mvinnstr := ERR
- else
- mvinnstr := winnstr(stdscr,str,n);
- end;
- function mvinsch(y,x: Smallint;ch: chtype): longint;
- begin
- if move(y,x) = ERR then
- mvinsch := ERR
- else
- mvinsch := winsch(stdscr,ch);
- end;
- function mvinsnstr(y,x: Smallint; str: PAnsiChar;n: longint): longint;
- begin
- if move(y,x) = ERR then
- mvinsnstr := ERR
- else
- mvinsnstr := winsnstr(stdscr,str,n);
- end;
- function mvinsstr(y,x: Smallint; str: PAnsiChar): longint;
- begin
- if move(y,x) = ERR then
- mvinsstr := ERR
- else
- mvinsstr := winsstr(stdscr,str);
- end;
- function mvinstr(y,x: Smallint; str: PAnsiChar): longint;
- begin
- if move(y,x) = ERR then
- mvinstr := ERR
- else
- mvinstr := winstr(stdscr,str);
- end;
- function mvvline(y,x: Smallint; ch:chtype; n:longint): longint;
- begin
- if move(y,x) = ERR then
- mvvline := ERR
- else
- mvvline := wvline(stdscr,ch,n);
- end;
- function attr_get(attrs:Pattr_t; pair:PSmallint; opts:Pointer): longint;
- begin
- attr_get := wattr_get(stdscr,attrs,pair,opts);
- end;
- function attr_off(attrs:attr_t; opts:Pointer): longint;
- begin
- attr_off := wattr_off(stdscr,attrs,opts);
- end;
- function attr_on(attrs:attr_t; opts:Pointer): longint;
- begin
- attr_on := wattr_on(stdscr,attrs,opts);
- end;
- function attr_set(attrs:attr_t; pair:Smallint; opts:Pointer): longint;
- begin
- attr_set := wattr_set(stdscr,attrs,pair,opts);
- end;
- function chgat(n: Longint;attr: attr_t;color: Smallint; opts: Pointer): longint;
- begin
- chgat := wchgat(stdscr,n,attr,color,opts);
- end;
- function mvchgat(y, x: Smallint; n: Longint;attr: attr_t;color: Smallint; opts: Pointer):Longint;
- begin
- if move(y,x) = ERR then
- mvchgat := ERR
- else
- mvchgat := wchgat(stdscr,n,attr,color,opts);
- end;
- function getbkgd(win: PWINDOW): chtype;
- begin
- getbkgd := win^._bkgd;
- end;
- function slk_attr_off(attrs: attr_t; opts: Pointer) : longint;
- begin
- slk_attr_off := slk_attroff(attrs);
- end;
- function slk_attr_on(attrs: attr_t; opts: Pointer): longint;
- begin
- slk_attr_on := slk_attron(attrs);
- end;
- function KEY_F(n : Byte) : chtype;
- begin
- KEY_F := KEY_F0 + n;
- end;
- function NCURSES_WACS(c: chtype): cchar_t;
- begin
- NCURSES_WACS := _nc_wacs[c];
- end;
- function WACS_BSSB: cchar_t;
- begin
- WACS_BSSB := _nc_wacs[chtype('l')];
- end;
- function WACS_SSBB: cchar_t;
- begin
- WACS_SSBB:= _nc_wacs[chtype('m')];
- end;
- function WACS_BBSS: cchar_t;
- begin
- WACS_BBSS:= _nc_wacs[chtype('k')];
- end;
- function WACS_SBBS: cchar_t;
- begin
- WACS_SBBS:= _nc_wacs[chtype('j')];
- end;
- function WACS_SBSS: cchar_t;
- begin
- WACS_SBSS:= _nc_wacs[chtype('u')];
- end;
- function WACS_SSSB: cchar_t;
- begin
- WACS_SSSB:= _nc_wacs[chtype('t')];
- end;
- function WACS_SSBS: cchar_t;
- begin
- WACS_SSBS:= _nc_wacs[chtype('v')];
- end;
- function WACS_BSSS: cchar_t;
- begin
- WACS_BSSS:= _nc_wacs[chtype('w')];
- end;
- function WACS_BSBS: cchar_t;
- begin
- WACS_BSBS:= _nc_wacs[chtype('q')];
- end;
- function WACS_SBSB: cchar_t;
- begin
- WACS_SBSB:= _nc_wacs[chtype('x')];
- end;
- function WACS_SSSS: cchar_t;
- begin
- WACS_SSSS:= _nc_wacs[chtype('n')];
- end;
- function WACS_S1: cchar_t;
- begin
- WACS_S1:= _nc_wacs[chtype('o')];
- end;
- function WACS_S9: cchar_t;
- begin
- WACS_S9:= _nc_wacs[chtype('s')];
- end;
- function WACS_DIAMOND: cchar_t;
- begin
- WACS_DIAMOND:= _nc_wacs[chtype('`')];
- end;
- function WACS_CKBOARD: cchar_t;
- begin
- WACS_CKBOARD:= _nc_wacs[chtype('a')];
- end;
- function WACS_DEGREE: cchar_t;
- begin
- WACS_DEGREE:= _nc_wacs[chtype('f')];
- end;
- function WACS_PLMINUS: cchar_t;
- begin
- WACS_PLMINUS:= _nc_wacs[chtype('g')];
- end;
- function WACS_BULLET: cchar_t;
- begin
- WACS_BULLET:= _nc_wacs[chtype('~')];
- end;
- function WACS_LARROW: cchar_t;
- begin
- WACS_LARROW:= _nc_wacs[chtype(',')];
- end;
- function WACS_RARROW: cchar_t;
- begin
- WACS_RARROW:= _nc_wacs[chtype('+')];
- end;
- function WACS_DARROW: cchar_t;
- begin
- WACS_DARROW:= _nc_wacs[chtype('.')];
- end;
- function WACS_UARROW: cchar_t;
- begin
- WACS_UARROW:= _nc_wacs[chtype('-')];
- end;
- function WACS_BOARD: cchar_t;
- begin
- WACS_BOARD:= _nc_wacs[chtype('h')];
- end;
- function WACS_LANTERN: cchar_t;
- begin
- WACS_LANTERN:= _nc_wacs[chtype('i')];
- end;
- function WACS_BLOCK: cchar_t;
- begin
- WACS_BLOCK:= _nc_wacs[chtype('0')];
- end;
- function WACS_S3: cchar_t;
- begin
- WACS_S3:= _nc_wacs[chtype('p')];
- end;
- function WACS_S7: cchar_t;
- begin
- WACS_S7:= _nc_wacs[chtype('r')];
- end;
- function WACS_LEQUAL: cchar_t;
- begin
- WACS_LEQUAL:= _nc_wacs[chtype('y')];
- end;
- function WACS_GEQUAL: cchar_t;
- begin
- WACS_GEQUAL:= _nc_wacs[chtype('z')];
- end;
- function WACS_PI: cchar_t;
- begin
- WACS_PI:= _nc_wacs[chtype('{')];
- end;
- function WACS_NEQUAL: cchar_t;
- begin
- WACS_NEQUAL:= _nc_wacs[chtype('|')];
- end;
- function WACS_STERLING: cchar_t;
- begin
- WACS_STERLING:= _nc_wacs[chtype('}')];
- end;
- function add_wch(wch: pcchar_t): longint;
- begin
- add_wch:=wadd_wch(stdscr,wch);
- end;
- function add_wchnstr(wchstr: pcchar_t; n: longint): longint;
- begin
- add_wchnstr:=wadd_wchnstr(stdscr,wchstr,n);
- end;
- function add_wchstr(wchstr: pcchar_t): longint;
- begin
- add_wchstr:=wadd_wchstr(stdscr,wchstr);
- end;
- function addnwstr(wchstr: pwchar_t; n : longint) : longint;
- begin
- addnwstr:=waddnwstr(stdscr,wchstr,n);
- end;
- function addwstr(wchstr: pwchar_t): longint;
- begin
- addwstr:=waddnwstr(stdscr,wchstr,-(1));
- end;
- function bkgrnd(wch: pcchar_t): longint;
- begin
- bkgrnd:=wbkgrnd(stdscr,wch);
- end;
- procedure bkgrndset(wch: pcchar_t);
- begin
- wbkgrndset(stdscr,wch);
- end;
- function border_set(ls,rs,ts,bs,tl,tr,bl,br: pcchar_t) : longint;
- begin
- border_set:=wborder_set(stdscr,ls,rs,ts,bs,tl,tr,bl,br);
- end;
- function box_set(win: PWINDOW; verch,horch: pcchar_t) : longint;
- begin
- //box_set:=wborder_set(win,verch,verch,horch,horch,0,0,0,0);
- box_set:=wborder_set(win,verch,verch,horch,horch,nil,nil,nil,nil);
- end;
- function echo_wchar(wch: Pcchar_t): longint;
- begin
- echo_wchar:=wecho_wchar(stdscr,wch);
- end;
- function get_wch(wch: Plongint): longint;
- begin
- get_wch:=wget_wch(stdscr,wch);
- end;
- function get_wstr(wstr: PLongint): longint;
- begin
- get_wstr:=wget_wstr(stdscr,wstr);
- end;
- function getbkgrnd(wch: pcchar_t): longint;
- begin
- getbkgrnd := wgetbkgrnd(stdscr,wch);
- end;
- function getn_wstr(wstr: PLongint; n: longint): longint;
- begin
- getn_wstr := wgetn_wstr(stdscr,wstr,n);
- end;
- function hline_set(wch: pcchar_t; n: longint): longint;
- begin
- hline_set := whline_set(stdscr,wch,n);
- end;
- function in_wch(wch: pcchar_t) : longint;
- begin
- in_wch := win_wch(stdscr,wch);
- end;
- function in_wchnstr(wchstr: pcchar_t; n: longint): longint;
- begin
- in_wchnstr := win_wchnstr(stdscr,wchstr,n);
- end;
- function in_wchstr(wchstr: pcchar_t) : longint;
- begin
- in_wchstr := win_wchstr(stdscr,wchstr);
- end;
- function innwstr(wstr: pwchar_t; n : longint) : longint;
- begin
- innwstr:=winnwstr(stdscr,wstr,n);
- end;
- function ins_nwstr(wstr: pwchar_t; n: longint): longint;
- begin
- ins_nwstr:=wins_nwstr(stdscr,wstr,n);
- end;
- function ins_wch(wch: pcchar_t): longint;
- begin
- ins_wch:=wins_wch(stdscr,wch);
- end;
- function ins_wstr(wstr: pwchar_t): longint;
- begin
- ins_wstr:=wins_wstr(stdscr,wstr);
- end;
- function inwstr(wstr: pwchar_t): longint;
- begin
- inwstr:=winwstr(stdscr,wstr);
- end;
- function vline_set(wch: pcchar_t; n: longint): longint;
- begin
- vline_set:=wvline_set(stdscr,wch,n);
- end;
- function wadd_wchstr(win: PWINDOW; wchstr: pcchar_t): longint;
- begin
- wadd_wchstr:=wadd_wchnstr(win,wchstr,-(1));
- end;
- function waddwstr(win: PWINDOW; wstr: pwchar_t): longint;
- begin
- waddwstr:=waddnwstr(win,wstr,-(1));
- end;
- function wget_wstr(win: PWINDOW; wstr: PLongint): longint;
- begin
- wget_wstr:=wgetn_wstr(win,wstr,-(1));
- end;
- function win_wchstr(win: PWINDOW; wchstr: pcchar_t): longint;
- begin
- win_wchstr:=win_wchnstr(win,wchstr,-(1));
- end;
- function wins_wstr(win: PWINDOW; wstr: pwchar_t) : longint;
- begin
- wins_wstr:=wins_nwstr(win,wstr,-(1));
- end;
- function mvadd_wch(y,x: Smallint; wch: pcchar_t): longint;
- begin
- if move(y,x) = ERR then
- mvadd_wch := ERR
- else
- mvadd_wch := wadd_wch(stdscr,wch);
- end;
- function mvadd_wchnstr(y,x: Smallint; wchstr: pcchar_t; n: longint): longint;
- begin
- if move(y,x) = ERR then
- mvadd_wchnstr := ERR
- else
- mvadd_wchnstr := wadd_wchnstr(stdscr,wchstr,n);
- end;
- function mvadd_wchstr(y,x: Smallint; wchstr: pcchar_t): longint;
- begin
- if move(y,x) = ERR then
- mvadd_wchstr := ERR
- else
- mvadd_wchstr := wadd_wchnstr(stdscr,wchstr,-(1));
- end;
- function mvaddnwstr(y,x: Smallint; wstr: pwchar_t; n: longint): longint;
- begin
- if move(y,x) = ERR then
- mvaddnwstr := ERR
- else
- mvaddnwstr := waddnwstr(stdscr,wstr,n);
- end;
- function mvaddwstr(y,x: Smallint; wstr: pwchar_t) : longint;
- begin
- if move(y,x) = ERR then
- mvaddwstr := ERR
- else
- mvaddwstr := waddnwstr(stdscr,wstr,-(1));
- end;
- function mvget_wch(y,x: Smallint; wch: Plongint) : longint;
- begin
- if move(y,x) = ERR then
- mvget_wch := ERR
- else
- mvget_wch := wget_wch(stdscr,wch);
- end;
- function mvget_wstr(y,x: Smallint; wstr: Plongint): longint;
- begin
- if move(y,x) = ERR then
- mvget_wstr := ERR
- else
- mvget_wstr := wgetn_wstr(stdscr,wstr,-(1));
- end;
- function mvgetn_wstr(y,x: Smallint; wstr: Plongint; n: longint): longint;
- begin
- if move(y,x) = ERR then
- mvgetn_wstr := ERR
- else
- mvgetn_wstr := wgetn_wstr(stdscr,wstr,n);
- end;
- function mvhline_set(y,x: Smallint; wch: pcchar_t; n: longint): longint;
- begin
- if move(y,x) = ERR then
- mvhline_set := ERR
- else
- mvhline_set := whline_set(stdscr,wch,n);
- end;
- function mvin_wch(y,x: Smallint; wch: pcchar_t) : longint;
- begin
- if move(y,x) = ERR then
- mvin_wch := ERR
- else
- mvin_wch := win_wch(stdscr,wch);
- end;
- function mvin_wchnstr(y,x: Smallint; wchstr: pcchar_t; n: longint): longint;
- begin
- if move(y,x) = ERR then
- mvin_wchnstr := ERR
- else
- mvin_wchnstr := win_wchnstr(stdscr,wchstr,n);
- end;
- function mvin_wchstr(y,x: Smallint; wchstr: pcchar_t): longint;
- begin
- if move(y,x) = ERR then
- mvin_wchstr := ERR
- else
- mvin_wchstr := win_wchnstr(stdscr,wchstr,-(1));
- end;
- function mvinnwstr(y,x: Smallint; wstr: pwchar_t; n : longint): longint;
- begin
- if move(y,x) = ERR then
- mvinnwstr := ERR
- else
- mvinnwstr := winnwstr(stdscr,wstr,n);
- end;
- function mvins_nwstr(y,x: Smallint; wstr: pwchar_t; n : longint): longint;
- begin
- if move(y,x) = ERR then
- mvins_nwstr := ERR
- else
- mvins_nwstr := wins_nwstr(stdscr,wstr,n);
- end;
- function mvins_wch(y,x: Smallint; wch: pcchar_t): longint;
- begin
- if move(y,x) = ERR then
- mvins_wch := ERR
- else
- mvins_wch := wins_wch(stdscr,wch);
- end;
- function mvins_wstr(y,x: Smallint; wstr: pwchar_t): longint;
- begin
- if move(y,x) = ERR then
- mvins_wstr := ERR
- else
- mvins_wstr := wins_nwstr(stdscr,wstr,-(1));
- end;
- function mvinwstr(y,x: Smallint; wstr: pwchar_t): longint;
- begin
- if move(y,x) = ERR then
- mvinwstr := ERR
- else
- mvinwstr := winwstr(stdscr,wstr);
- end;
- function mvvline_set(y,x: Smallint; wch: pcchar_t; n : longint) : longint;
- begin
- if move(y,x) = ERR then
- mvvline_set := ERR
- else
- mvvline_set := wvline_set(stdscr,wch,n);
- end;
- function mvwadd_wch(win: PWINDOW; y,x: Smallint; wch: pcchar_t): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwadd_wch := ERR
- else
- mvwadd_wch := wadd_wch(win,wch);
- end;
- function mvwadd_wchnstr(win: PWINDOW; y,x: Smallint; wchstr: pcchar_t; n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwadd_wchnstr := ERR
- else
- mvwadd_wchnstr := wadd_wchnstr(win,wchstr,n);
- end;
- function mvwadd_wchstr(win: PWINDOW; y,x: Smallint; wchstr: pcchar_t): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwadd_wchstr := ERR
- else
- mvwadd_wchstr := wadd_wchnstr(win,wchstr,-(1));
- end;
- function mvwaddnwstr(win: PWINDOW; y,x: Smallint; wstr: pwchar_t; n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwaddnwstr := ERR
- else
- mvwaddnwstr := waddnwstr(win,wstr,n);
- end;
- function mvwaddwstr(win: PWINDOW; y,x: Smallint; wstr: pwchar_t): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwaddwstr := ERR
- else
- mvwaddwstr := waddnwstr(win,wstr,-(1));
- end;
- function mvwget_wch(win: PWINDOW; y,x: Smallint; wch: Plongint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwget_wch := ERR
- else
- mvwget_wch := wget_wch(win,wch);
- end;
- function mvwget_wstr(win: PWINDOW; y,x: Smallint; wstr: Plongint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwget_wstr := ERR
- else
- mvwget_wstr := wgetn_wstr(win,wstr,-(1));
- end;
- function mvwgetn_wstr(win: PWINDOW; y,x: Smallint; wstr: Plongint; n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwgetn_wstr := ERR
- else
- mvwgetn_wstr := wgetn_wstr(win,wstr,n);
- end;
- function mvwhline_set(win: PWINDOW; y,x: Smallint; wch: pcchar_t; n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwhline_set := ERR
- else
- mvwhline_set := whline_set(win,wch,n);
- end;
- function mvwin_wch(win: PWINDOW; y,x: Smallint; wch: pcchar_t): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwin_wch := ERR
- else
- mvwin_wch := win_wch(win,wch);
- end;
- function mvwin_wchnstr(win: PWINDOW; y,x: Smallint; wchstr: pcchar_t; n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwin_wchnstr := ERR
- else
- mvwin_wchnstr := win_wchnstr(win,wchstr,n);
- end;
- function mvwin_wchstr(win: PWINDOW; y,x: Smallint; wchstr: pcchar_t): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwin_wchstr := ERR
- else
- mvwin_wchstr := win_wchstr(win,wchstr);
- end;
- function mvwinnwstr(win: PWINDOW; y,x: Smallint; wstr: pwchar_t; n : longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwinnwstr := ERR
- else
- mvwinnwstr := winnwstr(win,wstr,n);
- end;
- function mvwins_nwstr(win: PWINDOW; y,x: Smallint; wstr: pwchar_t; n: longint): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwins_nwstr := ERR
- else
- mvwins_nwstr := wins_nwstr(win,wstr,n);
- end;
- function mvwins_wch(win: PWINDOW; y,x: Smallint; wch: pcchar_t): longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwins_wch := ERR
- else
- mvwins_wch := wins_wch(win,wch);
- end;
- function mvwins_wstr(win: PWINDOW; y,x: Smallint; wstr: pwchar_t) : longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwins_wstr := ERR
- else
- mvwins_wstr := wins_wstr(win,wstr);
- end;
- function mvwinwstr(win: PWINDOW; y,x: Smallint; wstr: pwchar_t) : longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwinwstr := ERR
- else
- mvwinwstr := winwstr(stdscr,wstr);
- end;
- function mvwvline_set(win: PWINDOW; y,x: Smallint; wch: pcchar_t; n: longint) : longint;
- begin
- if wmove(win,y,x) = ERR then
- mvwvline_set := ERR
- else
- mvwvline_set := wvline_set(win,wch,n);
- end;
- function wmove(win: PWINDOW; y,x: Smallint): Longint;
- begin
- //if (win!=nil)AND(x>=0)AND(x<=win^._maxx)AND(y>=0)AND(y<=win^._maxy) then
- if (x>=0) and ( y>=0)AND(x<=win^._maxx)AND(y<=win^._maxy) then
- begin
- win^._curx := x;
- win^._cury := y;
- win^._flags := win^._flags AND not _WRAPPED;
- win^._flags := win^._flags OR _HASMOVED;
- wmove := OK
- end
- else
- wmove := ERR
- end;
- (* macros to extract single event-bits from masks *)
- function BUTTON_RELEASE(e,x: longint): longint;
- { #define BUTTON_RELEASE(e, x) ((e) & (001 << (6 * ((x) - 1)))) }
- begin
- BUTTON_RELEASE:=e AND (001 shl (6*(x-1)));
- end;
- function BUTTON_PRESS(e,x: longint): longint;
- { #define BUTTON_PRESS(e, x) ((e) & (002 << (6 * ((x) - 1)))) }
- begin
- BUTTON_PRESS:=e AND (002 shl (6*(x-1)));
- end;
- function BUTTON_CLICK(e,x: longint): longint;
- //#define BUTTON_CLICK(e, x) ((e) & (004 << (6 * ((x) - 1))))
- begin
- BUTTON_CLICK:=e AND (004 shl (6*(x-1)));
- end;
- function BUTTON_DOUBLE_CLICK(e,x: longint): longint;
- //#define BUTTON_DOUBLE_CLICK(e, x) ((e) & (010 << (6 * ((x) - 1))))
- begin
- BUTTON_DOUBLE_CLICK:=e AND (8 shl (6*(x-1)));
- end;
- function BUTTON_TRIPLE_CLICK(e,x: longint): longint;
- //#define BUTTON_TRIPLE_CLICK(e, x) ((e) & (020 << (6 * ((x) - 1))))
- begin
- BUTTON_TRIPLE_CLICK:=e AND (16 shl (6*(x-1)));
- end;
- function BUTTON_RESERVED_EVENT(e,x: longint): longint;
- //#define BUTTON_RESERVED_EVENT(e, x) ((e) & (040 << (6 * ((x) - 1))))
- begin
- BUTTON_RESERVED_EVENT:=e AND (32 shl (6*(x-1)));
- end;
- function mouse_trafo(pY,pX: PLongint; to_screen: Bool): Bool;
- begin
- mouse_trafo:=wmouse_trafo(stdscr,pY,pX,to_screen);
- end;
- end.
|