sys7.1-doc-wip/Interfaces/PInterfaces/Terminals.p
2019-07-27 22:37:48 +08:00

282 lines
7.8 KiB
OpenEdge ABL

{************************************************************
Terminals.p
Pascal Interface to the Terminal Manager
Copyright Apple Computer, Inc. 1988-1991
All rights reserved
This file is used in these builds: Mac32 HcMac MacPP BigBang Sys606
Change History (most recent first):
<8> 8/28/91 CH Updated interface headers for consistency.
<7> 8/20/91 BH remove TMSetupCleanup from public interfaces
<6> 7/25/91 JL Checked in database generated file from DSG. Added
TerminalSendProcPtr - > TerminalChooseIdleProcPtr and utilized
them to match C file
<5> 6/25/91 JNG Added tmConfigChanged
<4> 6/18/91 BH remove TMPChoose
<3> 2/4/91 JL Changed Includes to Include from PInterfaces directory of the
Shell
<2> 8/28/90 kaz Change TermPointer to TermPtr
<1> 3/14/90 BBH first checked in
To Do:
************************************************************}
{$IFC UNDEFINED UsingIncludes}
{$SETC UsingIncludes := 0}
{$ENDC}
{$IFC NOT UsingIncludes}
UNIT Terminals;
INTERFACE
{$ENDC}
{$IFC UNDEFINED UsingTerminals}
{$SETC UsingTerminals := 1}
{$I+}
{$SETC TerminalsIncludes := UsingIncludes}
{$SETC UsingIncludes := 1}
{$IFC UNDEFINED UsingDialogs}
{$I $$Shell(PInterfaces)Dialogs.p}
{$ENDC}
{$IFC UNDEFINED UsingCTBUtilities}
{$I $$Shell(PInterfaces)CTBUtilities.p}
{$ENDC}
{$IFC UNDEFINED UsingConnections}
{$I $$Shell(PInterfaces)Connections.p}
{$ENDC}
{$SETC UsingIncludes := TerminalsIncludes}
CONST
{ current Terminal Manager version }
curTMVersion = 2;
{ current Terminal Manager Environment Record version }
curTermEnvRecVers = 0;
{ error codes }
tmGenericError = -1;
tmNoErr = 0;
tmNotSent = 1;
tmEnvironsChanged = 2;
tmNotSupported = 7;
tmNoTools = 8;
TYPE
TMErr = OSErr;
CONST
{ TMFlags }
tmInvisible = $00000001;
tmSaveBeforeClear = $00000002;
tmNoMenus = $00000004;
tmAutoScroll = $00000008;
tmConfigChanged = $00000010;
TYPE
{ TMFlags }
TMFlags = LONGINT;
CONST
{ TMSelTypes & TMSearchTypes }
selTextNormal = $0001;
selTextBoxed = $0002;
selGraphicsMarquee = $0004;
selGraphicsLasso = $0008;
tmSearchNoDiacrit = $0100; {These are only for TMSearchTypes}
tmSearchNoCase = $0200; {These are only for TMSearchTypes}
TYPE
{ TMSelTypes & TMSearchTypes }
TMSearchTypes = INTEGER;
TMSelTypes = INTEGER;
CONST
{ TMCursorTypes }
cursorText = 1;
cursorGraphics = 2;
TYPE
TMCursorTypes = INTEGER;
CONST
{ TMTermTypes }
tmTextTerminal = $0001;
tmGraphicsTerminal = $0002;
TYPE
{ TMTermTypes }
TMTermTypes = INTEGER;
TermDataBlockPtr = ^TermDataBlock;
TermDataBlockH = ^TermDataBlockPtr;
TermDataBlock = RECORD
flags: TMTermTypes;
theData: Handle;
auxData: Handle;
reserved: LONGINT;
END;
TermEnvironPtr = ^TermEnvironRec;
TermEnvironRec = RECORD
version: INTEGER;
termType: TMTermTypes;
textRows: INTEGER;
textCols: INTEGER;
cellSize: Point;
graphicSize: Rect;
slop: Point;
auxSpace: Rect;
END;
TMSelection = RECORD
CASE INTEGER OF
1: (selRect: Rect);
2: (selRgnHandle: RgnHandle;
filler: LONGINT);
END;
{ TMTermTypes }
TermPtr = ^TermRecord;
TermHandle = ^TermPtr;
TermRecord = RECORD
procID: INTEGER;
flags: TMFlags;
errCode: TMErr;
refCon: LONGINT;
userData: LONGINT;
defProc: ProcPtr;
config: Ptr;
oldConfig: Ptr;
environsProc: ProcPtr;
reserved1: LONGINT;
reserved2: LONGINT;
tmPrivate: Ptr;
sendProc: ProcPtr;
breakProc: ProcPtr;
cacheProc: ProcPtr;
clikLoop: ProcPtr;
owner: WindowPtr;
termRect: Rect;
viewRect: Rect;
visRect: Rect;
lastIdle: LONGINT;
selection: TMSelection;
selType: TMSelTypes;
mluField: LONGINT;
END;
{ application routines type definitions }
TerminalSendProcPtr = ProcPtr;
TerminalBreakProcPtr = ProcPtr;
TerminalCacheProcPtr = ProcPtr;
TerminalSearchCallBackProcPtr = ProcPtr;
TerminalClikLoopProcPtr = ProcPtr;
TerminalEnvironsProcPtr = ProcPtr;
TerminalChooseIdleProcPtr = ProcPtr;
FUNCTION InitTM: TMErr;
FUNCTION TMGetVersion(hTerm: TermHandle): Handle;
FUNCTION TMGetTMVersion: INTEGER;
FUNCTION TMNew(termRect: Rect;viewRect: Rect;flags: TMFlags;procID: INTEGER;
owner: WindowPtr;sendProc: TerminalSendProcPtr;cacheProc: TerminalCacheProcPtr;
breakProc: TerminalBreakProcPtr;clikLoop: TerminalClikLoopProcPtr;environsProc: TerminalEnvironsProcPtr;
refCon: LONGINT;userData: LONGINT): TermHandle;
PROCEDURE TMDispose(hTerm: TermHandle);
PROCEDURE TMKey(hTerm: TermHandle;theEvent: EventRecord);
PROCEDURE TMUpdate(hTerm: TermHandle;visRgn: RgnHandle);
PROCEDURE TMPaint(hTerm: TermHandle;theTermData: TermDataBlock;theRect: Rect);
PROCEDURE TMActivate(hTerm: TermHandle;activate: BOOLEAN);
PROCEDURE TMResume(hTerm: TermHandle;resume: BOOLEAN);
PROCEDURE TMClick(hTerm: TermHandle;theEvent: EventRecord);
PROCEDURE TMIdle(hTerm: TermHandle);
FUNCTION TMStream(hTerm: TermHandle;theBuffer: Ptr;theLength: LONGINT;flags: CMFlags): LONGINT;
FUNCTION TMMenu(hTerm: TermHandle;menuID: INTEGER;item: INTEGER): BOOLEAN;
PROCEDURE TMReset(hTerm: TermHandle);
PROCEDURE TMClear(hTerm: TermHandle);
PROCEDURE TMResize(hTerm: TermHandle;newViewRect: Rect);
FUNCTION TMGetSelect(hTerm: TermHandle;theData: Handle;VAR theType: ResType): LONGINT;
PROCEDURE TMGetLine(hTerm: TermHandle;lineNo: INTEGER;VAR theTermData: TermDataBlock);
PROCEDURE TMSetSelection(hTerm: TermHandle;theSelection: TMSelection;selType: TMSelTypes);
PROCEDURE TMScroll(hTerm: TermHandle;dh: INTEGER;dv: INTEGER);
FUNCTION TMValidate(hTerm: TermHandle): BOOLEAN;
PROCEDURE TMDefault(VAR theConfig: Ptr;procID: INTEGER;allocate: BOOLEAN);
FUNCTION TMSetupPreflight(procID: INTEGER;VAR magicCookie: LONGINT): Handle;
PROCEDURE TMSetupSetup(procID: INTEGER;theConfig: Ptr;count: INTEGER;theDialog: DialogPtr;
VAR magicCookie: LONGINT);
FUNCTION TMSetupFilter(procID: INTEGER;theConfig: Ptr;count: INTEGER;theDialog: DialogPtr;
VAR theEvent: EventRecord;VAR theItem: INTEGER;VAR magicCookie: LONGINT): BOOLEAN;
PROCEDURE TMSetupItem(procID: INTEGER;theConfig: Ptr;count: INTEGER;theDialog: DialogPtr;
VAR theItem: INTEGER;VAR magicCookie: LONGINT);
PROCEDURE TMSetupXCleanup(procID: INTEGER;theConfig: Ptr;count: INTEGER;
theDialog: DialogPtr;OKed: BOOLEAN;VAR magicCookie: LONGINT);
PROCEDURE TMSetupPostflight(procID: INTEGER);
FUNCTION TMGetConfig(hTerm: TermHandle): Ptr;
FUNCTION TMSetConfig(hTerm: TermHandle;thePtr: Ptr): INTEGER;
FUNCTION TMIntlToEnglish(hTerm: TermHandle;inputPtr: Ptr;VAR outputPtr: Ptr;
language: INTEGER): OSErr;
FUNCTION TMEnglishToIntl(hTerm: TermHandle;inputPtr: Ptr;VAR outputPtr: Ptr;
language: INTEGER): OSErr;
PROCEDURE TMGetToolName(id: INTEGER;VAR name: Str255);
FUNCTION TMGetProcID(name: Str255): INTEGER;
PROCEDURE TMSetRefCon(hTerm: TermHandle;refCon: LONGINT);
FUNCTION TMGetRefCon(hTerm: TermHandle): LONGINT;
PROCEDURE TMSetUserData(hTerm: TermHandle;userData: LONGINT);
FUNCTION TMGetUserData(hTerm: TermHandle): LONGINT;
FUNCTION TMAddSearch(hTerm: TermHandle;theString: Str255;where: Rect;searchType: TMSearchTypes;
callBack: TerminalSearchCallBackProcPtr): INTEGER;
PROCEDURE TMRemoveSearch(hTerm: TermHandle;refnum: INTEGER);
PROCEDURE TMClearSearch(hTerm: TermHandle);
FUNCTION TMGetCursor(hTerm: TermHandle;cursType: TMCursorTypes): Point;
FUNCTION TMGetTermEnvirons(hTerm: TermHandle;VAR theEnvirons: TermEnvironRec): TMErr;
FUNCTION TMChoose(VAR hTerm: TermHandle;where: Point;idleProc: TerminalChooseIdleProcPtr): INTEGER;
PROCEDURE TMEvent(hTerm: TermHandle;theEvent: EventRecord);
FUNCTION TMDoTermKey(hTerm: TermHandle;theKey: Str255): BOOLEAN;
FUNCTION TMCountTermKeys(hTerm: TermHandle): INTEGER;
PROCEDURE TMGetIndTermKey(hTerm: TermHandle;id: INTEGER;VAR theKey: Str255);
PROCEDURE TMGetErrorString(hTerm: TermHandle;id: INTEGER;VAR errMsg: Str255);
{$ENDC} { UsingTerminals }
{$IFC NOT UsingIncludes}
END.
{$ENDC}