topical media & game development
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.