|
|
/*
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__ */
|