BigEasy2.hBigEasy2.h
/*
File: BigEasy2.h
Contains: xxx put contents here xxx
Written by: xxx put writers here xxx
Copyright: © 1990-1992, 1994, 1996 by Apple Computer, Inc., all rights reserved.
This file is used in these builds: Warhol
Change History (most recent first):
<25> 4/8/96 dvb
<24+> Help Menu additions
<24> 17-8-94 dvb GX Printing
<23> 9-8-94 dvb
<22> 27-7-94 dvb InstallQuitItem
<21> 5/27/94 dvb .
<18> 1/7/93 dvb Built in window-copy command.
<17> 4/13/92 dvb Pass activate/deactivates to back windows.
<16> 3/22/92 dvb QuitApp message.
<15> 1/20/92 dvb Cool new features. Easier AppleEvents.
<14> 12/19/91 JB removing think 4.0 code
<13> 8/25/91 JB Changed #def Ticks to #def GetTicks
<12> 6/3/91 dvb Just hackin.
<11> 5/28/91 JB Added prototypes for BigEasy Proc Ptrs
<10> 5/25/91 JB OLD_THINK_C && TOOLBOX_LINKED
<9> 5/23/91 PH functions..
<8> 5/5/91 dvb App Open Events
<7> 4/25/91 JB Changing to new THINK C interface files
<6> 4/19/91 dvb Add WindowEventProc
<5> 2/24/91 dvb Various cool new calls
<4> 2/18/91 dvb Miscellaneous Updates
<3> 2/6/91 JB Made nil #define conditional
<2> 11/17/90 dvb Remove subport machinery
<4> 9/19/90 dvb Fix graphics math collision
<3> 9/10/90 dvb Take Zoomproc out of InstallWindow call.
<2> 7/31/90 dvb Modify inclusion hierarchy
To Do:
*/
/* file: BigEasy2.h
*
* Started 4 July 1989, more or less.
*
* A set of routines to allow the quick development
* of simple Macintosh applications.
*
*/
#ifndef BigEasyIncludes
#define BigEasyIncludes
#include
#include
#include
#include
/************************************
* Simple things
************************************/
#ifdef __cplusplus
extern "C" {
#endif
typedef void (*beUpdateProcPtr)(short windowNum);
typedef void (*beClickProcPtr)(short windowNum, Point p, short modifiers);
typedef void (*beKeyProcPtr)(short windowNum, short key, short keycode, short modifiers);
typedef void (*beGoAwayProcPtr)(short windowNum);
typedef void (*beActivateProcPtr)(short windowNum);
typedef void (*beDeactivateProcPtr)(short windowNum);
typedef void (*beIdleProcPtr)(short windowNum, Boolean upfront);
typedef void (*beResizeProcPtr)(short windowNum, Point *oldSize, Point *newSize, short modifiers);
typedef void (*beGrowWindowProcPtr)(long *newSize, short windowNum,
WindowPtr w, Point where, Rect *resizeLim);
typedef void (*beEventProcPtr)(short windowNum, EventRecord *event, Boolean *tookEvent);
typedef void (*beMoveWindowProcPtr)(short windowNum);
typedef void (*beMenuProcPtr)(short windowNum, short menuItem, short menuRef);
typedef void (*beAboutProcPtr)(void);
typedef void (*beWNumCallProcPtr)(short windowNum);
typedef void (*beOpenAppProcPtr)(void);
typedef void (*beOpenDocProcPtr)(FSSpec *file);
typedef void (*beQuitAppProcPtr)(void);
#ifdef __cplusplus
}
#endif
#ifndef nil
#define nil (0L)
#endif
#define SwapShort(a,b) {short temp; temp = a; a = b; b = temp;}
/************************************
* Types
************************************/
/*
* Window Flags (as passed to InstallWindow)
*/
typedef enum
{
wGrowable = 1,
wZoomable = 2,
wCoolDrag = 4, /* Set to do the really cool live-dragwindow trick */
wCopyDraw = 8, /* Enables Copy edit item, and uses DrawDoc to do it. */
wPrintDraw = 16 /* Enables Print & Page Setup via GX */
};
/*
* Built in menu ref-numbers
*/
typedef enum
{
mUndo = 30000,
mCut,
mCopy,
mPaste,
mClear,
mEditMenu, /* reference for whole menu */
mPageSetup,
mPrint,
mHelpMenu
};
/************************************
* BigEasy2 Public Global Variables
************************************/
#ifdef BigEasy2
#define VAR
#else
#define VAR extern
#endif
VAR Boolean gQuitApp;
VAR Boolean gMenuNeedsCmdKey;
VAR Boolean gStaggerWindows;
VAR Boolean gWindowsInView;
VAR short gLastModifiers;
VAR long gLastEventTime;
VAR EventRecord gLastEvent;
VAR long gSystemVersion; /* for app to read */
VAR Boolean gHasAppleEvents; /* for app interest */
VAR Boolean gHasColor; /* for app interest */
VAR Boolean gHasGX; /* for everyone */
VAR Rect gBigRect;
VAR short gStagStepX;
VAR short gStagStepY;
VAR short AppResFile;
VAR short gSleep;
#ifndef __QUICKDRAW__
#include
#endif
#ifndef __WINDOWS__
#include
#endif
#undef VAR
/************************************
* Major BigEasy2 Routines
************************************/
#ifdef __cplusplus
extern "C" {
#endif
WindowPtr InstallWindow(short iNum,StringPtr iTitle,Rect *iRect,short iType,short newFlags,
beUpdateProcPtr iUpdate,beClickProcPtr iClick,beKeyProcPtr iKey,beGoAwayProcPtr iGoAway,
beActivateProcPtr iActivate,beDeactivateProcPtr iDeactivate,beIdleProcPtr iIdle);
void UninstallWindow(short iNum);
Boolean HandleUpdateEvent(EventRecord *er);
Boolean HandleActivateEvent(EventRecord *er);
void Show(short inum);
void Hide(short iNum);
MenuHandle InstallMenu(StringPtr s,beMenuProcPtr action,short ref);
void InstallMenuItem(StringPtr s,beMenuProcPtr action,short ref);
void InstallQuitItem(beMenuProcPtr action,short ref);
void InstallPrintItems(beMenuProcPtr pageSetup,beMenuProcPtr print);
void RemoveMenuItem(short ref);
void SetMenuItem(short ref,char enable,char isMarked,char mark,StringPtr s);
void EnDisEdits(short Eundo,short Ecut,short Ecopy,short Epaste,short Eclear);
void InstallEditMenu(beWNumCallProcPtr,beWNumCallProcPtr,beWNumCallProcPtr,beWNumCallProcPtr,beWNumCallProcPtr);
MenuHandle SetCurrentMenu(short ref);
long DisableAllMenus(void);
void EnableAllMenus(long saveMenus);
void SetMasterIdle(beAboutProcPtr);
void IdleWindow(short n);
void SetMasterOpenAppProc(beOpenAppProcPtr);
void SetMasterOpenDocProc(beOpenDocProcPtr);
void SetMasterQuitAppProc(beQuitAppProcPtr);
void SetWindowResizeProc(short n,beResizeProcPtr resizeProc);
void SetWindowGrowWindowProc(short n,beGrowWindowProcPtr growWindowProc);
void SetWindowZoomProc(short n,beWNumCallProcPtr iZoom);
void SetWindowMoveProc(short n,beMoveWindowProcPtr moveWindowProc);
void SetWindowEventProc(short n, beEventProcPtr iEvent);
long GetWindowFlags(short n);
void SetWindowFlags(short n,long flags);
void GetWindowRect(short n,Rect *r);
WindowPtr GetWindowPtr(short n);
Boolean GetWindowVisible(short n);
void Replace1Resource(Handle,long type,short id);
void SaveWindowPosition(short n);
void ForgetWindowPosition(short n);
void SetAbout(StringPtr progName,StringPtr s0,beAboutProcPtr aboutProc);
void GoWatch(void);
void GoArrow(void);
void GoCursor(short c);
void FailNil(long);
void FailOSErr(long);
/************************************
* Client Provided BigEasy2 Routines
************************************/
void Bootstrap(void);
void Hatstrap(void);
#ifdef __cplusplus
}
#endif
/************************************
* Minor BigEasy2 Hacks
************************************/
#ifndef BigEasy2
#define FailNil(x) FailNil((long)(x)) /* Simulate a typeless call */
#define FailOSErr(x) FailOSErr((long)(x)) /* Simulate a typeless call */
#endif
#define GetTicks() (*(long *)Ticks)
#endif
PM.5/21/96 - 4:04.PM