home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Developers / MW MPW Binaries 1.1.1a2 / mwcPPC / MWCIncludes / TextServices.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-31  |  14.8 KB  |  648 lines  |  [TEXT/MMCC]

  1. /*
  2.     File:        TextServices.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __TEXTSERVICES__
  13. #define __TEXTSERVICES__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. /*    #include <ConditionalMacros.h>                                */
  18. /*    #include <MixedMode.h>                                        */
  19. /*        #include <Traps.h>                                        */
  20. #endif
  21.  
  22. #ifndef __EVENTS__
  23. #include <Events.h>
  24. /*    #include <Quickdraw.h>                                        */
  25. /*        #include <QuickdrawText.h>                                */
  26. /*            #include <IntlResources.h>                            */
  27. /*    #include <OSUtils.h>                                        */
  28. #endif
  29.  
  30. #ifndef __MENUS__
  31. #include <Menus.h>
  32. #endif
  33.  
  34. #ifndef __APPLEEVENTS__
  35. #include <AppleEvents.h>
  36. /*    #include <Memory.h>                                            */
  37. /*    #include <EPPC.h>                                            */
  38. /*        #include <PPCToolBox.h>                                    */
  39. /*            #include <AppleTalk.h>                                */
  40. /*        #include <Processes.h>                                    */
  41. /*            #include <Files.h>                                    */
  42. /*                #include <SegLoad.h>                            */
  43. /*    #include <Notification.h>                                    */
  44. #endif
  45.  
  46. #ifndef __ERRORS__
  47. #include <Errors.h>
  48. #endif
  49.  
  50. #ifndef __COMPONENTS__
  51. #include <Components.h>
  52. #endif
  53.  
  54. #define kTSMVersion 0x0001
  55.  
  56. #define kTextService 'tsvc'
  57.  
  58. #define kInputMethodService 'inpm'
  59.  
  60.  
  61. /* Component Flags in ComponentDescription */
  62.  
  63. #define bTakeActiveEvent 15
  64.  
  65. #define bHandleAERecording 16
  66.  
  67. #define bScriptMask 0x00007F00
  68.  
  69. #define bLanguageMask 0x000000FF
  70.  
  71. #define bScriptLanguageMask bScriptMask+bLanguageMask
  72.  
  73.  
  74. /*    •• ************************************** ••  */
  75.  
  76.  
  77. /* Hilite styles ... */
  78.  
  79. enum  {
  80.     kCaretPosition                = 1,                            /* specify caret position */
  81.     kRawText                    = 2,                            /* specify range of raw text */
  82.     kSelectedRawText            = 3,                            /* specify range of selected raw text */
  83.     kConvertedText                = 4,                            /* specify range of converted text */
  84.     kSelectedConvertedText        = 5                                /* specify range of selected converted text */
  85. };
  86.  
  87.  
  88. /*    •• ************************************** ••  */
  89.  
  90.  
  91. /* Apple Event constants ... */
  92.  
  93.  
  94. /* Event class ... */
  95.  
  96. #define kTextServiceClass kTextService
  97.  
  98.  
  99. /* event ID ... */
  100.  
  101. #define kUpdateActiveInputArea 'updt'
  102.  
  103. #define kPos2Offset 'p2st'
  104.  
  105. #define kOffset2Pos 'st2p'
  106.  
  107. #define kShowHideInputWindow 'shiw'
  108.  
  109.  
  110. /* Event keywords ... */
  111.  
  112. #define keyAETSMDocumentRefcon 'refc'
  113.  
  114.  
  115. /* Note: keyAETSMScriptTag, keyAERequestedType, keyAETSMTextFont, keyAETextPointSize
  116.     typeAEText, typeIntlWritingCode, typeQDPoint, and keyAEAngle have been moved to 
  117.     AERegistry.h */
  118.  
  119. #define keyAEServerInstance 'srvi'
  120.  
  121. #define keyAETheData 'kdat'
  122.  
  123. #define keyAEFixLength 'fixl'
  124.  
  125. #define keyAEHiliteRange 'hrng'
  126.  
  127. #define keyAEUpdateRange 'udng'
  128.  
  129. #define keyAEClauseOffsets 'clau'
  130.  
  131. #define keyAECurrentPoint 'cpos'
  132.  
  133. #define keyAEDragging 'bool'
  134.  
  135. #define keyAEOffset 'ofst'
  136.  
  137. #define keyAERegionClass 'rgnc'
  138.  
  139. #define keyAEPoint 'gpos'
  140.  
  141. #define keyAEBufferSize 'buff'
  142.  
  143. #define keyAEMoveView 'mvvw'
  144.  
  145. #define keyAELength 'leng'
  146.  
  147. #define keyAENextBody 'nxbd'
  148.  
  149.  
  150. /* optional keywords for Offset2Pos (Info about the active input area)-- 28Mar92 <#38> */
  151.  
  152. #define keyAETextLineHeight 'ktlh'
  153.  
  154. #define keyAETextLineAscent 'ktas'
  155.  
  156.  
  157. /* 90 specifies horizonal line direction, 180 specifies vertical line direction.    <#54> */
  158.  
  159.  
  160. /* optional keywords for Pos2Offset                    -- 20May92 <#44> */
  161.  
  162. #define keyAELeftSide 'klef'
  163.  
  164.  
  165. /* optional keywords for kShowHideInputWindow    -- <#48> */
  166.  
  167. #define keyAEShowHideInputWindow 'shiw'
  168.  
  169.  
  170. /* for PinRange  */
  171.  
  172. #define keyAEPinRange 'pnrg'
  173.  
  174.  
  175. /* Desc type ... */
  176.  
  177. #define typeComponentInstance 'cmpi'
  178.  
  179. #define typeTextRangeArray 'tray'
  180.  
  181. #define typeOffsetArray 'ofay'
  182.  
  183. #define typeText 'TEXT'
  184.  
  185. #define typeTextRange 'txrn'
  186.  
  187.  
  188. /* error codes */
  189.  
  190. #define tsmComponentNoErr 0
  191.  
  192. #define tsmUnsupScriptLanguageErr -2500
  193.  
  194. #define tsmInputMethodNotFoundErr -2501
  195.  
  196. #define tsmNotAnAppErr -2502
  197.  
  198. #define tsmAlreadyRegisteredErr -2503
  199.  
  200. #define tsmNeverRegisteredErr -2504
  201.  
  202. #define tsmInvalidDocIDErr -2505
  203.  
  204. #define tsmTSMDocBusyErr -2506
  205.  
  206. #define tsmDocNotActiveErr -2507
  207.  
  208. #define tsmNoOpenTSErr -2508
  209.  
  210. #define tsmCantOpenComponentErr -2509
  211.  
  212. #define tsmTextServiceNotFoundErr -2510
  213.  
  214. #define tsmDocumentOpenErr -2511
  215.  
  216. #define tsmUseInputWindowErr -2512
  217.  
  218. #define tsmTSHasNoMenuErr -2513
  219.  
  220. #define tsmTSNotOpenErr -2514
  221.  
  222. #define tsmComponentAlreadyOpenErr -2515
  223.  
  224. #define tsmInputMethodIsOldErr -2516
  225.  
  226. #define tsmScriptHasNoIMErr -2517
  227.  
  228. #define tsmUnsupportedTypeErr -2518
  229.  
  230. #define tsmUnknownErr -2519
  231.  
  232.  
  233. /* Desc type constants */
  234.  
  235. enum  {
  236.     kTSMOutsideOfBody            = 1,
  237.     kTSMInsideOfBody            = 2,
  238.     kTSMInsideOfActiveInputArea    = 3
  239. };
  240.  
  241. enum  {
  242.     kNextBody                    = 1,
  243.     kPreviousBody                = 2
  244. };
  245.  
  246.  
  247. /* Apple Event error definitions */
  248.  
  249. enum  {
  250.     errOffsetInvalid            = -1800,
  251.     errOffsetIsOutsideOfView    = -1801,
  252.     errTopOfDocument            = -1810,
  253.     errTopOfBody                = -1811,
  254.     errEndOfDocument            = -1812,
  255.     errEndOfBody                = -1813
  256. };
  257.  
  258.  
  259. /*    •• ************************************** ••  */
  260.  
  261.  
  262. /* typeTextRange         'txrn' */
  263.  
  264. #if defined(powerc) || defined (__powerc)
  265. #pragma options align=mac68k
  266. #endif
  267. struct TextRange {
  268.     long                        fStart;
  269.     long                        fEnd;
  270.     short                        fHiliteStyle;
  271. };
  272. #if defined(powerc) || defined(__powerc)
  273. #pragma options align=reset
  274. #endif
  275.  
  276. typedef struct TextRange TextRange;
  277.  
  278. typedef TextRange *TextRangePtr;
  279.  
  280. typedef TextRangePtr *TextRangeHandle;
  281.  
  282.  
  283. /* typeTextRangeArray    'txra' */
  284.  
  285. #if defined(powerc) || defined (__powerc)
  286. #pragma options align=mac68k
  287. #endif
  288. struct TextRangeArray {
  289.     short                        fNumOfRanges;                    /* specify the size of the fRange array */
  290.     TextRange                    fRange[1];                        /* when fNumOfRanges > 1, the size of this array has to be calculated */
  291. };
  292. #if defined(powerc) || defined(__powerc)
  293. #pragma options align=reset
  294. #endif
  295.  
  296. typedef struct TextRangeArray TextRangeArray;
  297.  
  298. typedef TextRangeArray *TextRangeArrayPtr;
  299.  
  300. typedef TextRangeArrayPtr *TextRangeArrayHandle;
  301.  
  302.  
  303. /* typeOffsetArray        'offa' */
  304.  
  305. #if defined(powerc) || defined (__powerc)
  306. #pragma options align=mac68k
  307. #endif
  308. struct OffsetArray {
  309.     short                        fNumOfOffsets;                    /* specify the size of the fOffset array */
  310.     long                        fOffset[1];                        /* when fNumOfOffsets > 1, the size of this array has to be calculated */
  311. };
  312. #if defined(powerc) || defined(__powerc)
  313. #pragma options align=reset
  314. #endif
  315.  
  316. typedef struct OffsetArray OffsetArray;
  317.  
  318. typedef OffsetArray *OffsetArrayPtr;
  319.  
  320. typedef OffsetArrayPtr *OffsetArrayHandle;
  321.  
  322.  
  323. /*    •• ************************************** ••  */
  324.  
  325.  
  326. /* extract Script/Language code from Component flag ... */
  327.  
  328. #define mGetScriptCode(cdRec) ((ScriptCode)    ((cdRec.componentFlags & bScriptMask) >> 8))
  329.  
  330. #define mGetLanguageCode(cdRec) ((LangCode)    cdRec.componentFlags & bLanguageMask)
  331.  
  332. typedef void *TSMDocumentID;
  333.  
  334.  
  335. /*    •• ************************************** ••  */
  336.  
  337.  
  338. /*
  339.  *    Text Service Info List
  340.  */
  341.  
  342. #if defined(powerc) || defined (__powerc)
  343. #pragma options align=mac68k
  344. #endif
  345. struct TextServiceInfo {
  346.     Component                    fComponent;
  347.     Str255                        fItemName;
  348. };
  349. #if defined(powerc) || defined(__powerc)
  350. #pragma options align=reset
  351. #endif
  352.  
  353. typedef struct TextServiceInfo TextServiceInfo;
  354.  
  355. typedef TextServiceInfo *TextServiceInfoPtr;
  356.  
  357. #if defined(powerc) || defined (__powerc)
  358. #pragma options align=mac68k
  359. #endif
  360. struct TextServiceList {
  361.     short                        fTextServiceCount;                /* number of entries in the 'fServices' array */
  362.     TextServiceInfo                fServices[1];                    /* Note: array of 'TextServiceInfo' records follows */
  363. };
  364. #if defined(powerc) || defined(__powerc)
  365. #pragma options align=reset
  366. #endif
  367.  
  368. typedef struct TextServiceList TextServiceList;
  369.  
  370. typedef TextServiceList *TextServiceListPtr;
  371.  
  372. typedef TextServiceListPtr *TextServiceListHandle;
  373.  
  374. #if defined(powerc) || defined (__powerc)
  375. #pragma options align=mac68k
  376. #endif
  377. struct ScriptLanguageRecord {
  378.     ScriptCode                    fScript;
  379.     LangCode                    fLanguage;
  380. };
  381. #if defined(powerc) || defined(__powerc)
  382. #pragma options align=reset
  383. #endif
  384.  
  385. typedef struct ScriptLanguageRecord ScriptLanguageRecord;
  386.  
  387. #if defined(powerc) || defined (__powerc)
  388. #pragma options align=mac68k
  389. #endif
  390. struct ScriptLanguageSupport {
  391.     short                        fScriptLanguageCount;            /* number of entries in the 'fScriptLanguageArray' array */
  392.     ScriptLanguageRecord        fScriptLanguageArray[1];        /* Note: array of 'ScriptLanguageRecord' records follows */
  393. };
  394. #if defined(powerc) || defined(__powerc)
  395. #pragma options align=reset
  396. #endif
  397.  
  398. typedef struct ScriptLanguageSupport ScriptLanguageSupport;
  399.  
  400. typedef ScriptLanguageSupport *ScriptLanguageSupportPtr;
  401.  
  402. typedef ScriptLanguageSupportPtr *ScriptLanguageSupportHandle;
  403.  
  404.  
  405. /*    •• ************************************** ••  */
  406.  
  407. #define TSMTrapNum 0xAA54
  408.  
  409.  
  410. /* ••    Text Services Manager function selectors ... */
  411.  
  412.  
  413. /* ••    High level routines ... */
  414.  
  415. #define kNewTSMDocument 0
  416.  
  417. #define kDeleteTSMDocument 1
  418.  
  419. #define kActivateTSMDocument 2
  420.  
  421. #define kDeactivateTSMDocument 3
  422.  
  423. #define kTSMEvent 4
  424.  
  425. #define kTSMMenuSelect 5
  426.  
  427. #define kSetTSMCursor 6
  428.  
  429. #define kFixTSMDocument 7
  430.  
  431. #define kGetServiceList 8
  432.  
  433. #define kOpenTextService 9
  434.  
  435. #define kCloseTextService 10
  436.  
  437. #define kSendAEFromTSMComponent 11
  438.  
  439.  
  440. /* ••    Utilities ... */
  441.  
  442. #define kSetDefaultInputMethod 12
  443.  
  444. #define kGetDefaultInputMethod 13
  445.  
  446. #define kSetTextServiceLanguage 14
  447.  
  448. #define kGetTextServiceLanguage 15
  449.  
  450. #define kUseInputWindow 16
  451.  
  452. #define kNewServiceWindow 17
  453.  
  454. #define kCloseServiceWindow 18
  455.  
  456. #define kGetFrontServiceWindow 19
  457.  
  458. #define kInitTSMAwareApplication 20
  459.  
  460. #define kCloseTSMAwareApplication 21
  461.  
  462. #define kFindServiceWindow 23
  463.  
  464.  
  465. /*    •• ************************************** ••  */
  466.  
  467. #ifdef __cplusplus
  468. extern "C" {
  469. #endif
  470.  
  471.  
  472. /* High level TSM routines .. */
  473.  
  474. extern pascal OSErr NewTSMDocument(short numOfInterface, OSType supportedInterfaceTypes[], TSMDocumentID *idocID, long refcon)
  475.  THREEWORDINLINE(0x303C, 0, 0xAA54);
  476.  
  477. /* MOVE.W    #selector,D0        */
  478.  
  479. extern pascal OSErr DeleteTSMDocument(TSMDocumentID idocID)
  480.  THREEWORDINLINE(0x303C, 1, 0xAA54);
  481. extern pascal OSErr ActivateTSMDocument(TSMDocumentID idocID)
  482.  THREEWORDINLINE(0x303C, 2, 0xAA54);
  483. extern pascal OSErr DeactivateTSMDocument(TSMDocumentID idocID)
  484.  THREEWORDINLINE(0x303C, 3, 0xAA54);
  485.  
  486. // pass all events to TSM (removed TSMDocumentID #35)
  487.  
  488. extern pascal Boolean TSMEvent(EventRecord *event)
  489.  THREEWORDINLINE(0x303C, 4, 0xAA54);
  490.  
  491. // pass menu selection to TSM (removed TSMDocumentID #35)
  492.  
  493. extern pascal Boolean TSMMenuSelect(long menuResult)
  494.  THREEWORDINLINE(0x303C, 5, 0xAA54);
  495.  
  496. // set the cursor (removed TSMDocumentID #35)
  497.  
  498. extern pascal Boolean SetTSMCursor(Point mousePos)
  499.  THREEWORDINLINE(0x303C, 6, 0xAA54);
  500.  
  501. // terminate text services
  502.  
  503. extern pascal OSErr FixTSMDocument(TSMDocumentID idocID)
  504.  THREEWORDINLINE(0x303C, 7, 0xAA54);
  505.  
  506. // get all text services
  507.  
  508. extern pascal OSErr GetServiceList(short numOfInterface, OSType supportedInterfaceTypes[], TextServiceListHandle *serviceInfo, long *seedValue)
  509.  THREEWORDINLINE(0x303C, 8, 0xAA54);
  510.  
  511. // open the text service (return instance)
  512.  
  513. extern pascal OSErr OpenTextService(TSMDocumentID idocID, Component aComponent, ComponentInstance *aComponentInstance)
  514.  THREEWORDINLINE(0x303C, 9, 0xAA54);
  515.  
  516. // close the text service (return instance)
  517.  
  518. extern pascal OSErr CloseTextService(TSMDocumentID idocID, ComponentInstance aComponentInstance)
  519.  THREEWORDINLINE(0x303C, 10, 0xAA54);
  520.  
  521. /* Sending callback AppleEvents ... */
  522.  
  523.  
  524. // AppleEvent should be a pointer
  525.  
  526. extern pascal OSErr SendAEFromTSMComponent(AppleEvent *theAppleEvent, AppleEvent *reply, AESendMode sendMode, AESendPriority sendPriority, long timeOutInTicks, AEIdleUPP idleProc, AEFilterUPP filterProc)
  527.  THREEWORDINLINE(0x303C, 11, 0xAA54);
  528.  
  529. // app registers itself as TSM aware
  530.  
  531. extern pascal OSErr InitTSMAwareApplication(void)
  532.  THREEWORDINLINE(0x303C, 20, 0xAA54);
  533.  
  534. // app deregisters itself when quit
  535.  
  536. extern pascal OSErr CloseTSMAwareApplication(void)
  537.  THREEWORDINLINE(0x303C, 21, 0xAA54);
  538.  
  539. /* ••  Utilities ... */
  540.  
  541. extern pascal OSErr SetDefaultInputMethod(Component ts, ScriptLanguageRecord *slRecordPtr)
  542.  THREEWORDINLINE(0x303C, 12, 0xAA54);
  543. extern pascal OSErr GetDefaultInputMethod(Component *ts, ScriptLanguageRecord *slRecordPtr)
  544.  THREEWORDINLINE(0x303C, 13, 0xAA54);
  545. extern pascal OSErr SetTextServiceLanguage(ScriptLanguageRecord *slRecordPtr)
  546.  THREEWORDINLINE(0x303C, 14, 0xAA54);
  547. extern pascal OSErr GetTextServiceLanguage(ScriptLanguageRecord *slRecordPtr)
  548.  THREEWORDINLINE(0x303C, 15, 0xAA54);
  549. extern pascal OSErr UseInputWindow(TSMDocumentID idocID, Boolean useWindow)
  550.  THREEWORDINLINE(0x303C, 16, 0xAA54);
  551. extern pascal OSErr NewServiceWindow(void *wStorage, const Rect *boundsRect, ConstStr255Param title, Boolean visible, short theProc, WindowPtr behind, Boolean goAwayFlag, ComponentInstance ts, WindowPtr *window)
  552.  THREEWORDINLINE(0x303C, 17, 0xAA54);
  553. extern pascal OSErr CloseServiceWindow(WindowPtr window)
  554.  THREEWORDINLINE(0x303C, 18, 0xAA54);
  555. extern pascal OSErr GetFrontServiceWindow(WindowPtr *window)
  556.  THREEWORDINLINE(0x303C, 19, 0xAA54);
  557. extern pascal short FindServiceWindow(Point thePoint, WindowPtr *theWindow)
  558.  THREEWORDINLINE(0x303C, 23, 0xAA54);
  559.  
  560. /* ••    Low level routines which are dispatched directly to the Component Manager ... */
  561.  
  562. #define kCMGetScriptLangSupport 0x0001
  563.  
  564. #define kCMInitiateTextService 0x0002
  565.  
  566. #define kCMTerminateTextService 0x0003
  567.  
  568. #define kCMActivateTextService 0x0004
  569.  
  570. #define kCMDeactivateTextService 0x0005
  571.  
  572. #define kCMTextServiceEvent 0x0006
  573.  
  574. #define kCMGetTextServiceMenu 0x0007
  575.  
  576. #define kCMTextServiceMenuSelect 0x0008
  577.  
  578. #define kCMFixTextService 0x0009
  579.  
  580. #define kCMSetTextServiceCursor 0x000A
  581.  
  582. #define kCMHidePaletteWindows 0x000B
  583.  
  584.  
  585. /* ••  Low level TSM routines ... */
  586.  
  587.  
  588. /* selector = 1 */
  589.  
  590. extern pascal ComponentResult GetScriptLanguageSupport(ComponentInstance ts, ScriptLanguageSupportHandle *scriptHdl)
  591.  FIVEWORDINLINE(0x2F3C, 0x04, 0x0001, 0x7000, 0xA82A);
  592.  
  593. /* selector = 2 */
  594.  
  595. extern pascal ComponentResult InitiateTextService(ComponentInstance ts)
  596.  FIVEWORDINLINE(0x2F3C, 0x00, 0x0002, 0x7000, 0xA82A);
  597.  
  598. /* selector = 3 */
  599.  
  600. extern pascal ComponentResult TerminateTextService(ComponentInstance ts)
  601.  FIVEWORDINLINE(0x2F3C, 0x00, 0x0003, 0x7000, 0xA82A);
  602.  
  603. /* selector = 4 */
  604.  
  605. extern pascal ComponentResult ActivateTextService(ComponentInstance ts)
  606.  FIVEWORDINLINE(0x2F3C, 0x00, 0x0004, 0x7000, 0xA82A);
  607.  
  608. /* selector = 5 */
  609.  
  610. extern pascal ComponentResult DeactivateTextService(ComponentInstance ts)
  611.  FIVEWORDINLINE(0x2F3C, 0x00, 0x0005, 0x7000, 0xA82A);
  612.  
  613. /* selector = 6 */
  614.  
  615. extern pascal ComponentResult TextServiceEvent(ComponentInstance ts, short numOfEvents, EventRecord *event)
  616.  FIVEWORDINLINE(0x2F3C, 0x06, 0x0006, 0x7000, 0xA82A);
  617.  
  618. /* selector = 7 */
  619.  
  620. extern pascal ComponentResult GetTextServiceMenu(ComponentInstance ts, MenuHandle *serviceMenu)
  621.  FIVEWORDINLINE(0x2F3C, 0x4, 0x0007, 0x7000, 0xA82A);
  622.  
  623. /* selector = 8 */
  624.  
  625. extern pascal ComponentResult TextServiceMenuSelect(ComponentInstance ts, MenuHandle serviceMenu, short item)
  626.  FIVEWORDINLINE(0x2F3C, 0x06, 0x0008, 0x7000, 0xA82A);
  627.  
  628. /* selector = 9 */
  629.  
  630. extern pascal ComponentResult FixTextService(ComponentInstance ts)
  631.  FIVEWORDINLINE(0x2F3C, 0x00, 0x0009, 0x7000, 0xA82A);
  632.  
  633. /* selector = 10 */
  634.  
  635. extern pascal ComponentResult SetTextServiceCursor(ComponentInstance ts, Point mousePos)
  636.  FIVEWORDINLINE(0x2F3C, 0x04, 0x000A, 0x7000, 0xA82A);
  637.  
  638. /* selector = 11                    <#37> */
  639.  
  640. extern pascal ComponentResult HidePaletteWindows(ComponentInstance ts)
  641.  FIVEWORDINLINE(0x2F3C, 0x00, 0x000B, 0x7000, 0xA82A);
  642. #ifdef __cplusplus
  643. }
  644. #endif
  645.  
  646. #endif
  647.  
  648.