topical media & game development

talk show tell print

lib-of-vs-libs-QTDevWin-CIncludes-HyperXCmd.h / h



  /*
       File:       HyperXCmd.h
   
       Contains:   Interfaces for HyperCard XCMD's
   
       Version:    Technology: HyperCard 2.3
                   Release:    QuickTime 6.0.2
   
       Copyright:  (c) 1987-2001 by Apple Computer, Inc., all rights reserved
   
       Bugs?:      For bug reports, consult the following page on
                   the World Wide Web:
   
                       http://developer.apple.com/bugreporter/
   
  */
  ifndef __HYPERXCMD__
  define __HYPERXCMD__
  
  ifndef __MACTYPES__
  include <MacTypes.h>
  endif
  
  ifndef __FP__
  include <fp.h>
  endif
  
  ifndef __EVENTS__
  include <Events.h>
  endif
  
  ifndef __TEXTEDIT__
  include <TextEdit.h>
  endif
  
  ifndef __MENUS__
  include <Menus.h>
  endif
  
  ifndef __STANDARDFILE__
  include <StandardFile.h>
  endif
  
  if PRAGMA_ONCE
  #pragma once
  endif
  
  ifdef __cplusplus
  extern "C" {
  endif
  
  if PRAGMA_IMPORT
  #pragma import on
  endif
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=mac68k
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(push, 2)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack(2)
  endif
  
  /* result codes */
  enum {
      xresSucc                    = 0,
      xresFail                    = 1,
      xresNotImp                  = 2
  };
  
  /* XCMDBlock constants for event.what... */
  enum {
      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,                         /* you are losing the sound channel... */
      xHidePalettesEvt            = 1004,                         /* someone called HideHCPalettes */
      xShowPalettesEvt            = 1005,                         /* someone called ShowHCPalettes */
      xEditUndo                   = 1100,                         /* Edit--Undo */
      xEditCut                    = 1102,                         /* Edit--Cut */
      xEditCopy                   = 1103,                         /* Edit--Copy */
      xEditPaste                  = 1104,                         /* Edit--Paste */
      xEditClear                  = 1105,                         /* Edit--Clear */
      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 */
  };
  
  enum {
      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 */
  };
  
  enum {
      hasZoom                     = 8,
      hasTallTBar                 = 2,
      toggleHilite                = 1
  };
  
  /* paramCount is set to these constants when first calling special XThings */
  enum {
      xMessageWatcherID           = -2,
      xVariableWatcherID          = -3,
      xScriptEditorID             = -4,
      xDebuggerID                 = -5
  };
  
  /* XTalkObjectPtr->objectKind values */
  enum {
      stackObj                    = 1,
      bkgndObj                    = 2,
      cardObj                     = 3,
      fieldObj                    = 4,
      buttonObj                   = 5
  };
  
  /* selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) */
  enum {
      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 definitions */
  
  struct XCmdBlock {
      short                           paramCount;                 /* If = -1 then new use for XWindoids */
      Handle                          params[16];
      Handle                          returnValue;
      Boolean                         passFlag;
      SignedByte                      filler1;
      UniversalProcPtr                entryPoint;                 /* to call back to HyperCard */
      short                           request;
      short                           result;
      long                            inArgs[8];
      long                            outArgs[4];
  };
  typedef struct XCmdBlock                XCmdBlock;
  
  typedef XCmdBlock *                     XCmdPtr;
  
  struct XWEventInfo {
      EventRecord                     event;
      WindowPtr                       eventWindow;
      long                            eventParams[9];
      Handle                          eventResult;
  };
  typedef struct XWEventInfo              XWEventInfo;
  typedef XWEventInfo *                   XWEventInfoPtr;
  
  struct XTalkObject {
      short                           objectKind;                 /* stack, bkgnd, card, field, or button */
      long                            stackNum;                   /* reference number of the source stack */
      long                            bkgndID;
      long                            cardID;
      long                            buttonID;
      long                            fieldID;
  };
  typedef struct XTalkObject              XTalkObject;
  typedef XTalkObject *                   XTalkObjectPtr;
  /* maximum number of checkpoints in a script */
  enum {
      maxCachedChecks             = 16
  };
  
  struct CheckPts {
      short                           checks[16];
  };
  typedef struct CheckPts                 CheckPts;
  
  typedef CheckPts *                      CheckPtPtr;
  typedef CheckPtPtr *                    CheckPtHandle;
  /*
          HyperTalk Utilities  
  */
  if CALL_NOT_IN_CARBON
  EXTERN_API( Handle )
  EvalExpr                        (XCmdPtr                paramPtr,
                                   ConstStr255Param       expr);
  
  EXTERN_API( void )
  SendCardMessage                 (XCmdPtr                paramPtr,
                                   ConstStr255Param       msg);
  
  EXTERN_API( void )
  SendHCMessage                   (XCmdPtr                paramPtr,
                                   ConstStr255Param       msg);
  
  EXTERN_API( void )
  RunHandler                      (XCmdPtr                paramPtr,
                                   Handle                 handler);
  
  /*
          Memory Utilities  
  */
  EXTERN_API( Handle )
  GetGlobal                       (XCmdPtr                paramPtr,
                                   ConstStr255Param       globName);
  
  EXTERN_API( void )
  SetGlobal                       (XCmdPtr                paramPtr,
                                   ConstStr255Param       globName,
                                   Handle                 globValue);
  
  EXTERN_API( void )
  ZeroBytes                       (XCmdPtr                paramPtr,
                                   void *                 dstPtr,
                                   long                   longCount);
  
  /*
          String Utilities  
  */
  EXTERN_API( void )
  ScanToReturn                    (XCmdPtr                paramPtr,
                                   Ptr *                  scanPtr);
  
  EXTERN_API( void )
  ScanToZero                      (XCmdPtr                paramPtr,
                                   Ptr *                  scanPtr);
  
  EXTERN_API( Boolean )
  StringEqual                     (XCmdPtr                paramPtr,
                                   ConstStr255Param       str1,
                                   ConstStr255Param       str2);
  
  EXTERN_API( long )
  StringLength                    (XCmdPtr                paramPtr,
                                   void *                 strPtr);
  
  EXTERN_API( void *)
  StringMatch                     (XCmdPtr                paramPtr,
                                   ConstStr255Param       pattern,
                                   void *                 target);
  
  EXTERN_API( void )
  ZeroTermHandle                  (XCmdPtr                paramPtr,
                                   Handle                 hndl);
  
  /*
          String Conversions  
  */
  EXTERN_API( void )
  BoolToStr                       (XCmdPtr                paramPtr,
                                   Boolean                value,
                                   Str255                 str);
  
  EXTERN_API( void )
  Double_tToStr                   (XCmdPtr                paramPtr,
                                   double_t               num,
                                   Str255                 str);
  
  EXTERN_API( void )
  LongToStr                       (XCmdPtr                paramPtr,
                                   long                   posNum,
                                   Str255                 str);
  
  EXTERN_API( void )
  NumToHex                        (XCmdPtr                paramPtr,
                                   long                   num,
                                   short                  nDigits,
                                   Str255                 str);
  
  EXTERN_API( void )
  NumToStr                        (XCmdPtr                paramPtr,
                                   long                   num,
                                   Str255                 str);
  
  EXTERN_API( Handle )
  PasToZero                       (XCmdPtr                paramPtr,
                                   ConstStr255Param       str);
  
  EXTERN_API( void )
  PointToStr                      (XCmdPtr                paramPtr,
                                   Point                  pt,
                                   Str255                 str);
  
  EXTERN_API( void )
  RectToStr                       (XCmdPtr                paramPtr,
                                   const Rect *           rct,
                                   Str255                 str);
  
  EXTERN_API( void )
  ReturnToPas                     (XCmdPtr                paramPtr,
                                   void *                 zeroStr,
                                   Str255                 pasStr);
  
  EXTERN_API( Boolean )
  StrToBool                       (XCmdPtr                paramPtr,
                                   ConstStr255Param       str);
  
  EXTERN_API( double_t )
  StrToDouble_t                   (XCmdPtr                paramPtr,
                                   ConstStr255Param       str);
  
  EXTERN_API( long )
  StrToLong                       (XCmdPtr                paramPtr,
                                   ConstStr255Param       str);
  
  EXTERN_API( long )
  StrToNum                        (XCmdPtr                paramPtr,
                                   ConstStr255Param       str);
  
  EXTERN_API( void )
  StrToPoint                      (XCmdPtr                paramPtr,
                                   ConstStr255Param       str,
                                   Point *                pt);
  
  EXTERN_API( void )
  StrToRect                       (XCmdPtr                paramPtr,
                                   ConstStr255Param       str,
                                   Rect *                 rct);
  
  EXTERN_API( void )
  ZeroToPas                       (XCmdPtr                paramPtr,
                                   void *                 zeroStr,
                                   Str255                 pasStr);
  
  /*
          Field Utilities  
  */
  EXTERN_API( Handle )
  GetFieldByID                    (XCmdPtr                paramPtr,
                                   Boolean                cardFieldFlag,
                                   short                  fieldID);
  
  EXTERN_API( Handle )
  GetFieldByName                  (XCmdPtr                paramPtr,
                                   Boolean                cardFieldFlag,
                                   ConstStr255Param       fieldName);
  
  EXTERN_API( Handle )
  GetFieldByNum                   (XCmdPtr                paramPtr,
                                   Boolean                cardFieldFlag,
                                   short                  fieldNum);
  
  EXTERN_API( void )
  SetFieldByID                    (XCmdPtr                paramPtr,
                                   Boolean                cardFieldFlag,
                                   short                  fieldID,
                                   Handle                 fieldVal);
  
  EXTERN_API( void )
  SetFieldByName                  (XCmdPtr                paramPtr,
                                   Boolean                cardFieldFlag,
                                   ConstStr255Param       fieldName,
                                   Handle                 fieldVal);
  
  EXTERN_API( void )
  SetFieldByNum                   (XCmdPtr                paramPtr,
                                   Boolean                cardFieldFlag,
                                   short                  fieldNum,
                                   Handle                 fieldVal);
  
  EXTERN_API( TEHandle )
  GetFieldTE                      (XCmdPtr                paramPtr,
                                   Boolean                cardFieldFlag,
                                   short                  fieldID,
                                   short                  fieldNum,
                                   ConstStr255Param       fieldName);
  
  EXTERN_API( void )
  SetFieldTE                      (XCmdPtr                paramPtr,
                                   Boolean                cardFieldFlag,
                                   short                  fieldID,
                                   short                  fieldNum,
                                   ConstStr255Param       fieldName,
                                   TEHandle               fieldTE);
  
  /*
          Miscellaneous Utilities  
  */
  EXTERN_API( void )
  BeginXSound                     (XCmdPtr                paramPtr,
                                   WindowPtr              window);
  
  EXTERN_API( void )
  EndXSound                       (XCmdPtr                paramPtr);
  
  EXTERN_API( Boolean )
  GetFilePath                     (XCmdPtr                paramPtr,
                                   ConstStr255Param       fileName,
                                   short                  numTypes,
                                   ConstSFTypeListPtr     typeList,
                                   Boolean                askUser,
                                   OSType *               fileType,
                                   Str255                 fullName);
  
  EXTERN_API( void )
  GetXResInfo                     (XCmdPtr                paramPtr,
                                   short *                resFile,
                                   short *                resID,
                                   ResType *              rType,
                                   Str255                 name);
  
  EXTERN_API( void )
  Notify                          (XCmdPtr                paramPtr);
  
  EXTERN_API( void )
  SendHCEvent                     (XCmdPtr                paramPtr,
                                   const EventRecord *    event);
  
  EXTERN_API( void )
  SendWindowMessage               (XCmdPtr                paramPtr,
                                   WindowPtr              windPtr,
                                   ConstStr255Param       windowName,
                                   ConstStr255Param       msg);
  
  EXTERN_API( WindowPtr )
  FrontDocWindow                  (XCmdPtr                paramPtr);
  
  EXTERN_API( long )
  StackNameToNum                  (XCmdPtr                paramPtr,
                                   ConstStr255Param       stackName);
  
  EXTERN_API( short )
  ShowHCAlert                     (XCmdPtr                paramPtr,
                                   short                  dlgID,
                                   ConstStr255Param       promptStr);
  
  EXTERN_API( Boolean )
  AbortInQueue                    (XCmdPtr                paramPtr);
  
  EXTERN_API( void )
  FlushStackFile                  (XCmdPtr                paramPtr);
  
  /*
          Creating and Disposing XWindoids  
  */
  EXTERN_API( WindowPtr )
  NewXWindow                      (XCmdPtr                paramPtr,
                                   const Rect *           boundsRect,
                                   ConstStr255Param       title,
                                   Boolean                visible,
                                   short                  procID,
                                   Boolean                color,
                                   Boolean                floating);
  
  EXTERN_API( WindowPtr )
  GetNewXWindow                   (XCmdPtr                paramPtr,
                                   ResType                templateType,
                                   short                  templateID,
                                   Boolean                color,
                                   Boolean                floating);
  
  EXTERN_API( void )
  CloseXWindow                    (XCmdPtr                paramPtr,
                                   WindowPtr              window);
  
  /*
          XWindoid Utilities  
  */
  EXTERN_API( void )
  HideHCPalettes                  (XCmdPtr                paramPtr);
  
  EXTERN_API( void )
  ShowHCPalettes                  (XCmdPtr                paramPtr);
  
  EXTERN_API( void )
  RegisterXWMenu                  (XCmdPtr                paramPtr,
                                   WindowPtr              window,
                                   MenuHandle             menu,
                                   Boolean                registering);
  
  EXTERN_API( void )
  SetXWIdleTime                   (XCmdPtr                paramPtr,
                                   WindowPtr              window,
                                   long                   interval);
  
  EXTERN_API( void )
  XWHasInterruptCode              (XCmdPtr                paramPtr,
                                   WindowPtr              window,
                                   Boolean                haveCode);
  
  EXTERN_API( void )
  XWAlwaysMoveHigh                (XCmdPtr                paramPtr,
                                   WindowPtr              window,
                                   Boolean                moveHigh);
  
  EXTERN_API( void )
  XWAllowReEntrancy               (XCmdPtr                paramPtr,
                                   WindowPtr              window,
                                   Boolean                allowSysEvts,
                                   Boolean                allowHCEvts);
  
  /*
          Text Editing Utilities  
  */
  EXTERN_API( void )
  BeginXWEdit                     (XCmdPtr                paramPtr,
                                   WindowPtr              window);
  
  EXTERN_API( void )
  EndXWEdit                       (XCmdPtr                paramPtr,
                                   WindowPtr              window);
  
  EXTERN_API( WordBreakUPP )
  HCWordBreakProc                 (XCmdPtr                paramPtr);
  
  EXTERN_API( void )
  PrintTEHandle                   (XCmdPtr                paramPtr,
                                   TEHandle               hTE,
                                   StringPtr              header);
  
  /*
          Script Editor support  
  */
  EXTERN_API( CheckPtHandle )
  GetCheckPoints                  (XCmdPtr                paramPtr);
  
  EXTERN_API( void )
  SetCheckPoints                  (XCmdPtr                paramPtr,
                                   CheckPtHandle          checkLines);
  
  EXTERN_API( void )
  FormatScript                    (XCmdPtr                paramPtr,
                                   Handle                 scriptHndl,
                                   long *                 insertionPoint,
                                   Boolean                quickFormat);
  
  EXTERN_API( void )
  SaveXWScript                    (XCmdPtr                paramPtr,
                                   Handle                 scriptHndl);
  
  EXTERN_API( void )
  GetObjectName                   (XCmdPtr                paramPtr,
                                   XTalkObjectPtr         xObjPtr,
                                   Str255                 objName);
  
  EXTERN_API( void )
  GetObjectScript                 (XCmdPtr                paramPtr,
                                   XTalkObjectPtr         xObjPtr,
                                   Handle *               scriptHndl);
  
  EXTERN_API( void )
  SetObjectScript                 (XCmdPtr                paramPtr,
                                   XTalkObjectPtr         xObjPtr,
                                   Handle                 scriptHndl);
  
  /*
          Debugging Tools support  
  */
  EXTERN_API( void )
  AbortScript                     (XCmdPtr                paramPtr);
  
  EXTERN_API( void )
  GoScript                        (XCmdPtr                paramPtr);
  
  EXTERN_API( void )
  StepScript                      (XCmdPtr                paramPtr,
                                   Boolean                stepInto);
  
  EXTERN_API( void )
  CountHandlers                   (XCmdPtr                paramPtr,
                                   short *                handlerCount);
  
  EXTERN_API( void )
  GetHandlerInfo                  (XCmdPtr                paramPtr,
                                   short                  handlerNum,
                                   Str255                 handlerName,
                                   Str255                 objectName,
                                   short *                varCount);
  
  EXTERN_API( void )
  GetVarInfo                      (XCmdPtr                paramPtr,
                                   short                  handlerNum,
                                   short                  varNum,
                                   Str255                 varName,
                                   Boolean *              isGlobal,
                                   Str255                 varValue,
                                   Handle                 varHndl);
  
  EXTERN_API( void )
  SetVarValue                     (XCmdPtr                paramPtr,
                                   short                  handlerNum,
                                   short                  varNum,
                                   Handle                 varHndl);
  
  EXTERN_API( Handle )
  GetStackCrawl                   (XCmdPtr                paramPtr);
  
  EXTERN_API( void )
  TraceScript                     (XCmdPtr                paramPtr,
                                   Boolean                traceInto);
  
  endif  /* CALL_NOT_IN_CARBON */
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=reset
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(pop)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack()
  endif
  
  ifdef PRAGMA_IMPORT_OFF
  #pragma import off
  #elif PRAGMA_IMPORT
  #pragma import reset
  endif
  
  ifdef __cplusplus
  }
  endif
  
  endif /* __HYPERXCMD__ */
  
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.