You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1001 lines
30 KiB
1001 lines
30 KiB
/* |
|
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__ */ |
|
|
|
|