home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / mac / developm / language / thnkphc2.cpt / HyperXCmd.p next >
Encoding:
Text File  |  1991-01-29  |  10.1 KB  |  226 lines

  1. (*}
  2. {    Created: Thursday, October 27, 1988 at 10:56 PM}
  3. {    HyperXCmd.p}
  4. {    Definition file for HyperCard XCMDs and XFCNs in Pascal.}
  5. {}
  6. {    Copyright Apple Computer, Inc.  1987-1990}
  7. {    All rights reserved}
  8. {    File owned by: Steve Maller}
  9. {*)
  10.  
  11.  
  12. {$IFC UNDEFINED UsingIncludes}
  13. {$SETC UsingIncludes := 0}
  14. {$ENDC}
  15.  
  16. unit HyperXCmd;
  17.  
  18. interface
  19.  
  20.     const
  21.   { result codes }
  22.         xresSucc = 0;
  23.         xresFail = 1;
  24.         xresNotImp = 2;
  25.  
  26.   { XCMDBlock constants for event.what... }
  27.         xOpenEvt = 1000;         { the first event after you are created }
  28.         xCloseEvt = 1001;         { your window is being forced close (Quit?) }
  29.         xGiveUpEditEvt = 1002;         { you are losing Edit... }
  30.         xGiveUpSoundEvt = 1003;        { someone else is requesting HyperCard's sound channel }
  31.         xHidePalettesEvt = 1004;        { someone called HideHCPalettes }
  32.         xShowPalettesEvt = 1005;        { someone called ShowHCPalettes }
  33.         xEditUndo = 1100;        { Edit╤╤Undo }
  34.         xEditCut = 1102;        { Edit╤╤Cut }
  35.         xEditCopy = 1103;        { Edit╤╤Copy }
  36.         xEditPaste = 1104;        { Edit╤╤Paste }
  37.         xEditClear = 1105;        { Edit╤╤Clear }
  38.         xSendEvt = 1200;        { script has sent you a message (text) }
  39.         xSetPropEvt = 1201;        { set a window property }
  40.         xGetPropEvt = 1202;        { get a window property }
  41.         xCursorWithin = 1300;        { cursor is within the window }
  42.         xMenuEvt = 1400;        { user has selected an item in your menu }
  43.         xMBarClickedEvt = 1401;        { a menu is about to be shown--update if needed }
  44.  
  45.         xShowWatchInfoEvt = 1501;        { for variable and message watchers }
  46.         xScriptErrorEvt = 1502;        { place the insertion point }
  47.         xDebugErrorEvt = 1503;        { user clicked "Debug" at a complaint }
  48.         xDebugStepEvt = 1504;        { hilite the line }
  49.         xDebugTraceEvt = 1505;        { same as step but tracing }
  50.         xDebugFinishedEvt = 1506;        { script ended }
  51.  
  52.         paletteProc = 2048;        { Windoid with grow box }
  53.         palNoGrowProc = 2052;        { standard Windoid defproc }
  54.         palZoomProc = 2056;        { Windoid with zoom and grow }
  55.         palZoomNoGrow = 2060;        { Windoid with zoom and no grow }
  56.         hasZoom = 8;
  57.         hasTallTBar = 2;
  58.         toggleHilite = 1;
  59.  
  60.         maxCachedChecks = 16;        { maximum number of checkpoints in a script }
  61.  
  62.   { paramCount is set to these constants when first calling special XThings }
  63.         xMessageWatcherID = -2;
  64.         xVariableWatcherID = -3;
  65.         xScriptEditorID = -4;
  66.         xDebuggerID = -5;
  67.  
  68.   { XTalkObjectPtr^.objectKind values }
  69.         stackObj = 1;
  70.         bkgndObj = 2;
  71.         cardObj = 3;
  72.         fieldObj = 4;
  73.         buttonObj = 5;
  74.  
  75.   { selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) }
  76.         errorDlgID = 1;    { 1:OK (default) }
  77.         confirmDlgID = 2;    { 1:OK (default) and 2:Cancel }
  78.         confirmDelDlgID = 3;    { 1:Cancel (default) and 2:Delete }
  79.         yesNoCancelDlgID = 4;    { 1:Yes (default), 2:Cancel, and 3:No }
  80.  
  81.  
  82.     type
  83.         XCmdPtr = ^XCmdBlock;
  84.         XCmdBlock = record
  85.                 paramCount: INTEGER; { If = -1 then new use for XWindoids }
  86.                 params: array[1..16] of Handle;
  87.                 returnValue: Handle;
  88.                 passFlag: BOOLEAN;
  89.  
  90.                 entryPoint: ProcPtr; { to call back to HyperCard }
  91.                 request: INTEGER;
  92.                 result: INTEGER;
  93.                 inArgs: array[1..8] of LongInt;
  94.                 outArgs: array[1..4] of LongInt;
  95.             end;
  96.  
  97.         XWEventInfoPtr = ^XWEventInfo;
  98.         XWEventInfo = record
  99.                 event: EventRecord;
  100.                 eventWindow: WindowPtr;
  101.                 eventParams: array[1..9] of LongInt;
  102.                 eventResult: Handle;
  103.             end;
  104.  
  105.         XTalkObjectPtr = ^XTalkObject;
  106.         XTalkObject = record
  107.                 objectKind: INTEGER;    { stack, bkgnd, card, field, or button }
  108.                 stackNum: LongInt;    { reference number of the source stack }
  109.                 bkgndID: LongInt;
  110.                 cardID: LongInt;
  111.                 buttonID: LongInt;
  112.                 fieldID: LongInt;
  113.             end;
  114.  
  115.         CheckPtHandle = ^CheckPtPtr;
  116.         CheckPtPtr = ^CheckPts;
  117.         CheckPts = record
  118.                 checks: array[1..maxCachedChecks] of INTEGER;
  119.             end;
  120.  
  121.  
  122. (****  HyperTalk Utilities  ****)
  123.     function EvalExpr (paramPtr: XCmdPtr; expr: Str255): Handle;
  124.     procedure SendCardMessage (paramPtr: XCmdPtr; msg: Str255);
  125.     procedure SendHCMessage (paramPtr: XCmdPtr; msg: Str255);
  126.     procedure RunHandler (paramPtr: XCmdPtr; handler: Handle);
  127.  
  128. (****  Memory Utilities  ****)
  129.     function GetGlobal (paramPtr: XCmdPtr; globName: Str255): Handle;
  130.     procedure SetGlobal (paramPtr: XCmdPtr; globName: Str255; globValue: Handle);
  131.     procedure ZeroBytes (paramPtr: XCmdPtr; dstPtr: Ptr; longCount: LongInt);
  132.  
  133. (****  String Utilities  ****)
  134.     procedure ScanToReturn (paramPtr: XCmdPtr; var scanPtr: Ptr);
  135.     procedure ScanToZero (paramPtr: XCmdPtr; var scanPtr: Ptr);
  136.     function StringEqual (paramPtr: XCmdPtr; str1, str2: Str255): BOOLEAN;
  137.     function StringLength (paramPtr: XCmdPtr; strPtr: Ptr): LongInt;
  138.     function StringMatch (paramPtr: XCmdPtr; pattern: Str255; target: Ptr): Ptr;
  139.     procedure ZeroTermHandle (paramPtr: XCmdPtr; hndl: Handle);
  140.  
  141. (****  String Conversions  ****)
  142.     procedure BoolToStr (paramPtr: XCmdPtr; bool: BOOLEAN; var str: Str255);
  143.     procedure ExtToStr (paramPtr: XCmdPtr; num: Extended; var str: Str255);
  144.     procedure LongToStr (paramPtr: XCmdPtr; posNum: LongInt; var str: Str255);
  145.     procedure NumToHex (paramPtr: XCmdPtr; num: LongInt; nDigits: INTEGER; var str: Str255);
  146.     procedure NumToStr (paramPtr: XCmdPtr; num: LongInt; var str: Str255);
  147.     function PasToZero (paramPtr: XCmdPtr; str: Str255): Handle;
  148.     procedure PointToStr (paramPtr: XCmdPtr; pt: Point; var str: Str255);
  149.     procedure RectToStr (paramPtr: XCmdPtr; rct: Rect; var str: Str255);
  150.     procedure ReturnToPas (paramPtr: XCmdPtr; zeroStr: Ptr; var pasStr: Str255);
  151.     function StrToBool (paramPtr: XCmdPtr; str: Str255): BOOLEAN;
  152.     procedure StrToExt (paramPtr: XCmdPtr; num: Extended; str: Str255);
  153.     function StrToLong (paramPtr: XCmdPtr; str: Str255): LongInt;
  154.     function StrToNum (paramPtr: XCmdPtr; str: Str255): LongInt;
  155.     procedure StrToPoint (paramPtr: XCmdPtr; str: Str255; var pt: Point);
  156.     procedure StrToRect (paramPtr: XCmdPtr; str: Str255; var rct: Rect);
  157.     procedure ZeroToPas (paramPtr: XCmdPtr; zeroStr: Ptr; var pasStr: Str255);
  158.  
  159. (****  Field Utilities  ****)
  160.     function GetFieldByID (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER): Handle;
  161.     function GetFieldByName (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255): Handle;
  162.     function GetFieldByNum (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER): Handle;
  163.     procedure SetFieldByID (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldVal: Handle);
  164.     procedure SetFieldByName (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255; fieldVal: Handle);
  165.     procedure SetFieldByNum (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER; fieldVal: Handle);
  166.     function GetFieldTE (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID, fieldNum: INTEGER; fieldNamePtr: StringPtr): TEHandle;
  167.     procedure SetFieldTE (paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID, fieldNum: INTEGER; fieldNamePtr: StringPtr; fieldTE: TEHandle);
  168.  
  169. (****  Miscellaneous Utilities  ****)
  170.     procedure BeginXSound (paramPtr: XCmdPtr; window: WindowPtr);
  171.     procedure EndXSound (paramPtr: XCmdPtr);
  172.     function GetFilePath (paramPtr: XCmdPtr; fileName: Str255; numTypes: INTEGER; typeList: SFTypeList; askUser: BOOLEAN; var fileType: OSType; var fullName: Str255): BOOLEAN;
  173.     procedure GetXResInfo (paramPtr: XCmdPtr; var resFile: INTEGER; var resID: INTEGER; var rType: ResType; var name: Str255);
  174.     procedure Notify (paramPtr: XCmdPtr);
  175.     procedure SendHCEvent (paramPtr: XCmdPtr; event: EventRecord);
  176.     procedure SendWindowMessage (paramPtr: XCmdPtr; windPtr: WindowPtr; windowName: Str255; msg: Str255);
  177.     function FrontDocWindow (paramPtr: XCmdPtr): WindowPtr;
  178.     function StackNameToNum (paramPtr: XCmdPtr; stackName: Str255): LongInt;
  179.     function ShowHCAlert (paramPtr: XCMDPtr; dlgID: INTEGER; promptStr: Str255): INTEGER;
  180.  
  181. (****  Creating and Disposing XWindoids  ****)
  182.     function NewXWindow (paramPtr: XCmdPtr; boundsRect: Rect; title: Str255; visible: BOOLEAN; procID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
  183.     function GetNewXWindow (paramPtr: XCmdPtr; templateType: ResType; templateID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
  184.     procedure CloseXWindow (paramPtr: XCmdPtr; window: WindowPtr);
  185.  
  186. (****  XWindoid Utilities  ****)
  187.     procedure HideHCPalettes (paramPtr: XCmdPtr);
  188.     procedure ShowHCPalettes (paramPtr: XCmdPtr);
  189.     procedure RegisterXWMenu (paramPtr: XCmdPtr; window: WindowPtr; menu: MenuHandle; registering: BOOLEAN);
  190.     procedure SetXWIdleTime (paramPtr: XCmdPtr; window: WindowPtr; interval: LongInt);
  191.     procedure XWHasInterruptCode (paramPtr: XCmdPtr; window: WindowPtr; haveCode: BOOLEAN);
  192.     procedure XWAlwaysMoveHigh (paramPtr: XCmdPtr; window: WindowPtr; moveHigh: BOOLEAN);
  193.     procedure XWAllowReEntrancy (paramPtr: XCmdPtr; window: WindowPtr; allowSysEvts: BOOLEAN; allowHCEvts: BOOLEAN);
  194.  
  195. (****  Text Editing Utilities  ****)
  196.     procedure BeginXWEdit (paramPtr: XCmdPtr; window: WindowPtr);
  197.     procedure EndXWEdit (paramPtr: XCmdPtr; window: WindowPtr);
  198.     function HCWordBreakProc (paramPtr: XCmdPtr): ProcPtr;
  199.     procedure PrintTEHandle (paramPtr: XCmdPtr; hTE: TEHandle; header: StringPtr);
  200.  
  201. (****  Script Editor support  ****)
  202.     function GetCheckPoints (paramPtr: XCmdPtr): CheckPtHandle;
  203.     procedure SetCheckPoints (paramPtr: XCmdPtr; checkLines: CheckPtHandle);
  204.     procedure FormatScript (paramPtr: XCmdPtr; scriptHndl: Handle; var insertionPoint: LongInt; quickFormat: BOOLEAN);
  205.     procedure SaveXWScript (paramPtr: XCmdPtr; scriptHndl: Handle);
  206.     procedure GetObjectName (paramPtr: XCmdPtr; theObject: XTalkObjectPtr; var objName: Str255);
  207.     procedure GetObjectScript (paramPtr: XCmdPtr; theObject: XTalkObjectPtr; var scriptHndl: Handle);
  208.     procedure SetObjectScript (paramPtr: XCmdPtr; theObject: XTalkObjectPtr; scriptHndl: Handle);
  209.  
  210. (****  Debugging Tools support  ****)
  211.     procedure AbortScript (paramPtr: XCmdPtr);
  212.     procedure GoScript (paramPtr: XCmdPtr);
  213.     procedure StepScript (paramPtr: XCmdPtr; stepInto: BOOLEAN);
  214.     procedure CountHandlers (paramPtr: XCmdPtr; var handlerCount: INTEGER);
  215.     procedure GetHandlerInfo (paramPtr: XCmdPtr; handlerNum: INTEGER; var handlerName: Str255; var objectName: Str255; var varCount: INTEGER);
  216.     procedure GetVarInfo (paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; var varName: Str255; var isGlobal: BOOLEAN; var varValue: Str255; varHndl: Handle);
  217.     procedure SetVarValue (paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; varHndl: Handle);
  218.     function GetStackCrawl (paramPtr: XCmdPtr): Handle;
  219.     procedure TraceScript (paramPtr: XCmdPtr; traceInto: BOOLEAN);
  220.  
  221.  
  222.     { UsingHyperXCmd }
  223.  
  224. implementation
  225.  
  226. end.