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
60QT_BEGIN_NAMESPACE
61
62#define UNICODE_DATA_VERSION QChar::Unicode_5_0
63
64#define UNICODE_LAST_CODEPOINT 0x10ffff
65
66namespace 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
230QT_END_NAMESPACE
231
232#endif // QUNICODETABLES_P_H
233