Apple System Software (T-Z)
This chapter lists selector codes of which the meaning is documented and the first character of the selector code is in the T-Z range.
tabl (System [6.0.4])
gestaltSelectorTable?
Returns a handle to the Gestalt selector table itself.
#define gestaltSelectorTable? 'tabl' /* Gestalt Table address */
WARNING:
Although this information isn't officially confirmed, it is probably
correct. But it is likely to go away in future systems.
NOTE:
The Gestalt selector table is kept in a resizable block in the system
heap. The last item in the table is a dummy entry (INVALID), marked by
a selector OSType(MaxLongInt). (Marco Piovanelli, he also has some
snippet Pascal code to list all selectors)
With System 7.5 each item in the table now contains three parts:
the selector, an information field and a field with either a pointer
or a value. If the information field (or only bit 0) is 1, a value is
stored, otherwise a pointer to the gestalt function. (Eric-Paul Rebel)
For backward compatibility this selector probably now points to a
second table using the old format. (Rene Ros)
The Gestalt dcmd included with MacsBug 6.5.4a4 or later ignores this
selector because it makes toolbox calls that don't work in the dcmd
environment.
tbtt (System [6.0.8])
gestaltToolboxTable
Returns the base address of the Toolbox trap table.
#define gestaltToolboxTable 'tbtt' /* Toolbox trap table base */
te (System [6.0.5])
gestaltTextEditVersion
Returns a value that indicates which version of TextEdit is present.
enum {
#define gestaltTextEditVersion 'te ' /* TextEdit version number */
gestaltTE1 = 1, /* TextEdit in MacIIci ROM */
gestaltTE2 = 2, /* TextEdit with 6.0.4 Script Systems on MacIIci
(Script bug fixes for MacIIci) */
gestaltTE3 = 3, /* TextEdit with 6.0.4 Script Systems all but
MacIIci */
gestaltTE4 = 4, /* TextEdit in System 7.0 */
gestaltTE5 = 5, /* TextWidthHook available in TextEdit */
gestaltTE6 = 6}; /* TextEdit in Mac OS 8.0/Copland &AS20
(not seen in Mac OS 8.0/Tempo beta) */
======================================================================
Version numbers for TextEdit
======================================================================
Returned value New Features System software Hardware
----------------------------------------------------------------------
gestaltUndefSelector Multistyled TE before 6.0.4 all
gestaltTE1 6.0.4 Roman IIci
gestaltTE2 New width 6.0.4 non-Roman IIci
measurement hook
Script Mgr compatible
gestaltTE3 6.0.4 non-Roman non-IIci
gestaltTE4 TEFeatureFlag 6.0.5 all
gestaltTE5 Text width 7.0 all
measurement hook
gestaltTE6 ??? ??? all?
----------------------------------------------------------------------
(Original source: Inside Macintosh Text, p.2-23)
NOTE:
The inline input features (also in TextEdit version 5) are also
available with System 6.0.7 using non-Roman script systems, but there
is no Gestalt constant that indicates this availability. &AD19
teat (Macintosh Drag and Drop ext [1.0])
gestaltTEAttr &AD05
Returns information about the functions and capabilities of TextEdit.
enum {
#define gestaltTEAttr 'teat' /* TextEdit attributes */
gestaltTEHasGetHiliteRgn = 0, /* TEGetHiliteRgn present */
gestaltTESupportsInlineInput = 1, /* TextEdit does Inline Input
&AS20 */
gestaltTESupportsTextObjects = 2, /* TextEdit does Text Objects
&AS20 */
gestaltTEHasWhiteBackground = 3}; /* TextEdit supports overriding the
TERec's background to white
&AS29 */
tele (System [7.5])
(Telephone Manager Extension ext [2.0?], part of Apple Telecom)
gestaltTelephoneMgrAttr?
Returns information about the Telephone Mgr.
enum {
#define gestaltTeleMgrAttr 'tele'
gestaltTeleMgrPresent = 0,
gestaltTeleMgrPowerPCSupport = 1,
/* below installed by Telephone Mgr 2.0? &AD21 */
gestaltTeleMgrSoundStreams = 2,
gestaltTeleMgrAutoAnswer = 3,
gestaltTeleMgrIndHandset = 4,
gestaltTeleMgrSilenceDetect = 5,
gestaltTeleMgrNewTELNewSupport = 6};
term (System [7.1])
gestaltTermMgrAttr
Returns information about the Terminal Manager.
enum {
#define gestaltTermMgrAttr 'term' /* Terminal Mgr attributes */
gestaltTermMgrPresent = 0, /* Terminal Mgr is present */
gestaltTermMgrErrorString = 2}; /* &AS04 */
thds (Thread Manager ext [1.1]) &AD04
(QuickDraw GX ext [1.0?])
(System [7.1.2?])
gestaltThreadAttr
Returns information about the Thread Manager.
enum {
#define gestaltThreadAttr 'thds' /* Thread Manager attributes */
gestaltThreadsPresent = 0, /* bit true if Threads present */
gestaltSpecificMatchSupport = 1, /* bit true if 'exact match' API
supported */
gestaltThreadsLibraryPresent = 2, /* bit true if ThreadsLib is
present */
gestaltSchedulerFix? = 3, /* preemptive scheduler fix
present? */
gestalt??? = 4, /* unknown, System 7.5.1 */
gestalt??? = 5, /* unknown, Thread Mgr 2.1.5
installed with QT MPEG
Extension 1.0 */
gestalt??? = 6}; /* unknown, Mac OS 9.0 */
NOTES:
IM OS Utilities lists this selector as 'gestaltThreadMgrAttr'.
For unknown reasons, the gestaltThreadsLibraryPresent bit is not set when
running under PPC-native mode, on KanjiTalk (Japanese) System 7.5.
(Laurent Humbert)
tmgr (System [6.0.4])
gestaltTimeMgrVersion
Returns a value that indicates the version of the Time Manager.
enum {
#define gestaltTimeMgrVersion 'tmgr' /* Time Mgr version */
gestaltStandardTimeMgr = 1, /* Standard Time Mgr */
gestaltRevisedTimeMgr = 2, /* Revised Time Mgr */
gestaltExtendedTimeMgr = 3}; /* Extended Time Mgr */
tpad (System? [7.5?] on PowerBook 520/540?)
Indicates precense of a trackpad? As such used in the 'IsTrackPad.c'
file included with the Apple Guide Authoring Kit.
tree (System? [9.0?])
gestaltAVLTreeAttr
Returns information abouth the AVLTree utility routines.
enum {
#define gestaltAVLTreeAttr 'tree'
gestaltAVLTreePresentBit = 0}; /* AVL Tree routines are available. */
tsma (System? [???])
gestaltTSMgrAttr &AS14
Returns information about the Text Services Manager.
enum {
#define gestaltTSMgrAttr 'tsma' /* Text Services Mgr attributes */
gestaltTSMDisplayMgrAwareBit = 0, /* TSM knows about Display Mgr */
gestaltTSMdoesTSMTEBit = 1}; /* TSM has integrated TSMTE &AS20 */
tsmv (System [7.1])
gestaltTSMgrVersion &AT05
Returns Text Services Manager version in BCD.
enum {
#define gestaltTSMgrVersion 'tsmv' /*Text Services Mgr version */
gestaltTSMgr15 = 0x0150, /* &AS29 */
gestaltTSMgr2 = 0x0200}; /* &AS20 */
tv (System? [???])
(Video Startup ext [1.0], part of European Video Installer)
gestaltTVAttr &AS14
Returns information about the TV capabilities.
enum {
#define gestaltTVAttr 'tv ' /* TV Version [huh? ed.] */
gestaltHasTVTuner = 0, /* supports Philips FL1236F
video tuner */
gestaltHasSoundFader = 1, /* supports Philips TEA6330
Sound Fader chip */
gestaltHasHWClosedCaptioning = 2, /* supports Philips SAA5252
Closed Captioning */
gestaltHasIRRemote = 3, /* supports CyclopsII Infra Red
Remote Control */
gestaltHasVidDecoderScaler = 4, /* supports Philips SAA7194
Video Decoder/Scaler */
gestaltHasStereoDecoder = 5, /* supports Sony SBX1637A-01
stereo decoder */
gestaltHasSerialFader = 6, /* has fader audio in serial
with system audio &AS22 */
gestaltHasFMTuner = 7, /* has FM Tuner from donnybrook
card &AS22 */
gestaltHasSystemIRFunction = 8,
gestaltIRDisabled = 9, /* Infra Red remote is not
disabled. &AS29 */
gestaltINeedIRPowerOffConfirm = 10, /* Need IR power off confirm
dialog. &AS29 */
gestaltHasZoomedVideo = 11}; /* Has Zoomed Video PC Card video
input. &AS29 */
NOTE:
A Power Macintosh 6100/66 with AV card and System 7.5.1 had both bit
3 and 4 set. A Quadra 605, LC475, PM 6100/60, Performa 5200 and
Power Computing Power 100 (all with System 7.5.x?) only had bit 3 set.
Where is the remote control, then?
Selector not installed on Quadra 700 and PB Duo 210 (also System
7.5.1 & 7.5upd2). (John Tsombakos, Rene Ros)
An LC630 didn't had bit 5 set, while it is supposed to have a stereo
decoder. (Eric-Paul Rebel)
ufox (Foreign File Access ext [4.0], part of Apple CD-ROM Software) &AT03
gestaltForeignFileAccessVersion?
Returns Foreign File Access version in BCD.
#define gestaltForeignFileAccessVersion? 'ufox';
/* Foreign File Access version */
NOTE: The returned version is obtained from 'vers' resource ID# 1.
uisf (System? [8.5?])
gestaltATSUFeatures
Returns information about Apple Text Services Unicode.
enum {
#define gestaltATSUFeatures 'uisf'
/* Features introduced in ATSUI version 1.1*/
gestaltATSUTrackingFeature = 0x00000001,
gestaltATSUMemoryFeature = 0x00000001,
gestaltATSUFallbacksFeature = 0x00000001,
gestaltATSUGlyphBoundsFeature = 0x00000001,
gestaltATSULineControlFeature = 0x00000001,
gestaltATSULayoutCreateAndCopyFeature = 0x00000001,
gestaltATSULayoutCacheClearFeature = 0x00000001,
/* Feature introduced in ATSUI version 1.2*/
gestaltATSUTextLocatorUsageFeature = 0x00000002,
/* Feature introduced in ATSUI version 2.0*/
gestaltATSULowLevelOrigFeatures = 0x00000004};
uisv (System? [8.5?])
gestaltATSUVersion
Returns the version of Apple Text Services Unicode as BCD.
enum {
#define gestaltATSUVersion 'uisv'
gestaltOriginalATSUVersion = (1 << 16), /* ATSUI version 1.0*/
gestaltATSUUpdate1 = (2 << 16), /* ATSUI version 1.1*/
gestaltATSUUpdate2 = (3 << 16), /* ATSUI version 1.2*/
gestaltATSUUpdate3 = (4 << 16)}; /* ATSUI version 2.0*/
usb {System? [8.5?])
gestaltUSBAttr
Returns information about the Universal Serial Bus (USB) support.
enum {
#define gestaltUSBAttr 'usb '
gestaltUSBPresent = 0, /* USB Support available */
gestaltUSBHasIsoch = 1}; /* USB Isochronous features available */
usbv {System? [8.5?])
Returns the version of Universal Serial Bus (USB) support
software as NumVersion.
#define gestaltUSBVersion 'usbv'
vers (System [6.0.4])
gestaltVersion
Returns the version of Gestalt as INTEGER.
enum {
#define gestaltVersion 'vers' /* Gestalt version */
gestaltValueImplementedVers = 5}; /* Version implementing
GestaltValue &AD21 */
NOTE:
Usually version 1 is present. On machines with ROM version 1917
(Quadra 840AV, PowerMacs etc.) version 4 is present.
Version 5 is installed by System 7.5 adding support for the
GestaltValue calls. And version 6 is installed by System 7.5.1.
Version 7 is the Mac OS 8.5 and iMac version.
(Rene Ros, Anonymous)
via1 (System [6.0.4, discontinued])
gestaltVIA1Addr
Returns the address of VIA 1.
#define gestaltVIA1Addr 'via1' /* VIA 1 address */
NOTE:
At least on a Performa 450 (LC III) this selector and 'via2' exists for
a short moment, until they are removed (by the system?).
(Anthony DeRobertis)
via2 (System [6.0.4, discontinued])
gestaltVIA2Addr
Returns the address of VIA 2.
#define gestaltVIA2Addr 'via2' /* VIA 2 address */
NOTE:
At least on a Performa 450 (LC III) this selector and 'via1' exists for
a short moment, until they are removed (by the system?).
(Anthony DeRobertis)
vm (System [6.0.4])
gestaltVMAttr
Returns information about virtual memory.
enum {
#define gestaltVMAttr 'vm '
gestaltVMPresent = 0, /* set; virtual memory present */
gestaltVMNotInstalled = 0, /* clear; virtual memory not present */
gestaltVMHasLockMemoryForOutput = 1,
/* LockMemoryForOutput available */
gestalt??? = 2, /* unknown, Mac OS 7.6? */
gestaltVMFilemappingOn = 3, /* Filemapping is available
(Mac OS 7.6?) &AS28 */
gestaltVMHasPagingControl = 4, /* the four Virtual Memory Paging
Control functions are available
&AT21 */
gestalt??? = 5}; /* seen with Mac OS 8.5 */
NOTE:
Starting with Copland (abandoned Mac OS 8) VM is always on but this
selector will tell VM is off. A future selector allows to test if
the microkernel is running and thus if VM is actually used.
&AD10/AD22
With Rhapsody's Blue Box the note above is true and real. See for
more info the 'lram' selector. (Anonymous)
vmbs (System [7.0])
gestaltVMBackingStoreFileRefNum
Returns the file refNum of virtual memory's main backing store file
(returned in low word of result).
#define gestaltVMBackingStoreFileRefNum 'vmbs'
vmin (System? [8.5])
Indicates how the Finder should display information about VM in the
Finder about box.
#define gestaltVMInfoType 'vmin'
gestaltVMInfoSizeStorageType = 0, /* Display VM on/off, backing store
size and name */
gestaltVMInfoSizeType = 1, /* Display whether VM is on or off
and the size of the backing
store */
gestaltVMInfoSimpleType = 2, /* Display whether VM is on or
off */
gestaltVMInfoNoneType = 3}; /* Display no VM information */
vmxe (AltiVec Emulator ext [1.0d4])
Returns information private to the AltiVec Emulator extension.
vmxg (AltiVec Emulator ext [1.0a1])
Returns information private to the AltiVec Emulator extension.
wind (System [8.5?])
gestaltWindowMgrAttr &AD21
Returns information about the Mac OS 8.5 (Allegro) Window Manager.
enum {
#define gestaltWindowMgrAttr 'wind'
gestaltWindowMgrPresentBit = 0,
gestaltExtendedWindowAttributes = 1,
/* Has ChangeWindowAttributes;
GetWindowAttributes works for all windows*/
gestaltExtendedWindowAttributesBit = 1, /* same */
gestaltHasFloatingWindows = 2, /* Floating window APIs */
gestaltHasFloatingWindowsBit = 2, /* same */
gestaltHasWindowBuffering = 3, /* buffering available */
gestaltHasWindowBufferingBit = 3, /* same */
gestaltWindowMgrPresent = (1L << 0),
gestaltWindowMgrPresentMask = (1L << gestaltWindowMgrPresentBit),
gestaltExtendedWindowAttributesMask = (1L << gestaltExtendedWindowAttributesBit),
gestaltHasFloatingWindowsMask = (1L << gestaltHasFloatingWindowsBit),
gestaltHasWindowBufferingMask = (1L << gestaltHasWindowBufferingBit)};
NOTE:
The gestaltWindowMgrPresent constant is a bit mask, where all other
Gestalt constants of this type are bit index values.
Universal Interfaces 3.2 slipped out the door with this mistake.
(Apple)
The following is originally from the Preliminary Copland Headers.
Copland is replaced by Rhapsody which is replaced by Mac OS X.
enum {
#define gestaltWindowMgrAttr 'wind'
kSystemEightWindowMgr = 0,
gestalt??? = 1,
gestalt??? = 2,
kSystemEightWindowsVersion = 8,
kLatestWindowsVersion = 8};
wma. (System [7.0])
(Responder ext [2.0?])
gestaltResponderAttr
Returns information about the Workstation Management Agent a.k.a.
Responder.
enum {
#define gestaltResponderAttr 'wma.' /* Responder attributes */
gestaltResponderPresent = 0}; /* Responder is present */
x86f (??? [???])
gestaltX86Features
Returns information about the Intel platform the OS is running on?
enum{
#define gestaltX86Features 'x86f'
gestaltX86HasFPU = 0, /* FPU supports the 387 instructions */
gestaltX86HasVME = 1, /* supports Virtual-8086 Mode Ext */
gestaltX86HasDE = 2, /* supports I/O breakpoints (Debug Ext) */
gestaltX86HasPSE = 3, /* supports 4-Mbyte pages\
(Page Size Extension) */
gestaltX86HasTSC = 4, /* supports RTDSC instruction
(Time Stamp Counter) */
gestaltX86HasMSR = 5, /* supports Model Specific Registers */
gestaltX86HasPAE = 6, /* supports physical addresses > 32 bits
(Physical Address Extension) */
gestaltX86HasMCE = 7, /* supports Machine Check Exception */
gestaltX86HasCX8 = 8, /* supports CMPXCHG8 instructions
(Compare Exchange 8 bytes) */
gestaltX86HasAPIC = 9, /* contains local APIC */
gestaltX86Reserved10 = 10, /* do not count on this bit value*/
gestaltX86HasSEP = 11, /* supports fast system call
(SysEnter Present) */
gestaltX86HasMTRR = 12, /* supports Memory Type Range Registers */
gestaltX86HasPGE = 13, /* supports Page Global Enable */
gestaltX86HasMCA = 14, /* supports Machine Check Architecture */
gestaltX86HasCMOV = 15, /* supports CMOVcc instruction
(Conditional Move). If FPU bit is also
set, supports FCMOVcc and FCOMI, too */
gestaltX86HasPAT = 16, /* supports Page Attribute Table*/
gestaltX86HasPSE36 = 17, /* supports 36-bit Page Size Extension */
gestaltX86HasMMX = 23, /* supports MMX instructions */
gestaltX86HasFXSR = 24}; /* Supports FXSAVE and FXRSTOR
instructions (fast FP save/restore) */
xlat (Macintosh Easy Open cp [1.0?-1.1.2?])
(Mac OS Easy Open cp [1.1.3])
gestaltTranslationAttr
Returns information about the Translation Manager.
enum {
#define gestaltTranslationAttr 'xlat' /* Translation Mgr attrib. */
gestaltTranslationMgrExists = 0, /* TM present */
gestaltTranslationMgrHintOrder = 1, /* TRUE if hint order */
reversal bug is fixed */
gestaltTranslationPPCAvail = 2, /* PPC Lib. available */
gestaltTranslationGetPathAPIAvail = 3, /* GetFileTranslationPath &
GetPathTranslationDialog
available */
gestalt??? = 4}; /* by MEO 1.1 and later */
xlsf (Macintosh Easy Open cp [1.1.1?-1.1.2?])
(Mac OS Easy Open cp [1.1.3])
kTranslateScrapGestaltAttr
Indicates to Easy Open what actions must be taken.
enum {
#define kTranslateScrapGestaltAttr 'xlsf'
kTranslateScrapOnDisk = (1 << 0)};
NOTE:
The kTranslateScrapOnDisk bit is set to one if MEO should translate
scrap when the clipboard is unloaded (on disk). This is done only if
this GestaltValue selector is installed, and only if this bit is set.
Applications should install this selector only temporarilly while
calling GetScrap. (Anonymous)
xttt (System [6.0.8])
gestaltExtToolboxTable
Returns the base address of the second half of the Toolbox trap table
if the table is discontiguous. If the table is contiguous, this
selector returns zero. &AD19
#define gestaltExtToolboxTable 'xttt' /* Extended Toolbox trap table*/
NOTE:
This selector may be installed but returns gestaltUnknownErr instead
of zero when the table is contiguous? (Rene Ros)