Mac OS 9
UnicodeUtilities.h
Go to the documentation of this file.
1 
20 #ifndef __UNICODEUTILITIES__
21 #define __UNICODEUTILITIES__
22 
23 #ifndef __MACTYPES__
24 #include <MacTypes.h>
25 #endif
26 
27 #ifndef __MACLOCALES__
28 #include <MacLocales.h>
29 #endif
30 
31 #ifndef __TEXTCOMMON__
32 #include <TextCommon.h>
33 #endif
34 
35 #if PRAGMA_ONCE
36 #pragma once
37 #endif
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
43 #if PRAGMA_IMPORT
44 #pragma import on
45 #endif
46 
47 #if PRAGMA_STRUCT_ALIGN
48 #pragma options align = mac68k
49 #elif PRAGMA_STRUCT_PACKPUSH
50 #pragma pack(push, 2)
51 #elif PRAGMA_STRUCT_PACK
52 #pragma pack(2)
53 #endif
54 
81 typedef UInt16 UCKeyOutput;
82 typedef UInt16 UCKeyCharSeq;
83 enum {
84  kUCKeyOutputStateIndexMask = 0x4000,
85  kUCKeyOutputSequenceIndexMask = 0x8000,
86  kUCKeyOutputTestForIndexMask = 0xC000,
87  kUCKeyOutputGetIndexMask = 0x3FFF
88 };
89 
105  UCKeyCharSeq stateZeroCharData;
106  UInt16 stateZeroNextState;
107  UInt16 stateEntryCount;
108  UInt16 stateEntryFormat;
111  UInt32 stateEntryData[1];
112 };
113 typedef struct UCKeyStateRecord UCKeyStateRecord;
118 enum {
119  kUCKeyStateEntryTerminalFormat = 0x0001,
120  kUCKeyStateEntryRangeFormat = 0x0002
121 };
122 
129  UInt16 curState;
130  UCKeyCharSeq charData;
131 };
142  UInt16 curStateStart;
143  UInt8 curStateRange;
144  UInt8 deltaMultiplier;
145  UCKeyCharSeq charData;
146  UInt16 nextState;
147 };
163  UInt32 keyboardTypeFirst;
170 };
177  ItemCount keyboardTypeCount;
179 };
180 typedef struct UCKeyboardLayout UCKeyboardLayout;
183  UInt16 keyLayoutFeatureInfoFormat;
184  UInt16 reserved;
185  UniCharCount maxOutputStringLength;
186 };
190  UInt16 keyModifiersToTableNumFormat;
192  ItemCount modifiersCount;
193  UInt8 tableNum[1];
194 
197 };
201  UInt16 keyToCharTableIndexFormat;
205  ByteOffset keyToCharTableOffsets[1];
206 
214 };
218  UInt16 keyStateRecordsIndexFormat;
220  ByteOffset keyStateRecordOffsets[1];
221 
228 };
232  UInt16 keyStateTerminatorsFormat;
235  UCKeyCharSeq keyStateTerminators[1];
236 
240 };
244  UInt16 keySequenceDataIndexFormat;
248 
256 };
262 enum {
263  kUCKeyLayoutHeaderFormat = 0x1002,
264  kUCKeyLayoutFeatureInfoFormat = 0x2001,
265  kUCKeyModifiersToTableNumFormat = 0x3001,
266  kUCKeyToCharTableIndexFormat = 0x4001,
267  kUCKeyStateRecordsIndexFormat = 0x5001,
268  kUCKeyStateTerminatorsFormat = 0x6001,
269  kUCKeySequenceDataIndexFormat = 0x7001
270 };
271 
278 enum {
279  kUCKeyActionDown = 0,
283  3
284 };
285 
292 enum {
293  kUCKeyTranslateNoDeadKeysBit =
294  0
295 };
296 
297 enum { kUCKeyTranslateNoDeadKeysMask = 1L << kUCKeyTranslateNoDeadKeysBit };
298 
305 enum { kUnicodeCollationClass = FOUR_CHAR_CODE('ucol') };
306 
307 typedef struct OpaqueCollatorRef *CollatorRef;
308 typedef UInt32 UCCollateOptions;
309 enum {
312  kUCCollateWidthInsensitiveMask = 1L << 2,
313  kUCCollateCaseInsensitiveMask = 1L << 3,
314  kUCCollateDiacritInsensitiveMask = 1L << 4,
316  << 15,
318  kUCCollateDigitsAsNumberMask = 1L << 17
319 };
320 
321 enum {
322  kUCCollateStandardOptions =
323  kUCCollateComposeInsensitiveMask | kUCCollateWidthInsensitiveMask
324 };
325 
330 enum { kUCCollateTypeHFSExtended = 1 };
331 
334 enum { kUCCollateTypeSourceMask = 0x000000FF, kUCCollateTypeShiftBits = 24 };
335 
336 enum {
337  kUCCollateTypeMask = kUCCollateTypeSourceMask << kUCCollateTypeShiftBits
338 };
339 
340 typedef UInt32 UCCollationValue;
347 enum { kUnicodeTextBreakClass = FOUR_CHAR_CODE('ubrk') };
348 
349 typedef struct OpaqueTextBreakLocatorRef *TextBreakLocatorRef;
350 typedef UInt32 UCTextBreakType;
351 enum {
352  kUCTextBreakCharMask = 1L << 0,
353  kUCTextBreakClusterMask = 1L << 2,
354  kUCTextBreakWordMask = 1L << 4,
355  kUCTextBreakLineMask = 1L << 6
356 };
357 
358 typedef UInt32 UCTextBreakOptions;
359 enum {
360  kUCTextBreakLeadingEdgeMask = 1L << 0,
361  kUCTextBreakGoBackwardsMask = 1L << 1,
362  kUCTextBreakIterateMask = 1L << 2
363 };
364 
379 OSStatus
380 UCKeyTranslate(const UCKeyboardLayout *keyLayoutPtr, UInt16 virtualKeyCode,
381  UInt16 keyAction, UInt32 modifierKeyState, UInt32 keyboardType,
382  OptionBits keyTranslateOptions, UInt32 *deadKeyState,
383  UniCharCount maxStringLength, UniCharCount *actualStringLength,
384  UniChar unicodeString[]);
385 
395 OSStatus
397  UCCollateOptions options, CollatorRef *collatorRef);
398 
407 OSStatus
408 UCGetCollationKey(CollatorRef collatorRef, const UniChar *textPtr,
409  UniCharCount textLength, ItemCount maxKeySize,
410  ItemCount *actualKeySize, UCCollationValue collationKey[]);
411 
420 OSStatus
421 UCCompareCollationKeys(const UCCollationValue *key1Ptr, ItemCount key1Length,
422  const UCCollationValue *key2Ptr, ItemCount key2Length,
423  Boolean *equivalent, SInt32 *order);
424 
433 OSStatus
434 UCCompareText(CollatorRef collatorRef, const UniChar *text1Ptr,
435  UniCharCount text1Length, const UniChar *text2Ptr,
436  UniCharCount text2Length, Boolean *equivalent, SInt32 *order);
437 
446 OSStatus
447 UCDisposeCollator(CollatorRef *collatorRef);
448 
459 OSStatus
460 UCCompareTextDefault(UCCollateOptions options, const UniChar *text1Ptr,
461  UniCharCount text1Length, const UniChar *text2Ptr,
462  UniCharCount text2Length, Boolean *equivalent,
463  SInt32 *order);
464 
475 OSStatus
476 UCCompareTextNoLocale(UCCollateOptions options, const UniChar *text1Ptr,
477  UniCharCount text1Length, const UniChar *text2Ptr,
478  UniCharCount text2Length, Boolean *equivalent,
479  SInt32 *order);
480 
490 OSStatus
492  UCTextBreakType breakTypes,
493  TextBreakLocatorRef *breakRef);
494 
503 OSStatus
504 UCFindTextBreak(TextBreakLocatorRef breakRef, UCTextBreakType breakType,
505  UCTextBreakOptions options, const UniChar *textPtr,
506  UniCharCount textLength, UniCharArrayOffset startOffset,
507  UniCharArrayOffset *breakOffset);
508 
517 OSStatus
518 UCDisposeTextBreakLocator(TextBreakLocatorRef *breakRef);
519 
520 #if PRAGMA_STRUCT_ALIGN
521 #pragma options align = reset
522 #elif PRAGMA_STRUCT_PACKPUSH
523 #pragma pack(pop)
524 #elif PRAGMA_STRUCT_PACK
525 #pragma pack()
526 #endif
527 
528 #ifdef PRAGMA_IMPORT_OFF
529 #pragma import off
530 #elif PRAGMA_IMPORT
531 #pragma import reset
532 #endif
533 
534 #ifdef __cplusplus
535 }
536 #endif
537 
538 #endif
Types & prototypes for locale functions.
FourCharCode LocaleOperationVariant
Definition: MacLocales.h:74
struct OpaqueLocaleRef * LocaleRef
Definition: MacLocales.h:57
Basic Macintosh data types.
unsigned char Boolean
Definition: MacTypes.h:318
TextEncoding-related types and constants, and prototypes for related functions.
UInt32 UniCharArrayOffset
Definition: TextCommon.h:545
@ kUCKeyActionUp
Definition: UnicodeUtilities.h:280
@ kUCKeyActionDisplay
Definition: UnicodeUtilities.h:282
@ kUCKeyActionAutoKey
Definition: UnicodeUtilities.h:281
UInt16 UCKeyOutput
Definition: UnicodeUtilities.h:81
OSStatus UCCompareTextDefault(UCCollateOptions options, const UniChar *text1Ptr, UniCharCount text1Length, const UniChar *text2Ptr, UniCharCount text2Length, Boolean *equivalent, SInt32 *order)
OSStatus UCDisposeCollator(CollatorRef *collatorRef)
OSStatus UCGetCollationKey(CollatorRef collatorRef, const UniChar *textPtr, UniCharCount textLength, ItemCount maxKeySize, ItemCount *actualKeySize, UCCollationValue collationKey[])
OSStatus UCDisposeTextBreakLocator(TextBreakLocatorRef *breakRef)
OSStatus UCCompareText(CollatorRef collatorRef, const UniChar *text1Ptr, UniCharCount text1Length, const UniChar *text2Ptr, UniCharCount text2Length, Boolean *equivalent, SInt32 *order)
OSStatus UCKeyTranslate(const UCKeyboardLayout *keyLayoutPtr, UInt16 virtualKeyCode, UInt16 keyAction, UInt32 modifierKeyState, UInt32 keyboardType, OptionBits keyTranslateOptions, UInt32 *deadKeyState, UniCharCount maxStringLength, UniCharCount *actualStringLength, UniChar unicodeString[])
OSStatus UCCompareCollationKeys(const UCCollationValue *key1Ptr, ItemCount key1Length, const UCCollationValue *key2Ptr, ItemCount key2Length, Boolean *equivalent, SInt32 *order)
OSStatus UCFindTextBreak(TextBreakLocatorRef breakRef, UCTextBreakType breakType, UCTextBreakOptions options, const UniChar *textPtr, UniCharCount textLength, UniCharArrayOffset startOffset, UniCharArrayOffset *breakOffset)
OSStatus UCCreateTextBreakLocator(LocaleRef locale, LocaleOperationVariant opVariant, UCTextBreakType breakTypes, TextBreakLocatorRef *breakRef)
OSStatus UCCompareTextNoLocale(UCCollateOptions options, const UniChar *text1Ptr, UniCharCount text1Length, const UniChar *text2Ptr, UniCharCount text2Length, Boolean *equivalent, SInt32 *order)
@ kUCCollateDigitsOverrideMask
Definition: UnicodeUtilities.h:317
@ kUCCollateComposeInsensitiveMask
Definition: UnicodeUtilities.h:311
@ kUCCollatePunctuationSignificantMask
Definition: UnicodeUtilities.h:315
OSStatus UCCreateCollator(LocaleRef locale, LocaleOperationVariant opVariant, UCCollateOptions options, CollatorRef *collatorRef)
@ kUCKeyOutputGetIndexMask
Definition: UnicodeUtilities.h:87
Definition: UnicodeUtilities.h:182
UInt16 reserved
Definition: UnicodeUtilities.h:184
Definition: UnicodeUtilities.h:189
UInt8 tableNum[1]
Definition: UnicodeUtilities.h:193
ItemCount modifiersCount
Definition: UnicodeUtilities.h:192
UInt16 defaultTableNum
Definition: UnicodeUtilities.h:191
Definition: UnicodeUtilities.h:243
UInt16 charSequenceCount
Definition: UnicodeUtilities.h:245
UInt16 charSequenceOffsets[1]
Definition: UnicodeUtilities.h:247
Definition: UnicodeUtilities.h:141
Definition: UnicodeUtilities.h:128
Definition: UnicodeUtilities.h:104
UInt32 stateEntryData[1]
Definition: UnicodeUtilities.h:111
Definition: UnicodeUtilities.h:217
ByteOffset keyStateRecordOffsets[1]
Definition: UnicodeUtilities.h:220
UInt16 keyStateRecordCount
Definition: UnicodeUtilities.h:219
Definition: UnicodeUtilities.h:231
UInt16 keyStateTerminatorCount
Definition: UnicodeUtilities.h:233
UCKeyCharSeq keyStateTerminators[1]
Definition: UnicodeUtilities.h:235
Definition: UnicodeUtilities.h:200
UInt16 keyToCharTableSize
Definition: UnicodeUtilities.h:202
ItemCount keyToCharTableCount
Definition: UnicodeUtilities.h:203
ByteOffset keyToCharTableOffsets[1]
Definition: UnicodeUtilities.h:205
Definition: UnicodeUtilities.h:172
ItemCount keyboardTypeCount
Definition: UnicodeUtilities.h:177
UInt16 keyLayoutDataVersion
Definition: UnicodeUtilities.h:175
UCKeyboardTypeHeader keyboardTypeList[1]
Definition: UnicodeUtilities.h:178
UInt16 keyLayoutHeaderFormat
Definition: UnicodeUtilities.h:174
ByteOffset keyLayoutFeatureInfoOffset
Definition: UnicodeUtilities.h:176
Definition: UnicodeUtilities.h:162
ByteOffset keyStateRecordsIndexOffset
Definition: UnicodeUtilities.h:167
ByteOffset keySequenceDataIndexOffset
Definition: UnicodeUtilities.h:169
UInt32 keyboardTypeLast
Definition: UnicodeUtilities.h:164
ByteOffset keyModifiersToTableNumOffset
Definition: UnicodeUtilities.h:165
ByteOffset keyStateTerminatorsOffset
Definition: UnicodeUtilities.h:168
ByteOffset keyToCharTableIndexOffset
Definition: UnicodeUtilities.h:166