mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-24 17:32:59 +00:00
304 lines
10 KiB
C
304 lines
10 KiB
C
/*
|
||
File: MFPrivate.h
|
||
|
||
Contains: Subset of Private Process Mgr routines needed in C.
|
||
|
||
Written by: David Harrison
|
||
|
||
Copyright: © 1990, 1992 by Apple Computer, Inc., all rights reserved.
|
||
|
||
Change History (most recent first):
|
||
|
||
<25> 3/30/92 DTY #1025416,<DDG>: Define Gestalt selector for Skia. We’re putting
|
||
it here because there’s no GestaltPrivate.h, and Process Manager
|
||
is the only thing in the System that’s using this selector right
|
||
now.
|
||
<24> 3/25/92 DTY #1024114,<pvh>: Add inline for PEntryFromProcessSerialNumber
|
||
<23> 1/14/92 YK Removed obsolete constant for the TSM.
|
||
<22> 1/11/92 YK Two more calls for TSM. NewTSMLayerOwner to get the event for
|
||
the floating window. RouteEventToSWM to do the bottom line
|
||
input.
|
||
<21> 1/10/92 YK Added definitions for supporting the Text Services Manager.
|
||
<20> 2/21/91 DFH dba,#82504, #82681, #83168, #83182, #83207: Added
|
||
SysZoneFloatSizes.
|
||
<19> 1/28/91 DFH JSM,#81425:Add EnableSwitching and DisableSwitching calls.
|
||
<18> 1/21/91 DFH (KSM) Removed Process Menu IDs, since they are now in
|
||
MenuMgrPriv.h, as the Application Menu IDs.
|
||
<17> 12/20/90 DFH (dba) Added GetNextHighLevelEvent.
|
||
<16> 12/14/90 DFH Added SynchIdleTime.
|
||
<15> 11/4/90 dba use (void) instead of (), also add some const to parameters
|
||
<14> 9/10/90 DFH Changed iconHelpString to itemHelpString (wow!).
|
||
<13> 7/25/90 DFH Added InitApplication, CleanupApplication, and SndAppDead.
|
||
<12> 7/19/90 DFH Removed iconColor from AddAppleMenuItem.
|
||
<11> 6/8/90 DFH Added ProcessMenuResourceID and ProcessMenuID.
|
||
<10> 5/20/90 ngk Used VNProcPtr in volume Notification procs.
|
||
<9> 5/7/90 DFH Get/SetProcessTrapAddress use TrapType.
|
||
<8> 4/16/90 DFH Reorganized the file to group the call glue with the
|
||
structures. Now uses unsigned fields whenever possible.
|
||
Fixed AddAppleMenuItem to use unsigned short for itemStyle
|
||
(since Pascal and C don't agree on how to pass a byte).
|
||
<7> 4/11/90 KSM Added auxMenuHelpString to AuxMenuItemRec.
|
||
<6> 3/20/90 DFH Added iconColor and itemHelpString, and changed itemStyle to short
|
||
<5> 2/8/90 DFH Fixed this list (had comment ender on BEGIN EASE line).
|
||
<4> 2/8/90 DFH Copied projector revision comments to this file.
|
||
<3> 2/5/90 DFH Added enteredDebugger.
|
||
<2> 1/3/90 DFH Added itemStyle to AddAppleMenuItem. Reversed order of GetProcessFromLayer parms.
|
||
To Do:
|
||
*/
|
||
|
||
/***********************************************************
|
||
** BEGIN EASE MODIFICATION HISTORY
|
||
** 1.3 DFH 12/07/1989 Fixed up C++ friendship
|
||
** 1.2 CCH 12/07/1989 Made it C++ friendly
|
||
** 1.1 ngk 12/01/1989 Added System Debugger interfaces
|
||
** 1.0 CCH 10/16/1989 Adding to EASE.
|
||
** END EASE MODIFICATION HISTORY
|
||
************************************************************/
|
||
|
||
|
||
#ifndef __MFPRIVATE__
|
||
#define __MFPRIVATE__
|
||
|
||
#ifndef __TYPES__
|
||
#include <Types.h>
|
||
#endif
|
||
|
||
#ifndef __PACKAGES__
|
||
#include <Packages.h>
|
||
#endif
|
||
|
||
#ifndef __MENUS__
|
||
#include <Menus.h>
|
||
#endif
|
||
|
||
#ifndef __WINDOWS__
|
||
#include <Windows.h>
|
||
#endif
|
||
|
||
#ifndef __LAYERS__
|
||
#include <Layers.h>
|
||
#endif
|
||
|
||
#ifndef __PROCESSES__
|
||
#include <Processes.h>
|
||
#endif
|
||
|
||
/*************************************************************************
|
||
* Other junk
|
||
*************************************************************************/
|
||
|
||
#define gestaltGraphicsVersion 'grfx'
|
||
|
||
/*************************************************************************
|
||
* Application Menu.
|
||
*************************************************************************/
|
||
|
||
/* Item numbers */
|
||
#define HIDE_APP_ITEM (1)
|
||
#define HIDE_OTHERS_ITEM (2)
|
||
#define SHOW_ALL_ITEM (3)
|
||
#define APPLICATION_MENU_COUNT (4)
|
||
|
||
/*************************************************************************
|
||
* Auxiliary menu item data.
|
||
*************************************************************************/
|
||
|
||
/* Information record returned by GetAuxMenuItem */
|
||
struct AuxMenuItemRec {
|
||
Handle auxMenuIconHandle;
|
||
unsigned short auxMenuIconSize;
|
||
unsigned short auxMenuIconGray;
|
||
unsigned short auxMenuScript;
|
||
StringHandle auxMenuHelpString;
|
||
};
|
||
|
||
#ifndef __cplusplus
|
||
typedef struct AuxMenuItemRec AuxMenuItemRec;
|
||
#endif __cplusplus
|
||
typedef AuxMenuItemRec *AuxMenuItemRecPtr;
|
||
|
||
pascal OSErr GetAuxMenuItem(MenuHandle theMenu, unsigned char *pItemEntry, AuxMenuItemRecPtr theStorage, unsigned long recLength)
|
||
= {0x3F3C,0x003E,0xA88F};
|
||
|
||
/*************************************************************************
|
||
* Volume notification interface.
|
||
*************************************************************************/
|
||
|
||
/* Typedef and values for the VNBNotice field. */
|
||
typedef unsigned short VolumeNotice;
|
||
#define VNMounted (0)
|
||
#define VNAboutToGoOffline (1)
|
||
#define VNOffline (2)
|
||
#define VNAboutToUnmount (3)
|
||
#define VNUnmount (4)
|
||
|
||
/* Definition of the volume notification parameter block */
|
||
struct VolumeNoticeBlk {
|
||
unsigned long VNBLength;
|
||
VolumeNotice VNBNotice;
|
||
unsigned short VNBVolume;
|
||
unsigned long VNBRefCon;
|
||
OSErr VNBResult;
|
||
};
|
||
|
||
#ifndef __cplusplus
|
||
typedef struct VolumeNoticeBlk VolumeNoticeBlk;
|
||
#endif __cplusplus
|
||
typedef VolumeNoticeBlk *VolumeNoticeBlkPtr;
|
||
|
||
/* Prototype of the notification routine. */
|
||
typedef pascal OSErr (*VNProcPtr)(VolumeNoticeBlkPtr pParams);
|
||
|
||
pascal OSErr RequestVolumeNotification(VNProcPtr pRoutine, unsigned long refCon)
|
||
= {0x3F3C,0x0042,0xA88F};
|
||
|
||
pascal OSErr DeclineVolumeNotification(VNProcPtr pRoutine, unsigned long refCon)
|
||
= {0x3F3C,0x0043,0xA88F};
|
||
|
||
/*************************************************************************
|
||
* Shell support
|
||
*************************************************************************/
|
||
|
||
/* AppleEvent sent to app launched from FINDERNAME at boot time */
|
||
#define aeStartup 'boot'
|
||
|
||
/* AppleEvent and routines to customize the Apple menu */
|
||
#define aeAppleMenuItemSelect 'amis'
|
||
#define aeAppleMenuItemKeyword 'amis'
|
||
|
||
pascal OSErr AddAppleMenuItem(StringPtr itemName, ScriptCode itemScript, unsigned short itemStyle, Handle itemIcon, unsigned short itemMark, StringPtr itemHelpString, unsigned long itemRefCon)
|
||
= {0x3F3C,0x0031,0xA88F};
|
||
|
||
#define DELETE_ALL_ITEMS (0)
|
||
pascal OSErr DeleteAppleMenuItem(unsigned long itemRefCon)
|
||
= {0x3F3C,0x0032,0xA88F};
|
||
|
||
/* Routine to allocate a layer to implement the desktop */
|
||
pascal OSErr NewDesktopLayerOwner(LayerPtr *ppNewLayer)
|
||
= {0x3F3C,0x0014,0xA88F};
|
||
|
||
// Routine to get a PEntry from a Process Serial Number
|
||
pascal Ptr PEntryFromProcessSerialNumber(ProcessSerialNumberPtr pPSN)
|
||
= {0x3F3C,0x004F,0xA88F};
|
||
|
||
/*************************************************************************
|
||
* System Debugger Support
|
||
*************************************************************************/
|
||
|
||
/* System error generated when user types the debugger key combination. */
|
||
#define enterDebugger (110)
|
||
|
||
/* Identifier of AppleEvent notifying debugger that debuggee now not frontmost */
|
||
#define aeDebuggerNotify 'dbrk'
|
||
|
||
pascal OSErr RegisterDebugger(const ProcessSerialNumber *, Ptr entryRoutine, Ptr exitRoutine, Ptr toAppRoutine, unsigned short debugKey)
|
||
= {0x3F3C,0x0030,0xA88F};
|
||
|
||
pascal OSErr GetProcessTrapAddress(const ProcessSerialNumber *, Ptr *trapAddr, TrapType trapType, unsigned short trapNum)
|
||
= {0x3F3C,0x002C,0xA88F};
|
||
|
||
pascal OSErr SetProcessTrapAddress(const ProcessSerialNumber *, Ptr trapAddr, TrapType trapType, unsigned short trapNum)
|
||
= {0x3F3C,0x002D,0xA88F};
|
||
|
||
pascal OSErr ReadWriteProcessMemory(const ProcessSerialNumber *, Ptr procMemPtr, unsigned long byteCount, Ptr callerMemPtr, Boolean doRead)
|
||
= {0x3F3C,0x002E,0xA88F};
|
||
|
||
pascal OSErr ReadWriteProcessFPURegs(const ProcessSerialNumber *, Ptr callerMemPtr, Boolean doRead)
|
||
= {0x3F3C,0x002F,0xA88F};
|
||
|
||
pascal OSErr KillProcess(const ProcessSerialNumber *)
|
||
= {0x3F3C,0x0044,0xA88F};
|
||
|
||
/*************************************************************************
|
||
* Support for (as yet) unpublished Layer Manager.
|
||
*************************************************************************/
|
||
|
||
pascal OSErr GetProcessFromLayer(ProcessSerialNumberPtr, LayerPtr)
|
||
= {0x3F3C,0x0039,0xA88F};
|
||
|
||
/*************************************************************************
|
||
* Support for application resource tracking.
|
||
*************************************************************************/
|
||
|
||
pascal void InitApplication(void)
|
||
= {0xAAFA};
|
||
|
||
pascal void SynchIdleTime(void)
|
||
= {0xABF7};
|
||
|
||
pascal void CleanupApplication(void)
|
||
= {0xAAFB};
|
||
|
||
pascal void SndAppDead(void)
|
||
= {0xA0B8};
|
||
|
||
pascal OSErr GetSystemClientProcess(ProcessSerialNumberPtr)
|
||
= {0x3F3C,0x003F,0xA88F};
|
||
|
||
pascal OSErr BeginSystemMode(void)
|
||
= {0x3F3C,0x0040,0xA88F};
|
||
|
||
pascal OSErr EndSystemMode(void)
|
||
= {0x3F3C,0x0041,0xA88F};
|
||
|
||
/*************************************************************************
|
||
* Support for high level event checking from the system.
|
||
*************************************************************************/
|
||
|
||
pascal Boolean GetNextHighLevelEvent(short, EventRecord *, Boolean)
|
||
= {0x3F3C,0x0012,0xA88F};
|
||
|
||
/*************************************************************************
|
||
* Scheduler control.
|
||
*************************************************************************/
|
||
|
||
pascal void
|
||
DisableSwitching(void)
|
||
= {0x3F3C,0x0019,0xA88F};
|
||
|
||
pascal void
|
||
EnableSwitching(void)
|
||
= {0x3F3C,0x001A,0xA88F};
|
||
|
||
/*************************************************************************
|
||
* Bonus Temporary Memory vs System Heap information.
|
||
*************************************************************************/
|
||
|
||
pascal OSErr
|
||
SysZoneFloatSizes(unsigned long *hiSysRoom, unsigned long *lowTempRoom)
|
||
= {0x3F3C,0x0047,0xA88F};
|
||
|
||
/*************************************************************************
|
||
* Support for the Text Services Manager.
|
||
*************************************************************************/
|
||
|
||
pascal OSErr
|
||
NewFloatLayer(LayerPtr *layer)
|
||
= {0x3F3C,0x0048,0xA88F};
|
||
|
||
pascal OSErr
|
||
DisposeFloatLayer(LayerPtr *layer)
|
||
= {0x3F3C,0x0049,0xA88F};
|
||
|
||
pascal OSErr
|
||
PostFakeKeyDown(EventRecord *theEvent)
|
||
= {0x3F3C,0x004A,0xA88F};
|
||
|
||
pascal OSErr
|
||
PostText(Ptr textPtr,short len)
|
||
= {0x3F3C,0x004B,0xA88F};
|
||
|
||
pascal Boolean
|
||
InlineAware( const ProcessSerialNumber *pPSN, Boolean aware)
|
||
= {0x3F3C,0x004C,0xA88F};
|
||
|
||
pascal OSErr
|
||
NewTSMLayerOwner( const ProcessSerialNumber *pPSN)
|
||
= {0x3F3C,0x004D,0xA88F};
|
||
|
||
pascal Boolean
|
||
RouteEventToSWM( Boolean doRoute)
|
||
= {0x3F3C,0x004E,0xA88F};
|
||
|
||
#endif
|