1 | /**************************************************************************** |
2 | ** |
3 | ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). |
4 | ** Contact: http://www.qt-project.org/legal |
5 | ** |
6 | ** This file is part of the QtCore module of the Qt Toolkit. |
7 | ** |
8 | ** $QT_BEGIN_LICENSE:LGPL$ |
9 | ** Commercial License Usage |
10 | ** Licensees holding valid commercial Qt licenses may use this file in |
11 | ** accordance with the commercial license agreement provided with the |
12 | ** Software or, alternatively, in accordance with the terms contained in |
13 | ** a written agreement between you and Digia. For licensing terms and |
14 | ** conditions see http://qt.digia.com/licensing. For further information |
15 | ** use the contact form at http://qt.digia.com/contact-us. |
16 | ** |
17 | ** GNU Lesser General Public License Usage |
18 | ** Alternatively, this file may be used under the terms of the GNU Lesser |
19 | ** General Public License version 2.1 as published by the Free Software |
20 | ** Foundation and appearing in the file LICENSE.LGPL included in the |
21 | ** packaging of this file. Please review the following information to |
22 | ** ensure the GNU Lesser General Public License version 2.1 requirements |
23 | ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. |
24 | ** |
25 | ** In addition, as a special exception, Digia gives you certain additional |
26 | ** rights. These rights are described in the Digia Qt LGPL Exception |
27 | ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. |
28 | ** |
29 | ** GNU General Public License Usage |
30 | ** Alternatively, this file may be used under the terms of the GNU |
31 | ** General Public License version 3.0 as published by the Free Software |
32 | ** Foundation and appearing in the file LICENSE.GPL included in the |
33 | ** packaging of this file. Please review the following information to |
34 | ** ensure the GNU General Public License version 3.0 requirements will be |
35 | ** met: http://www.gnu.org/copyleft/gpl.html. |
36 | ** |
37 | ** |
38 | ** $QT_END_LICENSE$ |
39 | ** |
40 | ****************************************************************************/ |
41 | |
42 | /* This file is autogenerated from the Unicode 5.0 database. Do not edit */ |
43 | |
44 | // |
45 | // W A R N I N G |
46 | // ------------- |
47 | // |
48 | // This file is not part of the Qt API. It exists for the convenience |
49 | // of internal files. This header file may change from version to version |
50 | // without notice, or even be removed. |
51 | // |
52 | // We mean it. |
53 | // |
54 | |
55 | #ifndef QUNICODETABLES_P_H |
56 | #define QUNICODETABLES_P_H |
57 | |
58 | #include <QtCore/qchar.h> |
59 | |
60 | QT_BEGIN_NAMESPACE |
61 | |
62 | #define UNICODE_DATA_VERSION QChar::Unicode_5_0 |
63 | |
64 | #define UNICODE_LAST_CODEPOINT 0x10ffff |
65 | |
66 | namespace QUnicodeTables { |
67 | |
68 | struct Properties { |
69 | ushort category : 8; /* 5 needed */ |
70 | ushort line_break_class : 8; /* 6 needed */ |
71 | ushort direction : 8; /* 5 needed */ |
72 | ushort combiningClass : 8; |
73 | ushort joining : 2; |
74 | signed short digitValue : 6; /* 5 needed */ |
75 | ushort unicodeVersion : 4; |
76 | ushort lowerCaseSpecial : 1; |
77 | ushort upperCaseSpecial : 1; |
78 | ushort titleCaseSpecial : 1; |
79 | ushort caseFoldSpecial : 1; /* currently unused */ |
80 | signed short mirrorDiff : 16; |
81 | signed short lowerCaseDiff : 16; |
82 | signed short upperCaseDiff : 16; |
83 | signed short titleCaseDiff : 16; |
84 | signed short caseFoldDiff : 16; |
85 | ushort graphemeBreak : 8; /* 4 needed */ |
86 | ushort wordBreak : 8; /* 4 needed */ |
87 | ushort sentenceBreak : 8; /* 4 needed */ |
88 | }; |
89 | Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4); |
90 | Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2); |
91 | |
92 | // See http://www.unicode.org/reports/tr24/tr24-5.html |
93 | enum Script { |
94 | Common, |
95 | Greek, |
96 | Cyrillic, |
97 | Armenian, |
98 | Hebrew, |
99 | Arabic, |
100 | Syriac, |
101 | Thaana, |
102 | Devanagari, |
103 | Bengali, |
104 | Gurmukhi, |
105 | Gujarati, |
106 | Oriya, |
107 | Tamil, |
108 | Telugu, |
109 | Kannada, |
110 | Malayalam, |
111 | Sinhala, |
112 | Thai, |
113 | Lao, |
114 | Tibetan, |
115 | Myanmar, |
116 | Georgian, |
117 | Hangul, |
118 | Ogham, |
119 | Runic, |
120 | Khmer, |
121 | Nko, |
122 | Inherited, |
123 | ScriptCount = Inherited, |
124 | Latin = Common, |
125 | Ethiopic = Common, |
126 | Cherokee = Common, |
127 | CanadianAboriginal = Common, |
128 | Mongolian = Common, |
129 | Hiragana = Common, |
130 | Katakana = Common, |
131 | Bopomofo = Common, |
132 | Han = Common, |
133 | Yi = Common, |
134 | OldItalic = Common, |
135 | Gothic = Common, |
136 | Deseret = Common, |
137 | Tagalog = Common, |
138 | Hanunoo = Common, |
139 | Buhid = Common, |
140 | Tagbanwa = Common, |
141 | Limbu = Common, |
142 | TaiLe = Common, |
143 | LinearB = Common, |
144 | Ugaritic = Common, |
145 | Shavian = Common, |
146 | Osmanya = Common, |
147 | Cypriot = Common, |
148 | Braille = Common, |
149 | Buginese = Common, |
150 | Coptic = Common, |
151 | NewTaiLue = Common, |
152 | Glagolitic = Common, |
153 | Tifinagh = Common, |
154 | SylotiNagri = Common, |
155 | OldPersian = Common, |
156 | Kharoshthi = Common, |
157 | Balinese = Common, |
158 | Cuneiform = Common, |
159 | Phoenician = Common, |
160 | PhagsPa = Common |
161 | }; |
162 | enum { ScriptSentinel = 32 }; |
163 | |
164 | |
165 | enum GraphemeBreak { |
166 | GraphemeBreakOther, |
167 | GraphemeBreakCR, |
168 | GraphemeBreakLF, |
169 | GraphemeBreakControl, |
170 | GraphemeBreakExtend, |
171 | GraphemeBreakL, |
172 | GraphemeBreakV, |
173 | GraphemeBreakT, |
174 | GraphemeBreakLV, |
175 | GraphemeBreakLVT |
176 | }; |
177 | |
178 | |
179 | enum WordBreak { |
180 | WordBreakOther, |
181 | WordBreakFormat, |
182 | WordBreakKatakana, |
183 | WordBreakALetter, |
184 | WordBreakMidLetter, |
185 | WordBreakMidNum, |
186 | WordBreakNumeric, |
187 | WordBreakExtendNumLet |
188 | }; |
189 | |
190 | |
191 | enum SentenceBreak { |
192 | SentenceBreakOther, |
193 | SentenceBreakSep, |
194 | SentenceBreakFormat, |
195 | SentenceBreakSp, |
196 | SentenceBreakLower, |
197 | SentenceBreakUpper, |
198 | SentenceBreakOLetter, |
199 | SentenceBreakNumeric, |
200 | SentenceBreakATerm, |
201 | SentenceBreakSTerm, |
202 | SentenceBreakClose |
203 | }; |
204 | |
205 | |
206 | // see http://www.unicode.org/reports/tr14/tr14-19.html |
207 | // we don't use the XX, AI and CB properties and map them to AL instead. |
208 | // as we don't support any EBDIC based OS'es, NL is ignored and mapped to AL as well. |
209 | enum LineBreakClass { |
210 | LineBreak_OP, LineBreak_CL, LineBreak_QU, LineBreak_GL, LineBreak_NS, |
211 | LineBreak_EX, LineBreak_SY, LineBreak_IS, LineBreak_PR, LineBreak_PO, |
212 | LineBreak_NU, LineBreak_AL, LineBreak_ID, LineBreak_IN, LineBreak_HY, |
213 | LineBreak_BA, LineBreak_BB, LineBreak_B2, LineBreak_ZW, LineBreak_CM, |
214 | LineBreak_WJ, LineBreak_H2, LineBreak_H3, LineBreak_JL, LineBreak_JV, |
215 | LineBreak_JT, LineBreak_SA, LineBreak_SG, |
216 | LineBreak_SP, LineBreak_CR, LineBreak_LF, LineBreak_BK |
217 | }; |
218 | |
219 | |
220 | Q_CORE_EXPORT QUnicodeTables::LineBreakClass QT_FASTCALL lineBreakClass(uint ucs4); |
221 | inline int lineBreakClass(const QChar &ch) |
222 | { return lineBreakClass(ch.unicode()); } |
223 | |
224 | Q_CORE_EXPORT int QT_FASTCALL script(uint ucs4); |
225 | inline int script(const QChar &ch) |
226 | { return script(ch.unicode()); } |
227 | |
228 | } // namespace QUnicodeTables |
229 | |
230 | QT_END_NAMESPACE |
231 | |
232 | #endif // QUNICODETABLES_P_H |
233 | |