supermario/base/SuperMarioProj.1994-02-09/Interfaces/PInterfaces/HyperXCmd.p
2019-06-29 23:17:50 +08:00

271 lines
11 KiB
OpenEdge ABL

{
HyperXCmd.p
Definition file for HyperCard XCMDs and XFCNs in Pascal.
Copyright Apple Computer, Inc. 1987-1991
All rights reserved
This file is used in these builds: ROM System
Change History (most recent first):
<6> 2/17/92 MH Changed refs to extended to Extended80
<5> 8/8/91 JL Updated Copyright.
<4> 3/13/91 JL Checked in MPW version. HyperCard version 2.0 final.
To Do:
}
{$IFC UNDEFINED UsingIncludes}
{$SETC UsingIncludes := 0}
{$ENDC}
{$IFC NOT UsingIncludes}
UNIT HyperXCmd;
INTERFACE
{$ENDC}
{$IFC UNDEFINED UsingHyperXCmd}
{$SETC UsingHyperXCmd := 1}
{$I+}
{$SETC HyperXCmdIncludes := UsingIncludes}
{$SETC UsingIncludes := 1}
{$IFC UNDEFINED UsingTypes}
{$I $$Shell(PInterfaces)Types.p}
{$ENDC}
{$IFC UNDEFINED UsingEvents}
{$I $$Shell(PInterfaces)Events.p}
{$ENDC}
{$IFC UNDEFINED UsingTextEdit}
{$I $$Shell(PInterfaces)TextEdit.p}
{$ENDC}
{$IFC UNDEFINED UsingMenus}
{$I $$Shell(PInterfaces)Menus.p}
{$ENDC}
{$IFC UNDEFINED UsingStandardFile}
{$I $$Shell(PInterfaces)StandardFile.p}
{$ENDC}
{$SETC UsingIncludes := HyperXCmdIncludes}
CONST
{ result codes }
xresSucc = 0;
xresFail = 1;
xresNotImp = 2;
{ XCMDBlock constants for event.what... }
xOpenEvt = 1000; { the first event after you are created }
xCloseEvt = 1001; { your window is being forced close (Quit?) }
xGiveUpEditEvt = 1002; { you are losing Edit... }
xGiveUpSoundEvt = 1003; { someone else is requesting HyperCard's sound channel }
xHidePalettesEvt = 1004; { someone called HideHCPalettes }
xShowPalettesEvt = 1005; { someone called ShowHCPalettes }
xEditUndo = 1100; { EditUndo }
xEditCut = 1102; { EditCut }
xEditCopy = 1103; { EditCopy }
xEditPaste = 1104; { EditPaste }
xEditClear = 1105; { EditClear }
xSendEvt = 1200; { script has sent you a message (text) }
xSetPropEvt = 1201; { set a window property }
xGetPropEvt = 1202; { get a window property }
xCursorWithin = 1300; { cursor is within the window }
xMenuEvt = 1400; { user has selected an item in your menu }
xMBarClickedEvt = 1401; { a menu is about to be shown--update if needed }
xShowWatchInfoEvt = 1501; { for variable and message watchers }
xScriptErrorEvt = 1502; { place the insertion point }
xDebugErrorEvt = 1503; { user clicked "Debug" at a complaint }
xDebugStepEvt = 1504; { hilite the line }
xDebugTraceEvt = 1505; { same as step but tracing }
xDebugFinishedEvt = 1506; { script ended }
paletteProc = 2048; { Windoid with grow box }
palNoGrowProc = 2052; { standard Windoid defproc }
palZoomProc = 2056; { Windoid with zoom and grow }
palZoomNoGrow = 2060; { Windoid with zoom and no grow }
hasZoom = 8;
hasTallTBar = 2;
toggleHilite = 1;
maxCachedChecks = 16; { maximum number of checkpoints in a script }
{ paramCount is set to these constants when first calling special XThings }
xMessageWatcherID = -2;
xVariableWatcherID = -3;
xScriptEditorID = -4;
xDebuggerID = -5;
{ XTalkObjectPtr^.objectKind values }
stackObj = 1;
bkgndObj = 2;
cardObj = 3;
fieldObj = 4;
buttonObj = 5;
{ selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) }
errorDlgID = 1; { 1:OK (default) }
confirmDlgID = 2; { 1:OK (default) and 2:Cancel }
confirmDelDlgID = 3; { 1:Cancel (default) and 2:Delete }
yesNoCancelDlgID = 4; { 1:Yes (default), 2:Cancel, and 3:No }
TYPE
XCmdPtr = ^XCmdBlock;
XCmdBlock = RECORD
paramCount: INTEGER; { If = -1 then new use for XWindoids }
params: ARRAY[1..16] OF Handle;
returnValue: Handle;
passFlag: BOOLEAN;
entryPoint: ProcPtr; { to call back to HyperCard }
request: INTEGER;
result: INTEGER;
inArgs: ARRAY[1..8] OF LongInt;
outArgs: ARRAY[1..4] OF LongInt;
END;
XWEventInfoPtr = ^XWEventInfo;
XWEventInfo = RECORD
event: EventRecord;
eventWindow: WindowPtr;
eventParams: ARRAY[1..9] OF LongInt;
eventResult: Handle;
END;
XTalkObjectPtr = ^XTalkObject;
XTalkObject = RECORD
objectKind: INTEGER; { stack, bkgnd, card, field, or button }
stackNum: LongInt; { reference number of the source stack }
bkgndID: LongInt;
cardID: LongInt;
buttonID: LongInt;
fieldID: LongInt;
END;
CheckPtHandle = ^CheckPtPtr;
CheckPtPtr = ^CheckPts;
CheckPts = RECORD
checks: ARRAY[1..maxCachedChecks] OF INTEGER;
END;
(**** HyperTalk Utilities ****)
FUNCTION EvalExpr(paramPtr: XCmdPtr; expr: Str255): Handle;
PROCEDURE SendCardMessage(paramPtr: XCmdPtr; msg: Str255);
PROCEDURE SendHCMessage(paramPtr: XCmdPtr; msg: Str255);
PROCEDURE RunHandler(paramPtr: XCmdPtr; handler: Handle);
(**** Memory Utilities ****)
FUNCTION GetGlobal(paramPtr: XCmdPtr; globName: Str255): Handle;
PROCEDURE SetGlobal(paramPtr: XCmdPtr; globName: Str255; globValue: Handle);
PROCEDURE ZeroBytes(paramPtr: XCmdPtr; dstPtr: Ptr;longCount: LongInt);
(**** String Utilities ****)
PROCEDURE ScanToReturn(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
PROCEDURE ScanToZero(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
FUNCTION StringEqual(paramPtr: XCmdPtr; str1,str2: Str255): BOOLEAN;
FUNCTION StringLength(paramPtr: XCmdPtr; strPtr: Ptr): LongInt;
FUNCTION StringMatch(paramPtr: XCmdPtr; pattern: Str255; target: Ptr): Ptr;
PROCEDURE ZeroTermHandle(paramPtr: XCmdPtr; hndl: Handle);
(**** String Conversions ****)
PROCEDURE BoolToStr(paramPtr: XCmdPtr; bool: BOOLEAN; VAR str: Str255);
PROCEDURE ExtToStr(paramPtr: XCmdPtr; num: Extended80; VAR str: Str255);
PROCEDURE LongToStr(paramPtr: XCmdPtr; posNum: LongInt; VAR str: Str255);
PROCEDURE NumToHex(paramPtr: XCmdPtr; num: LongInt; nDigits: INTEGER; VAR str: Str255);
PROCEDURE NumToStr(paramPtr: XCmdPtr; num: LongInt; VAR str: Str255);
FUNCTION PasToZero(paramPtr: XCmdPtr; str: Str255): Handle;
PROCEDURE PointToStr(paramPtr: XCmdPtr; pt: Point; VAR str: Str255);
PROCEDURE RectToStr(paramPtr: XCmdPtr; rct: Rect; VAR str: Str255);
PROCEDURE ReturnToPas(paramPtr: XCmdPtr; zeroStr: Ptr; VAR pasStr: Str255);
FUNCTION StrToBool(paramPtr: XCmdPtr; str: Str255): BOOLEAN;
FUNCTION StrToExt(paramPtr: XCmdPtr; str: Str255): Extended80;
FUNCTION StrToLong(paramPtr: XCmdPtr; str: Str255): LongInt;
FUNCTION StrToNum(paramPtr: XCmdPtr; str: Str255): LongInt;
PROCEDURE StrToPoint(paramPtr: XCmdPtr; str: Str255; VAR pt: Point);
PROCEDURE StrToRect(paramPtr: XCmdPtr; str: Str255; VAR rct: Rect);
PROCEDURE ZeroToPas(paramPtr: XCmdPtr; zeroStr: Ptr; VAR pasStr: Str255);
(**** Field Utilities ****)
FUNCTION GetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER): Handle;
FUNCTION GetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255): Handle;
FUNCTION GetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER): Handle;
PROCEDURE SetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldVal: Handle);
PROCEDURE SetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255; fieldVal: Handle);
PROCEDURE SetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER; fieldVal: Handle);
FUNCTION GetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID,fieldNum: INTEGER;
fieldNamePtr: StringPtr): TEHandle;
PROCEDURE SetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID,fieldNum: INTEGER;
fieldNamePtr: StringPtr; fieldTE: TEHandle);
(**** Miscellaneous Utilities ****)
PROCEDURE BeginXSound(paramPtr: XCmdPtr; window: WindowPtr);
PROCEDURE EndXSound(paramPtr: XCmdPtr);
FUNCTION GetFilePath(paramPtr: XCmdPtr; fileName: Str255; numTypes: INTEGER; typeList: SFTypeList;
askUser: BOOLEAN; VAR fileType: OSType; VAR fullName: Str255): BOOLEAN;
PROCEDURE GetXResInfo(paramPtr: XCmdPtr; VAR resFile: INTEGER; VAR resID: INTEGER;
VAR rType: ResType; VAR name: Str255);
PROCEDURE Notify(paramPtr: XCmdPtr);
PROCEDURE SendHCEvent(paramPtr: XCmdPtr; event: EventRecord);
PROCEDURE SendWindowMessage(paramPtr: XCmdPtr; windPtr: WindowPtr;
windowName: Str255; msg: Str255);
FUNCTION FrontDocWindow(paramPtr: XCmdPtr): WindowPtr;
FUNCTION StackNameToNum(paramPtr: XCmdPtr; stackName: Str255): LongInt;
FUNCTION ShowHCAlert(paramPtr: XCMDPtr; dlgID: INTEGER; promptStr: Str255): INTEGER;
(**** Creating and Disposing XWindoids ****)
FUNCTION NewXWindow(paramPtr: XCmdPtr; boundsRect: Rect; title: Str255; visible: BOOLEAN;
procID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
FUNCTION GetNewXWindow(paramPtr: XCmdPtr; templateType: ResType; templateID: INTEGER;
color: BOOLEAN; floating: BOOLEAN): WindowPtr;
PROCEDURE CloseXWindow(paramPtr: XCmdPtr; window: WindowPtr);
(**** XWindoid Utilities ****)
PROCEDURE HideHCPalettes(paramPtr: XCmdPtr);
PROCEDURE ShowHCPalettes(paramPtr: XCmdPtr);
PROCEDURE RegisterXWMenu(paramPtr: XCmdPtr; window: WindowPtr; menu: MenuHandle; registering: BOOLEAN);
PROCEDURE SetXWIdleTime(paramPtr: XCmdPtr; window: WindowPtr; interval: LongInt);
PROCEDURE XWHasInterruptCode(paramPtr: XCmdPtr; window: WindowPtr; haveCode: BOOLEAN);
PROCEDURE XWAlwaysMoveHigh(paramPtr: XCmdPtr; window: WindowPtr; moveHigh: BOOLEAN);
PROCEDURE XWAllowReEntrancy(paramPtr: XCmdPtr; window: WindowPtr; allowSysEvts: BOOLEAN; allowHCEvts: BOOLEAN);
(**** Text Editing Utilities ****)
PROCEDURE BeginXWEdit(paramPtr: XCmdPtr; window: WindowPtr);
PROCEDURE EndXWEdit(paramPtr: XCmdPtr; window: WindowPtr);
FUNCTION HCWordBreakProc(paramPtr: XCmdPtr): ProcPtr;
PROCEDURE PrintTEHandle(paramPtr: XCmdPtr; hTE: TEHandle; header: StringPtr);
(**** Script Editor support ****)
FUNCTION GetCheckPoints(paramPtr: XCmdPtr): CheckPtHandle;
PROCEDURE SetCheckPoints(paramPtr: XCmdPtr; checkLines: CheckPtHandle);
PROCEDURE FormatScript(paramPtr: XCmdPtr; scriptHndl: Handle;
VAR insertionPoint: LongInt; quickFormat: BOOLEAN);
PROCEDURE SaveXWScript(paramPtr: XCmdPtr; scriptHndl: Handle);
PROCEDURE GetObjectName(paramPtr: XCmdPtr; object: XTalkObjectPtr; VAR objName: Str255);
PROCEDURE GetObjectScript(paramPtr: XCmdPtr; object: XTalkObjectPtr; VAR scriptHndl: Handle);
PROCEDURE SetObjectScript(paramPtr: XCmdPtr; object: XTalkObjectPtr; scriptHndl: Handle);
(**** Debugging Tools support ****)
PROCEDURE AbortScript(paramPtr: XCmdPtr);
PROCEDURE GoScript(paramPtr: XCmdPtr);
PROCEDURE StepScript(paramPtr: XCmdPtr; stepInto: BOOLEAN);
PROCEDURE CountHandlers(paramPtr: XCmdPtr; VAR handlerCount: INTEGER);
PROCEDURE GetHandlerInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; VAR handlerName: Str255;
VAR objectName: Str255; VAR varCount: INTEGER);
PROCEDURE GetVarInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER;
VAR varName: Str255; VAR isGlobal: BOOLEAN; VAR varValue: Str255;
varHndl: Handle);
PROCEDURE SetVarValue(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER;
varHndl: Handle);
FUNCTION GetStackCrawl(paramPtr: XCmdPtr): Handle;
PROCEDURE TraceScript(paramPtr: XCmdPtr; traceInto: BOOLEAN);
{$ENDC} { UsingHyperXCmd }
{$IFC NOT UsingIncludes}
END.
{$ENDC}