home *** CD-ROM | disk | FTP | other *** search
- /* Kevo -- a prototype-based object-oriented language */
- /* (c) Antero Taivalsaari 1991-1993 */
- /* Some parts (c) Antero Taivalsaari 1986-1988 */
- /* portGlobal.h: Non-portable global definitions and data areas */
-
-
- /* Select the correct machine platform here */
- #define MAC
- /* #define UNIX */
-
-
- /* Include non-portable header files */
-
- #include "portWindows.h"
- #include "portBrowser.h"
- #include "portEdit.h"
- #include "portEvents.h"
- #include "portPrim.h"
-
-
- #ifdef UNIX
- /* System-dependent lowest user-readable memory location (SPARC=8192) */
- /* Needed only for '.rs' */
- /* Not needed in Mac */
- #define LOWMEMLIMIT 8192 */
- #endif
-
- /* These macros returns the lowest and highest memory addresses of the */
- /* application heap. The Kevo system should not normally access memory */
- /* addresses beyond these limits. */
-
- /* This is the same as Mac Toolbox macro ApplicationZone() */
- #define lowMemLimit (*(int*)0x02AA)
-
- /* This is the same as Mac Toolbox macro GetApplLimit() */
- #define highMemLimit (*(int*)0x0130)
-
- /* This address contains the highest addressable memory location in the Mac */
- /* References above this location may cause a bus error */
- /* The same as Mac Toolbox routine TopMem() */
- #define HIGHMEMLIMIT (*(int**)0x0108)
-
- /* Safe memory fetch operation. Masks out bus error arising from */
- /* references to illegal memory locations */
- int maskedFetch();
-
-
- /* Dialogs */
-
- #define ABOUT_DIALOG 1
-
-
- /* Standard window size */
-
- #define STANDARDWINDOWWIDTH 500
- #define STANDARDWINDOWHEIGHT 300
-
-
- /* The scroll bar width is always 16 in the Mac */
- #define SCROLLBARWIDTH 16
-
-
- /* Window kinds */
-
- /* PlainWKind: no TE facilities; can be used for graphics */
- /* TEWKind: Mac TextEdit facilities; supports both text and graphics (text better) */
- /* BrowserWKind: Normal browser window */
- /* CloneBrWKind: Browser window for displaying clone families */
-
- #define UnknownWKind 0
- #define PlainWKind 1
- #define TEWKind 2
- #define BrowserWKind 3
- #define CloneBrWKind 4
-
-
- /* Event loop timing variables */
- extern int nextTime; /* Stores tick count upon entering 'EventLoop()' */
- extern int eventDelay; /* How many ticks must go before we can invoke EventLoop again */
- extern int eventSlice; /* How much time do we give to other Mac tasks */
-
-
- /* Stores the last time when the event loop was invoked.
- Used for avoiding the user interface from getting stuck.
- */
- extern int lastEventTime;
-
-
- /* These variables are used in menus to set certain modes on/off (see 'doFlags()') */
- extern int cooperativeFlag;
- extern int traceFlag;
-
-
- /*
- These variables designate the currently active task, and TE (TextEdit)
- on the screen.
- */
- extern TASK** theTask;
- extern TEHandle theText;
-
-
- /* Latest event noticed by Macintosh */
- extern EventRecord theEvent;
-
-
- /* Standard window size rectangle */
- extern Rect standardRect;
-
-
- /* Window dragging and growing limit */
- extern Rect limitRect;
-
-
- /* User interface modes */
- extern int GUIMode;
-
- #define GUIShell 1
- #define GUIBrowser 2
-
-
- /* Search modes for the browser */
- #define ALL 1
- #define DATA 2
- #define BEHAVIOR 3
-
-
- /* Browser variables */
- extern TASK** browserTask; /* The browser task */
- extern int browserCount; /* How many browsers open currently */
- extern WindowPtr LastBrowser; /* The latest opened browser in the system */
-
-
- /* Icon list management variables */
- extern int MaskedPairs; /* How many pairs is there in the current object */
- extern int AnonymousSlots; /* How many anonymous (array) slots - " - */
- extern int CellsInTotal; /* How many cells/icons in total in current browser */
-
-
- /* Icon list management constants */
-
- #define ICONCELLHEIGHT 18
- #define ICONLINELENGTH 480
-
-
- /* Information for CUTting, COPYing, and PASTEin pairs from one browser to another */
- extern LIST* ClipList; /* Stores the pairs */
- extern OBJECT* ClipObject; /* Stores the owner of the pairs */
- extern CONTEXT* ClipContext; /* Original (unmodified) context of the source object */
- extern int ClipMode; /* Clipping mode (see below) */
-
-
- /* Modification menu flag fields */
- extern int whoToModify; /* Editing only one object or the whole clone family? */
-
-
- /* Clipping modes */
- #define CLIP_CUT 1
- #define CLIP_COPY 2
-
-
- /* The global menus */
- extern MenuHandle appleMenu;
- extern MenuHandle fileMenu;
- extern MenuHandle windowMenu;
-
-
- /* Shell-specific menus */
- extern MenuHandle edit1Menu;
- extern MenuHandle tasksMenu;
- extern MenuHandle multitaskMenu;
- extern MenuHandle debugMenu;
-
-
- /* Browser-specific menus */
- extern MenuHandle edit2Menu;
- extern MenuHandle viewMenu;
- extern MenuHandle toolsMenu;
-
-
- /* Menu definitions (see the resource file) */
-
- #define APPLE_MENU 1
- #define FILE_MENU 2
- #define EDIT1_MENU 3
-
- #define TASKS_MENU 5
- #define MULTITASK_MENU 6
- #define DEBUG_MENU 7
-
- #define EDIT2_MENU 13
- #define VIEW_MENU 14
- #define TOOLS_MENU 15
-
- #define WINDOW_MENU 100
-
-
- /* Menuitem definitions (see the resource file) */
-
- #define NEW_TASK_MENUITEM 1
- #define NEW_SCRIPT_MENUITEM 2
- #define SAVE_IMAGE_MENUITEM 4
- #define QUIT_MENUITEM 6
-
- #define BROWSE_MENUITEM 1
- #define UNDO_MENUITEM 1
- #define CUT_MENUITEM 3
- #define COPY_MENUITEM 4
- #define PASTE_MENUITEM 5
- #define CLEAR_MENUITEM 6
- #define SELECT_ALL_MENUITEM 8
- #define MKDIR_MENUITEM 10
- #define ADD_VAR_MENUITEM 11
- #define ADD_SHAREDVAR_MENUITEM 12
- #define ADD_METHOD_MENUITEM 13
- #define HIDE_SHOW_MENUITEM 15
- #define THIS_ONLY_MENUITEM 17
- #define WHOLE_FAMILY_MENUITEM 18
- #define DERIVATIVES_MENUITEM 19
-
- #define CANCEL_MENUITEM 1
- #define SUSPEND_MENUITEM 3
- #define ACTIVATE_MENUITEM 4
- #define LOWER_PR_MENUITEM 6
- #define HIGHER_PR_MENUITEM 7
-
- #define PREEMPTIVE_MENUITEM 1
- #define COOPERATIVE_MENUITEM 2
- #define MON_MOFF_MENUITEM 4
- #define RESET_MENUITEM 6
-
- #define NOTRACE_MENUITEM 1
- #define TRACE_MENUITEM 2
- #define FULLTRACE_MENUITEM 3
- #define SET_BREAK_MENUITEM 5
- #define REMOVE_BREAK_MENUITEM 6
- #define RESUME_MENUITEM 7
-
- #define VIEW_OPER_MENUITEM 1
- #define VIEW_DATA_MENUITEM 2
- #define VIEW_BOTH_MENUITEM 3
- #define ONE_COLUMN_MENUITEM 5
- #define FOUR_COLUMNS_MENUITEM 6
- #define SHOW_ROOT_MENUITEM 8
- #define SHOW_CLONEF_MENUITEM 9
- #define SHOW_PARENTF_MENUITEM 10
- #define SHOW_CHILDF_MENUITEM 11
- #define UPDATE_MENUITEM 13
-
- #define CLONE_MENUITEM 1
- #define NEW_MENUITEM 2
- #define SHARE_MENUITEM 3
- #define ASSIGN_MENUITEM 5
- #define OPEN_SHELL_MENUITEM 6
-
- #define HIDE_WINDOW_MENUITEM 1
- #define MOVE_BEHIND_MENUITEM 2
- #define CLOSE_BROWSERS_MENUITEM 4
-
-