summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/src/tools/tqunicodetables_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'tqtinterface/qt4/src/tools/tqunicodetables_p.h')
-rw-r--r--tqtinterface/qt4/src/tools/tqunicodetables_p.h266
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