/* These are the defines, includes, and externs peculiar to the Mac version*/ #pragma once //Includes #include /* defines malloc() */ #include /* defined FILE */ #include /* defines localtime() */ #include /* defines string functions */ #include #include #include #include #include #include "teach1.h" //Defines enum {fNext=1,fStop,fIn,fPrim,fAffix,fTrans,fExtn,fWhat,fWho,fAns,fSyn}; //Test and Review Dialog items enum {cSelect=1,cReview,cTest,cLn,cShuffle,cLookup,cBrush,cStats,cReset,cLn2,cHelp}; //Command menu items enum {flOpen=1,flClose,flLine,flSave,flSaveAs,flLn2,flQuit}; //File menu items enum{moRecog=1,moRecall,moLine,moRung1,moRung2,moRung3,moTop,moErrBox}; //Mode menu items enum{mSelect=2,mRung1,mRung2,mRung3,mTop,mErrorBox,mInDeck,mTest,mReview,mStats,mTime,mA,mB, mDrill,mShuffle,mC,mRecognize,mRecall,mD,mE,mPcent,mAvTim,mConfL,mI,mHelp,mJ,mFile}; enum {BtnOff, BtnOn}; // Control values #define TTHREE #define appleMenu 1 /*Menu resource number for Apple Menu*/ #define commandMenu 258 /*Resource number of command menu*/ #define editMenu 257 /*Resource number of edit menu*/ #define fileMenu 256 /*Resource number of file menu*/ #define modeMenu 259 /*Resource # of Mode menu*/ #define lastMenu 5 /*Maximum menu count*/ #define MAC /*Used to distinguish Mac programs from IBM*/ #define MAXFLDS 13 /*Maximum items in Test/Review Dialog*/ #define MAXITEMS 29 /*Maximum items in MainDialog*/ #define MFEVENT 15 /*Multifinder event number*/ #define MFILE 28 /*Main dialog item for file name*/ #define MHELP 26 /*Main dialog item for Help*/ #define NUMFILES 2 /*For checking number of files in command or click*/ #define PStrCpy(dst, src) BlockMove( src, dst, (Size)(*src)+1) /* JPJ: Pascal String Copy */ #define statID 6 /* Resource # of statistics dialog */ #define textID 43 /*Dialog resource number of help text*/ #ifdef global #define extern #endif //Globals extern DialogPtr gAbtDialog; /*About MacTeach*/ extern DialogRecord gAbtRecord; /*About MacTeach*/ extern Rect gDragRect; /*Rectangles for text edit record*/ extern short gHelp; /*flag for indicating if help on*/ extern WindowPtr gHelpWindow; /*pointer to help window*/ extern WindowRecord gHlpRecord; /*record of help window*/ extern TEHandle ghTE; /*text edit record*/ extern SFReply gInReply; /*standard reply for input files*/ extern Handle gItemHdl[MAXFLDS]; /*Storage for handles of Test/Review dialog*/ extern Rect gItemBox; /*for getting items from dialogs*/ extern DialogPtr gMainDialog; /*main non-modal dialog */ extern DialogRecord gMainRecord; /*main dialog record*/ extern Handle gMainHdl[MAXITEMS]; /*handle storage for main Dialog items*/ extern EventRecord gMyEvent; /*current event record*/ extern MenuHandle gMyMenus[lastMenu]; /*current menu handles*/ extern Ptr gMyPtr; //for allocatiion of temporary space. extern Point gOrigin; /*used for placing standard reply*/ extern Rect gpRect; /*temporary rect for resizing*/ extern Rect gReptBox; /*used for I-beam setting*/ extern Boolean gSDI; /*Set default item flag*/ extern DialogRecord gTestRecord; /*Dialog record storage*/ extern DialogPtr gTestDialog; /*Dialog pointer for test & text dialogs*/ extern Point gTheOrigin; /*used in Scrolling windows*/ extern Rect gTimeBox; /*used for I-beam setting*/ extern ControlHandle gvScroll; /*Scroll bar control*/ extern CursHandle gWatch; /*Busy cursor*/ extern ControlHandle gWhichControl; /*current active control*/ // Prototypes // teach23.c void main(void); void doseek(void); void look(short n); void promote(short n); void setaffix(short val); void show4(short n); void show5(short n); void show611(short n); void show7(short n); short showsel(short n); short showtest(short n, short dlgid); pascal void resume(void); /*Allows for return to Desktop on serious error*/ // tmcommon.c void alert(short n, short m); void checkCursor(CursHandle iBeam); void demote(short n); void display(void); void doabout(void); void docommand(unsigned long mResult); void dodrill(void); void dohelp(void); void domouse(WindowPtr whichWindow); void domulti(void); void doopen(void); void dotimeout(void); void DrawWindow(WindowPtr theWindow); void eventloop(void); void GrowWnd(WindowPtr whichWindow); void initMac(void); void initteach(void); void InitToolbox(void); void IOCheck(OSErr code); void MoveScrollBars(WindowPtr thiswindow, ControlHandle tvscroll, ControlHandle thscroll); void mycpy(char *stra, char *strb); void opentext(void); void outlin(short no, DialogPtr dialog); void PageScroll(short code, short amount); void ResizePRect(WindowPtr theWindow); void saveasdo(void); void savestat(void); void ScrollBits(void); void sessions(void); void setrr(short val); void setrung(short val); void setscroll(void); void setshuf(short val); void setupmenu(void); void showcard(short n); void showhelp(short n); void showstat(void); pascal void ScrollDown(ControlHandle whichControl, short theCode); pascal void ScrollUp(ControlHandle whichControl, short theCode); Boolean TrapAvailable(short theTrap); Boolean AppleEventsInstalled(void); pascal Boolean Timeget(DialogPtr theDialog, EventRecord *theEvent, short *item); TrapType GetTrapType(short theTrap); short doClose(void); short keyequiv(short button); short message(short n, short m, unsigned char *txt, short ID); short NumToolboxTraps(void); OSErr MyGotRequiredParams(AppleEvent *theAppleEvent); pascal OSErr MyHandleOApp(AppleEvent *theAppleEvent, AppleEvent *reply, long Refcon); pascal OSErr MyHandleODoc(AppleEvent *theAppleEvent, AppleEvent *reply, long Refcon); pascal OSErr MyHandlePDoc(AppleEvent *theAppleEvent, AppleEvent *reply, long Refcon); pascal OSErr MyHandleQUIT(AppleEvent *theAppleEvent, AppleEvent *reply, long Refcon); pascal OSErr SetDialogTrackCursor (DialogPtr theDialog,Boolean tracks);