1{ 2 This file is part of the Free Pascal run time library 3 for Netware. 4 Copyright (c) 1999-2005 by the Free Pascal development team. 5 6 See the file COPYING.FPC, included in this distribution, 7 for details about the copyright. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 13**********************************************************************} 14 15unit nwsnut; 16 17interface 18 19{$mode objfpc} 20{$if defined (netware_clib)} 21uses nwserv; 22{$else} 23uses libc; 24{$endif} 25 26{$PACKRECORDS C} 27 28 const 29 External_library='nwsnut'; 30 31 { constants 32 the constant CURRENT_NUT_VERSION is incremented when increased 33 functionality is added. An NLM can check this value which is placed 34 in the NUTInfo structure, version field, to determine if the NWSNUT 35 NLM contains sufficient functionality to support its requirements } 36 37 38 CURRENT_NUT_VERSION = 405; 39 { the constant NUT_REVISION_LEVEL is incremented when a major change 40 in the behavior of NWSNUT is made. This value is not used by the calling 41 NLM, but rather by NWSNUT itself to determine what is expected of it 42 by the calling NLM } 43 NUT_REVISION_LEVEL = 1; 44 SAVE = 1; 45 NO_SAVE = 0; 46 NOHEADER = 0; 47 NOBORDER = 0; 48 NO_HELP_CONTEXT = $ffff; 49 SINGLE = 1; 50 DOUBLE = 2; 51 CURSOR_OFF = 0; 52 CURSOR_ON = 1; 53 VIRTUAL = 0; 54 DIRECT = 1; 55 SEVERITY_INFORM = 1; 56 SEVERITY_WARNING = 2; 57 SEVERITY_FATAL = 3; 58 { text size minimization styles } 59 SNORMAL = 0; 60 SMINWIDTH = 1; 61 SMINHEIGHT = 2; 62 { palettes to set screen colors. 63 background and foreground can be reversed with VREVERSE } 64 BW_PALETTE = 0; // white and black 65 NORMAL_PALETTE = 1; // white and dark blue 66 INIT_PALETTE = 2; // light blue and dark blue 67 HELP_PALETTE = 3; // green and black 68 ERROR_PALETTE = 4; // red and black 69 WARNING_PALETTE = 5; // pink and white 70 OTHER_PALETTE = 6; // green and red 71 { text and portal justification styles } 72 JRIGHT = 0; 73 JLEFT = 1; 74 JTOP = 2; 75 JBOTTOM = 3; 76 JCENTER = 4; 77 JTOPRIGHT = 5; 78 JTOPLEFT = 6; 79 JBOTTOMLEFT = 7; 80 JBOTTOMRIGHT = 8; 81 { video constants } 82 V_UP = 6; 83 V_DOWN = 7; 84 LINE_OFFSET = 160; 85 EXPLODE_RATE = 45; 86 SCREEN_SPEED = 0; 87 { video attributes } 88 VNORMAL = 0; 89 VINTENSE = 1; 90 VREVERSE = 2; 91 VBLINK = 3; 92 VIBLINK = 4; 93 VRBLINK = 5; 94 { header types } 95 NO_HEADER = 0; 96 SMALL_HEADER = 1; 97 NORMAL_HEADER = 2; 98 LARGE_HEADER = 3; 99 { keyboard constants } 100 KS_OFF = 0; 101 KS_ON = 1; 102 KS_INT = 2; 103 K_NORMAL = 0; 104 K_F1 = 1; 105 K_F2 = 2; 106 K_F3 = 3; 107 K_F4 = 4; 108 K_F5 = 5; 109 K_F6 = 6; 110 K_F7 = 7; 111 K_F8 = 8; 112 K_F9 = 9; 113 K_F10 = 10; 114 K_SF1 = 11; 115 K_SF2 = 12; 116 K_SF3 = 13; 117 K_SF4 = 14; 118 K_SF5 = 15; 119 K_SF6 = 16; 120 K_SF7 = 17; 121 K_SF8 = 18; 122 K_SF9 = 19; 123 K_SF10 = 20; 124 K_CF1 = 21; 125 K_CF2 = 22; 126 K_CF3 = 23; 127 K_CF4 = 24; 128 K_CF5 = 25; 129 K_CF6 = 26; 130 K_CF7 = 27; 131 K_CF8 = 28; 132 K_CF9 = 29; 133 K_CF10 = 30; 134 K_AF1 = 31; 135 K_AF2 = 32; 136 K_AF3 = 33; 137 K_AF4 = 34; 138 K_AF5 = 35; 139 K_AF6 = 36; 140 K_AF7 = 37; 141 K_AF8 = 38; 142 K_AF9 = 39; 143 K_AF10 = 40; 144 K_HELP = 1; 145 K_MODIFY = 3; 146 K_MARK = 5; 147 K_CANCEL = 7; 148 K_MODE = 9; 149 K_EXIT = 40; 150 K_ESCAPE = 41; 151 K_BACK = 42; 152 K_INSERT = 43; 153 K_DELETE = 44; 154 K_SELECT = 45; 155 K_CYCLE = 46; 156 K_UP = 47; 157 K_DOWN = 48; 158 K_LEFT = 49; 159 K_RIGHT = 50; 160 K_SUP = 51; 161 K_SDOWN = 52; 162 K_SLEFT = 53; 163 K_SRIGHT = 54; 164 K_PUP = 55; 165 K_PDOWN = 56; 166 K_FRIGHT = 57; 167 K_FLEFT = 58; 168 K_DELETE_END = 59; 169 { 170 For NWSUngetKey of function keys, use UGK_FUNCTION_KEY for the "type" 171 parameter and "K_F1" etc. for the "value" parameter 172 } 173 UGK_NORMAL_KEY = $00; 174 UGK_FUNCTION_KEY = $01; 175 { 176 For other special keys listed below, use UGK_NORMAL_KEY for the "value" 177 parameter, and the UGK_xxx for the "type" parameter. 178 } 179 UGK_ENTER_KEY = $02; 180 UGK_ESCAPE_KEY = $03; 181 UGK_BACKSPACE_KEY = $04; 182 UGK_DELETE_KEY = $05; 183 UGK_INSERT_KEY = $06; 184 UGK_CURSOR_UP_KEY = $07; 185 UGK_CURSOR_DOWN_KEY = $08; 186 UGK_CURSOR_RIGHT_KEY = $09; 187 UGK_CURSOR_LEFT_KEY = $0a; 188 UGK_CURSOR_HOME_KEY = $0b; 189 UGK_CURSOR_END_KEY = $0c; 190 UGK_CURSOR_PUP_KEY = $0d; 191 UGK_CURSOR_PDOWN_KEY = $0e; 192 { 193 Added in version 403 194 195 A special key type to cause LISTs to refresh. K_REFRESH_KEY may be returned 196 from an action procedure passed to NWSList, or another thread that wishes 197 to cause a list to refresh may call NWSUngetKey with the UGK version of this, 198 and it too will cause the list to be redrawn. 199 200 Use "type" = UGK_SPECIAL_KEY, and "value" = UGK_REFRESH_KEY 201 } 202 UGK_SPECIAL_KEY = 3; 203 UGK_REFRESH_KEY = $22222222; 204 K_REFRESH_KEY = UGK_REFRESH_KEY; 205 OLD_REFRESH_KEY = 222; 206 { available action keys for list } 207 M_ESCAPE = $0001; 208 M_INSERT = $0002; 209 M_DELETE = $0004; 210 M_MODIFY = $0008; 211 M_SELECT = $0010; 212 { marked delete } 213 M_MDELETE = $0020; 214 M_CYCLE = $0040; 215 { marked modify } 216 M_MMODIFY = $0080; 217 { marked select } 218 M_MSELECT = $0100; 219 { don't sort list } 220 M_NO_SORT = $0200; 221 { allow the list to be refreshed } 222 M_REFRESH = $0400; 223 { return values for EditString } 224 E_ESCAPE = 1; 225 E_SELECT = 2; 226 E_EMPTY = 4; 227 E_CHANGE = 8; 228 { type values for EditString } 229 EF_ANY = $0001; 230 EF_DECIMAL = $0002; 231 EF_HEX = $0004; 232 EF_NOSPACES = $0008; 233 EF_UPPER = $0010; 234 EF_DATE = $0020; 235 EF_TIME = $0040; 236 EF_FLOAT = $0080; 237 EF_SET = $0100; 238 EF_NOECHO = $0200; 239 EF_FILENAME = $0400; 240 { added in version 404 } 241 EF_MASK = $0800; 242 { and in version 405 } 243 EF_NOCONFIRM_EXIT = $1000; 244 { scroll bar stuff for NWSEditTextWithScrollBars, and NWSViewTextWithScrollBars } 245 { which scroll bars to show } 246 SHOW_VERTICAL_SCROLL_BAR = 2; 247 SHOW_HORIZONTAL_SCROLL_BAR = 4; 248 { when to show the scroll bars. Use ONLY one of these } 249 CONSTANT_SCROLL_BARS = $0200; 250 TEXT_SENSITIVE_SCROLL_BARS = $0400; 251 CONSIDER_LOCKED_FIELDS = $0800; 252 { character and key constants } 253 254 function F_H1 : longint; 255 { � } function F_H2 : longint; 256 { � } function F_V1 : longint; 257 { � } function F_V2 : longint; 258 { � } function F_UL1 : longint; 259 { � } function F_UR1 : longint; 260 { � } function F_LL1 : longint; 261 { � } function F_LR1 : longint; 262 { � } function F_UL2 : longint; 263 { � } function F_UR2 : longint; 264 { � } function F_LL2 : longint; 265 { � } function F_LR2 : longint; 266 { � } function F_UT1 : longint; 267 { � } function F_DT1 : longint; 268 { � } function F_LT1 : longint; 269 { � } function F_RT1 : longint; 270 { � } function F_UT2 : longint; 271 { � } function F_DT2 : longint; 272 { � } function F_LT2 : longint; 273 { � } function F_RT2 : longint; 274 { � } function F_X1 : longint; 275 { � } function F_X2 : longint; 276 { } function F_UP : longint; 277 { } function F_DOWN : longint; 278 { } function F_LEFT : longint; 279 { } function F_RIGHT : longint; 280 { � } function F_BG1 : longint; 281 { � } function F_BG2 : longint; 282 { � } function F_BG3 : longint; 283 { � } function F_BG4 : longint; 284 285 286 { form constants (control flags) } 287 const 288 F_NOVERIFY = $00; 289 F_VERIFY = $10; 290 F_FORCE = $20; 291 { a flag to pass if no help is desired in the form } 292 F_NO_HELP = $ffffffff; 293 { fieldFlags Type masks } 294 { normal editable field } 295 NORMAL_FIELD = $00; 296 { non accessable } 297 LOCKED_FIELD = $01; 298 { non editable } 299 SECURE_FIELD = $02; 300 { verify field on form exit } 301 REQUIRED_FIELD = $04; 302 { hidden fields are also locked } 303 HIDDEN_FIELD = $09; 304 { prompt fields are also locked } 305 PROMPT_FIELD = $11; 306 { field locked by user, not by NUT } 307 ULOCKED_FIELD = $0100; 308 { MASKED_FIELD added in version 402 } 309 { display ' ' for text } 310 MASKED_FIELD = $200; 311 { flag to cause form deselection 312 before action & verify routines 313 are called } 314 FORM_DESELECT = $20; 315 { In case old flag was used } 316 NO_FORM_DESELECT = $00; 317 { normal field controlled justify } 318 DEFAULT_FORMAT = $00; 319 { right justification format } 320 RIGHT_FORMAT = $40; 321 { left justification format } 322 LEFT_FORMAT = $80; 323 { centering format } 324 CENTER_FORMAT = $C0; 325 MAXPORTALS = 50; 326 MAXLISTS = 20; 327 SAVELISTS = 20; 328 MAXACTIONS = 60; 329 MAXFUNCTIONS = MAXACTIONS; 330 MAXHELP = 30; 331 NO_MESSAGE = $ffff; 332 DYNAMIC_MESSAGE_ONE = $fffe; 333 DYNAMIC_MESSAGE_TWO = $fffd; 334 DYNAMIC_MESSAGE_THREE = $fffc; 335 DYNAMIC_MESSAGE_FOUR = $fffb; 336 DYNAMIC_MESSAGE_FIVE = $fffa; 337 DYNAMIC_MESSAGE_SIX = $fff9; 338 DYNAMIC_MESSAGE_SEVEN = $fff8; 339 DYNAMIC_MESSAGE_EIGHT = $fff7; 340 DYNAMIC_MESSAGE_NINE = $fff6; 341 DYNAMIC_MESSAGE_TEN = $fff5; 342 DYNAMIC_MESSAGE_ELEVEN = $fff4; 343 DYNAMIC_MESSAGE_TWELVE = $fff3; 344 DYNAMIC_MESSAGE_THIRTEEN = $fff2; 345 DYNAMIC_MESSAGE_FOURTEEN = $fff1; 346 SYSTEM_MESSAGE = $8000; 347 348 function IS_DYNAMIC_MESSAGE(a : longint) : boolean; 349 350 351 type 352 PNUTInfo_ = ^TNUTInfo_; 353 354 PPCB_ = ^TPCB_; 355 TPCB_ = record 356 frameLine : longint; 357 frameColumn : longint; 358 frameHeight : longint; 359 frameWidth : longint; 360 virtualHeight : longint; 361 virtualWidth : longint; 362 cursorState : longint; 363 borderType : longint; 364 borderAttribute : longint; 365 saveFlag : word; 366 secondarySaveFlag : word; 367 directFlag : longint; 368 headerAttribute : longint; 369 portalLine : longint; 370 portalColumn : longint; 371 portalHeight : longint; 372 portalWidth : longint; 373 virtualLine : longint; 374 virtualColumn : longint; 375 cursorLine : longint; 376 cursorColumn : longint; 377 firstUpdateFlag : longint; 378 headerText : pchar; 379 headerText2 : pchar; 380 virtualScreen : pointer; 381 saveScreen : pointer; 382 screenID : TScr; 383 nutInfo : PNUTInfo_; 384 sequenceNumber : longint; 385 reserved1 : longint; 386 mtflags : longint; 387 borderPalette : longint; 388 showScrollBars : longint; 389 lastLine : longint; 390 longestLineLen : longint; 391 verticalScroll : longint; 392 horizontalScroll : longint; 393 oldVertical : longint; 394 oldHorizontal : longint; 395 deHighlightFunction : procedure (para1:PNUTInfo_; para2:PPCB_);cdecl; 396 reHighlightFunction : procedure (para1:PNUTInfo_; para2:PPCB_); cdecl; 397 reportPortalUpdate : procedure (para1:PPCB_; para2:PNUTInfo_; updateType:longint); cdecl; 398 end; 399 TPCB = TPCB_; 400 PPCB = ^TPCB; 401 402 PHS_ = ^THS_; 403 THS_ = record 404 nextScreen : longint; 405 previousScreen : longint; 406 frameLine : longint; 407 frameColumn : longint; 408 frameHeight : longint; 409 frameWidth : longint; 410 virtualHeight : longint; 411 virtualWidth : longint; 412 cursorState : longint; 413 borderType : longint; 414 borderAttribute : longint; 415 saveFlag : longint; 416 directFlag : longint; 417 headerAttribute : longint; 418 headerText : pchar; 419 text : pchar; 420 end; 421 THELP_SCREEN = THS_; 422 PHELP_SCREEN = ^THELP_SCREEN; 423 424 PLIST_STRUCT = ^TLIST_STRUCT; 425 TLIST_STRUCT = record 426 prev : PLIST_STRUCT; 427 next : PLIST_STRUCT; 428 otherInfo : pointer; 429 marked : longint; 430 flags : word; 431 maxSkew : word; 432 entryProcedure : procedure (listElement:PLIST_STRUCT; displayLine:longint; NUTInfoStructure:pointer);cdecl; 433 extra : longint; 434 text : array[0..0] of char; 435 end; 436 TLIST = TLIST_STRUCT; 437 PLIST = ^TLIST; 438 PPLIST= ^PLIST; 439 440 PLP_ = ^TLP_; 441 TLP_ = record 442 head : pointer; 443 tail : pointer; 444 sortProc : function :longint;cdecl; 445 freeProcedure : procedure (memoryPointer:pointer); 446 end; 447 TLISTPTR = TLP_; 448 PLISTPTR = ^TLISTPTR; 449 450 PMI_ = ^TMI_; 451 TMI_ = record 452 dynamicMessageOne : pchar; 453 dynamicMessageTwo : pchar; 454 dynamicMessageThree : pchar; 455 dynamicMessageFour : pchar; 456 dynamicMessageFive : pchar; 457 dynamicMessageSix : pchar; 458 dynamicMessageSeven : pchar; 459 dynamicMessageEight : pchar; 460 dynamicMessageNine : pchar; 461 dynamicMessageTen : pchar; 462 dynamicMessageEleven : pchar; 463 dynamicMessageTwelve : pchar; 464 dynamicMessageThirteen : pchar; 465 dynamicMessageFourteen : pchar; 466 messageCount : longint; 467 programMesgTable : ppchar; 468 end; 469 TMessageInfo = TMI_; 470 PMessageInfo = ^TMessageInfo; 471 472 PINT_ = ^TINT_; 473 TINT_ = record 474 interruptProc : procedure (handle:pointer);cdecl; 475 key : longint; 476 end; 477 TINTERRUPT = TINT_; 478 PINTERRUPT = ^TINTERRUPT; 479 480 PMP_ = ^TMP_; 481 TMP_ = record 482 listAction : function (option:longint; parameter:pointer):longint;cdecl; 483 parameter : pointer; 484 end; 485 TMENU_PARAMETER = TMP_; 486 PMENU_PARAMETER = ^TMENU_PARAMETER; 487 { environment structure } 488 { always leave the following fields at the end of the struct. They 489 should never be referenced directly by an application } 490 491 492 TNUTInfo_ = record 493 portal : array[0..(MAXPORTALS)-1] of PPCB; 494 currentPortal : longint; 495 headerHeight : longint; 496 waitFlag : longint; 497 listStack : array[0..(MAXLISTS)-1] of TLISTPTR; 498 saveStack : array[0..(SAVELISTS)-1] of TLISTPTR; 499 nextAvailList : longint; 500 head : PLIST; 501 tail : PLIST; 502 defaultCompareFunction : function (el1:PLIST; el2:PLIST):longint;cdecl; 503 freeProcedure : procedure (memoryPointer:pointer); 504 interruptTable : array[0..(MAXFUNCTIONS)-1] of procedure ; 505 functionKeyStatus : array[0..(MAXACTIONS)-1] of longint; 506 messages : TMessageInfo; 507 helpContextStack : array[0..(MAXHELP)-1] of longint; 508 currentPreHelpMessage : longint; 509 freeHelpSlot : longint; 510 redisplayFormFlag : longint; 511 preHelpPortal : longint; 512 helpActive : smallint; 513 errorDisplayActive : smallint; 514 helpPortal : longint; 515 waitPortal : longint; 516 errorPortal : longint; 517 resourceTag : pointer; 518 screenID : pointer; 519 helpScreens : pointer; 520 helpOffset : longint; 521 helpHelp : longint; 522 allocChain : pointer; 523 version : longint; 524 reserved : array[0..9] of longint; 525 moduleHandle : longint; 526 customData : pointer; 527 customDataRelease : procedure (theData:pointer; thisStructure:PNUTInfo_); cdecl; 528 displayErrorLabel : longint; 529 markBuffer : pchar; 530 markBufferLength : longint; 531 editBuffer : pchar; 532 editBufferLength : longint; 533 staticFlag : longint; 534 processID : longint; 535 mtflags : longint; 536 saveCurrentPortal : longint; 537 palette : longint; 538 nutDataHandle : pointer; 539 next : PNUTInfo_; 540 prev : PNUTInfo_; 541 listSortFunction : procedure (head:PLIST; tail:PLIST; thisStructure:PNUTInfo_); cdecl; 542 compatibilityLevel : longint; 543 end; 544 TNUTInfo = TNUTInfo_; 545 PNUTInfo = ^TNUTInfo; 546 PPNUTInfo= ^PNUTInfo; 547 548 { menu header message number } 549 { menu center line } 550 { menu center column } 551 { len of longest menu option } 552 { menu action routine } 553 { list head for menu list } 554 555 PMFC_ = ^TMFC_; 556 TMFC_ = record 557 headernum : longint; 558 centerLine : longint; 559 centerColumn : longint; 560 maxoptlen : longint; 561 action : function (option:longint; parameter:pointer):longint;cdecl; 562 arg1 : longint; 563 arg2 : longint; 564 arg3 : longint; 565 arg4 : longint; 566 arg5 : longint; 567 arg6 : longint; 568 menuhead : TLISTPTR; 569 nutInfo : PNUTInfo; 570 end; 571 TMFCONTROL = TMFC_; 572 PMFCONTROL = ^TMFCONTROL; 573 { list element that owns the field } 574 { Control flags } 575 { Line where field is located } 576 { Column where field is located } 577 { Maximum width of field } 578 { Display attribute for field } 579 { Keys that will activate the field } 580 { Routine called when field selected } 581 { Routine to verify Input } 582 { Data & Xtra field release routine } 583 { Pointer to data } 584 { Additional control info } 585 { help context for this field } 586 { Pointer to field above } 587 { Pointer to field below } 588 { Pointer to field to left } 589 { Pointer to field to right } 590 { Pointer to previous field } 591 { Pointer to next field } 592 { if this value is set, this routine will be called upon 593 entry to each field } 594 { this allows the user to have any sort of custom data that 595 he wants attached to the field. } 596 { and this lets him release it. Note that these parameters 597 match NWSFree which allows the use of NWSAlloc for 598 this data (a further guarantee that the memory will be freed } 599 { handle to keep track of who owns the field } 600 601 Pfielddef = ^Tfielddef; 602 Tfielddef = record 603 element : PLIST; 604 fieldFlags : longint; 605 fieldLine : longint; 606 fieldColumn : longint; 607 fieldWidth : longint; 608 fieldAttribute : longint; 609 fieldActivateKeys : longint; 610 fieldFormat : procedure (field:Pfielddef; text:pchar; buffLen:longint);cdecl; 611 fieldControl : function (field:Pfielddef; selectKey:longint; fieldChanged:Plongint; handle:PNUTInfo):longint; 612 fieldVerify : function (field:Pfielddef; data:pchar; handle:PNUTInfo):longint; 613 fieldRelease : procedure (para1:Pfielddef); 614 fieldData : pchar; 615 fieldXtra : pchar; 616 fieldHelp : longint; 617 fieldAbove : Pfielddef; 618 fieldBelow : Pfielddef; 619 fieldLeft : Pfielddef; 620 fieldRight : Pfielddef; 621 fieldPrev : Pfielddef; 622 fieldNext : Pfielddef; 623 fieldEntry : procedure (intoField:Pfielddef; fieldData:pointer; handle:PNUTInfo); 624 customData : pointer; 625 customDataRelease : procedure (fieldCustomData:pointer; handle:PNUTInfo); 626 nutInfo : PNUTInfo; 627 end; 628 TFIELD = Tfielddef; 629 PFIELD = ^TFIELD; 630 { Structures used for DisplayErrorCondition } 631 632 PPCERR_ = ^TPCERR_; 633 TPCERR_ = record 634 ccodeReturned : longint; 635 errorMessageNumber : longint; 636 end; 637 TPROCERROR = TPCERR_; 638 PPROCERROR = ^TPROCERROR; 639 640 PNA_ = ^TNA_; 641 TNA_ = record 642 address : pointer; 643 next : pointer; 644 end; 645 TNUT_ALLOC = TNA_; 646 PNUT_ALLOC = ^TNUT_ALLOC; 647 648 function NWSInitializeNut 649 (utility, 650 version, 651 headerType, 652 compatibilityLevel : longint; 653 messageTable : PPchar; 654 helpScreens : pchar; 655 screenID : TScr; // Clib/OS Screen Id 656 resourceTag : TRtag; // OS ResourceTagStructure 657 var handle : PNUTInfo) : longint;cdecl;external External_library name 'NWSInitializeNut'; 658 659 procedure NWSScreenSize(maxLines,maxColumns:plongint);cdecl;external External_library name 'NWSScreenSize'; 660 procedure NWSScreenSize(var maxLines,maxColumns:longint);cdecl;external External_library name 'NWSScreenSize'; 661 662 procedure NWSShowPortalLine(line,column:longint; text:pchar; length:longint; portal:PPCB);cdecl;external External_library name 'NWSShowPortalLine'; 663 664 procedure NWSShowPortalLineAttribute(line,column:longint; text:pchar; attribute,length:longint; 665 portal:PPCB);cdecl;external External_library name 'NWSShowPortalLineAttribute'; 666 667 procedure NWSScrollPortalZone(line,column,height,width,attribute, 668 count,direction:longint; portal:PPCB);cdecl;external External_library name 'NWSScrollPortalZone'; 669 670 procedure NWSFillPortalZone(line,column,height,width,fillCharacter, 671 fillAttribute:longint; portal:PPCB);cdecl;external External_library name 'NWSFillPortalZone'; 672 673 procedure NWSFillPortalZoneAttribute(line,column,height,width,attribute:longint; 674 portal:PPCB);cdecl;external External_library name 'NWSFillPortalZoneAttribute'; 675 676 function NWSGetMessage(message:longint; messages:PMessageInfo):pchar;cdecl;external External_library name 'NWSGetMessage'; 677 678 procedure NWSSetDynamicMessage(message:longint; text:pchar; messages:PMessageInfo);cdecl;external External_library name 'NWSSetDynamicMessage'; 679 procedure NWSSetDynamicMessage(message:longint; text:pchar; var messages:TMessageInfo);cdecl;external External_library name 'NWSSetDynamicMessage'; 680 681 function NWSCreatePortal 682 (line, 683 column, 684 frameHeight, 685 frameWidth, 686 virtualHeight, 687 virtualWidth, 688 saveFlag:longint; 689 headerText:pchar; 690 headerAttribute, 691 borderType, 692 borderAttribute, 693 cursorFlag, 694 directFlag : longint; 695 handle : PNUTInfo) : longint;cdecl;external External_library name 'NWSCreatePortal'; 696 697 procedure NWSDestroyPortal(portalNumber:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSDestroyPortal'; 698 699 procedure NWSPositionPortalCursor(line:longint; column:longint; portal:PPCB);cdecl;external External_library name 'NWSPositionPortalCursor'; 700 701 procedure NWSEnablePortalCursor(portal:PPCB);cdecl;external External_library name 'NWSEnablePortalCursor'; 702 703 procedure NWSDisablePortalCursor(portal:PPCB);cdecl;external External_library name 'NWSDisablePortalCursor'; 704 705 procedure NWSDeselectPortal(handle:PNUTInfo);cdecl;external External_library name 'NWSDeselectPortal'; 706 707 procedure NWSSelectPortal(portalNumber:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSSelectPortal'; 708 709 function NWSComputePortalPosition(centerLine:longint; centerColumn:longint; height:longint; width:longint; line:plongint; 710 column:plongint; handle:PNUTInfo):longint;cdecl;external External_library name 'NWSComputePortalPosition'; 711 712 procedure NWSClearPortal(portal:PPCB);cdecl;external External_library name 'NWSClearPortal'; 713 714type TFreeRoutine = procedure (memoryPointer:pointer); cdecl; 715 716 procedure NWSInitList(handle:PNUTInfo; freeRoutine:TFreeRoutine);cdecl;external External_library name 'NWSInitList'; 717 718 function NWSPushList(handle:PNUTInfo):longint;cdecl;external External_library name 'NWSPushList'; 719 720 function NWSPopList(handleNWS:PNUTInfo):longint;cdecl;external External_library name 'NWSPopList'; 721 722 function NWSSaveList(listIndex:longint; handle:PNUTInfo):longint;cdecl;external External_library name 'NWSSaveList'; 723 724 function NWSRestoreList(listIndex:longint; handle:PNUTInfo):longint;cdecl;external External_library name 'NWSRestoreList'; 725 726 procedure NWSDestroyList(handle:PNUTInfo);cdecl;external External_library name 'NWSDestroyList'; 727 728 procedure NWSDestroyMenu(handle:PNUTInfo);cdecl;external External_library name 'NWSDestroyMenu'; 729 730 procedure NWSDestroyForm(handle:PNUTInfo);cdecl;external External_library name 'NWSDestroyForm'; 731 732 function NWSAppendToList(text:pchar; otherInfo:pointer; handle:PNUTInfo):PLIST;cdecl;external External_library name 'NWSAppendToList'; 733 734 function NWSDeleteFromList(el:PLIST; handle:PNUTInfo):PLIST;cdecl;external External_library name 'NWSDeleteFromList'; 735 736 function NWSInsertInList(text:pchar; otherInfo:pointer; atElement:PLIST; handle:PNUTInfo):PLIST;cdecl;external External_library name 'NWSInsertInList'; 737 738 function NWSGetListElementText(element:PLIST):pchar;cdecl;external External_library name 'NWSGetListElementText'; 739 740 function NWSGetListHead(handle:PNUTInfo):PLIST;cdecl;external External_library name 'NWSGetListHead'; 741 742 function NWSGetListTail(handle:PNUTInfo):PLIST;cdecl;external External_library name 'NWSGetListTail'; 743 744 procedure NWSUnmarkList(handle:PNUTInfo);cdecl;external External_library name 'NWSUnmarkList'; 745 746 procedure NWSSetList(listPtr:PLISTPTR; handle:PNUTInfo);cdecl;external External_library name 'NWSSetList'; 747 748 procedure NWSGetList(listPtr:PLISTPTR; handle:PNUTInfo);cdecl;external External_library name 'NWSGetList'; 749 750 function NWSIsAnyMarked(handle:PNUTInfo):longint;cdecl;external External_library name 'NWSIsAnyMarked'; 751 752 procedure NWSPushMarks(handle:PNUTInfo);cdecl;external External_library name 'NWSPushMarks'; 753 754 procedure NWSPopMarks(handle:PNUTInfo);cdecl;external External_library name 'NWSPopMarks'; 755 756 procedure NWSSortList(handle:PNUTInfo);cdecl;external External_library name 'NWSSortList'; 757 758 procedure NWSInitMenu(handle:PNUTInfo);cdecl;external External_library name 'NWSInitMenu'; 759 760 procedure NWSInitForm(handle:PNUTInfo);cdecl;external External_library name 'NWSInitForm'; 761 762 function NWSGetSortCharacter(charIndex:longint):longint;cdecl;external External_library name 'NWSGetSortCharacter'; 763 764 function NWSGetLineDrawCharacter(charIndex:longint):longint;cdecl;external External_library name 'NWSGetLineDrawCharacter'; 765 766 function NWSStrcat(_string, newStuff:pchar):longint;cdecl;external External_library name 'NWSStrcat'; 767 768 procedure NWSMemmove(dest:pointer; source:pointer; len:longint);cdecl;external External_library name 'NWSMemmove'; 769 770 function NWSToupper(ch:char):char;cdecl;external External_library name 'NWSToupper'; 771 772 function NWSIsdigit(ch:char):longbool;cdecl;external External_library name 'NWSIsdigit'; 773 774 function NWSIsxdigit(ch:char):longbool;cdecl;external External_library name 'NWSIsxdigit'; 775 776 function NWSAsciiToInt(data:pchar):longint;cdecl;external External_library name 'NWSAsciiToInt'; 777 778 function NWSAsciiToLONG(data:pchar):longint;cdecl;external External_library name 'NWSAsciiToLONG'; 779 780 function NWSAsciiHexToInt(data:pchar):longint;cdecl;external External_library name 'NWSAsciiHexToInt'; 781 782 procedure NWSWaitForEscape(handle:PNUTInfo);cdecl;external External_library name 'NWSWaitForEscape'; 783 784 function NWSWaitForEscapeOrCancel(handle:PNUTInfo):longint;cdecl;external External_library name 'NWSWaitForEscapeOrCancel'; 785 786 procedure NWSGetKey(_type:plongint; value:pchar; handle:PNUTInfo);cdecl;external External_library name 'NWSGetKey'; 787 procedure NWSGetKey(var _type:longint; value:pchar; handle:PNUTInfo);cdecl;external External_library name 'NWSGetKey'; 788 789 function NWSKeyStatus(handle:PNUTInfo):longint;cdecl;external External_library name 'NWSKeyStatus'; 790 791 function NWSUngetKey(_type:longint; value:longint; handle:PNUTInfo):longint;cdecl;external External_library name 'NWSUngetKey'; 792 793 procedure NWSEnableFunctionKey(key:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSEnableFunctionKey'; 794 795 procedure NWSDisableFunctionKey(key:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSDisableFunctionKey'; 796 797 procedure NWSDisableInterruptKey(key:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSDisableInterruptKey'; 798 799type TInterruptProc = procedure (handle:pointer); cdecl; 800 801 procedure NWSEnableInterruptKey(key:longint; interruptProc:TInterruptProc; handle:PNUTInfo);cdecl;external External_library name 'NWSEnableInterruptKey'; 802 803 procedure NWSSaveFunctionKeyList(keyList:pchar; handle:PNUTInfo);cdecl;external External_library name 'NWSSaveFunctionKeyList'; 804 805 procedure NWSEnableFunctionKeyList(keyList:pchar; handle:PNUTInfo);cdecl;external External_library name 'NWSEnableFunctionKeyList'; 806 807 procedure NWSSaveInterruptList(interruptList:PINTERRUPT; handle:PNUTInfo);cdecl;external External_library name 'NWSSaveInterruptList'; 808 809 procedure NWSEnableInterruptList(interruptList:PINTERRUPT; handle:PNUTInfo);cdecl;external External_library name 'NWSEnableInterruptList'; 810 811 procedure NWSDisableAllInterruptKeys(handle:PNUTInfo);cdecl;external External_library name 'NWSDisableAllInterruptKeys'; 812 813 procedure NWSDisableAllFunctionKeys(handle:PNUTInfo);cdecl;external External_library name 'NWSDisableAllFunctionKeys'; 814 815 procedure NWSEnableAllFunctionKeys(handle:PNUTInfo);cdecl;external External_library name 'NWSEnableAllFunctionKeys'; 816 817 function NWSDisplayTextInPortal(line,indentLevel:longint; text:pchar; attribute:longint; portal:PPCB):longint;cdecl;external External_library name 'NWSDisplayTextInPortal'; 818 819 function NWSDisplayInformation(header,pauseFlag,centerLine,centerColumn,palette, 820 attribute:longint; displayText:pchar; handle:PNUTInfo):longint;cdecl;external External_library name 'NWSDisplayInformation'; 821 822 procedure NWSStartWait(centerLine,centerColumn:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSStartWait'; 823 824 procedure NWSEndWait(handle:PNUTInfo);cdecl;external External_library name 'NWSEndWait'; 825 826 function NWSAlert(centerLine,centerColumn:longint; handle:PNUTInfo; message:longint; args:array of const):longint;cdecl;external External_library name 'NWSAlert'; 827 828 function NWSAlert(centerLine,centerColumn:longint; handle:PNUTInfo; message:longint):longint;cdecl;external External_library name 'NWSAlert'; 829 830 function NWSAlertWithHelp(centerLine,centerColumn:longint; handle:PNUTInfo; message,helpContext:longint; 831 args:array of const):longint;cdecl;external External_library name 'NWSAlertWithHelp'; 832 833 function NWSAlertWithHelp(centerLine,centerColumn:longint; handle:PNUTInfo; message:longint; helpContext:longint):longint;cdecl;external External_library name 'NWSAlertWithHelp'; 834 835 function NWSTrace(handle:PNUTInfo; message:pchar; args:array of const):longint;cdecl;external External_library name 'NWSTrace'; 836 function NWSTrace(handle:PNUTInfo; message:pchar):longint;cdecl;external External_library name 'NWSTrace'; 837 838 procedure NWSDisplayErrorText(message:longint; severity:longint; handle:PNUTInfo; args:array of const);cdecl;external External_library name 'NWSDisplayErrorText'; 839 840 procedure NWSDisplayErrorText(message:longint; severity:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSDisplayErrorText'; 841 842 procedure NWSDisplayErrorCondition(procedureName:pchar; errorCode:longint; severity:longint; errorList:PPROCERROR; handle:PNUTInfo; 843 args:array of const);cdecl;external External_library name 'NWSDisplayErrorCondition'; 844 845 procedure NWSDisplayErrorCondition(procedureName:pchar; errorCode:longint; severity:longint; errorList:PPROCERROR; handle:PNUTInfo);cdecl;external External_library name 'NWSDisplayErrorCondition'; 846 847 function NWSAppendToMenu(message:longint; option:longint; handle:PNUTInfo):PLIST;cdecl;external External_library name 'NWSAppendToMenu'; 848 849type TActionFunc = function (option:longint; parameter:pointer) : longint; cdecl; 850 851 function NWSMenu(header, 852 centerLine, 853 centerColumn:longint; 854 defaultElement:PLIST; 855 action:TActionFunc; 856 handle:PNUTInfo; 857 actionParameter:pointer):longint;cdecl;external External_library name 'NWSMenu'; 858 859 function NWSConfirm(header,centerLine,centerColumn,defaultChoice:longint; 860 action:TActionFunc; 861 handle:PNUTInfo; 862 actionParameter:pointer):longint;cdecl;external External_library name 'NWSConfirm'; 863 864 function NWSPushHelpContext(helpContext:longint; handle:PNUTInfo):longint;cdecl;external External_library name 'NWSPushHelpContext'; 865 866 function NWSPopHelpContext(handle:PNUTInfo):longint;cdecl;external External_library name 'NWSPopHelpContext'; 867 868type TFormatFunc=function (element:PLIST; skew:longint; displayLine:pchar; width:longint):longint; cdecl; 869 TNWSListActionFunc=function (keyPressed:longint; elementSelected:PPLIST; itemLineNumber:plongint; actionParameter:pointer):longint; cdecl; 870 871 function NWSList(header:longint; centerLine:longint; centerColumn:longint; height:longint; width:longint; 872 validKeyFlags:longint; element:PPLIST; handle:PNUTInfo; format:TFormatFunc; action:TNWSListActionFunc; 873 actionParameter:pointer):longint;cdecl;external External_library name 'NWSList'; 874 875type TInsertFunc = function (text:pchar; otherInfo:Ppointer; parameters:pointer):longint; cdecl; 876 TFreeProcedure=function (otherInfo:pointer):longint; cdecl; 877 878 function NWSInsertInPortalList(currentElement:PPLIST; currentLine:plongint; InsertProcedure:TInsertFunc; FreeProcedure:TFreeProcedure; handle:PNUTInfo; 879 parameters:pointer):longint;cdecl;external External_library name 'NWSInsertInPortalList'; 880 881type TModifyProcedure=function (text:pchar; parameters:pointer):longint; cdecl; 882 883 function NWSModifyInPortalList(currentElement:PPLIST; currentLine:plongint; ModifyProcedure:TModifyProcedure; handle:PNUTInfo; parameters:pointer):longint;cdecl;external External_library name 'NWSModifyInPortalList'; 884 885type TDeleteFunc = function (el:PLIST; handle:PNUTInfo; parameters:pointer):PLIST; cdecl; 886 function NWSDeleteFromPortalList(currentElement:PPLIST; currentLine:plongint; DeleteProcedure:TDeleteFunc; deleteCurrentHeader:longint; deleteMarkedHeader:longint; 887 handle:PNUTInfo; parameters:pointer):longint;cdecl;external External_library name 'NWSDeleteFromPortalList'; 888 889type TNWSEditInsertFunc=function (buffer:pchar; maxLen:longint; parameters:pointer):longint; cdecl; 890 TNWSEditActionFunc=function (action:longint; buffer:pchar; parameters:pointer):longint; cdecl; 891 892 function NWSEditString( 893 centerLine, centerColumn, editHeight, editWidth, header, 894 prompt :longint; 895 buf:pchar; 896 maxLen, _type:longint; handle:PNUTInfo; 897 insertProc:TNWSEditInsertFunc; 898 actionProc:TNWSEditActionFunc; 899 parameters:pointer):longint;cdecl;external External_library name 'NWSEditString'; 900 901 function NWSAppendIntegerField 902 (line, column, fflag:longint; data:Plongint; 903 minimum, maximum, help:longint; 904 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendIntegerField'; 905 906 function NWSAppendIntegerField 907 (line, column, fflag:longint; var data:longint; 908 minimum, maximum, help:longint; 909 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendIntegerField'; 910 911 function NWSAppendUnsignedIntegerField 912 (line, 913 column, 914 fflag:longint; 915 data:plongint; 916 minimum, maximum, help:longint; 917 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendUnsignedIntegerField'; 918 919 function NWSAppendUnsignedIntegerField 920 (line, 921 column, 922 fflag:longint; 923 var data:cardinal; 924 minimum, maximum, help:longint; 925 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendUnsignedIntegerField'; 926 927 function NWSAppendHexField 928 (line,column,fflag:longint; 929 data:Plongint; 930 minimum, maximum, help:longint; 931 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendHexField'; 932 933 procedure NWSDisplayPreHelp 934 (line, column, message:longint; 935 handle:PNUTInfo);cdecl;external External_library name 'NWSDisplayPreHelp'; 936 937 procedure NWSRemovePreHelp 938 (handle:PNUTInfo);cdecl;external External_library name 'NWSRemovePreHelp'; 939 940 function NWSGetADisk 941 (volName,prompt:pchar; 942 handle:PNUTInfo):longint;cdecl;external External_library name 'NWSGetADisk'; 943 944 procedure NWSInitListPtr(listPtr:PLISTPTR);cdecl;external External_library name 'NWSInitListPtr'; 945 946 function NWSEditForm 947 (headernum, 948 line, 949 col, 950 portalHeight, 951 portalWidth, 952 virtualHeight, 953 virtualWidth, 954 ESCverify, 955 forceverify, 956 confirmMessage : longint; 957 handle : PNUTInfo):longint;cdecl;external External_library name 'NWSEditForm'; 958 959 function NWSEditPortalFormField 960 (header, 961 cline, 962 ccol, 963 formHeight, 964 formWidth, 965 controlFlags:longint; 966 formHelp:CARDINAL; 967 confirmMessage:longint; 968 startField:PFIELD; 969 handle:PNUTInfo):longint;cdecl;external External_library name 'NWSEditPortalFormField'; 970 971 function NWSEditPortalForm 972 (header, 973 centerLine, 974 centerColumn, 975 formHeight, 976 formWidth, 977 controlFlags:longint; 978 formHelp:CARDINAL; 979 confirmMessage:longint; 980 handle:PNUTInfo):longint;cdecl;external External_library name 'NWSEditPortalForm'; 981 982type TfFormat = procedure (field:Pfielddef; text:pchar; buffLen:longint); cdecl; 983 TfControl = function (field:Pfielddef; selectKey:longint; var fieldChanged:longint; handle:PNUTInfo):longint; cdecl; 984 TfVerify = function (field:Pfielddef; data:pointer; handle:PNUTInfo):longint; cdecl; 985 TfRelease = procedure (field:Pfielddef); cdecl; 986 987 { Data & Xtra field release routine } 988 function NWSAppendToForm( 989 fline, 990 fcol, 991 fwidth, 992 fattr:longint; 993 fFormat:TfFormat; 994 fControl:TfControl; 995 fVerify:TfVerify; 996 fRelease:TfRelease; 997 fData:pointer; 998 fXtra:pointer; 999 fflags:longint; 1000 fActivateKeys:longint; 1001 fhelp:longint; 1002 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendToForm'; 1003 1004 function NWSAppendPromptField(line,column,promptnum:longint; handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendPromptField'; 1005 1006 function NWSAppendCommentField(line,column:longint; prompt:pchar; handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendCommentField'; 1007 1008 function NWSAppendStringField 1009 (line, 1010 column, 1011 width, 1012 fflag:longint; 1013 data,cset:pchar; 1014 help:longint; 1015 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendStringField'; 1016 1017 function NWSAppendBoolField 1018 (line, 1019 column, 1020 fflag:longint; 1021 data:pointer; 1022 help:longint; 1023 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendBoolField'; 1024 1025 function NWSAppendBoolField 1026 (line, 1027 column, 1028 fflag:longint; 1029 var data:longbool; 1030 help:longint; 1031 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendBoolField'; 1032 1033 function NWSAppendGenericBoolField 1034 (line, 1035 column, 1036 fflag:longint; 1037 data:pointer; 1038 help:longint; 1039 yesString, noString:pchar; 1040 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendGenericBoolField'; 1041 1042 function NWSAppendGenericBoolField 1043 (line, 1044 column, 1045 fflag:longint; 1046 var data:longbool; 1047 help:longint; 1048 yesString, noString:pchar; 1049 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendGenericBoolField'; 1050 1051type TSpotActionFunc = function (fp:PFIELD; selectKey:longint; var changedField:longint; handle:PNUTInfo):longint; cdecl; 1052 function NWSAppendHotSpotField 1053 (line, 1054 column, 1055 fflag:longint; 1056 displayString:pchar; 1057 SpotAction:TSpotActionFunc; 1058 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendHotSpotField'; 1059 1060 function NWSInitMenuField 1061 (headermsg, 1062 cLine, 1063 cCol:longint; 1064 action:TActionFunc; 1065 nutInfo:PNUTInfo; 1066 args:array of const):PMFCONTROL;cdecl;external External_library name 'NWSInitMenuField'; 1067 1068 function NWSInitMenuField 1069 (headermsg, 1070 cLine, 1071 cCol:longint; 1072 action:TActionFunc; 1073 nutInfo:PNUTInfo):PMFCONTROL;cdecl;external External_library name 'NWSInitMenuField'; 1074 1075 function NWSAppendToMenuField 1076 (m:PMFCONTROL; 1077 optiontext:longint; 1078 option:longint; 1079 nutInfo:PNUTInfo):longint;cdecl;external External_library name 'NWSAppendToMenuField'; 1080 1081 function NWSAppendMenuField 1082 (line, 1083 column, 1084 fflag:longint; 1085 data:Plongint; 1086 m:PMFCONTROL; 1087 help:longint; 1088 nutInfo:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendMenuField'; 1089 1090 function NWSAppendMenuField 1091 (line, 1092 column, 1093 fflag:longint; 1094 var data:longint; 1095 m:PMFCONTROL; 1096 help:longint; 1097 nutInfo:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendMenuField'; 1098 1099 function NWSEditText 1100 (centerLine, 1101 centerColumn, 1102 height, 1103 width, 1104 headerNumber:longint; 1105 textBuffer:pchar; 1106 maxBufferLength, 1107 confirmMessage, 1108 forceConfirm:longint; 1109 handle:PNUTInfo):longint;cdecl;external External_library name 'NWSEditText'; 1110 1111 function NWSViewText 1112 (centerLine, 1113 centerColumn, 1114 height, 1115 width, 1116 headerNumber:longint; 1117 textBuffer:pchar; 1118 maxBufferLength:longint; 1119 handle:PNUTInfo):longint;cdecl;external External_library name 'NWSViewText'; 1120 1121 procedure NWSDisplayHelpScreen 1122 (offset:longint; 1123 handle:PNUTInfo);cdecl;external External_library name 'NWSDisplayHelpScreen'; 1124 1125 // Allocates memory for NWSNUT purposes 1126 function NWSAlloc 1127 (numberOfBytes:longint; 1128 handle:PNUTInfo):pointer;cdecl;external External_library name 'NWSAlloc'; 1129 1130 procedure NWSFree 1131 (address:pointer; 1132 handle:PNUTInfo);cdecl;external External_library name 'NWSFree'; 1133 1134 // Displays justified text in an existing portal 1135 function NWSDisplayTextJustifiedInPortal 1136 (justify, 1137 line:longint; column:longint; textWidth:longint; text:pchar; 1138 attribute:longint; portal:PPCB):longint;cdecl;external External_library name 'NWSDisplayTextJustifiedInPortal'; 1139 1140 function NWSDisplayInformationInPortal 1141 (header, 1142 portalJustifyLine, 1143 portalJustifyColumn, 1144 portalJustifyType, 1145 portalPalette, 1146 portalBorderType, 1147 portalMaxWidth, 1148 portalMaxHeight, 1149 portalMinWidth, 1150 portalMinHeight, 1151 textLRJustifyType, 1152 textLRIndent, 1153 textTBJustifyType, 1154 textTBIndent, 1155 textAttribute, 1156 textMinimizeStyle:longint; 1157 text:pchar; 1158 handle:PNUTInfo):longint;cdecl;external External_library name 'NWSDisplayInformationInPortal'; 1159 1160 procedure NWSRestoreNut(handle:PNUTInfo);cdecl;external External_library name 'NWSRestoreNut'; 1161 1162 procedure NWSDrawPortalBorder(portal:PPCB);cdecl;external External_library name 'NWSDrawPortalBorder'; 1163 1164 procedure NWSUpdatePortal(portal:PPCB);cdecl;external External_library name 'NWSUpdatePortal'; 1165 1166type TSSFEntryProc = procedure (para1:PFIELD; para2:pointer; para3:PNUTInfo); cdecl; 1167 TSSFCustomDataReleaseProc = procedure (para1:pointer; para2:PNUTInfo); cdecl; 1168 TSSFFormat=procedure (para1:PFIELD; text:pchar; para3:longint); cdecl; 1169 TSSFControlFunc = function (para1:PFIELD; para2:longint; para3:Plongint; para4:PNUTInfo):longint; cdecl; 1170 TSSFVerifyFunc = function (para1:PFIELD; para2:pointer; para3:PNUTInfo):longint; cdecl; 1171 TSSFReleaseProc = procedure (para1:PFIELD); cdecl; 1172 1173 procedure NWSSetFieldFunctionPtr(fp:PFIELD; 1174 Format : TSSFFormat; 1175 Control: TSSFControlFunc; 1176 Verify : TSSFVerifyFunc; 1177 Release: TSSFReleaseProc; 1178 Entry : TSSFEntryProc; 1179 customDataRelease 1180 : TSSFCustomDataReleaseProc);cdecl;external External_library name 'NWSSetFieldFunctionPtr'; 1181 1182 1183type TCompareFunc = function (el1:PLIST; el2:PLIST):longint; cdecl; 1184 procedure NWSSetDefaultCompare(handle:PNUTInfo; 1185 defaultCompareFunction:TCompareFunc);cdecl;external External_library name 'NWSSetDefaultCompare'; 1186 1187 procedure NWSGetDefaultCompare(handle:PNUTInfo; var defaultCompareFunction:TCompareFunc);cdecl;external External_library name 'NWSGetDefaultCompare'; 1188 1189type TlistSortFunction = procedure (head:PLIST; tail:PLIST; handle:PNUTInfo); cdecl; 1190 { added in version 402 } 1191 procedure NWSSetListSortFunction(handle:PNUTInfo; 1192 listSortFunction:TlistSortFunction);cdecl;external External_library name 'NWSSetListSortFunction'; 1193 1194 { added in version 402 } 1195 procedure NWSGetListSortFunction(handle:PNUTInfo; 1196 var listSortFunction:TlistSortFunction);cdecl;external External_library name 'NWSGetListSortFunction'; 1197 1198 procedure NWSSetScreenPalette(newPalette:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSSetScreenPalette'; 1199 1200 function NWSGetScreenPalette(handle:PNUTInfo):longint;cdecl;external External_library name 'NWSGetScreenPalette'; 1201 1202 procedure NWSGetPCB(var _pPcb:PPCB; portalNumber:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSGetPCB'; 1203 1204type TentryProcedure = procedure (element:PLIST; displayLine:longint; handle:PNUTInfo); cdecl; 1205 procedure NWSSetListNotifyProcedure(el:PLIST; 1206 entryProcedure:TentryProcedure);cdecl;external External_library name 'NWSSetListNotifyProcedure'; 1207 1208 procedure NWSGetListNotifyProcedure(el:PLIST; 1209 var entryProcedure:TentryProcedure);cdecl;external External_library name 'NWSGetListNotifyProcedure'; 1210 1211type TcdReleaseProc = procedure (theData:pointer; handle:PNUTInfo); cdecl; 1212 procedure NWSSetHandleCustomData(handle:PNUTInfo; 1213 customData:pointer; 1214 customDataRelease:TcdReleaseProc);cdecl;external External_library name 'NWSSetHandleCustomData'; 1215 1216 procedure NWSGetHandleCustomData(handle:PNUTInfo; 1217 customData:Ppointer; 1218 customDataRelease:TcdReleaseProc);cdecl;external External_library name 'NWSGetHandleCustomData'; 1219 1220 procedure NWSSetErrorLabelDisplayFlag(flag:longint; 1221 handle:PNUTInfo);cdecl;external External_library name 'NWSSetErrorLabelDisplayFlag'; 1222 1223 procedure NWSSetHelpHelp(helpIndex:longint; 1224 handle:PNUTInfo);cdecl;external External_library name 'NWSSetHelpHelp'; 1225 1226 { max length of passwordString, including NULL } 1227 function NWSPromptForPassword 1228 (passwordHeader, 1229 line, 1230 column, 1231 maxPasswordLen : longint; 1232 passwordString:pchar; 1233 verifyEntry:longint; 1234 handle:PNUTInfo):longint;cdecl;external External_library name 'NWSPromptForPassword'; 1235 1236 function NWSAppendPasswordField 1237 (line, 1238 column, 1239 width, 1240 fflag:longint; // field flags 1241 data:pchar; // ptr to field text 1242 maxDataLen, // including null 1243 help, // help for field 1244 verifyEntry, // force password verification 1245 passwordPortalHeader, 1246 maskCharacter:longint; // fill character for field 1247 nhandle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendPasswordField'; 1248 1249 function NWSAppendScrollableStringField 1250 (line, 1251 column, 1252 width, 1253 fflag:longint; 1254 data:pchar; 1255 maxLen:longint; // max len of data, allowing for null terminator 1256 cset:pointer; // valid characters, if using EF_SET 1257 editFlags, // NWSEditString flags (EF_UPPER etc.) 1258 help:longint; 1259 handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendScrollableStringField'; 1260 1261type TSSFInsertFunc = function (_string:pchar; maxLen:longint; parameters:pointer):longint; cdecl; 1262 procedure NWSSetScrollableFieldInsertProc(fp:PFIELD; insertProc:TSSFInsertFunc);cdecl;external External_library name 'NWSSetScrollableFieldInsertProc'; 1263 1264 { Returns 0 for success, -1 if none selected } 1265 { if not NULL, returns portal number } 1266 function NWSGetCurrentPortal(nutInfo:PNUTInfo; portalNumber:plongint; var portal:PPCB):longint;cdecl;external External_library name 'NWSGetCurrentPortal'; 1267 1268 { if not NULL, returns PCB pointer } 1269 function NWSWaitForKeyAndValue(handle:PNUTInfo; 1270 nKeys:longint; 1271 keyType:array of longint; 1272 keyValue:array of longint):longint;cdecl;external External_library name 'NWSWaitForKeyAndValue'; 1273 1274 procedure NWSShowLineAttribute(line, 1275 column:longint; 1276 text:pchar; 1277 attribute, 1278 length:longint; 1279 screenID:TScr);cdecl;external External_library name 'NWSShowLineAttribute'; 1280 1281 procedure NWSShowLine(line,column:longint; text:pchar; length:longint; screenID:TScr);cdecl;external External_library name 'NWSShowLine'; 1282 1283 procedure NWSScrollZone 1284 (line, 1285 column, 1286 height, 1287 width, 1288 attribute, 1289 count, 1290 direction:longint; 1291 screenID:TScr);cdecl;external External_library name 'NWSScrollZone'; 1292 1293 procedure NWSSaveZone 1294 (line, 1295 column, 1296 height, 1297 width:longint; 1298 buffer:pointer; 1299 screenID:TScr);cdecl;external External_library name 'NWSSaveZone'; 1300 1301 procedure NWSSaveZone 1302 (line, 1303 column, 1304 height, 1305 width:longint; 1306 var buffer; 1307 screenID:TScr);cdecl;external External_library name 'NWSSaveZone'; 1308 1309 procedure NWSRestoreZone 1310 (line, 1311 column, 1312 height, 1313 width:longint; 1314 buffer:pointer; 1315 screenID:TScr);cdecl;external External_library name 'NWSRestoreZone'; 1316 1317 procedure NWSRestoreZone 1318 (line, 1319 column, 1320 height, 1321 width:longint; 1322 var buffer; 1323 screenID:TScr);cdecl;external External_library name 'NWSRestoreZone'; 1324 1325 procedure NWSRestoreDisplay(screenID:TScr);cdecl;external External_library name 'NWSRestoreDisplay'; 1326 1327 procedure NWSPositionCursor(line, column:longint; screenID:TScr);cdecl;external External_library name 'NWSPositionCursor'; 1328 1329 procedure NWSGetNUTVersion(majorVersion, minorVersion, revision:plongint);cdecl;external External_library name 'NWSGetNUTVersion'; 1330 procedure NWSGetNUTVersion(var majorVersion, minorVersion, revision:longint);cdecl;external External_library name 'NWSGetNUTVersion'; 1331 1332 procedure NWSSetFormRepaintFlag(value:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSSetFormRepaintFlag'; 1333 1334 procedure NWSSetFormNoWrap(handle:PNUTInfo);cdecl;external External_library name 'NWSSetFormNoWrap'; 1335 1336 function NWSViewTextWithScrollBars 1337 (centerLine, 1338 centerColumn, 1339 height, 1340 width, 1341 headerNumber:longint; 1342 textBuffer:pchar; 1343 maxBufferLength, 1344 scrollBarFlag:longint; 1345 handle:PNUTInfo):longint;cdecl;external External_library name 'NWSViewTextWithScrollBars'; 1346 1347 { length of document } 1348 function NWSEditTextWithScrollBars 1349 (centerLine, 1350 centerColumn, 1351 height, 1352 width, 1353 headerNumber:longint; 1354 textBuffer:pchar; 1355 maxBufferLength, 1356 confirmMessage, 1357 forceConfirm, 1358 scrollBarFlag:longint; 1359 handle:PNUTInfo):longint;cdecl;external External_library name 'NWSEditTextWithScrollBars'; 1360 1361 function NWSEditTextWithScrollBars 1362 (centerLine, 1363 centerColumn, 1364 height, 1365 width, 1366 headerNumber:longint; 1367 textBuffer:pchar; 1368 maxBufferLength, 1369 confirmMessage : longint; 1370 forceConfirm : longbool; 1371 scrollBarFlag : longint; 1372 handle:PNUTInfo):longint;cdecl;external External_library name 'NWSEditTextWithScrollBars'; 1373 1374 1375implementation 1376 1377 function F_H1 : longint; 1378 begin 1379 F_H1:=NWSGetLineDrawCharacter(0); 1380 end; 1381 1382 function F_H2 : longint; 1383 begin 1384 F_H2:=NWSGetLineDrawCharacter(1); 1385 end; 1386 1387 function F_V1 : longint; 1388 begin 1389 F_V1:=NWSGetLineDrawCharacter(2); 1390 end; 1391 1392 function F_V2 : longint; 1393 begin 1394 F_V2:=NWSGetLineDrawCharacter(3); 1395 end; 1396 1397 function F_UL1 : longint; 1398 begin 1399 F_UL1:=NWSGetLineDrawCharacter(4); 1400 end; 1401 1402 function F_UR1 : longint; 1403 begin 1404 F_UR1:=NWSGetLineDrawCharacter(5); 1405 end; 1406 1407 function F_LL1 : longint; 1408 begin 1409 F_LL1:=NWSGetLineDrawCharacter(6); 1410 end; 1411 1412 function F_LR1 : longint; 1413 begin 1414 F_LR1:=NWSGetLineDrawCharacter(7); 1415 end; 1416 1417 function F_UL2 : longint; 1418 begin 1419 F_UL2:=NWSGetLineDrawCharacter(8); 1420 end; 1421 1422 function F_UR2 : longint; 1423 begin 1424 F_UR2:=NWSGetLineDrawCharacter(9); 1425 end; 1426 1427 function F_LL2 : longint; 1428 begin 1429 F_LL2:=NWSGetLineDrawCharacter(10); 1430 end; 1431 1432 function F_LR2 : longint; 1433 begin 1434 F_LR2:=NWSGetLineDrawCharacter(11); 1435 end; 1436 1437 function F_UT1 : longint; 1438 begin 1439 F_UT1:=NWSGetLineDrawCharacter(12); 1440 end; 1441 1442 function F_DT1 : longint; 1443 begin 1444 F_DT1:=NWSGetLineDrawCharacter(13); 1445 end; 1446 1447 function F_LT1 : longint; 1448 begin 1449 F_LT1:=NWSGetLineDrawCharacter(14); 1450 end; 1451 1452 function F_RT1 : longint; 1453 begin 1454 F_RT1:=NWSGetLineDrawCharacter(15); 1455 end; 1456 1457 function F_UT2 : longint; 1458 begin 1459 F_UT2:=NWSGetLineDrawCharacter(24); 1460 end; 1461 1462 function F_DT2 : longint; 1463 begin 1464 F_DT2:=NWSGetLineDrawCharacter(25); 1465 end; 1466 1467 function F_LT2 : longint; 1468 begin 1469 F_LT2:=NWSGetLineDrawCharacter(26); 1470 end; 1471 1472 function F_RT2 : longint; 1473 begin 1474 F_RT2:=NWSGetLineDrawCharacter(27); 1475 end; 1476 1477 function F_X1 : longint; 1478 begin 1479 F_X1:=NWSGetLineDrawCharacter(36); 1480 end; 1481 1482 function F_X2 : longint; 1483 begin 1484 F_X2:=NWSGetLineDrawCharacter(39); 1485 end; 1486 1487 function F_UP : longint; 1488 begin 1489 F_UP:=NWSGetLineDrawCharacter(40); 1490 end; 1491 1492 function F_DOWN : longint; 1493 begin 1494 F_DOWN:=NWSGetLineDrawCharacter(41); 1495 end; 1496 1497 function F_LEFT : longint; 1498 begin 1499 F_LEFT:=NWSGetLineDrawCharacter(42); 1500 end; 1501 1502 function F_RIGHT : longint; 1503 begin 1504 F_RIGHT:=NWSGetLineDrawCharacter(43); 1505 end; 1506 1507 function F_BG1 : longint; 1508 begin 1509 F_BG1:=NWSGetLineDrawCharacter(44); 1510 end; 1511 1512 function F_BG2 : longint; 1513 begin 1514 F_BG2:=NWSGetLineDrawCharacter(45); 1515 end; 1516 1517 function F_BG3 : longint; 1518 begin 1519 F_BG3:=NWSGetLineDrawCharacter(46); 1520 end; 1521 1522 function F_BG4 : longint; 1523 begin 1524 F_BG4:=NWSGetLineDrawCharacter(47); 1525 end; 1526 1527 function IS_DYNAMIC_MESSAGE(a : longint) : boolean; 1528 begin 1529 IS_DYNAMIC_MESSAGE:=(a > $fff0) and (a < $ffff); 1530 end; 1531 1532 1533end. 1534