Sources/MSGlobals.h

// MSGlobals.h
//
// Original version by Jon Lansdell and Nigel Humphreys.
// 4.0 and 3.1 updates by Greg Sutton.
// ©Apple Computer Inc 1996, all rights reserved.
 
/*
    Changes for 3.1
    
    12-Oct-95   : CW : Added gHasDragManager flag, gDragTrackingHandlerUPP and
                       gDragReceiveHandlerUPP Drag Manager UPPs (all globals).
    1-Nov-95    : DS : Made Changes for GX Printing.
 
    Changes for 4.0
    
    29-Feb-96   : GS : Added struct AppRec.
    29-Feb-96   : GS : Added OSAID theScript to DocRec.
    29-Feb-96   : GS : Added struct MenuScriptRecord.
    29-Feb-96   : GS : Added AS Subroutine menu.
*/
 
#ifndef __MSGLOBALS__
#define __MSGLOBALS__
 
#include <Types.h>
#include <Quickdraw.h>
#include <Menus.h>
#include <Editions.h>
#include <Printing.h>
#include <Drag.h>
#include <GXPrinting.h>
#include <OSA.h>
 
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=mac68k
#endif
 
#define  MenuScripterAppSig 'SVEd'
 
#define  WindowID     128
#define  ErrorAlert   256
#define  AdviseAlert  257
 
 
#define     kRevertDialog               1002
//#define       kStdOkItemIndex         1
//#define       kStdCancelItemIndex     2
 
 
#define     kSaveDontsaveDialog         1003
//#define       kStdOkItemIndex         1
//#define       kStdCancelItemIndex     2
#define         kDontSaveItemIndex      3
 
 
#define     kMiscStrings                1000
#define         kQuittingIndex          1
#define         kClosingindex           2
 
 
//  Menu Resource IDs
  
#define  appleID        128
#define  fileID         129
#define  editID         130
#define  mfontID        131
#define  sizeID         132
#define  styleID        133
#define  mscriptID      134
#define  subroutineID   135
  
#define  kLastID        subroutineID
 
 
//  Items in Apple Menu
  
#define  aboutItem  1
  
 
//  Items in File Menu
  
#define  fmNew               1
#define  fmOpen              2
#define  fmClose             4
#define  fmSave              5
#define  fmSaveAs            6
#define  fmRevert            7
#define  fmPageSetUp         9
#define  fmPrint             10
#define  fmPrintOne          11
#define  fmQuit              13
 
#define fmNoGXPrint 10
#define fmNoGXQuit  12
  
 
//  Items in Edit Menu
 
#define  undoCommand             1
#define  cutCommand              3
#define  copyCommand             4
#define  pasteCommand            5
#define  clearCommand            6
#define  selectAllCommand        7
 
 
//  Items in Style Menu
 
#define  cPlain             1
#define  cBold              2
#define  cItalic            3
#define  cUnderline         4
#define  cOutline           5
#define  cShadow            6
#define  cCondense          7
#define  cExtend            8
 
 
//  Items in Script Menu
 
#define  cCompile           1
#define  cExecute           2
#define  cResultWindow      3 
 
 
// Items in AS Subroutine Menu
 
#define  cScript1           1
#define  cScript2           2
#define  cScript3           3
#define  cScript4           4
 
 
//  Entry of Menu in myMenus
 
#define  appleM         0
#define  fileM          1
#define  editM          2
#define  fontM          3
#define  sizeM          4
#define  styleM         5
#define  scriptM        6
#define  subroutineM    7
#define  kLastMenu      subroutineM
 
 
//  Save Changes Dialog Items
  
#define  aaSave             1
#define  aaDiscard          2
#define  aaCancel           3
 
#define  kSuspendResumeMessage       1      // high byte of suspend/resume event message
#define  kResumeMask                 1      // bit of message field for resume vs. suspend
#define  kMouseMovedMessage       0xFA      // high byte of mouse-moved event message
#define  kNoEvents                   0      // no events mask
 
struct AppRec
{
    Str63           theName;
    FSSpec          theSpec;
    OSAID           theScriptID;
};
typedef struct AppRec AppRec;
 
#define kMaxTELength    32000
#define kMaxPages       1000                // Assumes pages > 32 pixels high
 
#define kOrdinaryWind 0
#define kResultsWind  1
 
struct DocRec
{
    short           windowType;
    TEHandle        theText;
    ControlHandle   vScrollBar;
    ControlHandle   hScrollBar;
    WindowPtr       theWindow;
    Boolean         dirty;
    short           refNum;
    short           theFont;
    short           theSize;
    Style           theStyle;
    Str255          theFileName;
    FSSpec          theFSSpec;
    THPrint         thePrintSetup;
    Boolean         everSaved;
    gxJob           documentJob;    // Job for document
    OSAID           theScriptID;
};
typedef struct DocRec DocRec;
typedef DocRec *DPtr;
 
typedef short PageEndsArray[kMaxPages];
 
struct HeaderRec
{
    Str255      theFont;
    short       theSize;
    Style       theStyle;
    short       theLength;
    short       lastID;     // Now not used - we'll keep for old files sake
};
typedef struct HeaderRec HeaderRec;
typedef HeaderRec *HPtr, **HHandle;
 
 
struct MenuScriptRecord
{
    OSAID       theScriptID;
    short       theResID;
    Boolean     fChanged;
};
typedef struct MenuScriptRecord MenuScriptRecord;
typedef MenuScriptRecord *MenuScriptRecPtr;
 
 
#ifndef __COMPGLOBALS__
 
extern AppRec       gAppRec;
 
extern short        gNewDocCount;
extern MenuHandle   myMenus[kLastMenu+1];
extern short        gFontMItem;
extern Boolean      gQuitting;
extern Cursor       editCursor;
extern Cursor       waitCursor;
extern Boolean      gInBackground;
  
  // Now for the environment variables set up by Gestalt
  
extern Boolean      gGestaltAvailable;
extern Boolean      gAppleEventsImplemented;
extern Boolean      gAliasManagerImplemented;
extern Boolean      gEditionManagerImplemented;
extern Boolean      gOutlineFontsImplemented;
extern Boolean      gRecordingImplemented;
extern Boolean      gHasDragManager;
extern Boolean      gGXIsPresent;
extern Boolean      gHasProcessManager;
 
extern ControlActionUPP         gHScrollActionUPP;
extern ControlActionUPP         gVScrollActionUPP;
extern UserItemUPP              gDefaultButtonUPP;
extern DragTrackingHandlerUPP   gDragTrackingHandlerUPP;
extern DragReceiveHandlerUPP    gDragReceiveHandlerUPP;
 
#endif
 
OSErr GXPrintingEventOverride(EventRecord *anEvent, Boolean filterEvent);
 
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=reset
#endif
 
#endif