Gestalt(3)

NAME
Mac::Gestalt - Macintosh Toolbox Interface to the Gestalt Manager

SYNOPSIS
        # Only bring in the names we want
        use Mac::Gestalt qw(%Gestalt gestaltAppleTalkVersion);

        if ( $Gestalt{gestaltAppleTalkVersion} lt "58" ) {
                warn "Unable to use AppleTalk\n";
        }

DESCRIPTION
You can use the Gestalt function or the %Gestalt tied hash to obtain information about the operating environment. You specify what information you need by passing one of the selector codes recognized by Gestalt.

There is a huge list of codes. Many of them return a bitmask, so to find out whether e.g. the Code Fragment Manager is present, you write

        $Gestalt{gestaltCFMAttr} & (1 << gestaltCFMPresent)

  Constants

gestaltAddressingModeAttr
gestalt32BitAddressing
gestalt32BitSysZone
gestalt32BitCapable
    Address mode.

gestaltAliasMgrAttr
gestaltAliasMgrPresent
gestaltAliasMgrSupportsRemoteAppletalk
    Alias manager.

gestaltAppleTalkVersion
    AppleTalk.

gestaltAUXVersion
    A/UX.

gestaltCloseViewAttr
gestaltCloseViewEnabled
gestaltCloseViewDisplayMgrFriendly
    CloseView.

gestaltCFMAttr
gestaltCFMPresent
    Code Fragment Manager.

gestaltColorMatchingAttr
gestaltHighLevelMatching
gestaltColorMatchingLibLoaded
    ColorSync.

gestaltColorMatchingVersion
gestaltColorSync10
gestaltColorSync11
gestaltColorSync104
gestaltColorSync105
    ColorSync version.

gestaltConnMgrAttr
gestaltConnMgrPresent
gestaltConnMgrCMSearchFix
gestaltConnMgrErrorString
gestaltConnMgrMultiAsyncIO
    Communications toolbox connection manager.

gestaltComponentMgr
    Component manager.

gestaltColorPickerVersion
gestaltColorPicker
    Color picker.

gestaltNativeCPUtype
gestaltCPU68000
gestaltCPU68010
gestaltCPU68020
gestaltCPU68030
gestaltCPU68040
gestaltCPU601
gestaltCPU603
gestaltCPU604
    CPU type.

gestaltCRMAttr
gestaltCRMPresent
gestaltCRMPersistentFix
gestaltCRMToolRsrcCalls
    Communications toolbox connection resource manager.

gestaltControlStripVersion
    Control strip manager.

gestaltCTBVersion
    Communications toolbox.

gestaltDBAccessMgrAttr
gestaltDBAccessMgrPresent
    Database access manager.

gestaltDictionaryMgrAttr
gestaltDictionaryMgrPresent
    Dictionary manager.

gestaltDITLExtAttr
gestaltDITLExtPresent
    Dialog manager extensions.

gestaltDisplayMgrAttr
gestaltDisplayMgrPresent
gestaltDisplayMgrCanSwitchMirrored
gestaltDisplayMgrSetDepthNotifies
    Display manager.

gestaltDisplayMgrVers
    Display manager version.

gestaltDragMgrAttr
gestaltDragMgrPresent
gestaltDragMgrFloatingWind
gestaltPPCDragLibPresent
    Drag manager.

gestaltEasyAccessAttr
gestaltEasyAccessOff
gestaltEasyAccessOn
gestaltEasyAccessSticky
gestaltEasyAccessLocked
    Easy access.

gestaltEditionMgrAttr
gestaltEditionMgrPresent
gestaltEditionMgrTranslationAware
    Edition manager.

gestaltAppleEventsAttr
gestaltAppleEventsPresent
gestaltScriptingSupport
gestaltOSLInSystem
    AppleEvent manager.

gestaltFinderAttr
gestaltFinderDropEvent
gestaltFinderMagicPlacement
gestaltFinderCallsAEProcess
gestaltOSLCompliantFinder
gestaltFinderSupports4GBVolumes
gestaltFinderHasClippings
    Finder attributes.

gestaltFindFolderAttr
gestaltFindFolderPresent
    Folder manager.

gestaltFontMgrAttr
gestaltOutlineFonts
    Font manager.

gestaltFPUType
gestaltNoFPU
gestalt68881
gestalt68882
gestalt68040FPU
    680X0 FPU.

gestaltFSAttr
gestaltFullExtFSDispatching
gestaltHasFSSpecCalls
gestaltHasFileSystemManager
gestaltFSMDoesDynamicLoad
gestaltFSSupports4GBVols
gestaltFSSupports2TBVols
gestaltHasExtendedDiskInit
    File system attributes.

gestaltFSMVersion
    File system manager.

gestaltFXfrMgrAttr
gestaltFXfrMgrPresent
gestaltFXfrMgrMultiFile
gestaltFXfrMgrErrorString
    File transfer manager.

gestaltGraphicsAttr
gestaltGraphicsIsDebugging
gestaltGraphicsIsLoaded
gestaltGraphicsIsPowerPC
    QuickDraw GX attributes.

gestaltGraphicsVersion
gestaltCurrentGraphicsVersion
    QuickDraw GX version.

gestaltHardwareAttr
gestaltHasVIA1
gestaltHasVIA2
gestaltHasASC
gestaltHasSCC
gestaltHasSCSI
gestaltHasSoftPowerOff
gestaltHasSCSI961
gestaltHasSCSI962
gestaltHasUniversalROM
gestaltHasEnhancedLtalk
    Hardware attributes.

gestaltHelpMgrAttr
gestaltHelpMgrPresent
gestaltHelpMgrExtensions
    Help manager.

gestaltCompressionMgr
    QuickTime image compression manager.

gestaltIconUtilitiesAttr
gestaltIconUtilitiesPresent
    Icon utilities.

gestaltKeyboardType
gestaltMacKbd
gestaltMacAndPad
gestaltMacPlusKbd
gestaltExtADBKbd
gestaltStdADBKbd
gestaltPrtblADBKbd
gestaltPrtblISOKbd
gestaltStdISOADBKbd
gestaltExtISOADBKbd
gestaltADBKbdII
gestaltADBISOKbdII
gestaltPwrBookADBKbd
gestaltPwrBookISOADBKbd
gestaltAppleAdjustKeypad
gestaltAppleAdjustADBKbd
gestaltAppleAdjustISOKbd
gestaltJapanAdjustADBKbd
gestaltPwrBkExtISOKbd
gestaltPwrBkExtJISKbd
gestaltPwrBkExtADBKbd
    Keyboard types.

gestaltLowMemorySize
    Size of low memory area.

gestaltLogicalRAMSize
    Locical RAM size.

gestaltMachineType
gestaltClassic
gestaltMacXL
gestaltMac512KE
gestaltMacPlus
gestaltMacSE
gestaltMacII
gestaltMacIIx
gestaltMacIIcx
gestaltMacSE030
gestaltPortable
gestaltMacIIci
gestaltMacIIfx
gestaltMacClassic
gestaltMacIIsi
gestaltMacLC
gestaltQuadra900
gestaltPowerBook170
gestaltQuadra700
gestaltClassicII
gestaltPowerBook100
gestaltPowerBook140
gestaltQuadra950
gestaltMacLCIII
gestaltPerforma450
gestaltPowerBookDuo210
gestaltMacCentris650
gestaltPowerBookDuo230
gestaltPowerBook180
gestaltPowerBook160
gestaltMacQuadra800
gestaltMacQuadra650
gestaltMacLCII
gestaltPowerBookDuo250
gestaltAWS9150_80
gestaltPowerMac8100_110
gestaltAWS8150_110
gestaltMacIIvi
gestaltMacIIvm
gestaltPerforma600
gestaltPowerMac7100_80
gestaltMacIIvx
gestaltMacColorClassic
gestaltPerforma250
gestaltPowerBook165c
gestaltMacCentris610
gestaltMacQuadra610
gestaltPowerBook145
gestaltPowerMac8100_100
gestaltMacLC520
gestaltAWS9150_120
gestaltMacCentris660AV
gestaltPerforma46x
gestaltPowerMac8100_80
gestaltAWS8150_80
gestaltPowerBook180c
gestaltPowerMac6100_60
gestaltAWS6150_60
gestaltPowerBookDuo270c
gestaltMacQuadra840AV
gestaltPerforma550
gestaltPowerBook165
gestaltMacTV
gestaltMacLC475
gestaltPerforma47x
gestaltMacLC575
gestaltMacQuadra605
gestaltQuadra630
gestaltPowerMac6100_66
gestaltAWS6150_66
gestaltPowerBookDuo280
gestaltPowerBookDuo280c
gestaltPowerMac7100_66
gestaltPowerBook150
    Macintosh system type.

kMachineNameStrID
    Resource ID of 'STR ' resource containing machine type.

gestaltMachineIcon
    Machine icon.

gestaltMiscAttr
gestaltScrollingThrottle
gestaltSquareMenuBar
    Miscellaneous attributes.

gestaltMixedModeVersion
gestaltMixedModeAttr
gestaltPowerPCAware
    Mixed mode manager.

gestaltMMUType
gestaltNoMMU
gestaltAMU
gestalt68851
gestalt68030MMU
gestalt68040MMU
gestaltEMMU1
    680X0 MMU types.

gestaltStdNBPAttr
gestaltStdNBPPresent
    Standard NBP dialog.

gestaltNotificationMgrAttr
gestaltNotificationPresent
    Notification manager.

gestaltNameRegistryVersion
    Name registry.

gestaltNuBusSlotCount
    Number of NuBus solts.

gestaltOpenFirmwareInfo
    Open firmware.

gestaltOSAttr
gestaltSysZoneGrowable
gestaltLaunchCanReturn
gestaltLaunchFullFileSpec
gestaltLaunchControl
gestaltTempMemSupport
gestaltRealTempMemory
gestaltTempMemTracked
gestaltIPCSupport
gestaltSysDebuggerSupport
    OS attributes.

gestaltOSTable
    OS Trap table.

gestaltPCXAttr
gestaltPCXHas8and16BitFAT
gestaltPCXHasProDOS
    PC Exchange.

gestaltLogicalPageSize
    Logical memory page size.

gestaltPopupAttr
gestaltPopupPresent
    Popup menu controls.

gestaltPowerMgrAttr
gestaltPMgrExists
gestaltPMgrCPUIdle
gestaltPMgrSCC
gestaltPMgrSound
gestaltPMgrDispatchExists
    Power manager.

gestaltPPCToolboxAttr
gestaltPPCToolboxPresent
gestaltPPCSupportsRealTime
gestaltPPCSupportsIncoming
gestaltPPCSupportsOutGoing
    Process-to-Process communications toolbox.

gestaltProcessorType
gestalt68000
gestalt68010
gestalt68020
gestalt68030
gestalt68040
    Processor type.

gestaltParityAttr
gestaltHasParityCapability
gestaltParityEnabled
    Memory parity checking.

gestaltQuickdrawVersion
gestaltOriginalQD
gestalt8BitQD
gestalt32BitQD
gestalt32BitQD11
gestalt32BitQD12
gestalt32BitQD13
    QuickDraw attributes.

gestaltQuickdrawFeatures
gestaltHasColor
gestaltHasDeepGWorlds
gestaltHasDirectPixMaps
gestaltHasGrayishTextOr
gestaltSupportsMirroring
    QuickDraw features.

gestaltQuickTimeVersion
gestaltQuickTime
    QuickTime.

gestaltQuickTimeFeatures
gestaltPPCQuickTimeLibPresent
    QuickTime features.

gestaltPhysicalRAMSize
    Size of physical RAM.

gestaltRBVAddr
    RBV, whatever that is.

gestaltROMSize
    Size of built in ROM.

gestaltROMVersion
    ROM version.

gestaltResourceMgrAttr
gestaltPartialRsrcs
    Resource manager.

gestaltRealtimeMgrAttr
gestaltRealtimeMgrPresent
    Realtime manager.

gestaltSCCReadAddr
    Serial controller read address.

gestaltSCCWriteAddr
    Serial controller write address.

gestaltScrapMgrAttr
gestaltScrapMgrTranslationAware
    Scrap manager.

gestaltScriptMgrVersion
    Script manager.

gestaltScriptCount
    Number of installed script systems.

gestaltSCSI
gestaltAsyncSCSI
gestaltAsyncSCSIINROM
gestaltSCSISlotBoot
    SCSI manager.

gestaltControlStripAttr
gestaltControlStripExists
gestaltControlStripVersionFixed
gestaltControlStripUserFont
gestaltControlStripUserHotKey
    Control strip attributes.

gestaltSerialAttr
gestaltHasGPIaToDCDa
gestaltHasGPIaToRTxCa
gestaltHasGPIbToDCDb
    Serial atrributes.

gestaltNuBusConnectors
    Number of NuBus connectors.

gestaltSlotAttr
gestaltSlotMgrExists
gestaltNuBusPresent
gestaltSESlotPresent
gestaltSE30SlotPresent
gestaltPortableSlotPresent
    Slot attributes.

gestaltFirstSlotNumber
    Number of first slot.

gestaltSoundAttr
gestaltStereoCapability
gestaltStereoMixing
gestaltSoundIOMgrPresent
gestaltBuiltInSoundInput
gestaltHasSoundInputDevice
gestaltPlayAndRecord
gestalt16BitSoundIO
gestaltStereoInput
gestaltLineLevelInput
gestaltSndPlayDoubleBuffer
gestaltMultiChannels
gestalt16BitAudioSupport
    Sound attributes.

gestaltStandardFileAttr
gestaltStandardFile58
gestaltStandardFileTranslationAware
gestaltStandardFileHasColorIcons
gestaltStandardFileUseGenericIcons
gestaltStandardFileHasDynamicVolumeAllocation
    Standard file manager attributes.

gestaltSysArchitecture
gestalt68k
gestaltPowerPC
    System architecture.

gestaltSystemVersion
gestaltSystemVersionMajor
gestaltSystemVersionMinor
gestaltSystemVersion
    System version numbers.

gestaltTSMgrVersion
gestaltTSMgr2
    Text system manager.

gestaltTSMgrAttr
gestaltTSMDisplayMgrAwareBit
gestaltTSMdoesTSMTEBit
    Text system manager attributes.

gestaltTSMTEVersion
gestaltTSMTE1
gestaltTSMTE2
    Text system manager for TextEdit.

gestaltTSMTEAttr
gestaltTSMTEPresent
gestaltTSMTE
    Text system manager for TextEdit attributes.

gestaltTextEditVersion
gestaltTE1
gestaltTE2
gestaltTE3
gestaltTE4
gestaltTE5
gestaltTE6
    TextEdit manager.

gestaltTEAttr
gestaltTEHasGetHiliteRgn
gestaltTESupportsInlineInput
gestaltTESupportsTextObjects
    TextEdit attributes.

gestaltTeleMgrAttr
gestaltTeleMgrPresent
gestaltTeleMgrPowerPCSupport
gestaltTeleMgrSoundStreams
gestaltTeleMgrAutoAnswer
gestaltTeleMgrIndHandset
gestaltTeleMgrSilenceDetect
gestaltTeleMgrNewTELNewSupport
    Telephone attributes.

gestaltTermMgrAttr
gestaltTermMgrPresent
gestaltTermMgrErrorString
    Communications toolbox terminal manager.

gestaltTimeMgrVersion
gestaltStandardTimeMgr
gestaltRevisedTimeMgr
gestaltExtendedTimeMgr
    Time manager.

gestaltSpeechAttr
gestaltSpeechMgrPresent
gestaltSpeechHasPPCGlue
    Speech synthesis manager.

gestaltToolboxTable
    Toolbox dispatch table.

gestaltThreadMgrAttr
gestaltThreadMgrPresent
gestaltSpecificMatchSupport
gestaltThreadsLibraryPresent
    Thread manager.

gestaltTVAttr
gestaltHasTVTuner
gestaltHasSoundFader
gestaltHasHWClosedCaptioning
gestaltHasIRRemote
gestaltHasVidDecoderScaler
gestaltHasStereoDecoder
    TV interface.

gestaltVersion
gestaltValueImplementedVers
    Gestalt version.

gestaltVIA1Addr
gestaltVIA2Addr
    VIA addresses.

gestaltVMAttr
gestaltVMPresent
    Virtual memory.

gestaltTranslationAttr
gestaltTranslationMgrExists
gestaltTranslationMgrHintOrder
gestaltTranslationPPCAvail
gestaltTranslationGetPathAPIAvail
    Translation manager.

gestaltExtToolboxTable
    Extended toolbox dispatch table.

  Functions

Gestalt SELECTOR
    Implements the Gestalt query code. Return "undef" if an error was detected.

AUTHOR
Written by Matthias Ulrich Neeracher <neeracher@mac.com>, documentation by Bob Dalgleish <bob.dalgleish@sasknet.sk.ca>. Currently maintained by Chris Nandor <pudge@pobox.com>.