home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-07-25 | 5.7 KB | 227 lines | [TEXT/MPS ] |
- // Copyright ©1994 Apple Computer, Inc.
- // Author: John Powers
- // Date: 25-Jul-94
-
- // UApp.h
- // Header for our main program.
- // Contains all our derived classes and our new classes.
- // The TApplication and TDocument folders
- // have been left unchanged from the developer CD.
- // Our use of the application is tailored in the classes below.
-
- // Define __UMAIN__ for the TApplication folder
- #define __UMAIN__
-
- #ifndef __UAPP__
- #define __UAPP__ // #endif __UAPP__ is at end of this file
-
- #include <Dialogs.h>
- #include <Fonts.h> // monaco
- #include <Menus.h>
- #include <Processes.h> // GetCurrentProcess
- #include <Resources.h>
- #include <Scrap.h> // PutScrap, GetScrap
- #include <StandardFile.h> // StandardFileReply
- #include <String.h> // strcpy
- #include <Sysequ.h>
- #include <TextUtils.h> // NumToString
- #include <ToolUtils.h> // GetCursor
-
- #ifndef __APPLEGUIDE__
- #include "AppleGuide.h"
- #endif
-
- #ifndef __AGFILE__
- #include <AGFile.h>
- #endif
-
- #ifndef TAPPLICATION_H
- #include "TApplication.h"
- #endif
-
- #ifndef __UDOC__
- #include "UDoc.h"
- #endif
-
- #ifndef __UAPPSHARED__
- #include "::UAppShared.h"
- #endif
-
- // Constants (also see UAppShared.h).
-
- #define override virtual
-
- enum
- {
- kNoFilterProc = nil,
- kInFrontOfAll = -1,
- kDefaultStorage = nil,
- kIsNotSysHandler = false,
- kIsSysHandler = true,
- kHandlerNotRequired = nil
- };
- // Custom event class and id's
- // General events are in TAppMo.
- // Context events are in TContext.
- enum {
- kAEClassCustom = 'MoHC'
- };
-
- // DBInfo Dialog
- enum {
- kDBInfoDialogID = 132,
- kDBInfoOK = 1,
- kDBInfoDatabase,
- kDBInfoTypeLabel,
- kDBInfoType,
- kDBInfoMenuLabel,
- kDBInfoMenu,
- kDBInfoSelectorCntLabel,
- kDBInfoSelectorCnt,
- kDBInfoSelector1Label,
- kDBInfoSelector1,
- kDBInfoSelector1Value,
- kDBInfoSelector2Label,
- kDBInfoSelector2,
- kDBInfoSelector2Value,
- kDBInfoSelector3Label,
- kDBInfoSelector3,
- kDBInfoSelector3Value,
- kDBInfoMixinLabel,
- kDBInfoMixin,
- kDBInfoVersionLabel,
- kDBInfoVersion,
- kDBInfoScriptLabel,
- kDBInfoScript,
- kDBInfoRegionLabel,
- kDBInfoRegion
- };
- // AlertIfError Dialog
- enum {
- kAlertIfErrorDialogID = 133,
- kAlertIfErrorOK = 1,
- kAlertIfErrorMsg,
- kAlertIfErrorErrNum
- };
-
- // typedef's
-
- // StartSpecType is a resource.
- // See UApp.r for the description of this structure.
- typedef struct StartSpecType {
- short autoStartFlag;
- short quitAfterGuide;
- short type;
- short sequenceID;
- Str63 fileName;
- } StartSpecType, *StartSpecPtr, **StartSpecHan;
-
- // Globals
-
- Boolean gAGuideAvailable;
-
- OSErr AlertIfError(OSErr err);
- void CenterWindow(WindowPtr pWin);
- void GetWindowBounds(WindowPtr pWin, Rect* pBoundsRect);
- void pcat(StringPtr d, StringPtr s);
- void pcpy(StringPtr d, StringPtr s);
- Boolean isEqualString(char *s1, char *s2);
- // Forward references
-
- class TDoc;
- class TDocClip;
-
- // ------------------------------------------------------------------------
- // TScrap
- // Handles the scrap/clipboard.
-
- class TScrap
- {
- private:
- short fLastScrapCount; // Last scrapCount from InfoScrap.
- TDocClip* fDocClip; // Collaborator document.
- protected:
- public:
- TScrap();
- virtual void DoIdle();
- virtual void Draw(WindowPtr pWin);
- virtual void Put(Handle hToScrap);
- virtual void SetDoc(TDocClip* doc) {this->fDocClip=doc;}
- virtual Boolean Update();
- };
-
- // ------------------------------------------------------------------------
- // TAStart
- // Handles automatic startup and termination.
-
- class TAStart
- {
- private:
- short fGuideHasRun; // true if guide was provided.
- short fQuitAfterGuide; // true if app quits after guide done.
- AGRefNum fGuideRefNum; // Ref num for open database.
- FSSpec fPresetGuideFile; // Guide database from autostart resource
- protected:
- public:
- TAStart();
- virtual AGErr AttemptAutoStart();
- virtual void GetFile(FSSpec& guideFile) {guideFile=this->fPresetGuideFile;}
- virtual void GetRefNum(AGRefNum& refNum) {refNum = this->fGuideRefNum;}
- virtual OSErr Init();
- virtual Boolean ShouldWeQuit();
- };
-
- // ------------------------------------------------------------------------
- // Derive our application class from the application base class.
- // Add the About dialog, initialization, and a menu.
-
- class TApp : public TApplication
- {
- enum
- {
- kSleepValue = 10
- };
- private:
- TDocClip* fDocClip; // Clipboard document window
- TScrap* fScrap; // Scrap object.
- // New functions.
- virtual void DoDBInfoDialog(FSSpec& guideFileSpec);
- protected:
- short fMenuBarID; // Set in the Init function.
- AGRefNum fGuideRefNum; // The Apple Guide refnum.
- FSSpec fPresetGuideFile; // Preset guide database
- TAStart* fAutoStart; // AutoStart object.
- // New functions.
- virtual void CloseDoc(TDoc* docToClose);
- virtual void CopyToClipboard();
- virtual void DoAbout();
- virtual void DoHighLevelEvent();
- virtual void GetVersion(Str255 versStr);
- virtual OSErr OpenGuideDatabase(FSSpec *pFileSpec);
- virtual OSErr SelectFile(FSSpec& selectedFile);
- virtual void SetDoc();
- virtual void ShowClipboard();
- virtual OSErr Start();
- // Overrides.
- override void AdjustCursor() {SetCursor( &qd.arrow );}
- override void AdjustMenus();
- override void DoGoAway();
- override void DoIdle();
- override void DoMenuCommand(short menuID, short menuItem);
- override unsigned long SleepVal() { return kSleepValue; } // Sleep duration in WNE
- public:
- // New functions.
- virtual void GetRefNum(AGRefNum& refNum) { refNum = this->fGuideRefNum; }
- virtual void GetFile(FSSpec& fileSpec) { fileSpec = this->fPresetGuideFile; }
- static pascal OSErr HandleAECore(AppleEvent& theAppleEvent,
- AppleEvent& theReply,
- long refCon);
- virtual OSErr Init();
- virtual void Quit();
- virtual OSErr SendEventToSelf(AEEventID theEvent);
- virtual void SetRefNum(AGRefNum refNum) { this->fGuideRefNum = refNum; }
- // Overrides
- override void EventLoop();
- };
-
- #endif __UAPP__