#ifndef QTEXTFORMAT_H
#define QTEXTFORMAT_H 
#include <QtGui/qcolor.h>
#include <QtGui/qfont.h>
#include <QtCore/qshareddata.h>
#include <QtCore/qvector.h>
#include <QtCore/qvariant.h>
#include <QtGui/qpen.h>
#include <QtGui/qbrush.h>
typedef enum QtValidLicenseForGuiModule QtGuiModule;
struct QTextFormatCollection;
struct QTextFormatPrivate;
struct QTextObject;
struct QTextCursor;
struct QTextDocument;
class QTextLength{
   public: enum Type{
      VariableLength = 0,
      FixedLength = 1,
      PercentageLength = 2,
   };
   public: inline QTextLength();
   public: inline enum QTextLength::Type type() const
   public: inline qreal value(qreal maximumLength) const
   public: inline qreal rawValue() const
   public: inline bool operator ==(class QTextLength const & other) const
   public: inline bool operator !=(class QTextLength const & other) const
   public: operator class QVariant () const
   private: enum QTextLength::Type lengthType;
   private: qreal fixedValueOrPercentage;
   public: explicit inline QTextLength(enum QTextLength::Type atype, qreal avalue);
   friend class QDataStream& operator <<(class QDataStream&, class QTextLength const &);
   friend class QDataStream& operator >>(class QDataStream&, class QTextLength&);
};
class QDataStream& operator <<(class QDataStream&, class QTextLength const &);
class QDataStream& operator >>(class QDataStream&, class QTextLength&);
class QTextFormat{
   public: static struct QMetaObject const staticMetaObject;
   public: enum FormatType{
      InvalidFormat = -1,
      BlockFormat = 1,
      CharFormat = 2,
      ListFormat = 3,
      TableFormat = 4,
      FrameFormat = 5,
      UserFormat = 100,
   };
   public: enum Property{
      ObjectIndex = 0,
      CssFloat = 2048,
      LayoutDirection = 2049,
      OutlinePen = 2064,
      BackgroundBrush = 2080,
      ForegroundBrush = 2081,
      BlockAlignment = 4112,
      BlockTopMargin = 4144,
      BlockBottomMargin = 4145,
      BlockLeftMargin = 4146,
      BlockRightMargin = 4147,
      TextIndent = 4148,
      BlockIndent = 4160,
      BlockNonBreakableLines = 4176,
      BlockTrailingHorizontalRulerWidth = 4192,
      FontFamily = 8192,
      FontPointSize = 8193,
      FontSizeAdjustment = 8194,
      FontSizeIncrement = 8194,
      FontWeight = 8195,
      FontItalic = 8196,
      FontUnderline = 8197,
      FontOverline = 8198,
      FontStrikeOut = 8199,
      FontFixedPitch = 8200,
      FontPixelSize = 8201,
      TextUnderlineColor = 8208,
      TextVerticalAlignment = 8225,
      TextOutline = 8226,
      TextUnderlineStyle = 8227,
      IsAnchor = 8240,
      AnchorHref = 8241,
      AnchorName = 8242,
      ObjectType = 12032,
      ListStyle = 12288,
      ListIndent = 12289,
      FrameBorder = 16384,
      FrameMargin = 16385,
      FramePadding = 16386,
      FrameWidth = 16387,
      FrameHeight = 16388,
      TableColumns = 16640,
      TableColumnWidthConstraints = 16641,
      TableCellSpacing = 16642,
      TableCellPadding = 16643,
      TableHeaderRowCount = 16644,
      TableCellRowSpan = 18448,
      TableCellColumnSpan = 18449,
      ImageName = 20480,
      ImageWidth = 20496,
      ImageHeight = 20497,
      FullWidthSelection = 24576,
      PageBreakPolicy = 28672,
      UserProperty = 1048576,
   };
   public: enum ObjectTypes{
      NoObject = 0,
      ImageObject = 1,
      TableObject = 2,
      UserObject = 4096,
   };
   public: enum PageBreakFlag{
      PageBreak_Auto = 0,
      PageBreak_AlwaysBefore = 1,
      PageBreak_AlwaysAfter = 16,
   };
   public: typedef class QFlags < enum QTextFormat::PageBreakFlag > PageBreakFlags;
   public: QTextFormat();
   public: explicit QTextFormat(int type);
   public: QTextFormat(class QTextFormat const & rhs);
   public: class QTextFormat& operator =(class QTextFormat const & rhs);
   public: ~QTextFormat();
   public: void merge(class QTextFormat const & other);
   public: inline bool isValid() const
   public: int type() const
   public: int objectIndex() const
   public: void setObjectIndex(int object);
   public: class QVariant property(int propertyId) const
   public: void setProperty(int propertyId, class QVariant const & value);
   public: void clearProperty(int propertyId);
   public: bool hasProperty(int propertyId) const
   public: bool boolProperty(int propertyId) const
   public: int intProperty(int propertyId) const
   public: qreal doubleProperty(int propertyId) const
   public: class QString stringProperty(int propertyId) const
   public: class QColor colorProperty(int propertyId) const
   public: class QPen penProperty(int propertyId) const
   public: class QBrush brushProperty(int propertyId) const
   public: class QTextLength lengthProperty(int propertyId) const
   public: class QVector < class QTextLength > lengthVectorProperty(int propertyId) const
   public: void setProperty(int propertyId, class QVector < class QTextLength > const & lengths);
   public: class QMap < int, class QVariant > properties() const
   public: inline int objectType() const
   public: inline bool isCharFormat() const
   public: inline bool isBlockFormat() const
   public: inline bool isListFormat() const
   public: inline bool isFrameFormat() const
   public: inline bool isImageFormat() const
   public: inline bool isTableFormat() const
   public: class QTextBlockFormat toBlockFormat() const
   public: class QTextCharFormat toCharFormat() const
   public: class QTextListFormat toListFormat() const
   public: class QTextTableFormat toTableFormat() const
   public: class QTextFrameFormat toFrameFormat() const
   public: class QTextImageFormat toImageFormat() const
   public: bool operator ==(class QTextFormat const & rhs) const
   public: inline bool operator !=(class QTextFormat const & rhs) const
   public: operator class QVariant () const
   public: inline void setLayoutDirection(enum Qt::LayoutDirection direction);
   public: inline enum Qt::LayoutDirection layoutDirection() const
   public: inline void setBackground(class QBrush const & brush);
   public: inline class QBrush background() const
   public: inline void clearBackground();
   public: inline void setForeground(class QBrush const & brush);
   public: inline class QBrush foreground() const
   public: inline void clearForeground();
   private: class QSharedDataPointer < struct QTextFormatPrivate > d;
   private: qint32 format_type;
   public: inline void setObjectType(int atype);
   friend struct QTextFormatCollection;
   friend class QTextCharFormat;
   friend class QDataStream& operator <<(class QDataStream&, class QTextFormat const &);
   friend class QDataStream& operator >>(class QDataStream&, class QTextFormat&);
};
class QDataStream& operator <<(class QDataStream&, class QTextFormat const &);
class QDataStream& operator >>(class QDataStream&, class QTextFormat&);
inline class QFlags < enum QTextFormat::PageBreakFlag > operator |(enum QTextFormat::PageBreakFlag f1, class QFlags < enum QTextFormat::PageBreakFlag > f2);
inline class QFlags < enum QTextFormat::PageBreakFlag > operator |(enum QTextFormat::PageBreakFlag f1, enum QTextFormat::PageBreakFlag f2);
class QTextCharFormat: public QTextFormat{
   public: enum VerticalAlignment{
      AlignNormal = 0,
      AlignSuperScript = 1,
      AlignSubScript = 2,
   };
   public: enum UnderlineStyle{
      NoUnderline = 0,
      SingleUnderline = 1,
      DashUnderline = 2,
      DotLine = 3,
      DashDotLine = 4,
      DashDotDotLine = 5,
      WaveUnderline = 6,
      SpellCheckUnderline = 7,
   };
   public: QTextCharFormat();
   public: inline bool isValid() const
   public: void setFont(class QFont const & font);
   public: class QFont font() const
   public: inline void setFontFamily(class QString const & family);
   public: inline class QString fontFamily() const
   public: inline void setFontPointSize(qreal size);
   public: inline qreal fontPointSize() const
   public: inline void setFontWeight(int weight);
   public: inline int fontWeight() const
   public: inline void setFontItalic(bool italic);
   public: inline bool fontItalic() const
   public: inline void setFontUnderline(bool underline);
   public: bool fontUnderline() const
   public: inline void setFontOverline(bool overline);
   public: inline bool fontOverline() const
   public: inline void setFontStrikeOut(bool strikeOut);
   public: inline bool fontStrikeOut() const
   public: inline void setUnderlineColor(class QColor const & color);
   public: inline class QColor underlineColor() const
   public: inline void setFontFixedPitch(bool fixedPitch);
   public: inline bool fontFixedPitch() const
   public: void setUnderlineStyle(enum QTextCharFormat::UnderlineStyle style);
   public: inline enum QTextCharFormat::UnderlineStyle underlineStyle() const
   public: inline void setVerticalAlignment(enum QTextCharFormat::VerticalAlignment alignment);
   public: inline enum QTextCharFormat::VerticalAlignment verticalAlignment() const
   public: inline void setTextOutline(class QPen const & pen);
   public: inline class QPen textOutline() const
   public: inline void setAnchor(bool anchor);
   public: inline bool isAnchor() const
   public: inline void setAnchorHref(class QString const & value);
   public: inline class QString anchorHref() const
   public: inline void setAnchorName(class QString const & name);
   public: inline class QString anchorName() const
   public: inline int tableCellRowSpan() const
   public: inline int tableCellColumnSpan() const
   public: inline void setTableCellRowSpan(int atableCellRowSpan);
   public: inline void setTableCellColumnSpan(int atableCellColumnSpan);
};
class QTextBlockFormat: public QTextFormat{
   public: QTextBlockFormat();
   public: inline bool isValid() const
   public: inline Qt::Alignment alignment() const
   public: inline void setTopMargin(qreal margin);
   public: inline qreal topMargin() const
   public: inline void setBottomMargin(qreal margin);
   public: inline qreal bottomMargin() const
   public: inline void setLeftMargin(qreal margin);
   public: inline qreal leftMargin() const
   public: inline void setRightMargin(qreal margin);
   public: inline qreal rightMargin() const
   public: inline void setTextIndent(qreal margin);
   public: inline qreal textIndent() const
   public: inline int indent() const
   public: inline void setNonBreakableLines(bool b);
   public: inline bool nonBreakableLines() const
   public: inline void setPageBreakPolicy(class QFlags < enum QTextFormat::PageBreakFlag > flags);
   public: inline class QFlags < enum QTextFormat::PageBreakFlag > pageBreakPolicy() const
   public: inline void setAlignment(Qt::Alignment aalignment);
   public: inline void setIndent(int aindent);
};
class QTextListFormat: public QTextFormat{
   public: QTextListFormat();
   public: inline bool isValid() const
   public: enum Style{
      ListDisc = -1,
      ListCircle = -2,
      ListSquare = -3,
      ListDecimal = -4,
      ListLowerAlpha = -5,
      ListUpperAlpha = -6,
      ListStyleUndefined = 0,
   };
   public: inline enum QTextListFormat::Style style() const
   public: inline int indent() const
   public: inline void setStyle(enum QTextListFormat::Style astyle);
   public: inline void setIndent(int aindent);
};
class QTextImageFormat: public QTextCharFormat{
   public: QTextImageFormat();
   public: inline bool isValid() const
   public: inline class QString name() const
   public: inline qreal width() const
   public: inline qreal height() const
   public: inline void setName(class QString const & aname);
   public: inline void setWidth(qreal awidth);
   public: inline void setHeight(qreal aheight);
};
class QTextFrameFormat: public QTextFormat{
   public: QTextFrameFormat();
   public: inline bool isValid() const
   public: enum Position{
      InFlow = 0,
      FloatLeft = 1,
      FloatRight = 2,
   };
   public: inline void setPosition(enum QTextFrameFormat::Position f);
   public: inline enum QTextFrameFormat::Position position() const
   public: inline qreal border() const
   public: inline qreal margin() const
   public: inline qreal padding() const
   public: inline void setWidth(class QTextLength const & length);
   public: inline class QTextLength width() const
   public: inline class QTextLength height() const
   public: inline void setPageBreakPolicy(class QFlags < enum QTextFormat::PageBreakFlag > flags);
   public: inline class QFlags < enum QTextFormat::PageBreakFlag > pageBreakPolicy() const
   public: inline void setBorder(qreal aborder);
   public: inline void setMargin(qreal amargin);
   public: inline void setPadding(qreal apadding);
   public: inline void setWidth(qreal awidth);
   public: inline void setHeight(qreal aheight);
   public: inline void setHeight(class QTextLength const & aheight);
};
class QTextTableFormat: public QTextFrameFormat{
   public: QTextTableFormat();
   public: inline bool isValid() const
   public: inline int columns() const
   public: inline void setColumnWidthConstraints(class QVector < class QTextLength > const & constraints);
   public: inline class QVector < class QTextLength > columnWidthConstraints() const
   public: inline void clearColumnWidthConstraints();
   public: inline qreal cellSpacing() const
   public: inline void setCellSpacing(qreal spacing);
   public: inline qreal cellPadding() const
   public: inline Qt::Alignment alignment() const
   public: inline void setHeaderRowCount(int count);
   public: inline int headerRowCount() const
   public: inline void setColumns(int acolumns);
   public: inline void setCellPadding(qreal apadding);
   public: inline void setAlignment(Qt::Alignment aalignment);
};
#endif // QTEXTFORMAT_H