InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
UniData.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: emenning
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //
23 // ADOBE CONFIDENTIAL
24 //
25 //========================================================================================
26 
27 #ifndef __Unidata__
28 #define __Unidata__
29 
30 
31 // format bits are BBBB | CCCC | KKKK | SSSS
32 // B ==> bits for additional classification
33 // C ==> character classification
34 // S ==> classification subclass
35 // K ==> extra
36 enum { kUnidata_Mark = 0x0100,
37  kUnidata_MarkArabic = 0x010F,
38  kUnidata_MarkHebrew = 0x0105,
39 
40  kUnidata_Number = 0x0200,
41 // kUnidata_NumberUpper = 0x0201, kUnidata_NumberLower = 0x0202, roman numerals ??
42 
43  kUnidata_Space = 0x0300,
44  kUnidata_LineBreak = 0x0301, kUnidata_ParagraphBreak = 0x0302, kUnidata_ZeroSpace = 0x0304,
45 
46  kUnidata_Other = 0x0400,
47 
48  kUnidata_Letter = 0x0500, kUnidata_LetterUpper = 0x0501, kUnidata_LetterLower = 0x0502,
49  kUnidata_LetterTitle = 0x0504, kUnidata_LetterModifier = 0x0508,
50  kUnidata_CJKHiragana = 0x0509, kUnidata_CJKKatakana = 0x050A,
51  kUnidata_CJKIdeograph = 0x050B,
52  kUnidata_CJKBopomofo = 0x050C,
53  kUnidata_CJKHangul = 0x050D, kUnidata_CJKJamo = 0x050E,
54  kUnidata_LetterArabic = 0x050F,
55  kUnidata_LetterHebrew = 0x0505,
56 
57  kUnidata_Punctuation = 0x0600, kUnidata_PunctuationDash = 0x0601,
58  kUnidata_PunctuationOpen = 0x0602, kUnidata_PunctuationClose = 0x0603,
59  kUnidata_PunctuationInitialQuote = 0x0604, kUnidata_PunctuationFinalQuote = 0x0605,
60  kUnidata_PunctuationArabic = 0x060F,
61  kUnidata_PunctuationDashArabic = 0x060E,
62  kUnidata_PunctuationOpenArabic = 0x060D,
63  kUnidata_PunctuationCloseArabic = 0x060C,
64  kUnidata_PunctuationHebrew = 0x0605, // 2007/02/16 mhmh: same as kUnidata_PunctuationFinalQuote ???
65  kUnidata_PunctuationDashHebrew = 0x0606,
66  kUnidata_PunctuationOpenHebrew = 0x0607,
67  kUnidata_PunctuationCloseHebrew = 0x0608,
68 
69  kUnidata_Symbol = 0x0700, kUnidata_SymbolMath = 0x0701, kUnidata_SymbolCurrency = 0x0702,
70  kUnidata_SymbolArabic = 0x070F,
71  kUnidata_SymbolHebrew = 0x0705,
72 
73  kUnidataBit_Wide = 0x1000,
74  kUnidataBit_Narrow = 0x2000,
75  kUnidataBit_Vertical = 0x4000,
76  kUnidataBit_BaseChar = 0x8000,
77 
78  kUnidataBit_BaseCharIsAlternate = 0x0010,
79  kUnidataBit_AlternateChar = 0x8010,
80 
81  kUnidataMask_Subclass = 0x000F,
82  kUnidataMask_Extra = 0x00F0,
83  kUnidataMask_Class = 0x0F00,
84  kUnidataMask_Bits = 0xF000
85 };
86 
87 
88 // format 0 ==> whole table is 1 flag e.g. { kUnidataFormat0, kUnidata_Symbol };
89 // format 1 ==> whole table has 256 flags e.g. { kUnidataFormat1, kUnidata_Symbol, kUnidata_Punctuation... };
90 // format 2 ==> whole table has 256 flags, 256 case alternates (upper & lower combined)
91 // format 3 ==> 256 flags & 256 width alternates (wide or narrow variant)
92 // format 4 ==> 256 flags, 256 case alternates, 256 width alternates
93 //
94 // currently having both a capital AND a lower alternate for 1 letter or both a wide & narrow
95 // alternate for 1 letter is NOT supported
96 //
97 enum { kUnidataFormat0, kUnidataFormat1, kUnidataFormat2,
98  kUnidataFormat3, kUnidataFormat4 };
99 
100 extern const unsigned short* kUnicodeTable[256];
101 
102 
103 #endif
104  // __Unidata__