You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
403 lines
12 KiB
HTML
403 lines
12 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
|
<title>tqchar.h Include File</title>
|
|
<style type="text/css"><!--
|
|
fn { margin-left: 1cm; text-indent: -1cm; }
|
|
a:link { color: #004faf; text-decoration: none }
|
|
a:visited { color: #672967; text-decoration: none }
|
|
body { background: #ffffff; color: black; }
|
|
--></style>
|
|
</head>
|
|
<body>
|
|
|
|
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
|
<tr bgcolor="#E5E5E5">
|
|
<td valign=center>
|
|
<a href="index.html">
|
|
<font color="#004faf">Home</font></a>
|
|
| <a href="classes.html">
|
|
<font color="#004faf">All Classes</font></a>
|
|
| <a href="mainclasses.html">
|
|
<font color="#004faf">Main Classes</font></a>
|
|
| <a href="annotated.html">
|
|
<font color="#004faf">Annotated</font></a>
|
|
| <a href="groups.html">
|
|
<font color="#004faf">Grouped Classes</font></a>
|
|
| <a href="functions.html">
|
|
<font color="#004faf">Functions</font></a>
|
|
</td>
|
|
<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>tqchar.h</h1>
|
|
|
|
<p>This is the verbatim text of the tqchar.h include file. It is provided only for illustration; the copyright remains with Trolltech.
|
|
<hr>
|
|
<pre>
|
|
/****************************************************************************
|
|
**
|
|
** Definition of the TQChar class, and related Unicode functions.
|
|
**
|
|
** Created : 920609
|
|
**
|
|
** Copyright (C) 2015 Timothy Pearson. All rights reserved.
|
|
** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
|
|
**
|
|
** This file is part of the tools 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 TQCHAR_H
|
|
#define TQCHAR_H
|
|
|
|
#ifndef QT_H
|
|
#include "tqglobal.h"
|
|
#endif // QT_H
|
|
|
|
class TQString;
|
|
|
|
class TQ_EXPORT TQChar
|
|
{
|
|
public:
|
|
TQChar();
|
|
TQChar( char c );
|
|
TQChar( uchar c );
|
|
TQChar( uchar c, uchar r );
|
|
TQChar( const TQChar& c ); // ### remove in 4.0 to allow compiler optimization
|
|
TQChar( ushort rc );
|
|
TQChar( short rc );
|
|
TQChar( uint rc );
|
|
TQChar( int rc );
|
|
|
|
static const TQChar null; // 0000
|
|
static const TQChar replacement; // FFFD
|
|
static const TQChar byteOrderMark; // FEFF
|
|
static const TQChar byteOrderSwapped; // FFFE
|
|
static const TQChar nbsp; // 00A0
|
|
|
|
// Unicode information
|
|
|
|
enum Category
|
|
{
|
|
NoCategory,
|
|
|
|
Mark_NonSpacing, // Mn
|
|
Mark_SpacingCombining, // Mc
|
|
Mark_Enclosing, // Me
|
|
|
|
Number_DecimalDigit, // Nd
|
|
Number_Letter, // Nl
|
|
Number_Other, // No
|
|
|
|
Separator_Space, // Zs
|
|
Separator_Line, // Zl
|
|
Separator_Paragraph, // Zp
|
|
|
|
Other_Control, // Cc
|
|
Other_Format, // Cf
|
|
Other_Surrogate, // Cs
|
|
Other_PrivateUse, // Co
|
|
Other_NotAssigned, // Cn
|
|
|
|
Letter_Uppercase, // Lu
|
|
Letter_Lowercase, // Ll
|
|
Letter_Titlecase, // Lt
|
|
Letter_Modifier, // Lm
|
|
Letter_Other, // Lo
|
|
|
|
Punctuation_Connector, // Pc
|
|
Punctuation_Dash, // Pd
|
|
Punctuation_Dask = Punctuation_Dash, // oops
|
|
Punctuation_Open, // Ps
|
|
Punctuation_Close, // Pe
|
|
Punctuation_InitialQuote, // Pi
|
|
Punctuation_FinalQuote, // Pf
|
|
Punctuation_Other, // Po
|
|
|
|
Symbol_Math, // Sm
|
|
Symbol_Currency, // Sc
|
|
Symbol_Modifier, // Sk
|
|
Symbol_Other // So
|
|
};
|
|
|
|
enum Direction
|
|
{
|
|
DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON,
|
|
DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN
|
|
};
|
|
|
|
enum Decomposition
|
|
{
|
|
Single, Canonical, Font, NoBreak, Initial, Medial,
|
|
Final, Isolated, Circle, Super, Sub, Vertical,
|
|
Wide, Narrow, Small, Square, Compat, Fraction
|
|
};
|
|
|
|
enum Joining
|
|
{
|
|
OtherJoining, Dual, Right, Center
|
|
};
|
|
|
|
enum CombiningClass
|
|
{
|
|
Combining_BelowLeftAttached = 200,
|
|
Combining_BelowAttached = 202,
|
|
Combining_BelowRightAttached = 204,
|
|
Combining_LeftAttached = 208,
|
|
Combining_RightAttached = 210,
|
|
Combining_AboveLeftAttached = 212,
|
|
Combining_AboveAttached = 214,
|
|
Combining_AboveRightAttached = 216,
|
|
|
|
Combining_BelowLeft = 218,
|
|
Combining_Below = 220,
|
|
Combining_BelowRight = 222,
|
|
Combining_Left = 224,
|
|
Combining_Right = 226,
|
|
Combining_AboveLeft = 228,
|
|
Combining_Above = 230,
|
|
Combining_AboveRight = 232,
|
|
|
|
Combining_DoubleBelow = 233,
|
|
Combining_DoubleAbove = 234,
|
|
Combining_IotaSubscript = 240
|
|
};
|
|
|
|
// ****** WHEN ADDING FUNCTIONS, CONSIDER ADDING TO TQCharRef TOO
|
|
|
|
int digitValue() const;
|
|
TQChar lower() const;
|
|
TQChar upper() const;
|
|
|
|
Category category() const;
|
|
Direction direction() const;
|
|
Joining joining() const;
|
|
bool mirrored() const;
|
|
TQChar mirroredChar() const;
|
|
const TQString &decomposition() const; // ### return just TQString in 4.0
|
|
Decomposition decompositionTag() const;
|
|
unsigned char combiningClass() const;
|
|
|
|
char latin1() const { return ucs > 0xff ? 0 : (char) ucs; }
|
|
ushort unicode() const { return ucs; }
|
|
#ifdef Q_NO_PACKED_REFERENCE
|
|
ushort &unicode() { return *((ushort*)&ucs); }
|
|
#else
|
|
ushort &unicode() { return ucs; }
|
|
#endif
|
|
#ifndef TQT_NO_CAST_ASCII
|
|
// like all ifdef'd code this is undocumented
|
|
operator char() const { return latin1(); }
|
|
#endif
|
|
|
|
bool isNull() const { return unicode()==0; }
|
|
bool isPrint() const;
|
|
bool isPunct() const;
|
|
bool isSpace() const;
|
|
bool isMark() const;
|
|
bool isLetter() const;
|
|
bool isNumber() const;
|
|
bool isLetterOrNumber() const;
|
|
bool isDigit() const;
|
|
bool isSymbol() const;
|
|
|
|
// Surrogate pairs support
|
|
bool isHighSurrogate() const;
|
|
bool isLowSurrogate() const;
|
|
static bool requiresSurrogates(uint ucs4);
|
|
static ushort highSurrogate(uint ucs4);
|
|
static ushort lowSurrogate(uint ucs4);
|
|
static uint surrogateToUcs4(const TQChar &high, const TQChar &low);
|
|
|
|
uchar cell() const { return ((uchar) ucs & 0xff); }
|
|
uchar row() const { return ((uchar) (ucs>>8)&0xff); }
|
|
void setCell( uchar cell ) { ucs = (ucs & 0xff00) + cell; }
|
|
void setRow( uchar row ) { ucs = (((ushort) row)<<8) + (ucs&0xff); }
|
|
|
|
static bool networkOrdered() {
|
|
int wordSize;
|
|
bool bigEndian = FALSE;
|
|
tqSysInfo( &wordSize, &bigEndian );
|
|
return bigEndian;
|
|
}
|
|
|
|
friend inline bool operator==( char ch, TQChar c );
|
|
friend inline bool operator==( TQChar c, char ch );
|
|
friend inline bool operator==( TQChar c1, TQChar c2 );
|
|
friend inline bool operator!=( TQChar c1, TQChar c2 );
|
|
friend inline bool operator!=( char ch, TQChar c );
|
|
friend inline bool operator!=( TQChar c, char ch );
|
|
friend inline bool operator<=( TQChar c, char ch );
|
|
friend inline bool operator<=( char ch, TQChar c );
|
|
friend inline bool operator<=( TQChar c1, TQChar c2 );
|
|
|
|
#if defined(__cplusplus) && __cplusplus >= 201103L
|
|
// Explicit declarations to suppress warnings
|
|
// This could be removed when TQChar( const TQChar& c ) is removed
|
|
TQChar& operator=(const TQChar& other) = default;
|
|
~TQChar() = default;
|
|
#endif
|
|
private:
|
|
ushort ucs;
|
|
} TQ_PACKED;
|
|
|
|
|
|
inline TQChar::TQChar() : ucs( 0 )
|
|
{
|
|
}
|
|
|
|
inline TQChar::TQChar( char c ) : ucs( (uchar)c )
|
|
{
|
|
}
|
|
|
|
inline TQChar::TQChar( uchar c ) : ucs( c )
|
|
{
|
|
}
|
|
|
|
inline TQChar::TQChar( uchar c, uchar r ) : ucs( (r << 8) | c )
|
|
{
|
|
}
|
|
|
|
inline TQChar::TQChar( const TQChar& c ) : ucs( c.ucs )
|
|
{
|
|
}
|
|
|
|
inline TQChar::TQChar( ushort rc ) : ucs( rc )
|
|
{
|
|
}
|
|
|
|
inline TQChar::TQChar( short rc ) : ucs( (ushort) rc )
|
|
{
|
|
}
|
|
|
|
inline TQChar::TQChar( uint rc ) : ucs( (ushort) ( rc )
|
|
{
|
|
}
|
|
|
|
inline TQChar::TQChar( int rc ) : ucs( (ushort) ( rc ) )
|
|
{
|
|
}
|
|
|
|
inline bool TQChar::isHighSurrogate() const
|
|
{
|
|
return ((ucs & 0xfc00) == 0xd800);
|
|
}
|
|
|
|
inline bool TQChar::isLowSurrogate() const
|
|
{
|
|
return ((ucs & 0xfc00) == 0xdc00);
|
|
}
|
|
|
|
inline bool TQChar::requiresSurrogates(uint ucs4)
|
|
{
|
|
return (ucs4 >= 0x10000);
|
|
}
|
|
|
|
inline ushort TQChar::highSurrogate(uint ucs4)
|
|
{
|
|
return ushort(((ucs4 - 0x10000) >> 10)) | 0xd800;
|
|
}
|
|
|
|
inline ushort TQChar::lowSurrogate(uint ucs4)
|
|
{
|
|
return ushort(ucs4 & 0x03FF) | 0xdc00;
|
|
}
|
|
|
|
inline uint TQChar::surrogateToUcs4(const TQChar &high, const TQChar &low)
|
|
{
|
|
return (uint(high.ucs & 0x03FF) << 10) | (low.ucs & 0x03FF) | 0x10000;
|
|
}
|
|
|
|
inline bool operator==( char ch, TQChar c )
|
|
{
|
|
return ((uchar) ch) == c.ucs;
|
|
}
|
|
|
|
inline bool operator==( TQChar c, char ch )
|
|
{
|
|
return ((uchar) ch) == c.ucs;
|
|
}
|
|
|
|
inline bool operator==( TQChar c1, TQChar c2 )
|
|
{
|
|
return c1.ucs == c2.ucs;
|
|
}
|
|
|
|
inline bool operator!=( TQChar c1, TQChar c2 )
|
|
{
|
|
return c1.ucs != c2.ucs;
|
|
}
|
|
|
|
inline bool operator!=( char ch, TQChar c )
|
|
{
|
|
return ((uchar)ch) != c.ucs;
|
|
}
|
|
|
|
inline bool operator!=( TQChar c, char ch )
|
|
{
|
|
return ((uchar) ch) != c.ucs;
|
|
}
|
|
|
|
inline bool operator<=( TQChar c, char ch )
|
|
{
|
|
return c.ucs <= ((uchar) ch);
|
|
}
|
|
|
|
inline bool operator<=( char ch, TQChar c )
|
|
{
|
|
return ((uchar) ch) <= c.ucs;
|
|
}
|
|
|
|
inline bool operator<=( TQChar c1, TQChar c2 )
|
|
{
|
|
return c1.ucs <= c2.ucs;
|
|
}
|
|
|
|
inline bool operator>=( TQChar c, char ch ) { return ch <= c; }
|
|
inline bool operator>=( char ch, TQChar c ) { return c <= ch; }
|
|
inline bool operator>=( TQChar c1, TQChar c2 ) { return c2 <= c1; }
|
|
inline bool operator<( TQChar c, char ch ) { return !(ch<=c); }
|
|
inline bool operator<( char ch, TQChar c ) { return !(c<=ch); }
|
|
inline bool operator<( TQChar c1, TQChar c2 ) { return !(c2<=c1); }
|
|
inline bool operator>( TQChar c, char ch ) { return !(ch>=c); }
|
|
inline bool operator>( char ch, TQChar c ) { return !(c>=ch); }
|
|
inline bool operator>( TQChar c1, TQChar c2 ) { return !(c2>=c1); }
|
|
|
|
#endif // TQCHAR_H
|
|
</pre>
|
|
<!-- eof -->
|
|
<p><address><hr><div align=center>
|
|
<table width=100% cellspacing=0 border=0><tr>
|
|
<td>Copyright © 2007
|
|
<a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a>
|
|
<td align=right><div align=right>TQt 3.3.8</div>
|
|
</table></div></address></body>
|
|
</html>
|