Package Name: gestalt

Return to: Package List


with Types; use Types;

package Gestalt is
   --  
   --  File:       Gestalt.h
   --  
   --  Contains:   Gestalt Interfaces.
   --  
   --  Version:    Technology: System 7.5
   --              Package:    Universal Interfaces 2.1 in ŇMPW LatestÓ on ETO #18
   --  
   --  Copyright:  © 1984-1995 by Apple Computer, Inc.

   --              All rights reserved.
	gestaltAddressingModeAttr : constant OSType := ToRes("addr"); -- addressing mode attributes
	gestalt32BitAddressing    : constant := 0; -- using 32-bit addressing mode
	gestalt32BitSysZone       : constant := 1; -- 32-bit compatible system zone

	gestalt32BitCapable       : constant := 2; -- Machine is 32-bit capable
	gestaltAliasMgrAttr       : constant OSType := ToRes("alis"); -- Alias Mgr Attributes
	gestaltAliasMgrPresent    : constant := 0; -- True if the Alias Mgr is present

	gestaltAliasMgrSupportsRemoteAppletalk : constant := 1; -- True if the Alias Mgr knows about Remote Appletalk

	gestaltAppleTalkVersion   : constant OSType := ToRes("atlk");

	gestaltAUXVersion : constant OSType := ToRes("a/ux");
	gestaltCloseViewAttr      : constant OSType := ToRes("BSDa"); -- CloseView attributes
	gestaltCloseViewEnabled   : constant := 0; -- Closeview enabled (dynamic bit - returns current state)

	gestaltCloseViewDisplayMgrFriendly : constant := 1; -- Closeview compatible with Display Manager (FUTURE)
	gestaltCFMAttr            : constant OSType := ToRes("cfrg"); -- returns information about the Code Fragment Manager

	gestaltCFMPresent         : constant := 0; -- true if the Code Fragment Manager is present
	gestaltColorMatchingAttr  : constant OSType := ToRes("cmta"); -- ColorSync attributes
	gestaltHighLevelMatching  : constant := 0;

	gestaltColorMatchingLibLoaded : constant := 1;
	gestaltColorMatchingVersion : constant OSType := ToRes("cmtc");
	gestaltColorSync10        : constant := 16#0100#; -- 0x0100 & 0x0110 _Gestalt versions for 1.0-1.0.3 product
	gestaltColorSync11        : constant := 16#0110#; -- 0x0100 : constant :== low-level matching only
	gestaltColorSync104       : constant := 16#0104#; -- Real version, by popular demand

	gestaltColorSync105       : constant := 16#0105#;
	gestaltConnMgrAttr        : constant OSType := ToRes("conn"); -- connection mgr attributes
	gestaltConnMgrPresent     : constant := 0;
	gestaltConnMgrCMSearchFix : constant := 1; -- Fix to CMAddSearch?
	gestaltConnMgrErrorString : constant := 2; -- has CMGetErrorString()

	gestaltConnMgrMultiAsyncIO: constant := 3; -- CMNewIOPB, CMDisposeIOPB, CMPBRead, CMPBWrite, CMPBIOKill

	gestaltComponentMgr : constant OSType := ToRes("cpnt");
	gestaltColorPickerVersion : constant OSType := ToRes("cpkr"); -- returns version of ColorPicker

	gestaltColorPicker : constant OSType := ToRes("cpkr");
	gestaltNativeCPUtype      : constant OSType := ToRes("cput"); -- Native CPU type
	gestaltCPU68000           : constant := 1; -- Various 68k CPUs...
	gestaltCPU68010           : constant := 2;
	gestaltCPU68020           : constant := 3;
	gestaltCPU68030           : constant := 4;
	gestaltCPU68040           : constant := 5;
	gestaltCPU601             : constant := 16#101#; -- IBM 601
	gestaltCPU603             : constant := 16#103#;

	gestaltCPU604             : constant := 16#104#;
	gestaltCRMAttr            : constant OSType := ToRes("crm "); -- comm resource mgr attributes
	gestaltCRMPresent         : constant := 0;
	gestaltCRMPersistentFix   : constant := 1; -- fix for persistent tools

	gestaltCRMToolRsrcCalls   : constant := 2; -- has CRMGetToolResource/ReleaseToolResource

	gestaltControlStripVersion: constant OSType := ToRes("csvr");

	gestaltCTBVersion         : constant OSType := ToRes("ctbv");
	gestaltDBAccessMgrAttr    : constant OSType := ToRes("dbac"); -- Database Access Mgr attributes

	gestaltDBAccessMgrPresent : constant := 0; -- True if Database Access Mgr present
	gestaltDictionaryMgrAttr  : constant OSType := ToRes("dict"); -- Dictionary Manager attributes

	gestaltDictionaryMgrPresent : constant := 0; -- Dictionary Manager attributes
	gestaltDITLExtAttr        : constant OSType := ToRes("ditl"); -- AppenDITL, etc. calls from CTB

	gestaltDITLExtPresent     : constant := 0; -- True if calls are present
	gestaltDisplayMgrAttr     : constant OSType := ToRes("dply"); -- Display Manager attributes
	gestaltDisplayMgrPresent  : constant := 0; -- True if Display Mgr is present
	gestaltDisplayMgrCanSwitchMirrored : constant := 2; -- True if Display Mgr can switch modes on mirrored displays

	gestaltDisplayMgrSetDepthNotifies  : constant := 3; -- True SetDepth generates displays mgr notification

	gestaltDisplayMgrVers     : constant OSType := ToRes("dplv");
	gestaltDragMgrAttr        : constant OSType := ToRes("drag"); -- Drag Manager attributes
	gestaltDragMgrPresent     : constant := 0; -- Drag Manager is present
	gestaltDragMgrFloatingWind: constant := 1; -- Drag Manager supports floating windows

	gestaltPPCDragLibPresent  : constant := 2; -- Drag Manager PPC DragLib is present
	gestaltEasyAccessAttr     : constant OSType := ToRes("easy"); -- Easy Access attributes
	gestaltEasyAccessOff      : constant := 0; -- if Easy Access present, but off (no icon)
	gestaltEasyAccessOn       : constant := 1; -- if Easy Access "On"
	gestaltEasyAccessSticky   : constant := 2; -- if Easy Access "Sticky"

	gestaltEasyAccessLocked   : constant := 3; -- if Easy Access "Locked"
	gestaltEditionMgrAttr     : constant OSType := ToRes("edtn"); -- Edition Mgr attributes
	gestaltEditionMgrPresent  : constant := 0; -- True if Edition Mgr present

	gestaltEditionMgrTranslationAware : constant := 1; -- True if edition manager is translation manager aware
	gestaltAppleEventsAttr    : constant OSType := ToRes("evnt"); -- Apple Events attributes
	gestaltAppleEventsPresent : constant := 0; -- True if Apple Events present
	gestaltScriptingSupport   : constant := 1;

	gestaltOSLInSystem        : constant := 2; -- OSL is in system so donŐt use the one linked in to app
	gestaltFinderAttr         : constant OSType := ToRes("fndr"); -- Finder attributes
	gestaltFinderDropEvent    : constant := 0; -- Finder recognizes drop event
	gestaltFinderMagicPlacement : constant := 1; -- Finder supports magic icon placement
	gestaltFinderCallsAEProcess : constant := 2; -- Finder calls AEProcessAppleEvent
	gestaltOSLCompliantFinder : constant := 3; -- Finder is scriptable and recordable
	gestaltFinderSupports4GBVolumes : constant := 4; -- Finder correctly handles 4GB volumes

	gestaltFinderHasClippings : constant := 6; -- Finder supports Drag Manager clipping files
	gestaltFindFolderAttr     : constant OSType := ToRes("fold"); -- Folder Mgr attributes

	gestaltFindFolderPresent  : constant := 0; -- True if Folder Mgr present
	gestaltFontMgrAttr        : constant OSType := ToRes("font"); -- Font Mgr attributes

	gestaltOutlineFonts       : constant := 0; -- True if Outline Fonts supported
	gestaltFPUType            : constant OSType := ToRes("fpu "); -- fpu type
	gestaltNoFPU              : constant := 0; -- no FPU
	gestalt68881              : constant := 1; -- 68881 FPU
	gestalt68882              : constant := 2; -- 68882 FPU

	gestalt68040FPU           : constant := 3; -- 68040 built-in FPU
	gestaltFSAttr              : constant OSType := ToRes("fs  "); -- file system attributes
	gestaltFullExtFSDispatching: constant := 0; -- has really cool new HFSDispatch dispatcher
	gestaltHasFSSpecCalls      : constant := 1; -- has FSSpec calls
	gestaltHasFileSystemManager: constant := 2; -- has a file system manager
	gestaltFSMDoesDynamicLoad  : constant := 3; -- file system manager supports dynamic loading
	gestaltFSSupports4GBVols   : constant := 4; -- file system supports 4 gigabyte volumes
	gestaltFSSupports2TBVols   : constant := 5; -- file system supports 2 terabyte volumes
	gestaltHasExtendedDiskInit : constant := 6; -- has extended Disk Initialization calls
	gestaltFSMVersion          : constant OSType := ToRes("fsm ");
	gestaltFXfrMgrAttr         : constant OSType := ToRes("fxfr"); -- file transfer manager attributes
	gestaltFXfrMgrPresent      : constant := 0;
	gestaltFXfrMgrMultiFile    : constant := 1; -- supports FTSend and FTReceive

	gestaltFXfrMgrErrorString  : constant := 2; -- supports FTGetErrorString
	gestaltGraphicsAttr       : constant OSType := ToRes("gfxa"); -- Quickdraw GX attributes selector
	gestaltGraphicsIsDebugging: constant := 16#00000001#;
	gestaltGraphicsIsLoaded   : constant := 16#00000002#;

	gestaltGraphicsIsPowerPC  : constant := 16#00000004#;
	gestaltGraphicsVersion    : constant OSType := ToRes("grfx"); -- Quickdraw GX version selector

	gestaltCurrentGraphicsVersion : constant := 16#00010000#; -- the version described in this set of headers
	gestaltHardwareAttr       : constant OSType := ToRes("hdwr"); -- hardware attributes
	gestaltHasVIA1            : constant := 0; -- VIA1 exists
	gestaltHasVIA2            : constant := 1; -- VIA2 exists
	gestaltHasASC             : constant := 3; -- Apple Sound Chip exists
	gestaltHasSCC             : constant := 4; -- SCC exists
	gestaltHasSCSI            : constant := 7; -- SCSI exists
	gestaltHasSoftPowerOff    : constant := 19; -- Capable of software power off
	gestaltHasSCSI961         : constant := 21; -- 53C96 SCSI controller on internal bus
	gestaltHasSCSI962         : constant := 22; -- 53C96 SCSI controller on external bus
	gestaltHasUniversalROM    : constant := 24; -- Do we have a Universal ROM?

	gestaltHasEnhancedLtalk   : constant := 30; -- Do we have Enhanced LocalTalk?
	gestaltHelpMgrAttr        : constant OSType := ToRes("help"); -- Help Mgr Attributes
	gestaltHelpMgrPresent     : constant := 0; -- true if help mgr is present

	gestaltHelpMgrExtensions  : constant := 1; -- true if help mgr extensions are installed

	gestaltCompressionMgr     : constant OSType := ToRes("icmp");
	gestaltIconUtilitiesAttr  : constant OSType := ToRes("icon"); -- Icon Utilities attributes  (Note: available in System 7.0, despite gestalt)

	gestaltIconUtilitiesPresent : constant := 0; -- true if icon utilities are present
	gestaltKeyboardType       : constant OSType := ToRes("kbd "); -- keyboard type
	gestaltMacKbd             : constant := 1;
	gestaltMacAndPad          : constant := 2;
	gestaltMacPlusKbd         : constant := 3;
	gestaltExtADBKbd          : constant := 4;
	gestaltStdADBKbd          : constant := 5;
	gestaltPrtblADBKbd        : constant := 6;
	gestaltPrtblISOKbd        : constant := 7;
	gestaltStdISOADBKbd       : constant := 8;
	gestaltExtISOADBKbd       : constant := 9;
	gestaltADBKbdII           : constant := 10;
	gestaltADBISOKbdII        : constant := 11;
	gestaltPwrBookADBKbd      : constant := 12;
	gestaltPwrBookISOADBKbd   : constant := 13;
	gestaltAppleAdjustKeypad  : constant := 14;
	gestaltAppleAdjustADBKbd  : constant := 15;
	gestaltAppleAdjustISOKbd  : constant := 16;
	gestaltJapanAdjustADBKbd  : constant := 17; -- Japan Adjustable Keyboard
	gestaltPwrBkExtISOKbd     : constant := 20; -- PowerBook Extended International Keyboard with function keys
	gestaltPwrBkExtJISKbd     : constant := 21; -- PowerBook Extended Japanese Keyboard with function keys

	gestaltPwrBkExtADBKbd     : constant := 24; -- PowerBook Extended Domestic Keyboard with function keys

	gestaltLowMemorySize      : constant OSType := ToRes("lmem");

	gestaltLogicalRAMSize     : constant OSType := ToRes("lram");
	gestaltMachineType        : constant OSType := ToRes("mach"); -- machine type
	gestaltClassic            : constant := 1;
	gestaltMacXL              : constant := 2;
	gestaltMac512KE           : constant := 3;
	gestaltMacPlus            : constant := 4;
	gestaltMacSE              : constant := 5;
	gestaltMacII              : constant := 6;
	gestaltMacIIx             : constant := 7;
	gestaltMacIIcx            : constant := 8;
	gestaltMacSE030           : constant := 9;
	gestaltPortable           : constant := 10;
	gestaltMacIIci            : constant := 11;
	gestaltMacIIfx            : constant := 13;
	gestaltMacClassic         : constant := 17;
	gestaltMacIIsi            : constant := 18;
	gestaltMacLC              : constant := 19;
	gestaltQuadra900          : constant := 20;
	gestaltPowerBook170       : constant := 21;
	gestaltQuadra700          : constant := 22;
	gestaltClassicII          : constant := 23;
	gestaltPowerBook100       : constant := 24;
	gestaltPowerBook140       : constant := 25;
	gestaltQuadra950          : constant := 26;
	gestaltMacLCIII           : constant := 27;
	gestaltPerforma450        : constant := gestaltMacLCIII;
	gestaltPowerBookDuo210    : constant := 29;
	gestaltMacCentris650      : constant := 30;
	gestaltPowerBookDuo230    : constant := 32;
	gestaltPowerBook180       : constant := 33;
	gestaltPowerBook160       : constant := 34;
	gestaltMacQuadra800       : constant := 35;
	gestaltMacQuadra650       : constant := 36;
	gestaltMacLCII            : constant := 37;
	gestaltPowerBookDuo250    : constant := 38;
	gestaltAWS9150_80         : constant := 39;
	gestaltPowerMac8100_110   : constant := 40;
	gestaltAWS8150_110        : constant := gestaltPowerMac8100_110;
	gestaltMacIIvi            : constant := 44;
	gestaltMacIIvm            : constant := 45;
	gestaltPerforma600        : constant := gestaltMacIIvm;
	gestaltPowerMac7100_80    : constant := 47;
	gestaltMacIIvx            : constant := 48;
	gestaltMacColorClassic    : constant := 49;
	gestaltPerforma250        : constant := gestaltMacColorClassic;
	gestaltPowerBook165c      : constant := 50;
	gestaltMacCentris610      : constant := 52;
	gestaltMacQuadra610       : constant := 53;
	gestaltPowerBook145       : constant := 54;
	gestaltPowerMac8100_100   : constant := 55;
	gestaltMacLC520           : constant := 56;
	gestaltAWS9150_120        : constant := 57;
	gestaltMacCentris660AV    : constant := 60;
	gestaltPerforma46x        : constant := 62;
	gestaltPowerMac8100_80    : constant := 65;
	gestaltAWS8150_80         : constant := gestaltPowerMac8100_80;
	gestaltPowerBook180c      : constant := 71;
	gestaltPowerMac6100_60    : constant := 75;
	gestaltAWS6150_60         : constant := gestaltPowerMac6100_60;
	gestaltPowerBookDuo270c   : constant := 77;
	gestaltMacQuadra840AV     : constant := 78;
	gestaltPerforma550        : constant := 80;
	gestaltPowerBook165       : constant := 84;
	gestaltMacTV              : constant := 88;
	gestaltMacLC475           : constant := 89;
	gestaltPerforma47x        : constant := gestaltMacLC475;
	gestaltMacLC575           : constant := 92;
	gestaltMacQuadra605       : constant := 94;
	gestaltQuadra630          : constant := 98;
	gestaltPowerMac6100_66    : constant := 100;
	gestaltAWS6150_66         : constant := gestaltPowerMac6100_66;
	gestaltPowerBookDuo280    : constant := 102;
	gestaltPowerBookDuo280c   : constant := 103;
	gestaltPowerMac7100_66    : constant := 112; -- Power Macintosh 7100/66

	gestaltPowerBook150       : constant := 115;

	kMachineNameStrID         : constant := -16395;

	gestaltMachineIcon        : constant OSType := ToRes("micn");
	gestaltMiscAttr           : constant OSType := ToRes("misc"); -- miscellaneous attributes
	gestaltScrollingThrottle  : constant := 0; -- true if scrolling throttle on

	gestaltSquareMenuBar      : constant := 2; -- true if menu bar is square
-- The name gestaltMixedModeVersion for the 'mixd' selector is semantically incorrect.
-- The same selector has been renamed gestaltMixedModeAttr to properly reflect the
-- Inside Mac: PowerPC System Software documentation.  The gestaltMixedModeVersion
-- symbol has been preserved only for backwards compatibility.
-- 
-- Developers are forewarned that gestaltMixedModeVersion has a limited lifespan and
-- will be removed in a future release of the Interfaces.
-- 
-- For the first version of Mixed Mode, both meanings of the 'mixd' selector are
-- functionally identical.  They both return 0x00000001.  In subsequent versions
-- of Mixed Mode, however, the 'mixd' selector will not respond with an increasing
-- version number, but rather, with 32 attribute bits with various meanings.

-- gestaltMixedModeVersion : constant OSType := ToRes("mixd");
	gestaltMixedModeAttr      : constant OSType := ToRes("mixd"); -- returns Mixed Mode attributes

	gestaltPowerPCAware       : constant := 0; -- true if Mixed Mode Manager supports PowerPC
	gestaltMMUType            : constant OSType := ToRes("mmu "); -- mmu type
	gestaltNoMMU              : constant := 0; -- no MMU
	gestaltAMU                : constant := 1; -- address management unit
	gestalt68851              : constant := 2; -- 68851 PMMU
	gestalt68030MMU           : constant := 3; -- 68030 built-in MMU
	gestalt68040MMU           : constant := 4; -- 68040 built-in MMU

	gestaltEMMU1              : constant := 5; -- Emulated MMU type 1
	gestaltStdNBPAttr         : constant OSType := ToRes("nlup"); -- standard nbp attributes

	gestaltStdNBPPresent      : constant := 0;
	gestaltNotificationMgrAttr : constant OSType := ToRes("nmgr"); -- notification manager attributes

	gestaltNotificationPresent : constant := 0; -- notification manager exists

	gestaltNameRegistryVersion : constant OSType := ToRes("nreg");

	gestaltNuBusSlotCount     : constant OSType := ToRes("nubs");

	gestaltOpenFirmwareInfo   : constant OSType := ToRes("opfw");
	gestaltOSAttr             : constant OSType := ToRes("os  "); -- o/s attributes
	gestaltSysZoneGrowable    : constant := 0; -- system heap is growable
	gestaltLaunchCanReturn    : constant := 1; -- can return from launch
	gestaltLaunchFullFileSpec : constant := 2; -- can launch from full file spec
	gestaltLaunchControl      : constant := 3; -- launch control support available
	gestaltTempMemSupport     : constant := 4; -- temp memory support
	gestaltRealTempMemory     : constant := 5; -- temp memory handles are real
	gestaltTempMemTracked     : constant := 6; -- temporary memory handles are tracked
	gestaltIPCSupport         : constant := 7; -- IPC support is present

	gestaltSysDebuggerSupport : constant := 8; -- system debugger support is present

	gestaltOSTable            : constant OSType := ToRes("ostt");
	gestaltPCXAttr            : constant OSType := ToRes("pcxg"); -- PC Exchange attributes
	gestaltPCXHas8and16BitFAT : constant := 0; -- PC Exchange supports both 8 and 16 bit FATs

	gestaltPCXHasProDOS       : constant := 1; -- PC Exchange supports ProDOS

	gestaltLogicalPageSize    : constant OSType := ToRes("pgsz");
	gestaltPopupAttr          : constant OSType := ToRes("pop!"); -- popup cdef attributes

	gestaltPopupPresent       : constant := 0;
	gestaltPowerMgrAttr       : constant OSType := ToRes("powr"); -- power manager attributes
	gestaltPMgrExists         : constant := 0;
	gestaltPMgrCPUIdle        : constant := 1;
	gestaltPMgrSCC            : constant := 2;
	gestaltPMgrSound          : constant := 3;

	gestaltPMgrDispatchExists : constant := 4;
-- PPC will return the combination of following bit fields.
-- e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncoming + gestaltPPCSupportsOutGoing
-- indicates PPC is cuurently is only supports real time delivery
-- and both incoming and outgoing network sessions are allowed.
-- By default local real time delivery is supported as long as PPCInit has been called.}
	gestaltPPCToolboxAttr     : constant OSType := ToRes("ppc "); -- PPC toolbox attributes
	gestaltPPCToolboxPresent  : constant := 16#0000#; -- PPC Toolbox is present  Requires PPCInit to be called
	gestaltPPCSupportsRealTime: constant := 16#1000#; -- PPC Supports real-time delivery
	gestaltPPCSupportsIncoming: constant := 16#0001#; -- PPC will deny incoming network requests

	gestaltPPCSupportsOutGoing: constant := 16#0002#; -- PPC will deny outgoing network requests
	gestaltProcessorType      : constant OSType := ToRes("proc"); -- processor type
	gestalt68000              : constant := 1;
	gestalt68010              : constant := 2;
	gestalt68020              : constant := 3;
	gestalt68030              : constant := 4;

	gestalt68040              : constant := 5;
	gestaltParityAttr         : constant OSType := ToRes("prty"); -- parity attributes
	gestaltHasParityCapability: constant := 0; -- has ability to check parity

	gestaltParityEnabled      : constant := 1; -- parity checking enabled
	gestaltQuickdrawVersion   : constant OSType := ToRes("qd  "); -- quickdraw version
	gestaltOriginalQD         : constant := 16#000#; -- original 1-bit QD
	gestalt8BitQD             : constant := 16#100#; -- 8-bit color QD
	gestalt32BitQD            : constant := 16#200#; -- 32-bit color QD
	gestalt32BitQD11          : constant := 16#201#; -- 32-bit color QDv1.1
	gestalt32BitQD12          : constant := 16#220#; -- 32-bit color QDv1.2

	gestalt32BitQD13          : constant := 16#230#; -- 32-bit color QDv1.3
	gestaltQuickdrawFeatures  : constant OSType := ToRes("qdrw"); -- quickdraw features
	gestaltHasColor           : constant := 0; -- color quickdraw present
	gestaltHasDeepGWorlds     : constant := 1; -- GWorlds can be deeper than 1-bit
	gestaltHasDirectPixMaps   : constant := 2; -- PixMaps can be direct (16 or 32 bit)
	gestaltHasGrayishTextOr   : constant := 3; -- supports text mode grayishTextOr

	gestaltSupportsMirroring  : constant := 4; -- Supports video mirroring via the Display Manager.
	gestaltQuickTimeVersion   : constant OSType := ToRes("qtim"); -- returns version of QuickTime

	gestaltQuickTime          : constant OSType := ToRes("qtim");
	gestaltQuickTimeFeatures  : constant OSType := ToRes("qtrs");

	gestaltPPCQuickTimeLibPresent : constant := 0; -- PowerPC QuickTime glue library is present

	gestaltPhysicalRAMSize    : constant OSType := ToRes("ram ");

	gestaltRBVAddr            : constant OSType := ToRes("rbv ");

	gestaltROMSize            : constant OSType := ToRes("rom ");

	gestaltROMVersion         : constant OSType := ToRes("romv");
	gestaltResourceMgrAttr    : constant OSType := ToRes("rsrc"); -- Resource Mgr attributes

	gestaltPartialRsrcs       : constant := 0; -- True if partial resources exist
	gestaltRealtimeMgrAttr    : constant OSType := ToRes("rtmr"); -- Realtime manager attributes

	gestaltRealtimeMgrPresent : constant := 0; -- true if the Realtime manager is present

	gestaltSCCReadAddr        : constant OSType := ToRes("sccr");

	gestaltSCCWriteAddr       : constant OSType := ToRes("sccw");
	gestaltScrapMgrAttr       : constant OSType := ToRes("scra"); -- Scrap Manager attributes

	gestaltScrapMgrTranslationAware : constant := 0; -- True if scrap manager is translation aware

	gestaltScriptMgrVersion   : constant OSType := ToRes("scri");

	gestaltScriptCount        : constant OSType := ToRes("scr#");
	gestaltSCSI               : constant OSType := ToRes("scsi"); -- SCSI Manager attributes
	gestaltAsyncSCSI          : constant := 0; -- Supports Asynchronous SCSI
	gestaltAsyncSCSIINROM     : constant := 1; -- Async scsi is in ROM (available for booting)

	gestaltSCSISlotBoot       : constant := 2; -- ROM supports Slot-style PRAM for SCSI boots (PDM and later)
	gestaltControlStripAttr   : constant OSType := ToRes("sdev"); -- Control Strip attributes
	gestaltControlStripExists : constant := 0; -- Control Strip is installed
	gestaltControlStripVersionFixed : constant := 1; -- Control Strip version Gestalt selector was fixed
	gestaltControlStripUserFont     : constant := 2; -- supports user-selectable font/size

	gestaltControlStripUserHotKey   : constant := 3; -- support user-selectable hot key to show/hide the window
	gestaltSerialAttr         : constant OSType := ToRes("ser "); -- Serial attributes
	gestaltHasGPIaToDCDa      : constant := 0; -- GPIa connected to DCDa}
	gestaltHasGPIaToRTxCa     : constant := 1; -- GPIa connected to RTxCa clock input}

	gestaltHasGPIbToDCDb      : constant := 2; -- GPIb connected to DCDb

	gestaltNuBusConnectors    : constant OSType := ToRes("sltc");
	gestaltSlotAttr           : constant OSType := ToRes("slot"); -- slot attributes
	gestaltSlotMgrExists      : constant := 0; -- true is slot mgr exists
	gestaltNuBusPresent       : constant := 1; -- NuBus slots are present
	gestaltSESlotPresent      : constant := 2; -- SE PDS slot present
	gestaltSE30SlotPresent    : constant := 3; -- SE/30 slot present

	gestaltPortableSlotPresent: constant := 4; -- PortableŐs slot present

	gestaltFirstSlotNumber    : constant OSType := ToRes("slt1");
	gestaltSoundAttr : constant OSType := ToRes("snd "); -- sound attributes
	gestaltStereoCapability : constant := 0; -- sound hardware has stereo capability
	gestaltStereoMixing : constant := 1; -- stereo mixing on external speaker
	gestaltSoundIOMgrPresent : constant := 3; -- The Sound I/O Manager is present
	gestaltBuiltInSoundInput : constant := 4; -- built-in Sound Input hardware is present
	gestaltHasSoundInputDevice : constant := 5; -- Sound Input device available
	gestaltPlayAndRecord : constant := 6; -- built-in hardware can play and record simultaneously
	gestalt16BitSoundIO : constant := 7; -- sound hardware can play and record 16-bit samples
	gestaltStereoInput : constant := 8; -- sound hardware can record stereo
	gestaltLineLevelInput : constant := 9; -- sound input port requires line level
-- the following bits are not defined prior to Sound Mgr 3.0
	gestaltSndPlayDoubleBuffer : constant := 10; -- SndPlayDoubleBuffer available, set by Sound Mgr 3.0 and later
	gestaltMultiChannels : constant := 11; -- multiple channel support, set by Sound Mgr 3.0 and later

	gestalt16BitAudioSupport : constant := 12; -- 16 bit audio data supported, set by Sound Mgr 3.0 and later
	gestaltStandardFileAttr : constant OSType := ToRes("stdf"); -- Standard File attributes
	gestaltStandardFile58 : constant := 0; -- True if selectors 5-8 (StandardPutFile-CustomGetFile) are supported
	gestaltStandardFileTranslationAware : constant := 1; -- True if standard file is translation manager aware
	gestaltStandardFileHasColorIcons : constant := 2; -- True if standard file has 16x16 color icons
	gestaltStandardFileUseGenericIcons : constant := 3; -- Standard file LDEF to use only the system generic icons if true

	gestaltStandardFileHasDynamicVolumeAllocation : constant := 4; -- True if standard file supports more than 20 volumes
	gestaltSysArchitecture : constant OSType := ToRes("sysa"); -- Native System Architecture
	gestalt68k : constant := 1; -- Motorola MC68k architecture

	gestaltPowerPC : constant := 2; -- IBM PowerPC architecture

	gestaltSystemVersion : constant OSType := ToRes("sysv");
	gestaltTSMgrVersion : constant OSType := ToRes("tsmv"); -- Text Services Mgr version, if present

	gestaltTSMgr2 : constant := 16#200#;
	gestaltTSMgrAttr : constant OSType := ToRes("tsma"); -- Text Services Mgr attributes, if present
	gestaltTSMDisplayMgrAwareBit : constant := 0; -- TSM knows about display manager

	gestaltTSMdoesTSMTEBit : constant := 1; -- TSM has integrated TSMTE
	gestaltTSMTEVersion : constant OSType := ToRes("tmTV");
	gestaltTSMTE1 : constant := 16#100#;

	gestaltTSMTE2 : constant := 16#200#;
	gestaltTSMTEAttr : constant OSType := ToRes("tmTE");
	gestaltTSMTEPresent : constant := 0;

	gestaltTSMTE : constant := 0; -- gestaltTSMTE is old name for gestaltTSMTEPresent
	gestaltTextEditVersion : constant OSType := ToRes("te  "); -- TextEdit version number
	gestaltTE1 : constant := 1; -- TextEdit in MacIIci ROM
	gestaltTE2 : constant := 2; -- TextEdit with 6.0.4 Script Systems on MacIIci (Script bug fixes for MacIIci)
	gestaltTE3 : constant := 3; -- TextEdit with 6.0.4 Script Systems all but MacIIci
	gestaltTE4 : constant := 4; -- TextEdit in System 7.0
	gestaltTE5 : constant := 5; -- TextWidthHook available in TextEdit

	gestaltTE6 : constant := 6; -- TextEdit in System 8.0
	gestaltTEAttr : constant OSType := ToRes("teat"); -- TextEdit attributes
	gestaltTEHasGetHiliteRgn : constant := 0; -- TextEdit has TEGetHiliteRgn
	gestaltTESupportsInlineInput : constant := 1; -- TextEdit does Inline Input

	gestaltTESupportsTextObjects : constant := 2; -- TextEdit does Text Objects
	gestaltTeleMgrAttr : constant OSType := ToRes("tele"); -- Telephone manager attributes
	gestaltTeleMgrPresent : constant := 0;
	gestaltTeleMgrPowerPCSupport : constant := 1;
	gestaltTeleMgrSoundStreams : constant := 2;
	gestaltTeleMgrAutoAnswer : constant := 3;
	gestaltTeleMgrIndHandset : constant := 4;
	gestaltTeleMgrSilenceDetect : constant := 5;

	gestaltTeleMgrNewTELNewSupport : constant := 6;
	gestaltTermMgrAttr : constant OSType := ToRes("term"); -- terminal mgr attributes
	gestaltTermMgrPresent : constant := 0;

	gestaltTermMgrErrorString : constant := 2;
	gestaltTimeMgrVersion : constant OSType := ToRes("tmgr"); -- time mgr version
	gestaltStandardTimeMgr : constant := 1; -- standard time mgr is present
	gestaltRevisedTimeMgr : constant := 2; -- revised time mgr is present

	gestaltExtendedTimeMgr : constant := 3; -- extended time mgr is present
	gestaltSpeechAttr : constant OSType := ToRes("ttsc"); -- Speech Manager attributes
	gestaltSpeechMgrPresent : constant := 0; -- bit set indicates that Speech Manager exists

	gestaltSpeechHasPPCGlue : constant := 1; -- bit set indicates that native PPC glue for Speech Manager API exists

	gestaltToolboxTable : constant OSType := ToRes("tbtt");
	gestaltThreadMgrAttr : constant OSType := ToRes("thds"); -- Thread Manager attributes
	gestaltThreadMgrPresent : constant := 0; -- bit true if Thread Mgr is present
	gestaltSpecificMatchSupport : constant := 1; -- bit true if Thread Mgr supports exact match creation option

	gestaltThreadsLibraryPresent : constant := 2; -- bit true if Thread Mgr shared library is present
	gestaltTVAttr : constant OSType := ToRes("tv  "); -- TV version										
	gestaltHasTVTuner : constant := 0; -- supports Philips FL1236F video tuner				
	gestaltHasSoundFader : constant := 1; -- supports Philips TEA6330 Sound Fader chip		
	gestaltHasHWClosedCaptioning : constant := 2; -- supports Philips SAA5252 Closed Captioning		
	gestaltHasIRRemote : constant := 3; -- supports CyclopsII Infra Red Remote control		
	gestaltHasVidDecoderScaler : constant := 4; -- supports Philips SAA7194 Video Decoder/Scaler	

	gestaltHasStereoDecoder : constant := 5; -- supports Sony SBX1637A-01 stereo decoder			
	gestaltVersion : constant OSType := ToRes("vers"); -- gestalt version

	gestaltValueImplementedVers : constant := 5; -- version of gestalt where gestaltValue is implemented.

	gestaltVIA1Addr : constant OSType := ToRes("via1");

	gestaltVIA2Addr : constant OSType := ToRes("via2");
	gestaltVMAttr : constant OSType := ToRes("vm  "); -- virtual memory attributes

	gestaltVMPresent : constant := 0; -- true if virtual memory is present
	gestaltTranslationAttr : constant OSType := ToRes("xlat"); -- Translation Manager attributes
	gestaltTranslationMgrExists : constant := 0; -- True if translation manager exists
	gestaltTranslationMgrHintOrder : constant := 1; -- True if hint order reversal in effect
	gestaltTranslationPPCAvail : constant := 2;

	gestaltTranslationGetPathAPIAvail : constant := 3;


	gestaltExtToolboxTable : constant OSType := ToRes("xttt");
   type SelectorFunctionProcPtr is access function
     (selector : in     OSType;

     response  : access Long_Integer) return OSErr;
   subtype SelectorFunctionUPP is UniversalProcPtr;

	uppSelectorFunctionProcInfo : constant := 16#000003E0#; -- FUNCTION (4 byte param, 4 byte param): 2 byte result;
   function Gestalt
     (selector           : in     OSType;
      response           : access Long_Integer)
      return                      OSErr;

   pragma Import (C, Gestalt, "Gestalt", "Gestalt");
   function ReplaceGestalt
     (selector           : in     OSType;
      gestaltFunction    : in     SelectorFunctionUPP;
      oldGestaltFunction : access SelectorFunctionUPP)
      return                      OSErr;

   pragma Import (C, ReplaceGestalt, "ReplaceGestalt", "ReplaceGestalt");
   function NewGestalt
     (selector           : in     OSType;
      gestaltFunction    : in     SelectorFunctionUPP)
      return                      OSErr;

   pragma Import (C, NewGestalt, "NewGestalt", "NewGestalt");
   --  These functions are built into System 7.5, but not on earlier systems
   function NewGestaltValue
     (selector           : in     OSType;
      newValue           : in     Long_Integer)
      return                      OSErr;

   pragma Import (C, NewGestaltValue, "NewGestaltValue", "NewGestaltValue");
   function ReplaceGestaltValue
     (selector           : in     OSType;
      replacementValue   : in     Long_Integer)
      return                      OSErr;

   pragma Import (C, ReplaceGestaltValue, "ReplaceGestaltValue", "ReplaceGestaltValue");
   function SetGestaltValue
     (selector           : in     OSType;
      newValue           : in     Long_Integer)
      return                      OSErr;

   pragma Import (C, SetGestaltValue, "SetGestaltValue", "SetGestaltValue");
   function DeleteGestaltValue
     (selector           : in     OSType)
      return                      OSErr;

   pragma Import (C, DeleteGestaltValue, "DeleteGestaltValue", "DeleteGestaltValue");
end Gestalt;