summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/TextServices.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/TextServices.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/TextServices.h')
-rw-r--r--common/quicktime_win32/TextServices.h1001
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__ */
+