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.
tqt/doc/html/tqchar-h.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&nbsp;Classes</font></a>
| <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
| <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
| <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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 &quot;AS IS&quot; 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 &quot;tqglobal.h&quot;
#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&amp; 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 &amp;decomposition() const; // ### return just TQString in 4.0
Decomposition decompositionTag() const;
unsigned char combiningClass() const;
char latin1() const { return ucs &gt; 0xff ? 0 : (char) ucs; }
ushort unicode() const { return ucs; }
#ifdef Q_NO_PACKED_REFERENCE
ushort &amp;unicode() { return *((ushort*)&amp;ucs); }
#else
ushort &amp;unicode() { return ucs; }
#endif
#ifndef TQT_NO_CAST_ASCII
// like all ifdef&#039;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 &amp;high, const TQChar &amp;low);
uchar cell() const { return ((uchar) ucs &amp; 0xff); }
uchar row() const { return ((uchar) (ucs&gt;&gt;8)&amp;0xff); }
void setCell( uchar cell ) { ucs = (ucs &amp; 0xff00) + cell; }
void setRow( uchar row ) { ucs = (((ushort) row)&lt;&lt;8) + (ucs&amp;0xff); }
static bool networkOrdered() {
int wordSize;
bool bigEndian = FALSE;
tqSysInfo( &amp;wordSize, &amp;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&lt;=( TQChar c, char ch );
friend inline bool operator&lt;=( char ch, TQChar c );
friend inline bool operator&lt;=( TQChar c1, TQChar c2 );
#if defined(__cplusplus) &amp;&amp; __cplusplus &gt;= 201103L
// Explicit declarations to suppress warnings
// This could be removed when TQChar( const TQChar&amp; c ) is removed
TQChar&amp; operator=(const TQChar&amp; 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 &lt;&lt; 8) | c )
{
}
inline TQChar::TQChar( const TQChar&amp; 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 &amp; 0xfc00) == 0xd800);
}
inline bool TQChar::isLowSurrogate() const
{
return ((ucs &amp; 0xfc00) == 0xdc00);
}
inline bool TQChar::requiresSurrogates(uint ucs4)
{
return (ucs4 &gt;= 0x10000);
}
inline ushort TQChar::highSurrogate(uint ucs4)
{
return ushort(((ucs4 - 0x10000) &gt;&gt; 10)) | 0xd800;
}
inline ushort TQChar::lowSurrogate(uint ucs4)
{
return ushort(ucs4 &amp; 0x03FF) | 0xdc00;
}
inline uint TQChar::surrogateToUcs4(const TQChar &amp;high, const TQChar &amp;low)
{
return (uint(high.ucs &amp; 0x03FF) &lt;&lt; 10) | (low.ucs &amp; 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&lt;=( TQChar c, char ch )
{
return c.ucs &lt;= ((uchar) ch);
}
inline bool operator&lt;=( char ch, TQChar c )
{
return ((uchar) ch) &lt;= c.ucs;
}
inline bool operator&lt;=( TQChar c1, TQChar c2 )
{
return c1.ucs &lt;= c2.ucs;
}
inline bool operator&gt;=( TQChar c, char ch ) { return ch &lt;= c; }
inline bool operator&gt;=( char ch, TQChar c ) { return c &lt;= ch; }
inline bool operator&gt;=( TQChar c1, TQChar c2 ) { return c2 &lt;= c1; }
inline bool operator&lt;( TQChar c, char ch ) { return !(ch&lt;=c); }
inline bool operator&lt;( char ch, TQChar c ) { return !(c&lt;=ch); }
inline bool operator&lt;( TQChar c1, TQChar c2 ) { return !(c2&lt;=c1); }
inline bool operator&gt;( TQChar c, char ch ) { return !(ch&gt;=c); }
inline bool operator&gt;( char ch, TQChar c ) { return !(c&gt;=ch); }
inline bool operator&gt;( TQChar c1, TQChar c2 ) { return !(c2&gt;=c1); }
#endif // TQCHAR_H
</pre>
<!-- eof -->
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 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>