source-engine/common/quicktime_win32/TextServices.h

1002 lines
30 KiB
C
Raw Normal View History

2020-04-22 16:56:21 +00:00
/*
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__ */