diff options
Diffstat (limited to 'common/quicktime_win32/TextServices.h')
| -rw-r--r-- | common/quicktime_win32/TextServices.h | 1001 |
1 files changed, 1001 insertions, 0 deletions
diff --git a/common/quicktime_win32/TextServices.h b/common/quicktime_win32/TextServices.h new file mode 100644 index 0000000..b0e25ed --- /dev/null +++ b/common/quicktime_win32/TextServices.h @@ -0,0 +1,1001 @@ +/* + 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 <ConditionalMacros.h> +#endif + +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + +#ifndef __COMPONENTS__ +#include <Components.h> +#endif + +#ifndef __AEDATAMODEL__ +#include <AEDataModel.h> +#endif + +#ifndef __AEREGISTRY__ +#include <AERegistry.h> +#endif + +#ifndef __EVENTS__ +#include <Events.h> +#endif + +#ifndef __MENUS__ +#include <Menus.h> +#endif + +#ifndef __AEINTERACTION__ +#include <AEInteraction.h> +#endif + +#ifndef __ATSUNICODE__ +#include <ATSUnicode.h> +#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 <new in vers2.0> */ + 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__ */ + |