You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
experimental/tqtinterface/qt4/include/private/qt4_qunicodetables_p.h

233 lines
7.0 KiB

14 years ago
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the QtCore module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial Usage
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Nokia.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
** $QT_END_LICENSE$
**
****************************************************************************/
/* This file is autogenerated from the Unicode 5.0 database. Do not edit */
//
// W A R N I N G
// -------------
//
// This file is not part of the Qt API. It exists for the convenience
// of internal files. This header file may change from version to version
// without notice, or even be removed.
//
// We mean it.
//
#ifndef QUNICODETABLES_P_H
#define QUNICODETABLES_P_H
#include <QtCore/qchar.h>
QT_BEGIN_NAMESPACE
#define UNICODE_DATA_VERSION QChar::Unicode_5_0
#define UNICODE_LAST_CODEPOINT 0x10ffff
namespace QUnicodeTables {
struct Properties {
ushort category : 8; /* 5 needed */
ushort line_break_class : 8; /* 6 needed */
ushort direction : 8; /* 5 needed */
ushort combiningClass : 8;
ushort joining : 2;
signed short digitValue : 6; /* 5 needed */
ushort unicodeVersion : 4;
ushort lowerCaseSpecial : 1;
ushort upperCaseSpecial : 1;
ushort titleCaseSpecial : 1;
ushort caseFoldSpecial : 1; /* currently unused */
signed short mirrorDiff : 16;
signed short lowerCaseDiff : 16;
signed short upperCaseDiff : 16;
signed short titleCaseDiff : 16;
signed short caseFoldDiff : 16;
ushort graphemeBreak : 8; /* 4 needed */
ushort wordBreak : 8; /* 4 needed */
ushort sentenceBreak : 8; /* 4 needed */
};
Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4);
Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2);
// See http://www.unicode.org/reports/tr24/tr24-5.html
enum Script {
Common,
Greek,
Cyrillic,
Armenian,
Hebrew,
Arabic,
Syriac,
Thaana,
Devanagari,
Bengali,
Gurmukhi,
Gujarati,
Oriya,
Tamil,
Telugu,
Kannada,
Malayalam,
Sinhala,
Thai,
Lao,
Tibetan,
Myanmar,
Georgian,
Hangul,
Ogham,
Runic,
Khmer,
Nko,
Inherited,
ScriptCount = Inherited,
Latin = Common,
Ethiopic = Common,
Cherokee = Common,
CanadianAboriginal = Common,
Mongolian = Common,
Hiragana = Common,
Katakana = Common,
Bopomofo = Common,
Han = Common,
Yi = Common,
OldItalic = Common,
Gothic = Common,
Deseret = Common,
Tagalog = Common,
Hanunoo = Common,
Buhid = Common,
Tagbanwa = Common,
Limbu = Common,
TaiLe = Common,
LinearB = Common,
Ugaritic = Common,
Shavian = Common,
Osmanya = Common,
Cypriot = Common,
Braille = Common,
Buginese = Common,
Coptic = Common,
NewTaiLue = Common,
Glagolitic = Common,
Tifinagh = Common,
SylotiNagri = Common,
OldPersian = Common,
Kharoshthi = Common,
Balinese = Common,
Cuneiform = Common,
Phoenician = Common,
PhagsPa = Common
};
enum { ScriptSentinel = 32 };
// see http://www.unicode.org/reports/tr14/tr14-19.html
// we don't use the XX, AI and CB properties and map them to AL instead.
// as we don't support any EBDIC based OS'es, NL is ignored and mapped to AL as well.
enum LineBreakClass {
LineBreak_OP, LineBreak_CL, LineBreak_QU, LineBreak_GL, LineBreak_NS,
LineBreak_EX, LineBreak_SY, LineBreak_IS, LineBreak_PR, LineBreak_PO,
LineBreak_NU, LineBreak_AL, LineBreak_ID, LineBreak_IN, LineBreak_HY,
LineBreak_BA, LineBreak_BB, LineBreak_B2, LineBreak_ZW, LineBreak_CM,
LineBreak_WJ, LineBreak_H2, LineBreak_H3, LineBreak_JL, LineBreak_JV,
LineBreak_JT, LineBreak_SA, LineBreak_SG,
LineBreak_SP, LineBreak_CR, LineBreak_LF, LineBreak_BK
};
enum GraphemeBreak {
GraphemeBreakOther,
GraphemeBreakCR,
GraphemeBreakLF,
GraphemeBreakControl,
GraphemeBreakExtend,
GraphemeBreakL,
GraphemeBreakV,
GraphemeBreakT,
GraphemeBreakLV,
GraphemeBreakLVT
};
enum WordBreak {
WordBreakOther,
WordBreakFormat,
WordBreakKatakana,
WordBreakALetter,
WordBreakMidLetter,
WordBreakMidNum,
WordBreakNumeric,
WordBreakExtendNumLet
};
enum SentenceBreak {
SentenceBreakOther,
SentenceBreakSep,
SentenceBreakFormat,
SentenceBreakSp,
SentenceBreakLower,
SentenceBreakUpper,
SentenceBreakOLetter,
SentenceBreakNumeric,
SentenceBreakATerm,
SentenceBreakSTerm,
SentenceBreakClose
};
Q_CORE_EXPORT QUnicodeTables::LineBreakClass QT_FASTCALL lineBreakClass(uint ucs4);
inline int lineBreakClass(const QChar &ch)
{ return lineBreakClass(ch.unicode()); }
Q_CORE_EXPORT int QT_FASTCALL script(uint ucs4);
inline int script(const QChar &ch)
{ return script(ch.unicode()); }
} // namespace QUnicodeTables
QT_END_NAMESPACE
#endif // QUNICODETABLES_P_H