diff options
Diffstat (limited to 'tqtinterface/qt4/src/tools/tqunicodetables_p.h')
-rw-r--r-- | tqtinterface/qt4/src/tools/tqunicodetables_p.h | 266 |
1 files changed, 0 insertions, 266 deletions
diff --git a/tqtinterface/qt4/src/tools/tqunicodetables_p.h b/tqtinterface/qt4/src/tools/tqunicodetables_p.h deleted file mode 100644 index 4afa5d1..0000000 --- a/tqtinterface/qt4/src/tools/tqunicodetables_p.h +++ /dev/null @@ -1,266 +0,0 @@ -/**************************************************************************** -** -** ??? -** -** Copyright (C) 2005-2008 Trolltech ASA. All rights reserved. -** -** This file is part of the widgets module of the TQt GUI Toolkit. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at sales@trolltech.com. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#ifndef TQUNICODETABLES_P_H -#define TQUNICODETABLES_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the TQt 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 TQT_H -#include "tqstring.h" -#endif // TQT_H - -#ifdef TQT_NO_UNICODETABLES -# include <ctype.h> -#endif - -class TQUnicodeTables { -public: - static const TQ_UINT8 tqunicode_info[]; -#ifndef TQT_NO_UNICODETABLES - static const TQ_UINT16 decomposition_map[]; - static const TQ_UINT16 decomposition_info[]; - static const TQ_UINT16 ligature_map[]; - static const TQ_UINT16 ligature_info[]; - static const TQ_UINT8 direction_info[]; - static const TQ_UINT8 combining_info[]; - static const TQ_UINT16 case_info[]; - static const TQ_INT8 decimal_info[]; - static const TQ_UINT16 symmetricPairs[]; - static const int symmetricPairsSize; - static const TQ_UINT8 line_break_info[]; -#else - static const TQ_UINT8 latin1_line_break_info[]; -#endif - static const unsigned char otherScripts[]; - static const unsigned char indicScripts[]; - static const unsigned char scriptTable[]; - enum { SCRIPTS_INDIC = 0x7e }; - - // see http://www.tqunicode.org/reports/tr14/tr14-13.html - // we don't use the XX and AI properties and map them to AL instead. - 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_SA, LineBreak_BK, LineBreak_CR, LineBreak_LF, LineBreak_SG, - LineBreak_CB, LineBreak_SP - }; -}; - - -inline TQChar::Category category( const TQChar &c ) -{ -#ifdef TQT_NO_UNICODETABLES - if ( c.tqunicode() > 0xff ) return TQChar::Letter_Uppercase; //######## - return (TQChar::Category)TQUnicodeTables::tqunicode_info[c.tqunicode()]; -#else - register int uc = ((int)TQUnicodeTables::tqunicode_info[c.row()]) << 8; - uc += c.cell(); - return (TQChar::Category)TQUnicodeTables::tqunicode_info[uc]; -#endif // TQT_NO_UNICODETABLES -} - -inline TQChar lower( const TQChar &c ) -{ -#ifndef TQT_NO_UNICODETABLES - int row = c.row(); - int cell = c.cell(); - register int ci = TQUnicodeTables::case_info[row]; - register int uc = ((int)TQUnicodeTables::tqunicode_info[c.row()]) << 8; - uc += c.cell(); - if (TQUnicodeTables::tqunicode_info[uc] != TQChar::Letter_Uppercase || !ci) - return c; - TQ_UINT16 lower = TQUnicodeTables::case_info[(ci<<8)+cell]; - return lower ? TQChar(lower) : c; -#else - if ( c.row() ) - return c; - return TQChar( tolower((uchar) c.latin1()) ); -#endif -} - -inline TQChar upper( const TQChar &c ) -{ -#ifndef TQT_NO_UNICODETABLES - int row = c.row(); - int cell = c.cell(); - register int ci = TQUnicodeTables::case_info[row]; - register int uc = ((int)TQUnicodeTables::tqunicode_info[c.row()]) << 8; - uc += c.cell(); - if (TQUnicodeTables::tqunicode_info[uc] != TQChar::Letter_Lowercase || !ci) - return c; - TQ_UINT16 upper = TQUnicodeTables::case_info[(ci<<8)+cell]; - return upper ? TQChar(upper) : c; -#else - if ( c.row() ) - return c; - return TQChar( toupper((uchar) c.latin1()) ); -#endif -} - -inline TQChar::Direction direction( const TQChar &c ) -{ -#ifndef TQT_NO_UNICODETABLES - register int pos = TQUnicodeTables::direction_info[c.row()]; - return (TQChar::Direction) (TQUnicodeTables::direction_info[(pos<<8)+c.cell()] & 0x1f); -#else - TQ_UNUSED(c); - return TQChar::DirL; -#endif -} - -inline bool mirrored( const TQChar &c ) -{ -#ifndef TQT_NO_UNICODETABLES - register int pos = TQUnicodeTables::direction_info[c.row()]; - return TQUnicodeTables::direction_info[(pos<<8)+c.cell()] > 128; -#else - TQ_UNUSED(c); - return FALSE; -#endif -} - - -inline TQChar mirroredChar( const TQChar &ch ) -{ -#ifndef TQT_NO_UNICODETABLES - if(!::mirrored( ch )) - return ch; - - int i; - int c = ch.tqunicode(); - for (i = 0; i < TQUnicodeTables::symmetricPairsSize; i ++) { - if (TQUnicodeTables::symmetricPairs[i] == c) - return TQUnicodeTables::symmetricPairs[(i%2) ? (i-1) : (i+1)]; - } -#endif - return ch; -} - -inline TQChar::Joining joining( const TQChar &ch ) -{ -#ifndef TQT_NO_UNICODETABLES - register int pos = TQUnicodeTables::direction_info[ch.row()]; - return (TQChar::Joining) ((TQUnicodeTables::direction_info[(pos<<8)+ch.cell()] >> 5) &0x3); -#else - TQ_UNUSED(ch); - return TQChar::OtherJoining; -#endif -} - -inline bool isMark( const TQChar &ch ) -{ - TQChar::Category c = ::category( ch ); - return c >= TQChar::Mark_NonSpacing && c <= TQChar::Mark_Enclosing; -} - -inline unsigned char combiningClass( const TQChar &ch ) -{ -#ifndef TQT_NO_UNICODETABLES - const int pos = TQUnicodeTables::combining_info[ch.row()]; - return TQUnicodeTables::combining_info[(pos<<8) + ch.cell()]; -#else - TQ_UNUSED(ch); - return 0; -#endif -} - -inline bool isSpace( const TQChar &ch ) -{ - if( ch.tqunicode() >= 9 && ch.tqunicode() <=13 ) return TRUE; - TQChar::Category c = ::category( ch ); - return c >= TQChar::Separator_Space && c <= TQChar::Separator_Paragraph; -} - -inline int lineBreakClass( const TQChar &ch ) -{ -#ifdef TQT_NO_UNICODETABLES - return ch.row() ? TQUnicodeTables::LineBreak_AL - : TQUnicodeTables::latin1_line_break_info[ch.cell()]; -#else - register int pos = ((int)TQUnicodeTables::line_break_info[ch.row()] << 8) + ch.cell(); - return TQUnicodeTables::line_break_info[pos]; -#endif -} - -inline int scriptForChar( ushort uc ) -{ - unsigned char script = TQUnicodeTables::scriptTable[(uc>>8)]; - if ( script >= TQUnicodeTables::SCRIPTS_INDIC ) { - if ( script == TQUnicodeTables::SCRIPTS_INDIC ) { - script = TQUnicodeTables::indicScripts[ (uc-0x0900)>>7 ]; - } else { - // 0x80 + SCRIPTS_xx - unsigned char index = script-0x80; - unsigned char cell = uc &0xff; - while( TQUnicodeTables::otherScripts[index++] < cell ) - index++; - script = TQUnicodeTables::otherScripts[index]; - } - } - return script; -} - -#ifdef TQ_WS_X11 -#define SCRIPT_FOR_CHAR( script, c ) \ -do { \ - unsigned short _uc = (c).tqunicode(); \ - if ( _uc < 0x100 ) { \ - script = TQFont::Latin; \ - } else { \ - script = (TQFont::Script)scriptForChar( _uc ); \ - } \ -} while( FALSE ) -#else -#define SCRIPT_FOR_CHAR( script, c ) \ - script = (TQFont::Script)scriptForChar( (c).tqunicode() ) -#endif - -#endif |