topical media & game development
lib-of-vs-libs-QTDevWin-CIncludes-TextServices.h / h
/*
File: TextServices.h
Contains: Text Services Manager Interfaces.
Version: Technology: System 8.2
Release: QuickTime 6.0.2
Copyright: (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 __EVENTS__
include <Events.h>
endif
ifndef __MENUS__
include <Menus.h>
endif
ifndef __AEDATAMODEL__
include <AEDataModel.h>
endif
ifndef __AEREGISTRY__
include <AERegistry.h>
endif
ifndef __COMPONENTS__
include <Components.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 */
kInputMethodService = FOUR_CHAR_CODE('inpm'), /* component subtype for the component description */
kTSMVersion = 0x0150 /* Version of the Text Services Manager is 1.5 */
};
enum {
kUnicodeDocument = FOUR_CHAR_CODE('udoc'), /* TSM Document type for Unicode-savvy application */
kUnicodeTextService = FOUR_CHAR_CODE('utsv') /* Component type for Unicode Text Service */
};
/* 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;
/* High level TSM Doucment routines */
EXTERN_API( OSErr )
NewTSMDocument (short numOfInterface,
InterfaceTypeList supportedInterfaceTypes,
TSMDocumentID * idocID,
long refcon) TWOWORDINLINE(0x7000, 0xAA54);
EXTERN_API( OSErr )
DeleteTSMDocument (TSMDocumentID idocID) TWOWORDINLINE(0x7001, 0xAA54);
EXTERN_API( OSErr )
ActivateTSMDocument (TSMDocumentID idocID) TWOWORDINLINE(0x7002, 0xAA54);
EXTERN_API( OSErr )
DeactivateTSMDocument (TSMDocumentID idocID) TWOWORDINLINE(0x7003, 0xAA54);
EXTERN_API( OSErr )
FixTSMDocument (TSMDocumentID idocID) TWOWORDINLINE(0x7007, 0xAA54);
EXTERN_API( OSErr )
GetServiceList (short numOfInterface,
OSType * supportedInterfaceTypes,
TextServiceListHandle * serviceInfo,
long * seedValue) TWOWORDINLINE(0x7008, 0xAA54);
EXTERN_API( OSErr )
OpenTextService (TSMDocumentID idocID,
Component aComponent,
ComponentInstance * aComponentInstance) TWOWORDINLINE(0x7009, 0xAA54);
EXTERN_API( OSErr )
CloseTextService (TSMDocumentID idocID,
ComponentInstance aComponentInstance) TWOWORDINLINE(0x700A, 0xAA54);
EXTERN_API( OSErr )
SendAEFromTSMComponent (const AppleEvent * theAppleEvent,
AppleEvent * reply,
AESendMode sendMode,
AESendPriority sendPriority,
long timeOutInTicks,
AEIdleUPP idleProc,
AEFilterUPP filterProc) TWOWORDINLINE(0x700B, 0xAA54);
EXTERN_API( OSErr )
SetDefaultInputMethod (Component ts,
ScriptLanguageRecord * slRecordPtr) TWOWORDINLINE(0x700C, 0xAA54);
EXTERN_API( OSErr )
GetDefaultInputMethod (Component * ts,
ScriptLanguageRecord * slRecordPtr) TWOWORDINLINE(0x700D, 0xAA54);
EXTERN_API( OSErr )
SetTextServiceLanguage (ScriptLanguageRecord * slRecordPtr) TWOWORDINLINE(0x700E, 0xAA54);
EXTERN_API( OSErr )
GetTextServiceLanguage (ScriptLanguageRecord * slRecordPtr) TWOWORDINLINE(0x700F, 0xAA54);
EXTERN_API( OSErr )
UseInputWindow (TSMDocumentID idocID,
Boolean useWindow) TWOWORDINLINE(0x7010, 0xAA54);
if CALL_NOT_IN_CARBON
/* Following calls from Classic event loops not needed for Carbon clients. */
if CALL_NOT_IN_CARBON
EXTERN_API( Boolean )
TSMEvent (EventRecord * event) TWOWORDINLINE(0x7004, 0xAA54);
EXTERN_API( Boolean )
TSMMenuSelect (long menuResult) TWOWORDINLINE(0x7005, 0xAA54);
EXTERN_API( Boolean )
SetTSMCursor (Point mousePos) TWOWORDINLINE(0x7006, 0xAA54);
/* Following ServiceWindow API replaced by Window Manager API in Carbon. */
EXTERN_API( OSErr )
NewServiceWindow (void * wStorage,
const Rect * boundsRect,
ConstStr255Param title,
Boolean visible,
short theProc,
WindowPtr behind,
Boolean goAwayFlag,
ComponentInstance ts,
WindowPtr * window) TWOWORDINLINE(0x7011, 0xAA54);
EXTERN_API( OSErr )
CloseServiceWindow (WindowPtr window) TWOWORDINLINE(0x7012, 0xAA54);
EXTERN_API( OSErr )
GetFrontServiceWindow (WindowPtr * window) TWOWORDINLINE(0x7013, 0xAA54);
EXTERN_API( short )
FindServiceWindow (Point thePoint,
WindowPtr * theWindow) TWOWORDINLINE(0x7017, 0xAA54);
EXTERN_API( OSErr )
NewCServiceWindow (void * wStorage,
const Rect * boundsRect,
ConstStr255Param title,
Boolean visible,
short theProc,
WindowPtr behind,
Boolean goAwayFlag,
ComponentInstance ts,
WindowPtr * window) TWOWORDINLINE(0x701A, 0xAA54);
/* Explicit initialization not needed for Carbon clients, since TSM is */
/* instanciated per-context. */
EXTERN_API( OSErr )
InitTSMAwareApplication (void) TWOWORDINLINE(0x7014, 0xAA54);
EXTERN_API( OSErr )
CloseTSMAwareApplication (void) TWOWORDINLINE(0x7015, 0xAA54);
endif /* CALL_NOT_IN_CARBON */
endif /* CALL_NOT_IN_CARBON */
/* Component Manager Interfaces to Input Methods */
EXTERN_API( ComponentResult )
GetScriptLanguageSupport (ComponentInstance ts,
ScriptLanguageSupportHandle * scriptHdl) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A);
EXTERN_API( ComponentResult )
InitiateTextService (ComponentInstance ts) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0002, 0x7000, 0xA82A);
EXTERN_API( ComponentResult )
TerminateTextService (ComponentInstance ts) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0003, 0x7000, 0xA82A);
EXTERN_API( ComponentResult )
ActivateTextService (ComponentInstance ts) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0004, 0x7000, 0xA82A);
EXTERN_API( ComponentResult )
DeactivateTextService (ComponentInstance ts) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A);
EXTERN_API( ComponentResult )
GetTextServiceMenu (ComponentInstance ts,
MenuRef * serviceMenu) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
if CALL_NOT_IN_CARBON
if CALL_NOT_IN_CARBON
EXTERN_API( ComponentResult )
TextServiceEvent (ComponentInstance ts,
short numOfEvents,
EventRecord * event) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0006, 0x7000, 0xA82A);
EXTERN_API( ComponentResult )
UCTextServiceEvent (ComponentInstance ts,
short numOfEvents,
EventRecord * event,
UniChar unicodeString[],
UniCharCount unicodeStrLength) FIVEWORDINLINE(0x2F3C, 0x000E, 0x000E, 0x7000, 0xA82A);
EXTERN_API( ComponentResult )
TextServiceMenuSelect (ComponentInstance ts,
MenuRef serviceMenu,
short item) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0008, 0x7000, 0xA82A);
EXTERN_API( ComponentResult )
SetTextServiceCursor (ComponentInstance ts,
Point mousePos) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A);
endif /* CALL_NOT_IN_CARBON */
endif /* CALL_NOT_IN_CARBON */
EXTERN_API( ComponentResult )
FixTextService (ComponentInstance ts) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0009, 0x7000, 0xA82A);
EXTERN_API( ComponentResult )
HidePaletteWindows (ComponentInstance ts) FIVEWORDINLINE(0x2F3C, 0x0000, 0x000B, 0x7000, 0xA82A);
EXTERN_API( ComponentResult )
GetTextServiceProperty (ComponentInstance ts,
OSType propertySelector,
SInt32 * result) FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A);
EXTERN_API( ComponentResult )
SetTextServiceProperty (ComponentInstance ts,
OSType propertySelector,
SInt32 value) FIVEWORDINLINE(0x2F3C, 0x0008, 0x000D, 0x7000, 0xA82A);
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__ */
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.