#ifndef QCHAR_H
#define QCHAR_H 
#include <QtCore/qglobal.h>
typedef enum QtValidLicenseForCoreModule QtCoreModule;
struct QLatin1Char{
   public: explicit inline QLatin1Char(char c);
   public: inline char const toLatin1() const
   public: inline ushort const unicode() const
   private: char ch;
};
class QChar{
#ifndef QT_NO_CAST_FROM_ASCII
   public: QChar(char c);
   public: QChar(uchar c);
#endif
   public: inline QChar(ushort rc);
   public: enum SpecialCharacter{
      Null = 0,
      Nbsp = 160,
      ReplacementCharacter = 65533,
      ObjectReplacementCharacter = 65532,
      ByteOrderMark = 65279,
      ByteOrderSwapped = 65534,
      ParagraphSeparator = 8233,
      LineSeparator = 8232,
   };
   public: enum Category{
      NoCategory = 0,
      Mark_NonSpacing = 1,
      Mark_SpacingCombining = 2,
      Mark_Enclosing = 3,
      Number_DecimalDigit = 4,
      Number_Letter = 5,
      Number_Other = 6,
      Separator_Space = 7,
      Separator_Line = 8,
      Separator_Paragraph = 9,
      Other_Control = 10,
      Other_Format = 11,
      Other_Surrogate = 12,
      Other_PrivateUse = 13,
      Other_NotAssigned = 14,
      Letter_Uppercase = 15,
      Letter_Lowercase = 16,
      Letter_Titlecase = 17,
      Letter_Modifier = 18,
      Letter_Other = 19,
      Punctuation_Connector = 20,
      Punctuation_Dash = 21,
      Punctuation_Open = 22,
      Punctuation_Close = 23,
      Punctuation_InitialQuote = 24,
      Punctuation_FinalQuote = 25,
      Punctuation_Other = 26,
      Symbol_Math = 27,
      Symbol_Currency = 28,
      Symbol_Modifier = 29,
      Symbol_Other = 30,
      Punctuation_Dask = 21,
   };
   public: enum Direction{
      DirL = 0,
      DirR = 1,
      DirEN = 2,
      DirES = 3,
      DirET = 4,
      DirAN = 5,
      DirCS = 6,
      DirB = 7,
      DirS = 8,
      DirWS = 9,
      DirON = 10,
      DirLRE = 11,
      DirLRO = 12,
      DirAL = 13,
      DirRLE = 14,
      DirRLO = 15,
      DirPDF = 16,
      DirNSM = 17,
      DirBN = 18,
   };
   public: enum Decomposition{
      NoDecomposition = 0,
      Canonical = 1,
      Font = 2,
      NoBreak = 3,
      Initial = 4,
      Medial = 5,
      Final = 6,
      Isolated = 7,
      Circle = 8,
      Super = 9,
      Sub = 10,
      Vertical = 11,
      Wide = 12,
      Narrow = 13,
      Small = 14,
      Square = 15,
      Compat = 16,
      Fraction = 17,
   };
   public: enum Joining{
      OtherJoining = 0,
      Dual = 1,
      Right = 2,
      Center = 3,
   };
   public: 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,
   };
   public: enum UnicodeVersion{
      Unicode_Unassigned = 0,
      Unicode_1_1 = 1,
      Unicode_2_0 = 2,
      Unicode_2_1_2 = 3,
      Unicode_3_0 = 4,
      Unicode_3_1 = 5,
      Unicode_3_2 = 6,
      Unicode_4_0 = 7,
   };
   public: int digitValue() const
   public: class QChar toLower() const
   public: class QChar toUpper() const
   public: enum QChar::Category category() const
   public: enum QChar::Direction direction() const
   public: enum QChar::Joining joining() const
   public: bool hasMirrored() const
   public: inline bool isLower() const
   public: inline bool isUpper() const
   public: class QChar mirroredChar() const
   public: struct QString decomposition() const
   public: enum QChar::Decomposition decompositionTag() const
   public: unsigned char combiningClass() const
   public: enum QChar::UnicodeVersion unicodeVersion() const
   public: char const toAscii() const
   public: inline ushort const unicode() const
#ifdef Q_NO_PACKED_REFERENCE
#else
   public: inline ushort& unicode();
#endif
   public: static class QChar fromAscii(char c);
   public: inline bool isNull() const
   public: bool isPrint() const
   public: bool isPunct() const
   public: bool isSpace() const
   public: bool isMark() const
   public: bool isLetter() const
   public: bool isNumber() const
   public: bool isLetterOrNumber() const
   public: bool isDigit() const
   public: bool isSymbol() const
   public: inline uchar cell() const
   public: inline uchar row() const
   private: ushort ucs;
   public: inline QChar();
   public: inline char const toLatin1() const
   public: static inline class QChar fromLatin1(char c);
   public: inline QChar(uchar c, uchar r);
   public: inline QChar(short int rc);
   public: inline QChar(uint rc);
   public: inline QChar(int rc);
   public: inline QChar(enum QChar::SpecialCharacter s);
   public: inline QChar(struct QLatin1Char ch);
   public: inline void setCell(uchar acell);
   public: inline void setRow(uchar arow);
};
template < > class QTypeInfo < class QChar >{
   public: static inline char const * name();
   public: enum /*anonymous*/{
      isComplex = 1,
      isStatic = 0,
      isLarge = 0,
      isPointer = 0,
      isDummy = 0,
   };
};
inline bool operator ==(class QChar c1, class QChar c2);
inline bool operator !=(class QChar c1, class QChar c2);
inline bool operator <=(class QChar c1, class QChar c2);
inline bool operator >=(class QChar c1, class QChar c2);
inline bool operator <(class QChar c1, class QChar c2);
inline bool operator >(class QChar c1, class QChar c2);
#ifndef QT_NO_DATASTREAM
struct QDataStream& operator <<(struct QDataStream&, class QChar const &);
struct QDataStream& operator >>(struct QDataStream&, class QChar&);
#endif
#endif // QCHAR_H