mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-05 11:18:18 +02:00
1540 lines
56 KiB
ObjectPascal
1540 lines
56 KiB
ObjectPascal
{
|
||
This file is part of the Free Pascal run time library
|
||
for Netware.
|
||
Copyright (c) 1999-2005 by the Free Pascal development team.
|
||
|
||
See the file COPYING.FPC, included in this distribution,
|
||
for details about the copyright.
|
||
|
||
This program is distributed in the hope that it will be useful,
|
||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||
|
||
**********************************************************************}
|
||
|
||
{$IFNDEF FPC_DOTTEDUNITS}
|
||
unit nwsnut;
|
||
{$ENDIF FPC_DOTTEDUNITS}
|
||
|
||
interface
|
||
|
||
{$mode objfpc}
|
||
{$if defined (netware_clib)}
|
||
uses nwserv;
|
||
{$else}
|
||
{$IFDEF FPC_DOTTEDUNITS}
|
||
uses NetwareLibCApi.libc;
|
||
{$ELSE FPC_DOTTEDUNITS}
|
||
uses libc;
|
||
{$ENDIF FPC_DOTTEDUNITS}
|
||
{$endif}
|
||
|
||
{$PACKRECORDS C}
|
||
|
||
const
|
||
External_library='nwsnut';
|
||
|
||
{ constants
|
||
the constant CURRENT_NUT_VERSION is incremented when increased
|
||
functionality is added. An NLM can check this value which is placed
|
||
in the NUTInfo structure, version field, to determine if the NWSNUT
|
||
NLM contains sufficient functionality to support its requirements }
|
||
|
||
|
||
CURRENT_NUT_VERSION = 405;
|
||
{ the constant NUT_REVISION_LEVEL is incremented when a major change
|
||
in the behavior of NWSNUT is made. This value is not used by the calling
|
||
NLM, but rather by NWSNUT itself to determine what is expected of it
|
||
by the calling NLM }
|
||
NUT_REVISION_LEVEL = 1;
|
||
SAVE = 1;
|
||
NO_SAVE = 0;
|
||
NOHEADER = 0;
|
||
NOBORDER = 0;
|
||
NO_HELP_CONTEXT = $ffff;
|
||
SINGLE = 1;
|
||
DOUBLE = 2;
|
||
CURSOR_OFF = 0;
|
||
CURSOR_ON = 1;
|
||
VIRTUAL = 0;
|
||
DIRECT = 1;
|
||
SEVERITY_INFORM = 1;
|
||
SEVERITY_WARNING = 2;
|
||
SEVERITY_FATAL = 3;
|
||
{ text size minimization styles }
|
||
SNORMAL = 0;
|
||
SMINWIDTH = 1;
|
||
SMINHEIGHT = 2;
|
||
{ palettes to set screen colors.
|
||
background and foreground can be reversed with VREVERSE }
|
||
BW_PALETTE = 0; // white and black
|
||
NORMAL_PALETTE = 1; // white and dark blue
|
||
INIT_PALETTE = 2; // light blue and dark blue
|
||
HELP_PALETTE = 3; // green and black
|
||
ERROR_PALETTE = 4; // red and black
|
||
WARNING_PALETTE = 5; // pink and white
|
||
OTHER_PALETTE = 6; // green and red
|
||
{ text and portal justification styles }
|
||
JRIGHT = 0;
|
||
JLEFT = 1;
|
||
JTOP = 2;
|
||
JBOTTOM = 3;
|
||
JCENTER = 4;
|
||
JTOPRIGHT = 5;
|
||
JTOPLEFT = 6;
|
||
JBOTTOMLEFT = 7;
|
||
JBOTTOMRIGHT = 8;
|
||
{ video constants }
|
||
V_UP = 6;
|
||
V_DOWN = 7;
|
||
LINE_OFFSET = 160;
|
||
EXPLODE_RATE = 45;
|
||
SCREEN_SPEED = 0;
|
||
{ video attributes }
|
||
VNORMAL = 0;
|
||
VINTENSE = 1;
|
||
VREVERSE = 2;
|
||
VBLINK = 3;
|
||
VIBLINK = 4;
|
||
VRBLINK = 5;
|
||
{ header types }
|
||
NO_HEADER = 0;
|
||
SMALL_HEADER = 1;
|
||
NORMAL_HEADER = 2;
|
||
LARGE_HEADER = 3;
|
||
{ keyboard constants }
|
||
KS_OFF = 0;
|
||
KS_ON = 1;
|
||
KS_INT = 2;
|
||
K_NORMAL = 0;
|
||
K_F1 = 1;
|
||
K_F2 = 2;
|
||
K_F3 = 3;
|
||
K_F4 = 4;
|
||
K_F5 = 5;
|
||
K_F6 = 6;
|
||
K_F7 = 7;
|
||
K_F8 = 8;
|
||
K_F9 = 9;
|
||
K_F10 = 10;
|
||
K_SF1 = 11;
|
||
K_SF2 = 12;
|
||
K_SF3 = 13;
|
||
K_SF4 = 14;
|
||
K_SF5 = 15;
|
||
K_SF6 = 16;
|
||
K_SF7 = 17;
|
||
K_SF8 = 18;
|
||
K_SF9 = 19;
|
||
K_SF10 = 20;
|
||
K_CF1 = 21;
|
||
K_CF2 = 22;
|
||
K_CF3 = 23;
|
||
K_CF4 = 24;
|
||
K_CF5 = 25;
|
||
K_CF6 = 26;
|
||
K_CF7 = 27;
|
||
K_CF8 = 28;
|
||
K_CF9 = 29;
|
||
K_CF10 = 30;
|
||
K_AF1 = 31;
|
||
K_AF2 = 32;
|
||
K_AF3 = 33;
|
||
K_AF4 = 34;
|
||
K_AF5 = 35;
|
||
K_AF6 = 36;
|
||
K_AF7 = 37;
|
||
K_AF8 = 38;
|
||
K_AF9 = 39;
|
||
K_AF10 = 40;
|
||
K_HELP = 1;
|
||
K_MODIFY = 3;
|
||
K_MARK = 5;
|
||
K_CANCEL = 7;
|
||
K_MODE = 9;
|
||
K_EXIT = 40;
|
||
K_ESCAPE = 41;
|
||
K_BACK = 42;
|
||
K_INSERT = 43;
|
||
K_DELETE = 44;
|
||
K_SELECT = 45;
|
||
K_CYCLE = 46;
|
||
K_UP = 47;
|
||
K_DOWN = 48;
|
||
K_LEFT = 49;
|
||
K_RIGHT = 50;
|
||
K_SUP = 51;
|
||
K_SDOWN = 52;
|
||
K_SLEFT = 53;
|
||
K_SRIGHT = 54;
|
||
K_PUP = 55;
|
||
K_PDOWN = 56;
|
||
K_FRIGHT = 57;
|
||
K_FLEFT = 58;
|
||
K_DELETE_END = 59;
|
||
{
|
||
For NWSUngetKey of function keys, use UGK_FUNCTION_KEY for the "type"
|
||
parameter and "K_F1" etc. for the "value" parameter
|
||
}
|
||
UGK_NORMAL_KEY = $00;
|
||
UGK_FUNCTION_KEY = $01;
|
||
{
|
||
For other special keys listed below, use UGK_NORMAL_KEY for the "value"
|
||
parameter, and the UGK_xxx for the "type" parameter.
|
||
}
|
||
UGK_ENTER_KEY = $02;
|
||
UGK_ESCAPE_KEY = $03;
|
||
UGK_BACKSPACE_KEY = $04;
|
||
UGK_DELETE_KEY = $05;
|
||
UGK_INSERT_KEY = $06;
|
||
UGK_CURSOR_UP_KEY = $07;
|
||
UGK_CURSOR_DOWN_KEY = $08;
|
||
UGK_CURSOR_RIGHT_KEY = $09;
|
||
UGK_CURSOR_LEFT_KEY = $0a;
|
||
UGK_CURSOR_HOME_KEY = $0b;
|
||
UGK_CURSOR_END_KEY = $0c;
|
||
UGK_CURSOR_PUP_KEY = $0d;
|
||
UGK_CURSOR_PDOWN_KEY = $0e;
|
||
{
|
||
Added in version 403
|
||
|
||
A special key type to cause LISTs to refresh. K_REFRESH_KEY may be returned
|
||
from an action procedure passed to NWSList, or another thread that wishes
|
||
to cause a list to refresh may call NWSUngetKey with the UGK version of this,
|
||
and it too will cause the list to be redrawn.
|
||
|
||
Use "type" = UGK_SPECIAL_KEY, and "value" = UGK_REFRESH_KEY
|
||
}
|
||
UGK_SPECIAL_KEY = 3;
|
||
UGK_REFRESH_KEY = $22222222;
|
||
K_REFRESH_KEY = UGK_REFRESH_KEY;
|
||
OLD_REFRESH_KEY = 222;
|
||
{ available action keys for list }
|
||
M_ESCAPE = $0001;
|
||
M_INSERT = $0002;
|
||
M_DELETE = $0004;
|
||
M_MODIFY = $0008;
|
||
M_SELECT = $0010;
|
||
{ marked delete }
|
||
M_MDELETE = $0020;
|
||
M_CYCLE = $0040;
|
||
{ marked modify }
|
||
M_MMODIFY = $0080;
|
||
{ marked select }
|
||
M_MSELECT = $0100;
|
||
{ don't sort list }
|
||
M_NO_SORT = $0200;
|
||
{ allow the list to be refreshed }
|
||
M_REFRESH = $0400;
|
||
{ return values for EditString }
|
||
E_ESCAPE = 1;
|
||
E_SELECT = 2;
|
||
E_EMPTY = 4;
|
||
E_CHANGE = 8;
|
||
{ type values for EditString }
|
||
EF_ANY = $0001;
|
||
EF_DECIMAL = $0002;
|
||
EF_HEX = $0004;
|
||
EF_NOSPACES = $0008;
|
||
EF_UPPER = $0010;
|
||
EF_DATE = $0020;
|
||
EF_TIME = $0040;
|
||
EF_FLOAT = $0080;
|
||
EF_SET = $0100;
|
||
EF_NOECHO = $0200;
|
||
EF_FILENAME = $0400;
|
||
{ added in version 404 }
|
||
EF_MASK = $0800;
|
||
{ and in version 405 }
|
||
EF_NOCONFIRM_EXIT = $1000;
|
||
{ scroll bar stuff for NWSEditTextWithScrollBars, and NWSViewTextWithScrollBars }
|
||
{ which scroll bars to show }
|
||
SHOW_VERTICAL_SCROLL_BAR = 2;
|
||
SHOW_HORIZONTAL_SCROLL_BAR = 4;
|
||
{ when to show the scroll bars. Use ONLY one of these }
|
||
CONSTANT_SCROLL_BARS = $0200;
|
||
TEXT_SENSITIVE_SCROLL_BARS = $0400;
|
||
CONSIDER_LOCKED_FIELDS = $0800;
|
||
{ character and key constants }
|
||
|
||
function F_H1 : longint;
|
||
{ <20> } function F_H2 : longint;
|
||
{ <20> } function F_V1 : longint;
|
||
{ <20> } function F_V2 : longint;
|
||
{ <20> } function F_UL1 : longint;
|
||
{ <20> } function F_UR1 : longint;
|
||
{ <20> } function F_LL1 : longint;
|
||
{ <20> } function F_LR1 : longint;
|
||
{ <20> } function F_UL2 : longint;
|
||
{ <20> } function F_UR2 : longint;
|
||
{ <20> } function F_LL2 : longint;
|
||
{ <20> } function F_LR2 : longint;
|
||
{ <20> } function F_UT1 : longint;
|
||
{ <20> } function F_DT1 : longint;
|
||
{ <20> } function F_LT1 : longint;
|
||
{ <20> } function F_RT1 : longint;
|
||
{ <20> } function F_UT2 : longint;
|
||
{ <20> } function F_DT2 : longint;
|
||
{ <20> } function F_LT2 : longint;
|
||
{ <20> } function F_RT2 : longint;
|
||
{ <20> } function F_X1 : longint;
|
||
{ <20> } function F_X2 : longint;
|
||
{ } function F_UP : longint;
|
||
{ } function F_DOWN : longint;
|
||
{ } function F_LEFT : longint;
|
||
{ } function F_RIGHT : longint;
|
||
{ <20> } function F_BG1 : longint;
|
||
{ <20> } function F_BG2 : longint;
|
||
{ <20> } function F_BG3 : longint;
|
||
{ <20> } function F_BG4 : longint;
|
||
|
||
|
||
{ form constants (control flags) }
|
||
const
|
||
F_NOVERIFY = $00;
|
||
F_VERIFY = $10;
|
||
F_FORCE = $20;
|
||
{ a flag to pass if no help is desired in the form }
|
||
F_NO_HELP = $ffffffff;
|
||
{ fieldFlags Type masks }
|
||
{ normal editable field }
|
||
NORMAL_FIELD = $00;
|
||
{ non accessable }
|
||
LOCKED_FIELD = $01;
|
||
{ non editable }
|
||
SECURE_FIELD = $02;
|
||
{ verify field on form exit }
|
||
REQUIRED_FIELD = $04;
|
||
{ hidden fields are also locked }
|
||
HIDDEN_FIELD = $09;
|
||
{ prompt fields are also locked }
|
||
PROMPT_FIELD = $11;
|
||
{ field locked by user, not by NUT }
|
||
ULOCKED_FIELD = $0100;
|
||
{ MASKED_FIELD added in version 402 }
|
||
{ display ' ' for text }
|
||
MASKED_FIELD = $200;
|
||
{ flag to cause form deselection
|
||
before action & verify routines
|
||
are called }
|
||
FORM_DESELECT = $20;
|
||
{ In case old flag was used }
|
||
NO_FORM_DESELECT = $00;
|
||
{ normal field controlled justify }
|
||
DEFAULT_FORMAT = $00;
|
||
{ right justification format }
|
||
RIGHT_FORMAT = $40;
|
||
{ left justification format }
|
||
LEFT_FORMAT = $80;
|
||
{ centering format }
|
||
CENTER_FORMAT = $C0;
|
||
MAXPORTALS = 50;
|
||
MAXLISTS = 20;
|
||
SAVELISTS = 20;
|
||
MAXACTIONS = 60;
|
||
MAXFUNCTIONS = MAXACTIONS;
|
||
MAXHELP = 30;
|
||
NO_MESSAGE = $ffff;
|
||
DYNAMIC_MESSAGE_ONE = $fffe;
|
||
DYNAMIC_MESSAGE_TWO = $fffd;
|
||
DYNAMIC_MESSAGE_THREE = $fffc;
|
||
DYNAMIC_MESSAGE_FOUR = $fffb;
|
||
DYNAMIC_MESSAGE_FIVE = $fffa;
|
||
DYNAMIC_MESSAGE_SIX = $fff9;
|
||
DYNAMIC_MESSAGE_SEVEN = $fff8;
|
||
DYNAMIC_MESSAGE_EIGHT = $fff7;
|
||
DYNAMIC_MESSAGE_NINE = $fff6;
|
||
DYNAMIC_MESSAGE_TEN = $fff5;
|
||
DYNAMIC_MESSAGE_ELEVEN = $fff4;
|
||
DYNAMIC_MESSAGE_TWELVE = $fff3;
|
||
DYNAMIC_MESSAGE_THIRTEEN = $fff2;
|
||
DYNAMIC_MESSAGE_FOURTEEN = $fff1;
|
||
SYSTEM_MESSAGE = $8000;
|
||
|
||
function IS_DYNAMIC_MESSAGE(a : longint) : boolean;
|
||
|
||
|
||
type
|
||
PNUTInfo_ = ^TNUTInfo_;
|
||
|
||
PPCB_ = ^TPCB_;
|
||
TPCB_ = record
|
||
frameLine : longint;
|
||
frameColumn : longint;
|
||
frameHeight : longint;
|
||
frameWidth : longint;
|
||
virtualHeight : longint;
|
||
virtualWidth : longint;
|
||
cursorState : longint;
|
||
borderType : longint;
|
||
borderAttribute : longint;
|
||
saveFlag : word;
|
||
secondarySaveFlag : word;
|
||
directFlag : longint;
|
||
headerAttribute : longint;
|
||
portalLine : longint;
|
||
portalColumn : longint;
|
||
portalHeight : longint;
|
||
portalWidth : longint;
|
||
virtualLine : longint;
|
||
virtualColumn : longint;
|
||
cursorLine : longint;
|
||
cursorColumn : longint;
|
||
firstUpdateFlag : longint;
|
||
headerText : PAnsiChar;
|
||
headerText2 : PAnsiChar;
|
||
virtualScreen : pointer;
|
||
saveScreen : pointer;
|
||
screenID : TScr;
|
||
nutInfo : PNUTInfo_;
|
||
sequenceNumber : longint;
|
||
reserved1 : longint;
|
||
mtflags : longint;
|
||
borderPalette : longint;
|
||
showScrollBars : longint;
|
||
lastLine : longint;
|
||
longestLineLen : longint;
|
||
verticalScroll : longint;
|
||
horizontalScroll : longint;
|
||
oldVertical : longint;
|
||
oldHorizontal : longint;
|
||
deHighlightFunction : procedure (para1:PNUTInfo_; para2:PPCB_);cdecl;
|
||
reHighlightFunction : procedure (para1:PNUTInfo_; para2:PPCB_); cdecl;
|
||
reportPortalUpdate : procedure (para1:PPCB_; para2:PNUTInfo_; updateType:longint); cdecl;
|
||
end;
|
||
TPCB = TPCB_;
|
||
PPCB = ^TPCB;
|
||
|
||
PHS_ = ^THS_;
|
||
THS_ = record
|
||
nextScreen : longint;
|
||
previousScreen : longint;
|
||
frameLine : longint;
|
||
frameColumn : longint;
|
||
frameHeight : longint;
|
||
frameWidth : longint;
|
||
virtualHeight : longint;
|
||
virtualWidth : longint;
|
||
cursorState : longint;
|
||
borderType : longint;
|
||
borderAttribute : longint;
|
||
saveFlag : longint;
|
||
directFlag : longint;
|
||
headerAttribute : longint;
|
||
headerText : PAnsiChar;
|
||
text : PAnsiChar;
|
||
end;
|
||
THELP_SCREEN = THS_;
|
||
PHELP_SCREEN = ^THELP_SCREEN;
|
||
|
||
PLIST_STRUCT = ^TLIST_STRUCT;
|
||
TLIST_STRUCT = record
|
||
prev : PLIST_STRUCT;
|
||
next : PLIST_STRUCT;
|
||
otherInfo : pointer;
|
||
marked : longint;
|
||
flags : word;
|
||
maxSkew : word;
|
||
entryProcedure : procedure (listElement:PLIST_STRUCT; displayLine:longint; NUTInfoStructure:pointer);cdecl;
|
||
extra : longint;
|
||
text : array[0..0] of AnsiChar;
|
||
end;
|
||
TLIST = TLIST_STRUCT;
|
||
PLIST = ^TLIST;
|
||
PPLIST= ^PLIST;
|
||
|
||
PLP_ = ^TLP_;
|
||
TLP_ = record
|
||
head : pointer;
|
||
tail : pointer;
|
||
sortProc : function :longint;cdecl;
|
||
freeProcedure : procedure (memoryPointer:pointer);
|
||
end;
|
||
TLISTPTR = TLP_;
|
||
PLISTPTR = ^TLISTPTR;
|
||
|
||
PMI_ = ^TMI_;
|
||
TMI_ = record
|
||
dynamicMessageOne : PAnsiChar;
|
||
dynamicMessageTwo : PAnsiChar;
|
||
dynamicMessageThree : PAnsiChar;
|
||
dynamicMessageFour : PAnsiChar;
|
||
dynamicMessageFive : PAnsiChar;
|
||
dynamicMessageSix : PAnsiChar;
|
||
dynamicMessageSeven : PAnsiChar;
|
||
dynamicMessageEight : PAnsiChar;
|
||
dynamicMessageNine : PAnsiChar;
|
||
dynamicMessageTen : PAnsiChar;
|
||
dynamicMessageEleven : PAnsiChar;
|
||
dynamicMessageTwelve : PAnsiChar;
|
||
dynamicMessageThirteen : PAnsiChar;
|
||
dynamicMessageFourteen : PAnsiChar;
|
||
messageCount : longint;
|
||
programMesgTable : PPAnsiChar;
|
||
end;
|
||
TMessageInfo = TMI_;
|
||
PMessageInfo = ^TMessageInfo;
|
||
|
||
PINT_ = ^TINT_;
|
||
TINT_ = record
|
||
interruptProc : procedure (handle:pointer);cdecl;
|
||
key : longint;
|
||
end;
|
||
TINTERRUPT = TINT_;
|
||
PINTERRUPT = ^TINTERRUPT;
|
||
|
||
PMP_ = ^TMP_;
|
||
TMP_ = record
|
||
listAction : function (option:longint; parameter:pointer):longint;cdecl;
|
||
parameter : pointer;
|
||
end;
|
||
TMENU_PARAMETER = TMP_;
|
||
PMENU_PARAMETER = ^TMENU_PARAMETER;
|
||
{ environment structure }
|
||
{ always leave the following fields at the end of the struct. They
|
||
should never be referenced directly by an application }
|
||
|
||
|
||
TNUTInfo_ = record
|
||
portal : array[0..(MAXPORTALS)-1] of PPCB;
|
||
currentPortal : longint;
|
||
headerHeight : longint;
|
||
waitFlag : longint;
|
||
listStack : array[0..(MAXLISTS)-1] of TLISTPTR;
|
||
saveStack : array[0..(SAVELISTS)-1] of TLISTPTR;
|
||
nextAvailList : longint;
|
||
head : PLIST;
|
||
tail : PLIST;
|
||
defaultCompareFunction : function (el1:PLIST; el2:PLIST):longint;cdecl;
|
||
freeProcedure : procedure (memoryPointer:pointer);
|
||
interruptTable : array[0..(MAXFUNCTIONS)-1] of procedure ;
|
||
functionKeyStatus : array[0..(MAXACTIONS)-1] of longint;
|
||
messages : TMessageInfo;
|
||
helpContextStack : array[0..(MAXHELP)-1] of longint;
|
||
currentPreHelpMessage : longint;
|
||
freeHelpSlot : longint;
|
||
redisplayFormFlag : longint;
|
||
preHelpPortal : longint;
|
||
helpActive : smallint;
|
||
errorDisplayActive : smallint;
|
||
helpPortal : longint;
|
||
waitPortal : longint;
|
||
errorPortal : longint;
|
||
resourceTag : pointer;
|
||
screenID : pointer;
|
||
helpScreens : pointer;
|
||
helpOffset : longint;
|
||
helpHelp : longint;
|
||
allocChain : pointer;
|
||
version : longint;
|
||
reserved : array[0..9] of longint;
|
||
moduleHandle : longint;
|
||
customData : pointer;
|
||
customDataRelease : procedure (theData:pointer; thisStructure:PNUTInfo_); cdecl;
|
||
displayErrorLabel : longint;
|
||
markBuffer : PAnsiChar;
|
||
markBufferLength : longint;
|
||
editBuffer : PAnsiChar;
|
||
editBufferLength : longint;
|
||
staticFlag : longint;
|
||
processID : longint;
|
||
mtflags : longint;
|
||
saveCurrentPortal : longint;
|
||
palette : longint;
|
||
nutDataHandle : pointer;
|
||
next : PNUTInfo_;
|
||
prev : PNUTInfo_;
|
||
listSortFunction : procedure (head:PLIST; tail:PLIST; thisStructure:PNUTInfo_); cdecl;
|
||
compatibilityLevel : longint;
|
||
end;
|
||
TNUTInfo = TNUTInfo_;
|
||
PNUTInfo = ^TNUTInfo;
|
||
PPNUTInfo= ^PNUTInfo;
|
||
|
||
{ menu header message number }
|
||
{ menu center line }
|
||
{ menu center column }
|
||
{ len of longest menu option }
|
||
{ menu action routine }
|
||
{ list head for menu list }
|
||
|
||
PMFC_ = ^TMFC_;
|
||
TMFC_ = record
|
||
headernum : longint;
|
||
centerLine : longint;
|
||
centerColumn : longint;
|
||
maxoptlen : longint;
|
||
action : function (option:longint; parameter:pointer):longint;cdecl;
|
||
arg1 : longint;
|
||
arg2 : longint;
|
||
arg3 : longint;
|
||
arg4 : longint;
|
||
arg5 : longint;
|
||
arg6 : longint;
|
||
menuhead : TLISTPTR;
|
||
nutInfo : PNUTInfo;
|
||
end;
|
||
TMFCONTROL = TMFC_;
|
||
PMFCONTROL = ^TMFCONTROL;
|
||
{ list element that owns the field }
|
||
{ Control flags }
|
||
{ Line where field is located }
|
||
{ Column where field is located }
|
||
{ Maximum width of field }
|
||
{ Display attribute for field }
|
||
{ Keys that will activate the field }
|
||
{ Routine called when field selected }
|
||
{ Routine to verify Input }
|
||
{ Data & Xtra field release routine }
|
||
{ Pointer to data }
|
||
{ Additional control info }
|
||
{ help context for this field }
|
||
{ Pointer to field above }
|
||
{ Pointer to field below }
|
||
{ Pointer to field to left }
|
||
{ Pointer to field to right }
|
||
{ Pointer to previous field }
|
||
{ Pointer to next field }
|
||
{ if this value is set, this routine will be called upon
|
||
entry to each field }
|
||
{ this allows the user to have any sort of custom data that
|
||
he wants attached to the field. }
|
||
{ and this lets him release it. Note that these parameters
|
||
match NWSFree which allows the use of NWSAlloc for
|
||
this data (a further guarantee that the memory will be freed }
|
||
{ handle to keep track of who owns the field }
|
||
|
||
Pfielddef = ^Tfielddef;
|
||
Tfielddef = record
|
||
element : PLIST;
|
||
fieldFlags : longint;
|
||
fieldLine : longint;
|
||
fieldColumn : longint;
|
||
fieldWidth : longint;
|
||
fieldAttribute : longint;
|
||
fieldActivateKeys : longint;
|
||
fieldFormat : procedure (field:Pfielddef; text:PAnsiChar; buffLen:longint);cdecl;
|
||
fieldControl : function (field:Pfielddef; selectKey:longint; fieldChanged:Plongint; handle:PNUTInfo):longint;
|
||
fieldVerify : function (field:Pfielddef; data:PAnsiChar; handle:PNUTInfo):longint;
|
||
fieldRelease : procedure (para1:Pfielddef);
|
||
fieldData : PAnsiChar;
|
||
fieldXtra : PAnsiChar;
|
||
fieldHelp : longint;
|
||
fieldAbove : Pfielddef;
|
||
fieldBelow : Pfielddef;
|
||
fieldLeft : Pfielddef;
|
||
fieldRight : Pfielddef;
|
||
fieldPrev : Pfielddef;
|
||
fieldNext : Pfielddef;
|
||
fieldEntry : procedure (intoField:Pfielddef; fieldData:pointer; handle:PNUTInfo);
|
||
customData : pointer;
|
||
customDataRelease : procedure (fieldCustomData:pointer; handle:PNUTInfo);
|
||
nutInfo : PNUTInfo;
|
||
end;
|
||
TFIELD = Tfielddef;
|
||
PFIELD = ^TFIELD;
|
||
{ Structures used for DisplayErrorCondition }
|
||
|
||
PPCERR_ = ^TPCERR_;
|
||
TPCERR_ = record
|
||
ccodeReturned : longint;
|
||
errorMessageNumber : longint;
|
||
end;
|
||
TPROCERROR = TPCERR_;
|
||
PPROCERROR = ^TPROCERROR;
|
||
|
||
PNA_ = ^TNA_;
|
||
TNA_ = record
|
||
address : pointer;
|
||
next : pointer;
|
||
end;
|
||
TNUT_ALLOC = TNA_;
|
||
PNUT_ALLOC = ^TNUT_ALLOC;
|
||
|
||
function NWSInitializeNut
|
||
(utility,
|
||
version,
|
||
headerType,
|
||
compatibilityLevel : longint;
|
||
messageTable : PPAnsiChar;
|
||
helpScreens : PAnsiChar;
|
||
screenID : TScr; // Clib/OS Screen Id
|
||
resourceTag : TRtag; // OS ResourceTagStructure
|
||
var handle : PNUTInfo) : longint;cdecl;external External_library name 'NWSInitializeNut';
|
||
|
||
procedure NWSScreenSize(maxLines,maxColumns:plongint);cdecl;external External_library name 'NWSScreenSize';
|
||
procedure NWSScreenSize(var maxLines,maxColumns:longint);cdecl;external External_library name 'NWSScreenSize';
|
||
|
||
procedure NWSShowPortalLine(line,column:longint; text:PAnsiChar; length:longint; portal:PPCB);cdecl;external External_library name 'NWSShowPortalLine';
|
||
|
||
procedure NWSShowPortalLineAttribute(line,column:longint; text:PAnsiChar; attribute,length:longint;
|
||
portal:PPCB);cdecl;external External_library name 'NWSShowPortalLineAttribute';
|
||
|
||
procedure NWSScrollPortalZone(line,column,height,width,attribute,
|
||
count,direction:longint; portal:PPCB);cdecl;external External_library name 'NWSScrollPortalZone';
|
||
|
||
procedure NWSFillPortalZone(line,column,height,width,fillCharacter,
|
||
fillAttribute:longint; portal:PPCB);cdecl;external External_library name 'NWSFillPortalZone';
|
||
|
||
procedure NWSFillPortalZoneAttribute(line,column,height,width,attribute:longint;
|
||
portal:PPCB);cdecl;external External_library name 'NWSFillPortalZoneAttribute';
|
||
|
||
function NWSGetMessage(message:longint; messages:PMessageInfo):PAnsiChar;cdecl;external External_library name 'NWSGetMessage';
|
||
|
||
procedure NWSSetDynamicMessage(message:longint; text:PAnsiChar; messages:PMessageInfo);cdecl;external External_library name 'NWSSetDynamicMessage';
|
||
procedure NWSSetDynamicMessage(message:longint; text:PAnsiChar; var messages:TMessageInfo);cdecl;external External_library name 'NWSSetDynamicMessage';
|
||
|
||
function NWSCreatePortal
|
||
(line,
|
||
column,
|
||
frameHeight,
|
||
frameWidth,
|
||
virtualHeight,
|
||
virtualWidth,
|
||
saveFlag:longint;
|
||
headerText:PAnsiChar;
|
||
headerAttribute,
|
||
borderType,
|
||
borderAttribute,
|
||
cursorFlag,
|
||
directFlag : longint;
|
||
handle : PNUTInfo) : longint;cdecl;external External_library name 'NWSCreatePortal';
|
||
|
||
procedure NWSDestroyPortal(portalNumber:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSDestroyPortal';
|
||
|
||
procedure NWSPositionPortalCursor(line:longint; column:longint; portal:PPCB);cdecl;external External_library name 'NWSPositionPortalCursor';
|
||
|
||
procedure NWSEnablePortalCursor(portal:PPCB);cdecl;external External_library name 'NWSEnablePortalCursor';
|
||
|
||
procedure NWSDisablePortalCursor(portal:PPCB);cdecl;external External_library name 'NWSDisablePortalCursor';
|
||
|
||
procedure NWSDeselectPortal(handle:PNUTInfo);cdecl;external External_library name 'NWSDeselectPortal';
|
||
|
||
procedure NWSSelectPortal(portalNumber:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSSelectPortal';
|
||
|
||
function NWSComputePortalPosition(centerLine:longint; centerColumn:longint; height:longint; width:longint; line:plongint;
|
||
column:plongint; handle:PNUTInfo):longint;cdecl;external External_library name 'NWSComputePortalPosition';
|
||
|
||
procedure NWSClearPortal(portal:PPCB);cdecl;external External_library name 'NWSClearPortal';
|
||
|
||
type TFreeRoutine = procedure (memoryPointer:pointer); cdecl;
|
||
|
||
procedure NWSInitList(handle:PNUTInfo; freeRoutine:TFreeRoutine);cdecl;external External_library name 'NWSInitList';
|
||
|
||
function NWSPushList(handle:PNUTInfo):longint;cdecl;external External_library name 'NWSPushList';
|
||
|
||
function NWSPopList(handleNWS:PNUTInfo):longint;cdecl;external External_library name 'NWSPopList';
|
||
|
||
function NWSSaveList(listIndex:longint; handle:PNUTInfo):longint;cdecl;external External_library name 'NWSSaveList';
|
||
|
||
function NWSRestoreList(listIndex:longint; handle:PNUTInfo):longint;cdecl;external External_library name 'NWSRestoreList';
|
||
|
||
procedure NWSDestroyList(handle:PNUTInfo);cdecl;external External_library name 'NWSDestroyList';
|
||
|
||
procedure NWSDestroyMenu(handle:PNUTInfo);cdecl;external External_library name 'NWSDestroyMenu';
|
||
|
||
procedure NWSDestroyForm(handle:PNUTInfo);cdecl;external External_library name 'NWSDestroyForm';
|
||
|
||
function NWSAppendToList(text:PAnsiChar; otherInfo:pointer; handle:PNUTInfo):PLIST;cdecl;external External_library name 'NWSAppendToList';
|
||
|
||
function NWSDeleteFromList(el:PLIST; handle:PNUTInfo):PLIST;cdecl;external External_library name 'NWSDeleteFromList';
|
||
|
||
function NWSInsertInList(text:PAnsiChar; otherInfo:pointer; atElement:PLIST; handle:PNUTInfo):PLIST;cdecl;external External_library name 'NWSInsertInList';
|
||
|
||
function NWSGetListElementText(element:PLIST):PAnsiChar;cdecl;external External_library name 'NWSGetListElementText';
|
||
|
||
function NWSGetListHead(handle:PNUTInfo):PLIST;cdecl;external External_library name 'NWSGetListHead';
|
||
|
||
function NWSGetListTail(handle:PNUTInfo):PLIST;cdecl;external External_library name 'NWSGetListTail';
|
||
|
||
procedure NWSUnmarkList(handle:PNUTInfo);cdecl;external External_library name 'NWSUnmarkList';
|
||
|
||
procedure NWSSetList(listPtr:PLISTPTR; handle:PNUTInfo);cdecl;external External_library name 'NWSSetList';
|
||
|
||
procedure NWSGetList(listPtr:PLISTPTR; handle:PNUTInfo);cdecl;external External_library name 'NWSGetList';
|
||
|
||
function NWSIsAnyMarked(handle:PNUTInfo):longint;cdecl;external External_library name 'NWSIsAnyMarked';
|
||
|
||
procedure NWSPushMarks(handle:PNUTInfo);cdecl;external External_library name 'NWSPushMarks';
|
||
|
||
procedure NWSPopMarks(handle:PNUTInfo);cdecl;external External_library name 'NWSPopMarks';
|
||
|
||
procedure NWSSortList(handle:PNUTInfo);cdecl;external External_library name 'NWSSortList';
|
||
|
||
procedure NWSInitMenu(handle:PNUTInfo);cdecl;external External_library name 'NWSInitMenu';
|
||
|
||
procedure NWSInitForm(handle:PNUTInfo);cdecl;external External_library name 'NWSInitForm';
|
||
|
||
function NWSGetSortCharacter(charIndex:longint):longint;cdecl;external External_library name 'NWSGetSortCharacter';
|
||
|
||
function NWSGetLineDrawCharacter(charIndex:longint):longint;cdecl;external External_library name 'NWSGetLineDrawCharacter';
|
||
|
||
function NWSStrcat(_string, newStuff:PAnsiChar):longint;cdecl;external External_library name 'NWSStrcat';
|
||
|
||
procedure NWSMemmove(dest:pointer; source:pointer; len:longint);cdecl;external External_library name 'NWSMemmove';
|
||
|
||
function NWSToupper(ch:AnsiChar):AnsiChar;cdecl;external External_library name 'NWSToupper';
|
||
|
||
function NWSIsdigit(ch:AnsiChar):longbool;cdecl;external External_library name 'NWSIsdigit';
|
||
|
||
function NWSIsxdigit(ch:AnsiChar):longbool;cdecl;external External_library name 'NWSIsxdigit';
|
||
|
||
function NWSAsciiToInt(data:PAnsiChar):longint;cdecl;external External_library name 'NWSAsciiToInt';
|
||
|
||
function NWSAsciiToLONG(data:PAnsiChar):longint;cdecl;external External_library name 'NWSAsciiToLONG';
|
||
|
||
function NWSAsciiHexToInt(data:PAnsiChar):longint;cdecl;external External_library name 'NWSAsciiHexToInt';
|
||
|
||
procedure NWSWaitForEscape(handle:PNUTInfo);cdecl;external External_library name 'NWSWaitForEscape';
|
||
|
||
function NWSWaitForEscapeOrCancel(handle:PNUTInfo):longint;cdecl;external External_library name 'NWSWaitForEscapeOrCancel';
|
||
|
||
procedure NWSGetKey(_type:plongint; value:PAnsiChar; handle:PNUTInfo);cdecl;external External_library name 'NWSGetKey';
|
||
procedure NWSGetKey(var _type:longint; value:PAnsiChar; handle:PNUTInfo);cdecl;external External_library name 'NWSGetKey';
|
||
|
||
function NWSKeyStatus(handle:PNUTInfo):longint;cdecl;external External_library name 'NWSKeyStatus';
|
||
|
||
function NWSUngetKey(_type:longint; value:longint; handle:PNUTInfo):longint;cdecl;external External_library name 'NWSUngetKey';
|
||
|
||
procedure NWSEnableFunctionKey(key:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSEnableFunctionKey';
|
||
|
||
procedure NWSDisableFunctionKey(key:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSDisableFunctionKey';
|
||
|
||
procedure NWSDisableInterruptKey(key:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSDisableInterruptKey';
|
||
|
||
type TInterruptProc = procedure (handle:pointer); cdecl;
|
||
|
||
procedure NWSEnableInterruptKey(key:longint; interruptProc:TInterruptProc; handle:PNUTInfo);cdecl;external External_library name 'NWSEnableInterruptKey';
|
||
|
||
procedure NWSSaveFunctionKeyList(keyList:PAnsiChar; handle:PNUTInfo);cdecl;external External_library name 'NWSSaveFunctionKeyList';
|
||
|
||
procedure NWSEnableFunctionKeyList(keyList:PAnsiChar; handle:PNUTInfo);cdecl;external External_library name 'NWSEnableFunctionKeyList';
|
||
|
||
procedure NWSSaveInterruptList(interruptList:PINTERRUPT; handle:PNUTInfo);cdecl;external External_library name 'NWSSaveInterruptList';
|
||
|
||
procedure NWSEnableInterruptList(interruptList:PINTERRUPT; handle:PNUTInfo);cdecl;external External_library name 'NWSEnableInterruptList';
|
||
|
||
procedure NWSDisableAllInterruptKeys(handle:PNUTInfo);cdecl;external External_library name 'NWSDisableAllInterruptKeys';
|
||
|
||
procedure NWSDisableAllFunctionKeys(handle:PNUTInfo);cdecl;external External_library name 'NWSDisableAllFunctionKeys';
|
||
|
||
procedure NWSEnableAllFunctionKeys(handle:PNUTInfo);cdecl;external External_library name 'NWSEnableAllFunctionKeys';
|
||
|
||
function NWSDisplayTextInPortal(line,indentLevel:longint; text:PAnsiChar; attribute:longint; portal:PPCB):longint;cdecl;external External_library name 'NWSDisplayTextInPortal';
|
||
|
||
function NWSDisplayInformation(header,pauseFlag,centerLine,centerColumn,palette,
|
||
attribute:longint; displayText:PAnsiChar; handle:PNUTInfo):longint;cdecl;external External_library name 'NWSDisplayInformation';
|
||
|
||
procedure NWSStartWait(centerLine,centerColumn:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSStartWait';
|
||
|
||
procedure NWSEndWait(handle:PNUTInfo);cdecl;external External_library name 'NWSEndWait';
|
||
|
||
function NWSAlert(centerLine,centerColumn:longint; handle:PNUTInfo; message:longint; args:array of const):longint;cdecl;external External_library name 'NWSAlert';
|
||
|
||
function NWSAlert(centerLine,centerColumn:longint; handle:PNUTInfo; message:longint):longint;cdecl;external External_library name 'NWSAlert';
|
||
|
||
function NWSAlertWithHelp(centerLine,centerColumn:longint; handle:PNUTInfo; message,helpContext:longint;
|
||
args:array of const):longint;cdecl;external External_library name 'NWSAlertWithHelp';
|
||
|
||
function NWSAlertWithHelp(centerLine,centerColumn:longint; handle:PNUTInfo; message:longint; helpContext:longint):longint;cdecl;external External_library name 'NWSAlertWithHelp';
|
||
|
||
function NWSTrace(handle:PNUTInfo; message:PAnsiChar; args:array of const):longint;cdecl;external External_library name 'NWSTrace';
|
||
function NWSTrace(handle:PNUTInfo; message:PAnsiChar):longint;cdecl;external External_library name 'NWSTrace';
|
||
|
||
procedure NWSDisplayErrorText(message:longint; severity:longint; handle:PNUTInfo; args:array of const);cdecl;external External_library name 'NWSDisplayErrorText';
|
||
|
||
procedure NWSDisplayErrorText(message:longint; severity:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSDisplayErrorText';
|
||
|
||
procedure NWSDisplayErrorCondition(procedureName:PAnsiChar; errorCode:longint; severity:longint; errorList:PPROCERROR; handle:PNUTInfo;
|
||
args:array of const);cdecl;external External_library name 'NWSDisplayErrorCondition';
|
||
|
||
procedure NWSDisplayErrorCondition(procedureName:PAnsiChar; errorCode:longint; severity:longint; errorList:PPROCERROR; handle:PNUTInfo);cdecl;external External_library name 'NWSDisplayErrorCondition';
|
||
|
||
function NWSAppendToMenu(message:longint; option:longint; handle:PNUTInfo):PLIST;cdecl;external External_library name 'NWSAppendToMenu';
|
||
|
||
type TActionFunc = function (option:longint; parameter:pointer) : longint; cdecl;
|
||
|
||
function NWSMenu(header,
|
||
centerLine,
|
||
centerColumn:longint;
|
||
defaultElement:PLIST;
|
||
action:TActionFunc;
|
||
handle:PNUTInfo;
|
||
actionParameter:pointer):longint;cdecl;external External_library name 'NWSMenu';
|
||
|
||
function NWSConfirm(header,centerLine,centerColumn,defaultChoice:longint;
|
||
action:TActionFunc;
|
||
handle:PNUTInfo;
|
||
actionParameter:pointer):longint;cdecl;external External_library name 'NWSConfirm';
|
||
|
||
function NWSPushHelpContext(helpContext:longint; handle:PNUTInfo):longint;cdecl;external External_library name 'NWSPushHelpContext';
|
||
|
||
function NWSPopHelpContext(handle:PNUTInfo):longint;cdecl;external External_library name 'NWSPopHelpContext';
|
||
|
||
type TFormatFunc=function (element:PLIST; skew:longint; displayLine:PAnsiChar; width:longint):longint; cdecl;
|
||
TNWSListActionFunc=function (keyPressed:longint; elementSelected:PPLIST; itemLineNumber:plongint; actionParameter:pointer):longint; cdecl;
|
||
|
||
function NWSList(header:longint; centerLine:longint; centerColumn:longint; height:longint; width:longint;
|
||
validKeyFlags:longint; element:PPLIST; handle:PNUTInfo; format:TFormatFunc; action:TNWSListActionFunc;
|
||
actionParameter:pointer):longint;cdecl;external External_library name 'NWSList';
|
||
|
||
type TInsertFunc = function (text:PAnsiChar; otherInfo:Ppointer; parameters:pointer):longint; cdecl;
|
||
TFreeProcedure=function (otherInfo:pointer):longint; cdecl;
|
||
|
||
function NWSInsertInPortalList(currentElement:PPLIST; currentLine:plongint; InsertProcedure:TInsertFunc; FreeProcedure:TFreeProcedure; handle:PNUTInfo;
|
||
parameters:pointer):longint;cdecl;external External_library name 'NWSInsertInPortalList';
|
||
|
||
type TModifyProcedure=function (text:PAnsiChar; parameters:pointer):longint; cdecl;
|
||
|
||
function NWSModifyInPortalList(currentElement:PPLIST; currentLine:plongint; ModifyProcedure:TModifyProcedure; handle:PNUTInfo; parameters:pointer):longint;cdecl;external External_library name 'NWSModifyInPortalList';
|
||
|
||
type TDeleteFunc = function (el:PLIST; handle:PNUTInfo; parameters:pointer):PLIST; cdecl;
|
||
function NWSDeleteFromPortalList(currentElement:PPLIST; currentLine:plongint; DeleteProcedure:TDeleteFunc; deleteCurrentHeader:longint; deleteMarkedHeader:longint;
|
||
handle:PNUTInfo; parameters:pointer):longint;cdecl;external External_library name 'NWSDeleteFromPortalList';
|
||
|
||
type TNWSEditInsertFunc=function (buffer:PAnsiChar; maxLen:longint; parameters:pointer):longint; cdecl;
|
||
TNWSEditActionFunc=function (action:longint; buffer:PAnsiChar; parameters:pointer):longint; cdecl;
|
||
|
||
function NWSEditString(
|
||
centerLine, centerColumn, editHeight, editWidth, header,
|
||
prompt :longint;
|
||
buf:PAnsiChar;
|
||
maxLen, _type:longint; handle:PNUTInfo;
|
||
insertProc:TNWSEditInsertFunc;
|
||
actionProc:TNWSEditActionFunc;
|
||
parameters:pointer):longint;cdecl;external External_library name 'NWSEditString';
|
||
|
||
function NWSAppendIntegerField
|
||
(line, column, fflag:longint; data:Plongint;
|
||
minimum, maximum, help:longint;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendIntegerField';
|
||
|
||
function NWSAppendIntegerField
|
||
(line, column, fflag:longint; var data:longint;
|
||
minimum, maximum, help:longint;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendIntegerField';
|
||
|
||
function NWSAppendUnsignedIntegerField
|
||
(line,
|
||
column,
|
||
fflag:longint;
|
||
data:plongint;
|
||
minimum, maximum, help:longint;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendUnsignedIntegerField';
|
||
|
||
function NWSAppendUnsignedIntegerField
|
||
(line,
|
||
column,
|
||
fflag:longint;
|
||
var data:cardinal;
|
||
minimum, maximum, help:longint;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendUnsignedIntegerField';
|
||
|
||
function NWSAppendHexField
|
||
(line,column,fflag:longint;
|
||
data:Plongint;
|
||
minimum, maximum, help:longint;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendHexField';
|
||
|
||
procedure NWSDisplayPreHelp
|
||
(line, column, message:longint;
|
||
handle:PNUTInfo);cdecl;external External_library name 'NWSDisplayPreHelp';
|
||
|
||
procedure NWSRemovePreHelp
|
||
(handle:PNUTInfo);cdecl;external External_library name 'NWSRemovePreHelp';
|
||
|
||
function NWSGetADisk
|
||
(volName,prompt:PAnsiChar;
|
||
handle:PNUTInfo):longint;cdecl;external External_library name 'NWSGetADisk';
|
||
|
||
procedure NWSInitListPtr(listPtr:PLISTPTR);cdecl;external External_library name 'NWSInitListPtr';
|
||
|
||
function NWSEditForm
|
||
(headernum,
|
||
line,
|
||
col,
|
||
portalHeight,
|
||
portalWidth,
|
||
virtualHeight,
|
||
virtualWidth,
|
||
ESCverify,
|
||
forceverify,
|
||
confirmMessage : longint;
|
||
handle : PNUTInfo):longint;cdecl;external External_library name 'NWSEditForm';
|
||
|
||
function NWSEditPortalFormField
|
||
(header,
|
||
cline,
|
||
ccol,
|
||
formHeight,
|
||
formWidth,
|
||
controlFlags:longint;
|
||
formHelp:CARDINAL;
|
||
confirmMessage:longint;
|
||
startField:PFIELD;
|
||
handle:PNUTInfo):longint;cdecl;external External_library name 'NWSEditPortalFormField';
|
||
|
||
function NWSEditPortalForm
|
||
(header,
|
||
centerLine,
|
||
centerColumn,
|
||
formHeight,
|
||
formWidth,
|
||
controlFlags:longint;
|
||
formHelp:CARDINAL;
|
||
confirmMessage:longint;
|
||
handle:PNUTInfo):longint;cdecl;external External_library name 'NWSEditPortalForm';
|
||
|
||
type TfFormat = procedure (field:Pfielddef; text:PAnsiChar; buffLen:longint); cdecl;
|
||
TfControl = function (field:Pfielddef; selectKey:longint; var fieldChanged:longint; handle:PNUTInfo):longint; cdecl;
|
||
TfVerify = function (field:Pfielddef; data:pointer; handle:PNUTInfo):longint; cdecl;
|
||
TfRelease = procedure (field:Pfielddef); cdecl;
|
||
|
||
{ Data & Xtra field release routine }
|
||
function NWSAppendToForm(
|
||
fline,
|
||
fcol,
|
||
fwidth,
|
||
fattr:longint;
|
||
fFormat:TfFormat;
|
||
fControl:TfControl;
|
||
fVerify:TfVerify;
|
||
fRelease:TfRelease;
|
||
fData:pointer;
|
||
fXtra:pointer;
|
||
fflags:longint;
|
||
fActivateKeys:longint;
|
||
fhelp:longint;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendToForm';
|
||
|
||
function NWSAppendPromptField(line,column,promptnum:longint; handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendPromptField';
|
||
|
||
function NWSAppendCommentField(line,column:longint; prompt:PAnsiChar; handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendCommentField';
|
||
|
||
function NWSAppendStringField
|
||
(line,
|
||
column,
|
||
width,
|
||
fflag:longint;
|
||
data,cset:PAnsiChar;
|
||
help:longint;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendStringField';
|
||
|
||
function NWSAppendBoolField
|
||
(line,
|
||
column,
|
||
fflag:longint;
|
||
data:pointer;
|
||
help:longint;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendBoolField';
|
||
|
||
function NWSAppendBoolField
|
||
(line,
|
||
column,
|
||
fflag:longint;
|
||
var data:longbool;
|
||
help:longint;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendBoolField';
|
||
|
||
function NWSAppendGenericBoolField
|
||
(line,
|
||
column,
|
||
fflag:longint;
|
||
data:pointer;
|
||
help:longint;
|
||
yesString, noString:PAnsiChar;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendGenericBoolField';
|
||
|
||
function NWSAppendGenericBoolField
|
||
(line,
|
||
column,
|
||
fflag:longint;
|
||
var data:longbool;
|
||
help:longint;
|
||
yesString, noString:PAnsiChar;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendGenericBoolField';
|
||
|
||
type TSpotActionFunc = function (fp:PFIELD; selectKey:longint; var changedField:longint; handle:PNUTInfo):longint; cdecl;
|
||
function NWSAppendHotSpotField
|
||
(line,
|
||
column,
|
||
fflag:longint;
|
||
displayString:PAnsiChar;
|
||
SpotAction:TSpotActionFunc;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendHotSpotField';
|
||
|
||
function NWSInitMenuField
|
||
(headermsg,
|
||
cLine,
|
||
cCol:longint;
|
||
action:TActionFunc;
|
||
nutInfo:PNUTInfo;
|
||
args:array of const):PMFCONTROL;cdecl;external External_library name 'NWSInitMenuField';
|
||
|
||
function NWSInitMenuField
|
||
(headermsg,
|
||
cLine,
|
||
cCol:longint;
|
||
action:TActionFunc;
|
||
nutInfo:PNUTInfo):PMFCONTROL;cdecl;external External_library name 'NWSInitMenuField';
|
||
|
||
function NWSAppendToMenuField
|
||
(m:PMFCONTROL;
|
||
optiontext:longint;
|
||
option:longint;
|
||
nutInfo:PNUTInfo):longint;cdecl;external External_library name 'NWSAppendToMenuField';
|
||
|
||
function NWSAppendMenuField
|
||
(line,
|
||
column,
|
||
fflag:longint;
|
||
data:Plongint;
|
||
m:PMFCONTROL;
|
||
help:longint;
|
||
nutInfo:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendMenuField';
|
||
|
||
function NWSAppendMenuField
|
||
(line,
|
||
column,
|
||
fflag:longint;
|
||
var data:longint;
|
||
m:PMFCONTROL;
|
||
help:longint;
|
||
nutInfo:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendMenuField';
|
||
|
||
function NWSEditText
|
||
(centerLine,
|
||
centerColumn,
|
||
height,
|
||
width,
|
||
headerNumber:longint;
|
||
textBuffer:PAnsiChar;
|
||
maxBufferLength,
|
||
confirmMessage,
|
||
forceConfirm:longint;
|
||
handle:PNUTInfo):longint;cdecl;external External_library name 'NWSEditText';
|
||
|
||
function NWSViewText
|
||
(centerLine,
|
||
centerColumn,
|
||
height,
|
||
width,
|
||
headerNumber:longint;
|
||
textBuffer:PAnsiChar;
|
||
maxBufferLength:longint;
|
||
handle:PNUTInfo):longint;cdecl;external External_library name 'NWSViewText';
|
||
|
||
procedure NWSDisplayHelpScreen
|
||
(offset:longint;
|
||
handle:PNUTInfo);cdecl;external External_library name 'NWSDisplayHelpScreen';
|
||
|
||
// Allocates memory for NWSNUT purposes
|
||
function NWSAlloc
|
||
(numberOfBytes:longint;
|
||
handle:PNUTInfo):pointer;cdecl;external External_library name 'NWSAlloc';
|
||
|
||
procedure NWSFree
|
||
(address:pointer;
|
||
handle:PNUTInfo);cdecl;external External_library name 'NWSFree';
|
||
|
||
// Displays justified text in an existing portal
|
||
function NWSDisplayTextJustifiedInPortal
|
||
(justify,
|
||
line:longint; column:longint; textWidth:longint; text:PAnsiChar;
|
||
attribute:longint; portal:PPCB):longint;cdecl;external External_library name 'NWSDisplayTextJustifiedInPortal';
|
||
|
||
function NWSDisplayInformationInPortal
|
||
(header,
|
||
portalJustifyLine,
|
||
portalJustifyColumn,
|
||
portalJustifyType,
|
||
portalPalette,
|
||
portalBorderType,
|
||
portalMaxWidth,
|
||
portalMaxHeight,
|
||
portalMinWidth,
|
||
portalMinHeight,
|
||
textLRJustifyType,
|
||
textLRIndent,
|
||
textTBJustifyType,
|
||
textTBIndent,
|
||
textAttribute,
|
||
textMinimizeStyle:longint;
|
||
text:PAnsiChar;
|
||
handle:PNUTInfo):longint;cdecl;external External_library name 'NWSDisplayInformationInPortal';
|
||
|
||
procedure NWSRestoreNut(handle:PNUTInfo);cdecl;external External_library name 'NWSRestoreNut';
|
||
|
||
procedure NWSDrawPortalBorder(portal:PPCB);cdecl;external External_library name 'NWSDrawPortalBorder';
|
||
|
||
procedure NWSUpdatePortal(portal:PPCB);cdecl;external External_library name 'NWSUpdatePortal';
|
||
|
||
type TSSFEntryProc = procedure (para1:PFIELD; para2:pointer; para3:PNUTInfo); cdecl;
|
||
TSSFCustomDataReleaseProc = procedure (para1:pointer; para2:PNUTInfo); cdecl;
|
||
TSSFFormat=procedure (para1:PFIELD; text:PAnsiChar; para3:longint); cdecl;
|
||
TSSFControlFunc = function (para1:PFIELD; para2:longint; para3:Plongint; para4:PNUTInfo):longint; cdecl;
|
||
TSSFVerifyFunc = function (para1:PFIELD; para2:pointer; para3:PNUTInfo):longint; cdecl;
|
||
TSSFReleaseProc = procedure (para1:PFIELD); cdecl;
|
||
|
||
procedure NWSSetFieldFunctionPtr(fp:PFIELD;
|
||
Format : TSSFFormat;
|
||
Control: TSSFControlFunc;
|
||
Verify : TSSFVerifyFunc;
|
||
Release: TSSFReleaseProc;
|
||
Entry : TSSFEntryProc;
|
||
customDataRelease
|
||
: TSSFCustomDataReleaseProc);cdecl;external External_library name 'NWSSetFieldFunctionPtr';
|
||
|
||
|
||
type TCompareFunc = function (el1:PLIST; el2:PLIST):longint; cdecl;
|
||
procedure NWSSetDefaultCompare(handle:PNUTInfo;
|
||
defaultCompareFunction:TCompareFunc);cdecl;external External_library name 'NWSSetDefaultCompare';
|
||
|
||
procedure NWSGetDefaultCompare(handle:PNUTInfo; var defaultCompareFunction:TCompareFunc);cdecl;external External_library name 'NWSGetDefaultCompare';
|
||
|
||
type TlistSortFunction = procedure (head:PLIST; tail:PLIST; handle:PNUTInfo); cdecl;
|
||
{ added in version 402 }
|
||
procedure NWSSetListSortFunction(handle:PNUTInfo;
|
||
listSortFunction:TlistSortFunction);cdecl;external External_library name 'NWSSetListSortFunction';
|
||
|
||
{ added in version 402 }
|
||
procedure NWSGetListSortFunction(handle:PNUTInfo;
|
||
var listSortFunction:TlistSortFunction);cdecl;external External_library name 'NWSGetListSortFunction';
|
||
|
||
procedure NWSSetScreenPalette(newPalette:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSSetScreenPalette';
|
||
|
||
function NWSGetScreenPalette(handle:PNUTInfo):longint;cdecl;external External_library name 'NWSGetScreenPalette';
|
||
|
||
procedure NWSGetPCB(var _pPcb:PPCB; portalNumber:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSGetPCB';
|
||
|
||
type TentryProcedure = procedure (element:PLIST; displayLine:longint; handle:PNUTInfo); cdecl;
|
||
procedure NWSSetListNotifyProcedure(el:PLIST;
|
||
entryProcedure:TentryProcedure);cdecl;external External_library name 'NWSSetListNotifyProcedure';
|
||
|
||
procedure NWSGetListNotifyProcedure(el:PLIST;
|
||
var entryProcedure:TentryProcedure);cdecl;external External_library name 'NWSGetListNotifyProcedure';
|
||
|
||
type TcdReleaseProc = procedure (theData:pointer; handle:PNUTInfo); cdecl;
|
||
procedure NWSSetHandleCustomData(handle:PNUTInfo;
|
||
customData:pointer;
|
||
customDataRelease:TcdReleaseProc);cdecl;external External_library name 'NWSSetHandleCustomData';
|
||
|
||
procedure NWSGetHandleCustomData(handle:PNUTInfo;
|
||
customData:Ppointer;
|
||
customDataRelease:TcdReleaseProc);cdecl;external External_library name 'NWSGetHandleCustomData';
|
||
|
||
procedure NWSSetErrorLabelDisplayFlag(flag:longint;
|
||
handle:PNUTInfo);cdecl;external External_library name 'NWSSetErrorLabelDisplayFlag';
|
||
|
||
procedure NWSSetHelpHelp(helpIndex:longint;
|
||
handle:PNUTInfo);cdecl;external External_library name 'NWSSetHelpHelp';
|
||
|
||
{ max length of passwordString, including NULL }
|
||
function NWSPromptForPassword
|
||
(passwordHeader,
|
||
line,
|
||
column,
|
||
maxPasswordLen : longint;
|
||
passwordString:PAnsiChar;
|
||
verifyEntry:longint;
|
||
handle:PNUTInfo):longint;cdecl;external External_library name 'NWSPromptForPassword';
|
||
|
||
function NWSAppendPasswordField
|
||
(line,
|
||
column,
|
||
width,
|
||
fflag:longint; // field flags
|
||
data:PAnsiChar; // ptr to field text
|
||
maxDataLen, // including null
|
||
help, // help for field
|
||
verifyEntry, // force password verification
|
||
passwordPortalHeader,
|
||
maskCharacter:longint; // fill character for field
|
||
nhandle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendPasswordField';
|
||
|
||
function NWSAppendScrollableStringField
|
||
(line,
|
||
column,
|
||
width,
|
||
fflag:longint;
|
||
data:PAnsiChar;
|
||
maxLen:longint; // max len of data, allowing for null terminator
|
||
cset:pointer; // valid characters, if using EF_SET
|
||
editFlags, // NWSEditString flags (EF_UPPER etc.)
|
||
help:longint;
|
||
handle:PNUTInfo):PFIELD;cdecl;external External_library name 'NWSAppendScrollableStringField';
|
||
|
||
type TSSFInsertFunc = function (_string:PAnsiChar; maxLen:longint; parameters:pointer):longint; cdecl;
|
||
procedure NWSSetScrollableFieldInsertProc(fp:PFIELD; insertProc:TSSFInsertFunc);cdecl;external External_library name 'NWSSetScrollableFieldInsertProc';
|
||
|
||
{ Returns 0 for success, -1 if none selected }
|
||
{ if not NULL, returns portal number }
|
||
function NWSGetCurrentPortal(nutInfo:PNUTInfo; portalNumber:plongint; var portal:PPCB):longint;cdecl;external External_library name 'NWSGetCurrentPortal';
|
||
|
||
{ if not NULL, returns PCB pointer }
|
||
function NWSWaitForKeyAndValue(handle:PNUTInfo;
|
||
nKeys:longint;
|
||
keyType:array of longint;
|
||
keyValue:array of longint):longint;cdecl;external External_library name 'NWSWaitForKeyAndValue';
|
||
|
||
procedure NWSShowLineAttribute(line,
|
||
column:longint;
|
||
text:PAnsiChar;
|
||
attribute,
|
||
length:longint;
|
||
screenID:TScr);cdecl;external External_library name 'NWSShowLineAttribute';
|
||
|
||
procedure NWSShowLine(line,column:longint; text:PAnsiChar; length:longint; screenID:TScr);cdecl;external External_library name 'NWSShowLine';
|
||
|
||
procedure NWSScrollZone
|
||
(line,
|
||
column,
|
||
height,
|
||
width,
|
||
attribute,
|
||
count,
|
||
direction:longint;
|
||
screenID:TScr);cdecl;external External_library name 'NWSScrollZone';
|
||
|
||
procedure NWSSaveZone
|
||
(line,
|
||
column,
|
||
height,
|
||
width:longint;
|
||
buffer:pointer;
|
||
screenID:TScr);cdecl;external External_library name 'NWSSaveZone';
|
||
|
||
procedure NWSSaveZone
|
||
(line,
|
||
column,
|
||
height,
|
||
width:longint;
|
||
var buffer;
|
||
screenID:TScr);cdecl;external External_library name 'NWSSaveZone';
|
||
|
||
procedure NWSRestoreZone
|
||
(line,
|
||
column,
|
||
height,
|
||
width:longint;
|
||
buffer:pointer;
|
||
screenID:TScr);cdecl;external External_library name 'NWSRestoreZone';
|
||
|
||
procedure NWSRestoreZone
|
||
(line,
|
||
column,
|
||
height,
|
||
width:longint;
|
||
var buffer;
|
||
screenID:TScr);cdecl;external External_library name 'NWSRestoreZone';
|
||
|
||
procedure NWSRestoreDisplay(screenID:TScr);cdecl;external External_library name 'NWSRestoreDisplay';
|
||
|
||
procedure NWSPositionCursor(line, column:longint; screenID:TScr);cdecl;external External_library name 'NWSPositionCursor';
|
||
|
||
procedure NWSGetNUTVersion(majorVersion, minorVersion, revision:plongint);cdecl;external External_library name 'NWSGetNUTVersion';
|
||
procedure NWSGetNUTVersion(var majorVersion, minorVersion, revision:longint);cdecl;external External_library name 'NWSGetNUTVersion';
|
||
|
||
procedure NWSSetFormRepaintFlag(value:longint; handle:PNUTInfo);cdecl;external External_library name 'NWSSetFormRepaintFlag';
|
||
|
||
procedure NWSSetFormNoWrap(handle:PNUTInfo);cdecl;external External_library name 'NWSSetFormNoWrap';
|
||
|
||
function NWSViewTextWithScrollBars
|
||
(centerLine,
|
||
centerColumn,
|
||
height,
|
||
width,
|
||
headerNumber:longint;
|
||
textBuffer:PAnsiChar;
|
||
maxBufferLength,
|
||
scrollBarFlag:longint;
|
||
handle:PNUTInfo):longint;cdecl;external External_library name 'NWSViewTextWithScrollBars';
|
||
|
||
{ length of document }
|
||
function NWSEditTextWithScrollBars
|
||
(centerLine,
|
||
centerColumn,
|
||
height,
|
||
width,
|
||
headerNumber:longint;
|
||
textBuffer:PAnsiChar;
|
||
maxBufferLength,
|
||
confirmMessage,
|
||
forceConfirm,
|
||
scrollBarFlag:longint;
|
||
handle:PNUTInfo):longint;cdecl;external External_library name 'NWSEditTextWithScrollBars';
|
||
|
||
function NWSEditTextWithScrollBars
|
||
(centerLine,
|
||
centerColumn,
|
||
height,
|
||
width,
|
||
headerNumber:longint;
|
||
textBuffer:PAnsiChar;
|
||
maxBufferLength,
|
||
confirmMessage : longint;
|
||
forceConfirm : longbool;
|
||
scrollBarFlag : longint;
|
||
handle:PNUTInfo):longint;cdecl;external External_library name 'NWSEditTextWithScrollBars';
|
||
|
||
|
||
implementation
|
||
|
||
function F_H1 : longint;
|
||
begin
|
||
F_H1:=NWSGetLineDrawCharacter(0);
|
||
end;
|
||
|
||
function F_H2 : longint;
|
||
begin
|
||
F_H2:=NWSGetLineDrawCharacter(1);
|
||
end;
|
||
|
||
function F_V1 : longint;
|
||
begin
|
||
F_V1:=NWSGetLineDrawCharacter(2);
|
||
end;
|
||
|
||
function F_V2 : longint;
|
||
begin
|
||
F_V2:=NWSGetLineDrawCharacter(3);
|
||
end;
|
||
|
||
function F_UL1 : longint;
|
||
begin
|
||
F_UL1:=NWSGetLineDrawCharacter(4);
|
||
end;
|
||
|
||
function F_UR1 : longint;
|
||
begin
|
||
F_UR1:=NWSGetLineDrawCharacter(5);
|
||
end;
|
||
|
||
function F_LL1 : longint;
|
||
begin
|
||
F_LL1:=NWSGetLineDrawCharacter(6);
|
||
end;
|
||
|
||
function F_LR1 : longint;
|
||
begin
|
||
F_LR1:=NWSGetLineDrawCharacter(7);
|
||
end;
|
||
|
||
function F_UL2 : longint;
|
||
begin
|
||
F_UL2:=NWSGetLineDrawCharacter(8);
|
||
end;
|
||
|
||
function F_UR2 : longint;
|
||
begin
|
||
F_UR2:=NWSGetLineDrawCharacter(9);
|
||
end;
|
||
|
||
function F_LL2 : longint;
|
||
begin
|
||
F_LL2:=NWSGetLineDrawCharacter(10);
|
||
end;
|
||
|
||
function F_LR2 : longint;
|
||
begin
|
||
F_LR2:=NWSGetLineDrawCharacter(11);
|
||
end;
|
||
|
||
function F_UT1 : longint;
|
||
begin
|
||
F_UT1:=NWSGetLineDrawCharacter(12);
|
||
end;
|
||
|
||
function F_DT1 : longint;
|
||
begin
|
||
F_DT1:=NWSGetLineDrawCharacter(13);
|
||
end;
|
||
|
||
function F_LT1 : longint;
|
||
begin
|
||
F_LT1:=NWSGetLineDrawCharacter(14);
|
||
end;
|
||
|
||
function F_RT1 : longint;
|
||
begin
|
||
F_RT1:=NWSGetLineDrawCharacter(15);
|
||
end;
|
||
|
||
function F_UT2 : longint;
|
||
begin
|
||
F_UT2:=NWSGetLineDrawCharacter(24);
|
||
end;
|
||
|
||
function F_DT2 : longint;
|
||
begin
|
||
F_DT2:=NWSGetLineDrawCharacter(25);
|
||
end;
|
||
|
||
function F_LT2 : longint;
|
||
begin
|
||
F_LT2:=NWSGetLineDrawCharacter(26);
|
||
end;
|
||
|
||
function F_RT2 : longint;
|
||
begin
|
||
F_RT2:=NWSGetLineDrawCharacter(27);
|
||
end;
|
||
|
||
function F_X1 : longint;
|
||
begin
|
||
F_X1:=NWSGetLineDrawCharacter(36);
|
||
end;
|
||
|
||
function F_X2 : longint;
|
||
begin
|
||
F_X2:=NWSGetLineDrawCharacter(39);
|
||
end;
|
||
|
||
function F_UP : longint;
|
||
begin
|
||
F_UP:=NWSGetLineDrawCharacter(40);
|
||
end;
|
||
|
||
function F_DOWN : longint;
|
||
begin
|
||
F_DOWN:=NWSGetLineDrawCharacter(41);
|
||
end;
|
||
|
||
function F_LEFT : longint;
|
||
begin
|
||
F_LEFT:=NWSGetLineDrawCharacter(42);
|
||
end;
|
||
|
||
function F_RIGHT : longint;
|
||
begin
|
||
F_RIGHT:=NWSGetLineDrawCharacter(43);
|
||
end;
|
||
|
||
function F_BG1 : longint;
|
||
begin
|
||
F_BG1:=NWSGetLineDrawCharacter(44);
|
||
end;
|
||
|
||
function F_BG2 : longint;
|
||
begin
|
||
F_BG2:=NWSGetLineDrawCharacter(45);
|
||
end;
|
||
|
||
function F_BG3 : longint;
|
||
begin
|
||
F_BG3:=NWSGetLineDrawCharacter(46);
|
||
end;
|
||
|
||
function F_BG4 : longint;
|
||
begin
|
||
F_BG4:=NWSGetLineDrawCharacter(47);
|
||
end;
|
||
|
||
function IS_DYNAMIC_MESSAGE(a : longint) : boolean;
|
||
begin
|
||
IS_DYNAMIC_MESSAGE:=(a > $fff0) and (a < $ffff);
|
||
end;
|
||
|
||
|
||
end.
|