/* File: TextServices.h Contains: Text Services Manager Interfaces. Version: QuickTime 7.3 Copyright: (c) 2007 (c) 1991-2001 by Apple Computer, Inc., all rights reserved. Bugs?: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ */ #ifndef __TEXTSERVICES__ #define __TEXTSERVICES__ #ifndef __CONDITIONALMACROS__ #include #endif #ifndef __MACTYPES__ #include #endif #ifndef __COMPONENTS__ #include #endif #ifndef __AEDATAMODEL__ #include #endif #ifndef __AEREGISTRY__ #include #endif #ifndef __EVENTS__ #include #endif #ifndef __MENUS__ #include #endif #ifndef __AEINTERACTION__ #include #endif #ifndef __ATSUNICODE__ #include #endif #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #if PRAGMA_STRUCT_ALIGN #pragma options align=mac68k #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(push, 2) #elif PRAGMA_STRUCT_PACK #pragma pack(2) #endif enum { kTextService = FOUR_CHAR_CODE('tsvc'), /* component type for the component description */ kTSMVersion = 0x0150 /* Version of the Text Services Manager is 1.5 */ }; /* TextServiceClass constants supported by TSM Same as component subtype for the component description */ enum { kKeyboardInputMethodClass = FOUR_CHAR_CODE('inpm'), kInkInputMethodClass = FOUR_CHAR_CODE('ink '), kCharacterPaletteInputMethodClass = FOUR_CHAR_CODE('cplt') }; typedef OSType TextServiceClass; enum { kTSClassHonorUserSetting = 1, kTSClassForceSetting = 2, kTSClassForceToHonorUserSetting = 3 }; typedef UInt32 TSClassEnablingForceLevel; enum { kUnicodeDocument = FOUR_CHAR_CODE('udoc'), /* TSM Document type for Unicode-savvy application */ kUnicodeTextService = FOUR_CHAR_CODE('utsv') /* Component type for Unicode Text Service */ }; /* TSMDocumentID property tags*/ enum { kTSMDocumentPropertySupportGlyphInfo = FOUR_CHAR_CODE('dpgi') /* property value is arbitrary*/ }; /* Language and Script constants*/ enum { kUnknownLanguage = 0xFFFF, kUnknownScript = 0xFFFF, kNeutralScript = 0xFFFF }; enum { /* Component Flags in ComponentDescription */ bTakeActiveEvent = 15, /* bit set if the component takes active event */ bHandleAERecording = 16, /* bit set if the component takes care of recording Apple Events */ bScriptMask = 0x00007F00, /* bit 8 - 14 */ bLanguageMask = 0x000000FF, /* bit 0 - 7 */ bScriptLanguageMask = bScriptMask + bLanguageMask /* bit 0 - 14 */ }; enum { /* Typing method property constants for Input Methods */ kIMJaTypingMethodProperty = FOUR_CHAR_CODE('jtyp'), /* Typing method property for Japanese input methods*/ kIMJaTypingMethodRoman = FOUR_CHAR_CODE('roma'), /* Roman typing*/ kIMJaTypingMethodKana = FOUR_CHAR_CODE('kana') /* Kana typing*/ }; enum { /* Low level routines which are dispatched directly to the Component Manager */ kCMGetScriptLangSupport = 0x0001, /* Component Manager call selector 1 */ kCMInitiateTextService = 0x0002, /* Component Manager call selector 2 */ kCMTerminateTextService = 0x0003, /* Component Manager call selector 3 */ kCMActivateTextService = 0x0004, /* Component Manager call selector 4 */ kCMDeactivateTextService = 0x0005, /* Component Manager call selector 5 */ kCMTextServiceEvent = 0x0006, /* Component Manager call selector 6 */ kCMGetTextServiceMenu = 0x0007, /* Component Manager call selector 7 */ kCMTextServiceMenuSelect = 0x0008, /* Component Manager call selector 8 */ kCMFixTextService = 0x0009, /* Component Manager call selector 9 */ kCMSetTextServiceCursor = 0x000A, /* Component Manager call selector 10 */ kCMHidePaletteWindows = 0x000B, /* Component Manager call selector 11 */ kCMGetTextServiceProperty = 0x000C, /* Component Manager call selector 12 */ kCMSetTextServiceProperty = 0x000D /* Component Manager call selector 13 */ }; enum { /* New low level routines which are dispatched directly to the Component Manager */ kCMUCTextServiceEvent = 0x000E /* Component Manager call selector 14 */ }; /* extract Script/Language code from Component flag ... */ #define mGetScriptCode(cdRec) ((ScriptCode) ((cdRec.componentFlags & bScriptMask) >> 8)) #define mGetLanguageCode(cdRec) ((LangCode) cdRec.componentFlags & bLanguageMask) /* New opaque definitions for types */ typedef struct OpaqueTSMDocumentID* TSMDocumentID; typedef OSType InterfaceTypeList[1]; /* Text Service Info List */ struct TextServiceInfo { Component fComponent; Str255 fItemName; }; typedef struct TextServiceInfo TextServiceInfo; typedef TextServiceInfo * TextServiceInfoPtr; struct TextServiceList { short fTextServiceCount; /* number of entries in the 'fServices' array */ TextServiceInfo fServices[1]; /* Note: array of 'TextServiceInfo' records follows */ }; typedef struct TextServiceList TextServiceList; typedef TextServiceList * TextServiceListPtr; typedef TextServiceListPtr * TextServiceListHandle; struct ScriptLanguageRecord { ScriptCode fScript; LangCode fLanguage; }; typedef struct ScriptLanguageRecord ScriptLanguageRecord; struct ScriptLanguageSupport { short fScriptLanguageCount; /* number of entries in the 'fScriptLanguageArray' array */ ScriptLanguageRecord fScriptLanguageArray[1]; /* Note: array of 'ScriptLanguageRecord' records follows */ }; typedef struct ScriptLanguageSupport ScriptLanguageSupport; typedef ScriptLanguageSupport * ScriptLanguageSupportPtr; typedef ScriptLanguageSupportPtr * ScriptLanguageSupportHandle; struct TSMGlyphInfo { CFRange range; /* two SInt32s*/ ATSFontRef fontRef; UInt16 collection; /* kGlyphCollectionXXX enum*/ UInt16 glyphID; /* GID (when collection==0) or CID*/ }; typedef struct TSMGlyphInfo TSMGlyphInfo; struct TSMGlyphInfoArray { ItemCount numGlyphInfo; /* UInt32*/ TSMGlyphInfo glyphInfo[1]; }; typedef struct TSMGlyphInfoArray TSMGlyphInfoArray; /* High level TSM Doucment routines */ /* * NewTSMDocument() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) NewTSMDocument( short numOfInterface, InterfaceTypeList supportedInterfaceTypes, TSMDocumentID * idocID, long refcon) TWOWORDINLINE(0x7000, 0xAA54); /* * DeleteTSMDocument() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) DeleteTSMDocument(TSMDocumentID idocID) TWOWORDINLINE(0x7001, 0xAA54); /* * ActivateTSMDocument() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) ActivateTSMDocument(TSMDocumentID idocID) TWOWORDINLINE(0x7002, 0xAA54); /* * DeactivateTSMDocument() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) DeactivateTSMDocument(TSMDocumentID idocID) TWOWORDINLINE(0x7003, 0xAA54); /* * FixTSMDocument() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) FixTSMDocument(TSMDocumentID idocID) TWOWORDINLINE(0x7007, 0xAA54); /* * GetServiceList() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) GetServiceList( short numOfInterface, OSType * supportedInterfaceTypes, TextServiceListHandle * serviceInfo, long * seedValue) TWOWORDINLINE(0x7008, 0xAA54); /* * OpenTextService() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) OpenTextService( TSMDocumentID idocID, Component aComponent, ComponentInstance * aComponentInstance) TWOWORDINLINE(0x7009, 0xAA54); /* * CloseTextService() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) CloseTextService( TSMDocumentID idocID, ComponentInstance aComponentInstance) TWOWORDINLINE(0x700A, 0xAA54); /* * SendAEFromTSMComponent() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SendAEFromTSMComponent( const AppleEvent * theAppleEvent, AppleEvent * reply, AESendMode sendMode, AESendPriority sendPriority, long timeOutInTicks, AEIdleUPP idleProc, AEFilterUPP filterProc) TWOWORDINLINE(0x700B, 0xAA54); /* * SendTextInputEvent() * * Discussion: * This API replaces SendAEFromTSMComponent on Mac OS X only. Input * Methods on Mac OS X are Carbon Event based instead of AppleEvent * based. The Carbon TextInput events which they generate are * provided to TSM for dispatching via this API. * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib N.e.v.e.r and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) SendTextInputEvent(EventRef inEvent); /* * SetDefaultInputMethod() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetDefaultInputMethod( Component ts, ScriptLanguageRecord * slRecordPtr) TWOWORDINLINE(0x700C, 0xAA54); /* * GetDefaultInputMethod() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) GetDefaultInputMethod( Component * ts, ScriptLanguageRecord * slRecordPtr) TWOWORDINLINE(0x700D, 0xAA54); /* * SetTextServiceLanguage() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetTextServiceLanguage(ScriptLanguageRecord * slRecordPtr) TWOWORDINLINE(0x700E, 0xAA54); /* * GetTextServiceLanguage() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) GetTextServiceLanguage(ScriptLanguageRecord * slRecordPtr) TWOWORDINLINE(0x700F, 0xAA54); /* * UseInputWindow() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) UseInputWindow( TSMDocumentID idocID, Boolean useWindow) TWOWORDINLINE(0x7010, 0xAA54); /* * TSMSetInlineInputRegion() * * Discussion: * Tell TSM about the region occupied by an inline input session. If * the location of certain mouse events (clicks, mouse moved) occur * within the specified inline input region, TSM will forward these * events to the current Input Method so that it can interact with * the user. Note: If you do not specify this information, TSM will * need to intercept mouse events in the entire content region as * the default, when an input method is active, in order to ensure * that input methods can manage user interaction properly. * * Parameters: * * inTSMDocument: * The document. * * inWindow: * The window that contains the inline input session. You can pass * NULL for this parameter to indicate the user focus window. * * inRegion: * The region occupied by the current inline input region. This * should be in the coordinates of the port associated with the * window you passed to inPort. It will need to be recomputed when * the text content of the inline input session content changes * (i.e. due to Update Active Input Area events) and when the * region moves for other reasons, such as window resized, * scrolling, etc. If you pass a NULL region for this parameter, * TSM will default to intercept mouse events in the focus * window's content region. * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) TSMSetInlineInputRegion( TSMDocumentID inTSMDocument, WindowRef inWindow, RgnHandle inRegion); /* Following calls from Classic event loops not needed for Carbon clients. */ #if CALL_NOT_IN_CARBON /* * TSMEvent() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( Boolean ) TSMEvent(EventRecord * event) TWOWORDINLINE(0x7004, 0xAA54); /* * TSMMenuSelect() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( Boolean ) TSMMenuSelect(long menuResult) TWOWORDINLINE(0x7005, 0xAA54); /* * SetTSMCursor() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( Boolean ) SetTSMCursor(Point mousePos) TWOWORDINLINE(0x7006, 0xAA54); /* Following ServiceWindow API replaced by Window Manager API in Carbon. */ /* * NewServiceWindow() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( OSErr ) NewServiceWindow( void * wStorage, const Rect * boundsRect, ConstStr255Param title, Boolean visible, short theProc, WindowRef behind, Boolean goAwayFlag, ComponentInstance ts, WindowRef * window) TWOWORDINLINE(0x7011, 0xAA54); /* * CloseServiceWindow() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( OSErr ) CloseServiceWindow(WindowRef window) TWOWORDINLINE(0x7012, 0xAA54); /* * GetFrontServiceWindow() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( OSErr ) GetFrontServiceWindow(WindowRef * window) TWOWORDINLINE(0x7013, 0xAA54); /* * FindServiceWindow() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( short ) FindServiceWindow( Point thePoint, WindowRef * theWindow) TWOWORDINLINE(0x7017, 0xAA54); /* * NewCServiceWindow() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.5 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( OSErr ) NewCServiceWindow( void * wStorage, const Rect * boundsRect, ConstStr255Param title, Boolean visible, short theProc, WindowRef behind, Boolean goAwayFlag, ComponentInstance ts, WindowRef * window) TWOWORDINLINE(0x701A, 0xAA54); /* Explicit initialization not needed for Carbon clients, since TSM is */ /* instanciated per-context. */ /* * InitTSMAwareApplication() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( OSErr ) InitTSMAwareApplication(void) TWOWORDINLINE(0x7014, 0xAA54); /* * CloseTSMAwareApplication() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( OSErr ) CloseTSMAwareApplication(void) TWOWORDINLINE(0x7015, 0xAA54); /* Component Manager Interfaces to Input Methods */ #endif /* CALL_NOT_IN_CARBON */ /* * GetScriptLanguageSupport() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( ComponentResult ) GetScriptLanguageSupport( ComponentInstance ts, ScriptLanguageSupportHandle * scriptHdl) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A); /* * InitiateTextService() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( ComponentResult ) InitiateTextService(ComponentInstance ts) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0002, 0x7000, 0xA82A); /* * TerminateTextService() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( ComponentResult ) TerminateTextService(ComponentInstance ts) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0003, 0x7000, 0xA82A); /* * ActivateTextService() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( ComponentResult ) ActivateTextService(ComponentInstance ts) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0004, 0x7000, 0xA82A); /* * DeactivateTextService() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( ComponentResult ) DeactivateTextService(ComponentInstance ts) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A); /* * GetTextServiceMenu() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( ComponentResult ) GetTextServiceMenu( ComponentInstance ts, MenuRef * serviceMenu) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A); /* New Text Service call in Carbon. */ /* Note: Only Raw Key and Mouse-flavored events are passed to Text Services on MacOS X. */ /* * TextServiceEventRef() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( ComponentResult ) TextServiceEventRef( ComponentInstance ts, EventRef event) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0006, 0x7000, 0xA82A); #if CALL_NOT_IN_CARBON /* * TextServiceEvent() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( ComponentResult ) TextServiceEvent( ComponentInstance ts, short numOfEvents, EventRecord * event) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0006, 0x7000, 0xA82A); /* * UCTextServiceEvent() * * Availability: * Non-Carbon CFM: in InterfaceLib 8.5 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( ComponentResult ) UCTextServiceEvent( ComponentInstance ts, short numOfEvents, EventRecord * event, UniChar unicodeString[], UniCharCount unicodeStrLength) FIVEWORDINLINE(0x2F3C, 0x000E, 0x000E, 0x7000, 0xA82A); /* * TextServiceMenuSelect() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( ComponentResult ) TextServiceMenuSelect( ComponentInstance ts, MenuRef serviceMenu, short item) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0008, 0x7000, 0xA82A); /* * SetTextServiceCursor() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( ComponentResult ) SetTextServiceCursor( ComponentInstance ts, Point mousePos) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A); #endif /* CALL_NOT_IN_CARBON */ /* * FixTextService() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( ComponentResult ) FixTextService(ComponentInstance ts) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0009, 0x7000, 0xA82A); /* * HidePaletteWindows() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( ComponentResult ) HidePaletteWindows(ComponentInstance ts) FIVEWORDINLINE(0x2F3C, 0x0000, 0x000B, 0x7000, 0xA82A); /* * GetTextServiceProperty() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( ComponentResult ) GetTextServiceProperty( ComponentInstance ts, OSType propertySelector, SInt32 * result) FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A); /* * SetTextServiceProperty() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( ComponentResult ) SetTextServiceProperty( ComponentInstance ts, OSType propertySelector, SInt32 value) FIVEWORDINLINE(0x2F3C, 0x0008, 0x000D, 0x7000, 0xA82A); /* Get the active TSMDocument in the current application context. */ /* If TSM has enabled bottom line input mode because no TSMDocument */ /* is active, NULL will be returned. */ /* * TSMGetActiveDocument() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( TSMDocumentID ) TSMGetActiveDocument(void); /* * GetDefaultInputMethodOfClass() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) GetDefaultInputMethodOfClass( Component * aComp, ScriptLanguageRecord * slRecPtr, TextServiceClass tsClass); /* * SetDefaultInputMethodOfClass() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) SetDefaultInputMethodOfClass( Component aComp, ScriptLanguageRecord * slRecPtr, TextServiceClass tsClass); /* * DeselectTextService() * * Discussion: * This API is currently only intended for use by Character Palette * class input methods. It allows such an input method to notify TSM * that it has been closed by the user as a result of interaction * with the input method's own UI, such a palette window's close * button, instead of via the normal UI provided by the System, such * as the Keyboard Menu. Note that this API is only meant for use * with "additive" text service classes (such as Character * Palettes), and not with traditional input methods which are * exclusively selected in a given class and script, such as * keyboard input methods. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) DeselectTextService(Component aComp); /* * SelectTextService() * * Discussion: * This API is currently only intended for use by the system UI * (Keyboard Menu or prefs panel) and input methods that wish to set * to the "selected" state a text service which is "additive" in * nature. It is not intended for use with input methods that are * "exclusive" in nature (see DeselectTextService). It allows an * input method to notify TSM that it has been selected by the user * as a result of interaction with some UI (possibly another input * method), instead of via the normal UI provided by the System, * such as the Keyboard Menu. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) SelectTextService(Component aComp); /* * TSMSetDocumentProperty() * * Discussion: * This API is currently only needed for applications that wish to * signal to TSM that it supports GlyphID specification in TSM * events containing Unicode text (see * kTSMDocumentPropertySupportGlyphInfo). Input Methods call * TSMGetDocumentProperty() against the currently active TSMDocument * to test whether the app supports this glyph info. These TSM * property API can also be freely used by applications to relate * arbitrary data to a given TSMDocument. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) TSMSetDocumentProperty( TSMDocumentID docID, OSType propertyTag, UInt32 propertySize, void * propertyData); /* * TSMGetDocumentProperty() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) TSMGetDocumentProperty( TSMDocumentID docID, OSType propertyTag, UInt32 bufferSize, UInt32 * actualSize, void * propertyBuffer); /* can be NULL */ /* * TSMRemoveDocumentProperty() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) TSMRemoveDocumentProperty( TSMDocumentID docID, OSType propertyTag); #if OLDROUTINENAMES enum { kInputMethodService = kKeyboardInputMethodClass }; #endif /* OLDROUTINENAMES */ #if PRAGMA_STRUCT_ALIGN #pragma options align=reset #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(pop) #elif PRAGMA_STRUCT_PACK #pragma pack() #endif #ifdef PRAGMA_IMPORT_OFF #pragma import off #elif PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #endif /* __TEXTSERVICES__ */