00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef QTEXTFORMAT_H
00043 #define QTEXTFORMAT_H
00044
00045 #include <QtGui/qcolor.h>
00046 #include <QtGui/qfont.h>
00047 #include <QtCore/qshareddata.h>
00048 #include <QtCore/qvector.h>
00049 #include <QtCore/qvariant.h>
00050 #include <QtGui/qpen.h>
00051 #include <QtGui/qbrush.h>
00052 #include <QtGui/qtextoption.h>
00053
00054 QT_BEGIN_HEADER
00055
00056 QT_BEGIN_NAMESPACE
00057
00058 QT_MODULE(Gui)
00059
00060 class QString;
00061 class QVariant;
00062 class QFont;
00063
00064 class QTextFormatCollection;
00065 class QTextFormatPrivate;
00066 class QTextBlockFormat;
00067 class QTextCharFormat;
00068 class QTextListFormat;
00069 class QTextTableFormat;
00070 class QTextFrameFormat;
00071 class QTextImageFormat;
00072 class QTextTableCellFormat;
00073 class QTextFormat;
00074 class QTextObject;
00075 class QTextCursor;
00076 class QTextDocument;
00077 class QTextLength;
00078
00079 #ifndef QT_NO_DATASTREAM
00080 Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QTextLength &);
00081 Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QTextLength &);
00082 #endif
00083
00084 class Q_GUI_EXPORT QTextLength
00085 {
00086 public:
00087 enum Type { VariableLength = 0, FixedLength, PercentageLength };
00088
00089 inline QTextLength() : lengthType(VariableLength), fixedValueOrPercentage(0) {}
00090
00091 inline explicit QTextLength(Type type, qreal value);
00092
00093 inline Type type() const { return lengthType; }
00094 inline qreal value(qreal maximumLength) const
00095 {
00096 switch (lengthType) {
00097 case FixedLength: return fixedValueOrPercentage;
00098 case VariableLength: return maximumLength;
00099 case PercentageLength: return fixedValueOrPercentage * maximumLength / qreal(100);
00100 }
00101 return -1;
00102 }
00103
00104 inline qreal rawValue() const { return fixedValueOrPercentage; }
00105
00106 inline bool operator==(const QTextLength &other) const
00107 { return lengthType == other.lengthType
00108 && qFuzzyCompare(fixedValueOrPercentage, other.fixedValueOrPercentage); }
00109 inline bool operator!=(const QTextLength &other) const
00110 { return lengthType != other.lengthType
00111 || !qFuzzyCompare(fixedValueOrPercentage, other.fixedValueOrPercentage); }
00112 operator QVariant() const;
00113
00114 private:
00115 Type lengthType;
00116 qreal fixedValueOrPercentage;
00117 friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QTextLength &);
00118 friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QTextLength &);
00119 };
00120
00121 inline QTextLength::QTextLength(Type atype, qreal avalue)
00122 : lengthType(atype), fixedValueOrPercentage(avalue) {}
00123
00124 #ifndef QT_NO_DATASTREAM
00125 Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QTextFormat &);
00126 Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QTextFormat &);
00127 #endif
00128
00129 class Q_GUI_EXPORT QTextFormat
00130 {
00131 Q_GADGET
00132 Q_ENUMS(FormatType Property ObjectTypes)
00133 public:
00134 enum FormatType {
00135 InvalidFormat = -1,
00136 BlockFormat = 1,
00137 CharFormat = 2,
00138 ListFormat = 3,
00139 TableFormat = 4,
00140 FrameFormat = 5,
00141
00142 UserFormat = 100
00143 };
00144
00145 enum Property {
00146 ObjectIndex = 0x0,
00147
00148
00149 CssFloat = 0x0800,
00150 LayoutDirection = 0x0801,
00151
00152 OutlinePen = 0x810,
00153 BackgroundBrush = 0x820,
00154 ForegroundBrush = 0x821,
00155
00156 BackgroundImageUrl = 0x823,
00157
00158
00159 BlockAlignment = 0x1010,
00160 BlockTopMargin = 0x1030,
00161 BlockBottomMargin = 0x1031,
00162 BlockLeftMargin = 0x1032,
00163 BlockRightMargin = 0x1033,
00164 TextIndent = 0x1034,
00165 TabPositions = 0x1035,
00166 BlockIndent = 0x1040,
00167 BlockNonBreakableLines = 0x1050,
00168 BlockTrailingHorizontalRulerWidth = 0x1060,
00169
00170
00171 FirstFontProperty = 0x1FE0,
00172 FontCapitalization = FirstFontProperty,
00173 FontLetterSpacing = 0x1FE1,
00174 FontWordSpacing = 0x1FE2,
00175 FontStyleHint = 0x1FE3,
00176 FontStyleStrategy = 0x1FE4,
00177 FontKerning = 0x1FE5,
00178 FontFamily = 0x2000,
00179 FontPointSize = 0x2001,
00180 FontSizeAdjustment = 0x2002,
00181 FontSizeIncrement = FontSizeAdjustment,
00182 FontWeight = 0x2003,
00183 FontItalic = 0x2004,
00184 FontUnderline = 0x2005,
00185 FontOverline = 0x2006,
00186 FontStrikeOut = 0x2007,
00187 FontFixedPitch = 0x2008,
00188 FontPixelSize = 0x2009,
00189 LastFontProperty = FontPixelSize,
00190
00191 TextUnderlineColor = 0x2010,
00192 TextVerticalAlignment = 0x2021,
00193 TextOutline = 0x2022,
00194 TextUnderlineStyle = 0x2023,
00195 TextToolTip = 0x2024,
00196
00197 IsAnchor = 0x2030,
00198 AnchorHref = 0x2031,
00199 AnchorName = 0x2032,
00200 ObjectType = 0x2f00,
00201
00202
00203 ListStyle = 0x3000,
00204 ListIndent = 0x3001,
00205
00206
00207 FrameBorder = 0x4000,
00208 FrameMargin = 0x4001,
00209 FramePadding = 0x4002,
00210 FrameWidth = 0x4003,
00211 FrameHeight = 0x4004,
00212 FrameTopMargin = 0x4005,
00213 FrameBottomMargin = 0x4006,
00214 FrameLeftMargin = 0x4007,
00215 FrameRightMargin = 0x4008,
00216 FrameBorderBrush = 0x4009,
00217 FrameBorderStyle = 0x4010,
00218
00219 TableColumns = 0x4100,
00220 TableColumnWidthConstraints = 0x4101,
00221 TableCellSpacing = 0x4102,
00222 TableCellPadding = 0x4103,
00223 TableHeaderRowCount = 0x4104,
00224
00225
00226 TableCellRowSpan = 0x4810,
00227 TableCellColumnSpan = 0x4811,
00228
00229 TableCellTopPadding = 0x4812,
00230 TableCellBottomPadding = 0x4813,
00231 TableCellLeftPadding = 0x4814,
00232 TableCellRightPadding = 0x4815,
00233
00234
00235 ImageName = 0x5000,
00236 ImageWidth = 0x5010,
00237 ImageHeight = 0x5011,
00238
00239
00240
00241
00242
00243
00244
00245
00246 FullWidthSelection = 0x06000,
00247
00248
00249 PageBreakPolicy = 0x7000,
00250
00251
00252 UserProperty = 0x100000
00253 };
00254
00255 enum ObjectTypes {
00256 NoObject,
00257 ImageObject,
00258 TableObject,
00259 TableCellObject,
00260
00261 UserObject = 0x1000
00262 };
00263
00264 enum PageBreakFlag {
00265 PageBreak_Auto = 0,
00266 PageBreak_AlwaysBefore = 0x001,
00267 PageBreak_AlwaysAfter = 0x010
00268
00269 };
00270 Q_DECLARE_FLAGS(PageBreakFlags, PageBreakFlag)
00271
00272 QTextFormat();
00273
00274 explicit QTextFormat(int type);
00275
00276 QTextFormat(const QTextFormat &rhs);
00277 QTextFormat &operator=(const QTextFormat &rhs);
00278 ~QTextFormat();
00279
00280 void merge(const QTextFormat &other);
00281
00282 inline bool isValid() const { return type() != InvalidFormat; }
00283
00284 int type() const;
00285
00286 int objectIndex() const;
00287 void setObjectIndex(int object);
00288
00289 QVariant property(int propertyId) const;
00290 void setProperty(int propertyId, const QVariant &value);
00291 void clearProperty(int propertyId);
00292 bool hasProperty(int propertyId) const;
00293
00294 bool boolProperty(int propertyId) const;
00295 int intProperty(int propertyId) const;
00296 qreal doubleProperty(int propertyId) const;
00297 QString stringProperty(int propertyId) const;
00298 QColor colorProperty(int propertyId) const;
00299 QPen penProperty(int propertyId) const;
00300 QBrush brushProperty(int propertyId) const;
00301 QTextLength lengthProperty(int propertyId) const;
00302 QVector<QTextLength> lengthVectorProperty(int propertyId) const;
00303
00304 void setProperty(int propertyId, const QVector<QTextLength> &lengths);
00305
00306 QMap<int, QVariant> properties() const;
00307 int propertyCount() const;
00308
00309 inline void setObjectType(int type);
00310 inline int objectType() const
00311 { return intProperty(ObjectType); }
00312
00313 inline bool isCharFormat() const { return type() == CharFormat; }
00314 inline bool isBlockFormat() const { return type() == BlockFormat; }
00315 inline bool isListFormat() const { return type() == ListFormat; }
00316 inline bool isFrameFormat() const { return type() == FrameFormat; }
00317 inline bool isImageFormat() const { return type() == CharFormat && objectType() == ImageObject; }
00318 inline bool isTableFormat() const { return type() == FrameFormat && objectType() == TableObject; }
00319 inline bool isTableCellFormat() const { return type() == CharFormat && objectType() == TableCellObject; }
00320
00321 QTextBlockFormat toBlockFormat() const;
00322 QTextCharFormat toCharFormat() const;
00323 QTextListFormat toListFormat() const;
00324 QTextTableFormat toTableFormat() const;
00325 QTextFrameFormat toFrameFormat() const;
00326 QTextImageFormat toImageFormat() const;
00327 QTextTableCellFormat toTableCellFormat() const;
00328
00329 bool operator==(const QTextFormat &rhs) const;
00330 inline bool operator!=(const QTextFormat &rhs) const { return !operator==(rhs); }
00331 operator QVariant() const;
00332
00333 inline void setLayoutDirection(Qt::LayoutDirection direction)
00334 { setProperty(QTextFormat::LayoutDirection, direction); }
00335 inline Qt::LayoutDirection layoutDirection() const
00336 { return Qt::LayoutDirection(intProperty(QTextFormat::LayoutDirection)); }
00337
00338 inline void setBackground(const QBrush &brush)
00339 { setProperty(BackgroundBrush, brush); }
00340 inline QBrush background() const
00341 { return brushProperty(BackgroundBrush); }
00342 inline void clearBackground()
00343 { clearProperty(BackgroundBrush); }
00344
00345 inline void setForeground(const QBrush &brush)
00346 { setProperty(ForegroundBrush, brush); }
00347 inline QBrush foreground() const
00348 { return brushProperty(ForegroundBrush); }
00349 inline void clearForeground()
00350 { clearProperty(ForegroundBrush); }
00351
00352 private:
00353 QSharedDataPointer<QTextFormatPrivate> d;
00354 qint32 format_type;
00355
00356 friend class QTextFormatCollection;
00357 friend class QTextCharFormat;
00358 friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QTextFormat &);
00359 friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QTextFormat &);
00360 };
00361
00362 inline void QTextFormat::setObjectType(int atype)
00363 { setProperty(ObjectType, atype); }
00364
00365 Q_DECLARE_OPERATORS_FOR_FLAGS(QTextFormat::PageBreakFlags)
00366
00367 class Q_GUI_EXPORT QTextCharFormat : public QTextFormat
00368 {
00369 public:
00370 enum VerticalAlignment {
00371 AlignNormal = 0,
00372 AlignSuperScript,
00373 AlignSubScript,
00374 AlignMiddle,
00375 AlignTop,
00376 AlignBottom
00377 };
00378 enum UnderlineStyle {
00379 NoUnderline,
00380 SingleUnderline,
00381 DashUnderline,
00382 DotLine,
00383 DashDotLine,
00384 DashDotDotLine,
00385 WaveUnderline,
00386 SpellCheckUnderline
00387 };
00388
00389 QTextCharFormat();
00390
00391 bool isValid() const { return isCharFormat(); }
00392 void setFont(const QFont &font);
00393 QFont font() const;
00394
00395 inline void setFontFamily(const QString &family)
00396 { setProperty(FontFamily, family); }
00397 inline QString fontFamily() const
00398 { return stringProperty(FontFamily); }
00399
00400 inline void setFontPointSize(qreal size)
00401 { setProperty(FontPointSize, size); }
00402 inline qreal fontPointSize() const
00403 { return doubleProperty(FontPointSize); }
00404
00405 inline void setFontWeight(int weight)
00406 { if (weight == QFont::Normal) weight = 0; setProperty(FontWeight, weight); }
00407 inline int fontWeight() const
00408 { int weight = intProperty(FontWeight); if (weight == 0) weight = QFont::Normal; return weight; }
00409 inline void setFontItalic(bool italic)
00410 { setProperty(FontItalic, italic); }
00411 inline bool fontItalic() const
00412 { return boolProperty(FontItalic); }
00413 inline void setFontCapitalization(QFont::Capitalization capitalization)
00414 { setProperty(FontCapitalization, capitalization); }
00415 inline QFont::Capitalization fontCapitalization() const
00416 { return static_cast<QFont::Capitalization>(intProperty(FontCapitalization)); }
00417 inline void setFontLetterSpacing(qreal spacing)
00418 { setProperty(FontLetterSpacing, spacing); }
00419 inline qreal fontLetterSpacing() const
00420 { return doubleProperty(FontLetterSpacing); }
00421 inline void setFontWordSpacing(qreal spacing)
00422 { setProperty(FontWordSpacing, spacing); }
00423 inline qreal fontWordSpacing() const
00424 { return doubleProperty(FontWordSpacing); }
00425
00426 inline void setFontUnderline(bool underline)
00427 { setProperty(TextUnderlineStyle, underline ? SingleUnderline : NoUnderline); }
00428 bool fontUnderline() const;
00429
00430 inline void setFontOverline(bool overline)
00431 { setProperty(FontOverline, overline); }
00432 inline bool fontOverline() const
00433 { return boolProperty(FontOverline); }
00434
00435 inline void setFontStrikeOut(bool strikeOut)
00436 { setProperty(FontStrikeOut, strikeOut); }
00437 inline bool fontStrikeOut() const
00438 { return boolProperty(FontStrikeOut); }
00439
00440 inline void setUnderlineColor(const QColor &color)
00441 { setProperty(TextUnderlineColor, color); }
00442 inline QColor underlineColor() const
00443 { return colorProperty(TextUnderlineColor); }
00444
00445 inline void setFontFixedPitch(bool fixedPitch)
00446 { setProperty(FontFixedPitch, fixedPitch); }
00447 inline bool fontFixedPitch() const
00448 { return boolProperty(FontFixedPitch); }
00449
00450 inline void setFontStyleHint(QFont::StyleHint hint, QFont::StyleStrategy strategy = QFont::PreferDefault)
00451 { setProperty(FontStyleHint, hint); setProperty(FontStyleStrategy, strategy); }
00452 inline void setFontStyleStrategy(QFont::StyleStrategy strategy)
00453 { setProperty(FontStyleStrategy, strategy); }
00454 QFont::StyleHint fontStyleHint() const
00455 { return static_cast<QFont::StyleHint>(intProperty(FontStyleHint)); }
00456 QFont::StyleStrategy fontStyleStrategy() const
00457 { return static_cast<QFont::StyleStrategy>(intProperty(FontStyleStrategy)); }
00458
00459 inline void setFontKerning(bool enable)
00460 { setProperty(FontKerning, enable); }
00461 inline bool fontKerning() const
00462 { return boolProperty(FontKerning); }
00463
00464 void setUnderlineStyle(UnderlineStyle style);
00465 inline UnderlineStyle underlineStyle() const
00466 { return static_cast<UnderlineStyle>(intProperty(TextUnderlineStyle)); }
00467
00468 inline void setVerticalAlignment(VerticalAlignment alignment)
00469 { setProperty(TextVerticalAlignment, alignment); }
00470 inline VerticalAlignment verticalAlignment() const
00471 { return static_cast<VerticalAlignment>(intProperty(TextVerticalAlignment)); }
00472
00473 inline void setTextOutline(const QPen &pen)
00474 { setProperty(TextOutline, pen); }
00475 inline QPen textOutline() const
00476 { return penProperty(TextOutline); }
00477
00478 inline void setToolTip(const QString &tip)
00479 { setProperty(TextToolTip, tip); }
00480 inline QString toolTip() const
00481 { return stringProperty(TextToolTip); }
00482
00483 inline void setAnchor(bool anchor)
00484 { setProperty(IsAnchor, anchor); }
00485 inline bool isAnchor() const
00486 { return boolProperty(IsAnchor); }
00487
00488 inline void setAnchorHref(const QString &value)
00489 { setProperty(AnchorHref, value); }
00490 inline QString anchorHref() const
00491 { return stringProperty(AnchorHref); }
00492
00493 inline void setAnchorName(const QString &name)
00494 { setAnchorNames(QStringList(name)); }
00495 QString anchorName() const;
00496
00497 inline void setAnchorNames(const QStringList &names)
00498 { setProperty(AnchorName, names); }
00499 QStringList anchorNames() const;
00500
00501 inline void setTableCellRowSpan(int tableCellRowSpan);
00502 inline int tableCellRowSpan() const
00503 { int s = intProperty(TableCellRowSpan); if (s == 0) s = 1; return s; }
00504 inline void setTableCellColumnSpan(int tableCellColumnSpan);
00505 inline int tableCellColumnSpan() const
00506 { int s = intProperty(TableCellColumnSpan); if (s == 0) s = 1; return s; }
00507
00508 protected:
00509 explicit QTextCharFormat(const QTextFormat &fmt);
00510 friend class QTextFormat;
00511 };
00512
00513 inline void QTextCharFormat::setTableCellRowSpan(int _tableCellRowSpan)
00514 {
00515 if (_tableCellRowSpan <= 1)
00516 clearProperty(TableCellRowSpan);
00517 else
00518 setProperty(TableCellRowSpan, _tableCellRowSpan);
00519 }
00520
00521 inline void QTextCharFormat::setTableCellColumnSpan(int _tableCellColumnSpan)
00522 {
00523 if (_tableCellColumnSpan <= 1)
00524 clearProperty(TableCellColumnSpan);
00525 else
00526 setProperty(TableCellColumnSpan, _tableCellColumnSpan);
00527 }
00528
00529 class Q_GUI_EXPORT QTextBlockFormat : public QTextFormat
00530 {
00531 public:
00532 QTextBlockFormat();
00533
00534 bool isValid() const { return isBlockFormat(); }
00535
00536 inline void setAlignment(Qt::Alignment alignment);
00537 inline Qt::Alignment alignment() const
00538 { int a = intProperty(BlockAlignment); if (a == 0) a = Qt::AlignLeft; return QFlag(a); }
00539
00540 inline void setTopMargin(qreal margin)
00541 { setProperty(BlockTopMargin, margin); }
00542 inline qreal topMargin() const
00543 { return doubleProperty(BlockTopMargin); }
00544
00545 inline void setBottomMargin(qreal margin)
00546 { setProperty(BlockBottomMargin, margin); }
00547 inline qreal bottomMargin() const
00548 { return doubleProperty(BlockBottomMargin); }
00549
00550 inline void setLeftMargin(qreal margin)
00551 { setProperty(BlockLeftMargin, margin); }
00552 inline qreal leftMargin() const
00553 { return doubleProperty(BlockLeftMargin); }
00554
00555 inline void setRightMargin(qreal margin)
00556 { setProperty(BlockRightMargin, margin); }
00557 inline qreal rightMargin() const
00558 { return doubleProperty(BlockRightMargin); }
00559
00560 inline void setTextIndent(qreal aindent)
00561 { setProperty(TextIndent, aindent); }
00562 inline qreal textIndent() const
00563 { return doubleProperty(TextIndent); }
00564
00565 inline void setIndent(int indent);
00566 inline int indent() const
00567 { return intProperty(BlockIndent); }
00568
00569 inline void setNonBreakableLines(bool b)
00570 { setProperty(BlockNonBreakableLines, b); }
00571 inline bool nonBreakableLines() const
00572 { return boolProperty(BlockNonBreakableLines); }
00573
00574 inline void setPageBreakPolicy(PageBreakFlags flags)
00575 { setProperty(PageBreakPolicy, int(flags)); }
00576 inline PageBreakFlags pageBreakPolicy() const
00577 { return PageBreakFlags(intProperty(PageBreakPolicy)); }
00578
00579 void setTabPositions(const QList<QTextOption::Tab> &tabs);
00580 QList<QTextOption::Tab> tabPositions() const;
00581
00582 protected:
00583 explicit QTextBlockFormat(const QTextFormat &fmt);
00584 friend class QTextFormat;
00585 };
00586
00587 inline void QTextBlockFormat::setAlignment(Qt::Alignment aalignment)
00588 { setProperty(BlockAlignment, int(aalignment)); }
00589
00590 inline void QTextBlockFormat::setIndent(int aindent)
00591 { setProperty(BlockIndent, aindent); }
00592
00593 class Q_GUI_EXPORT QTextListFormat : public QTextFormat
00594 {
00595 public:
00596 QTextListFormat();
00597
00598 bool isValid() const { return isListFormat(); }
00599
00600 enum Style {
00601 ListDisc = -1,
00602 ListCircle = -2,
00603 ListSquare = -3,
00604 ListDecimal = -4,
00605 ListLowerAlpha = -5,
00606 ListUpperAlpha = -6,
00607 ListLowerRoman = -7,
00608 ListUpperRoman = -8,
00609 ListStyleUndefined = 0
00610 };
00611
00612 inline void setStyle(Style style);
00613 inline Style style() const
00614 { return static_cast<Style>(intProperty(ListStyle)); }
00615
00616 inline void setIndent(int indent);
00617 inline int indent() const
00618 { return intProperty(ListIndent); }
00619
00620 protected:
00621 explicit QTextListFormat(const QTextFormat &fmt);
00622 friend class QTextFormat;
00623 };
00624
00625 inline void QTextListFormat::setStyle(Style astyle)
00626 { setProperty(ListStyle, astyle); }
00627
00628 inline void QTextListFormat::setIndent(int aindent)
00629 { setProperty(ListIndent, aindent); }
00630
00631 class Q_GUI_EXPORT QTextImageFormat : public QTextCharFormat
00632 {
00633 public:
00634 QTextImageFormat();
00635
00636 bool isValid() const { return isImageFormat(); }
00637
00638 inline void setName(const QString &name);
00639 inline QString name() const
00640 { return stringProperty(ImageName); }
00641
00642 inline void setWidth(qreal width);
00643 inline qreal width() const
00644 { return doubleProperty(ImageWidth); }
00645
00646 inline void setHeight(qreal height);
00647 inline qreal height() const
00648 { return doubleProperty(ImageHeight); }
00649
00650 protected:
00651 explicit QTextImageFormat(const QTextFormat &format);
00652 friend class QTextFormat;
00653 };
00654
00655 inline void QTextImageFormat::setName(const QString &aname)
00656 { setProperty(ImageName, aname); }
00657
00658 inline void QTextImageFormat::setWidth(qreal awidth)
00659 { setProperty(ImageWidth, awidth); }
00660
00661 inline void QTextImageFormat::setHeight(qreal aheight)
00662 { setProperty(ImageHeight, aheight); }
00663
00664 class Q_GUI_EXPORT QTextFrameFormat : public QTextFormat
00665 {
00666 public:
00667 QTextFrameFormat();
00668
00669 bool isValid() const { return isFrameFormat(); }
00670
00671 enum Position {
00672 InFlow,
00673 FloatLeft,
00674 FloatRight
00675
00676
00677 };
00678
00679 enum BorderStyle {
00680 BorderStyle_None,
00681 BorderStyle_Dotted,
00682 BorderStyle_Dashed,
00683 BorderStyle_Solid,
00684 BorderStyle_Double,
00685 BorderStyle_DotDash,
00686 BorderStyle_DotDotDash,
00687 BorderStyle_Groove,
00688 BorderStyle_Ridge,
00689 BorderStyle_Inset,
00690 BorderStyle_Outset
00691 };
00692
00693 inline void setPosition(Position f)
00694 { setProperty(CssFloat, f); }
00695 inline Position position() const
00696 { return static_cast<Position>(intProperty(CssFloat)); }
00697
00698 inline void setBorder(qreal border);
00699 inline qreal border() const
00700 { return doubleProperty(FrameBorder); }
00701
00702 inline void setBorderBrush(const QBrush &brush)
00703 { setProperty(FrameBorderBrush, brush); }
00704 inline QBrush borderBrush() const
00705 { return brushProperty(FrameBorderBrush); }
00706
00707 inline void setBorderStyle(BorderStyle style)
00708 { setProperty(FrameBorderStyle, style); }
00709 inline BorderStyle borderStyle() const
00710 { return static_cast<BorderStyle>(intProperty(FrameBorderStyle)); }
00711
00712 void setMargin(qreal margin);
00713 inline qreal margin() const
00714 { return doubleProperty(FrameMargin); }
00715
00716 inline void setTopMargin(qreal margin);
00717 qreal topMargin() const;
00718
00719 inline void setBottomMargin(qreal margin);
00720 qreal bottomMargin() const;
00721
00722 inline void setLeftMargin(qreal margin);
00723 qreal leftMargin() const;
00724
00725 inline void setRightMargin(qreal margin);
00726 qreal rightMargin() const;
00727
00728 inline void setPadding(qreal padding);
00729 inline qreal padding() const
00730 { return doubleProperty(FramePadding); }
00731
00732 inline void setWidth(qreal width);
00733 inline void setWidth(const QTextLength &length)
00734 { setProperty(FrameWidth, length); }
00735 inline QTextLength width() const
00736 { return lengthProperty(FrameWidth); }
00737
00738 inline void setHeight(qreal height);
00739 inline void setHeight(const QTextLength &height);
00740 inline QTextLength height() const
00741 { return lengthProperty(FrameHeight); }
00742
00743 inline void setPageBreakPolicy(PageBreakFlags flags)
00744 { setProperty(PageBreakPolicy, int(flags)); }
00745 inline PageBreakFlags pageBreakPolicy() const
00746 { return PageBreakFlags(intProperty(PageBreakPolicy)); }
00747
00748 protected:
00749 explicit QTextFrameFormat(const QTextFormat &fmt);
00750 friend class QTextFormat;
00751 };
00752
00753 inline void QTextFrameFormat::setBorder(qreal aborder)
00754 { setProperty(FrameBorder, aborder); }
00755
00756 inline void QTextFrameFormat::setPadding(qreal apadding)
00757 { setProperty(FramePadding, apadding); }
00758
00759 inline void QTextFrameFormat::setWidth(qreal awidth)
00760 { setProperty(FrameWidth, QTextLength(QTextLength::FixedLength, awidth)); }
00761
00762 inline void QTextFrameFormat::setHeight(qreal aheight)
00763 { setProperty(FrameHeight, QTextLength(QTextLength::FixedLength, aheight)); }
00764 inline void QTextFrameFormat::setHeight(const QTextLength &aheight)
00765 { setProperty(FrameHeight, aheight); }
00766
00767 inline void QTextFrameFormat::setTopMargin(qreal amargin)
00768 { setProperty(FrameTopMargin, amargin); }
00769
00770 inline void QTextFrameFormat::setBottomMargin(qreal amargin)
00771 { setProperty(FrameBottomMargin, amargin); }
00772
00773 inline void QTextFrameFormat::setLeftMargin(qreal amargin)
00774 { setProperty(FrameLeftMargin, amargin); }
00775
00776 inline void QTextFrameFormat::setRightMargin(qreal amargin)
00777 { setProperty(FrameRightMargin, amargin); }
00778
00779 class Q_GUI_EXPORT QTextTableFormat : public QTextFrameFormat
00780 {
00781 public:
00782 QTextTableFormat();
00783
00784 inline bool isValid() const { return isTableFormat(); }
00785
00786 inline int columns() const
00787 { int cols = intProperty(TableColumns); if (cols == 0) cols = 1; return cols; }
00788 inline void setColumns(int columns);
00789
00790 inline void setColumnWidthConstraints(const QVector<QTextLength> &constraints)
00791 { setProperty(TableColumnWidthConstraints, constraints); }
00792
00793 inline QVector<QTextLength> columnWidthConstraints() const
00794 { return lengthVectorProperty(TableColumnWidthConstraints); }
00795
00796 inline void clearColumnWidthConstraints()
00797 { clearProperty(TableColumnWidthConstraints); }
00798
00799 inline qreal cellSpacing() const
00800 { return doubleProperty(TableCellSpacing); }
00801 inline void setCellSpacing(qreal spacing)
00802 { setProperty(TableCellSpacing, spacing); }
00803
00804 inline qreal cellPadding() const
00805 { return doubleProperty(TableCellPadding); }
00806 inline void setCellPadding(qreal padding);
00807
00808 inline void setAlignment(Qt::Alignment alignment);
00809 inline Qt::Alignment alignment() const
00810 { return QFlag(intProperty(BlockAlignment)); }
00811
00812 inline void setHeaderRowCount(int count)
00813 { setProperty(TableHeaderRowCount, count); }
00814 inline int headerRowCount() const
00815 { return intProperty(TableHeaderRowCount); }
00816
00817 protected:
00818 explicit QTextTableFormat(const QTextFormat &fmt);
00819 friend class QTextFormat;
00820 };
00821
00822 inline void QTextTableFormat::setColumns(int acolumns)
00823 {
00824 if (acolumns == 1)
00825 acolumns = 0;
00826 setProperty(TableColumns, acolumns);
00827 }
00828
00829 inline void QTextTableFormat::setCellPadding(qreal apadding)
00830 { setProperty(TableCellPadding, apadding); }
00831
00832 inline void QTextTableFormat::setAlignment(Qt::Alignment aalignment)
00833 { setProperty(BlockAlignment, int(aalignment)); }
00834
00835 class Q_GUI_EXPORT QTextTableCellFormat : public QTextCharFormat
00836 {
00837 public:
00838 QTextTableCellFormat();
00839
00840 inline bool isValid() const { return isTableCellFormat(); }
00841
00842 inline void setTopPadding(qreal padding);
00843 inline qreal topPadding() const;
00844
00845 inline void setBottomPadding(qreal padding);
00846 inline qreal bottomPadding() const;
00847
00848 inline void setLeftPadding(qreal padding);
00849 inline qreal leftPadding() const;
00850
00851 inline void setRightPadding(qreal padding);
00852 inline qreal rightPadding() const;
00853
00854 inline void setPadding(qreal padding);
00855
00856 protected:
00857 explicit QTextTableCellFormat(const QTextFormat &fmt);
00858 friend class QTextFormat;
00859 };
00860
00861 inline void QTextTableCellFormat::setTopPadding(qreal padding)
00862 {
00863 setProperty(TableCellTopPadding, padding);
00864 }
00865
00866 inline qreal QTextTableCellFormat::topPadding() const
00867 {
00868 return doubleProperty(TableCellTopPadding);
00869 }
00870
00871 inline void QTextTableCellFormat::setBottomPadding(qreal padding)
00872 {
00873 setProperty(TableCellBottomPadding, padding);
00874 }
00875
00876 inline qreal QTextTableCellFormat::bottomPadding() const
00877 {
00878 return doubleProperty(TableCellBottomPadding);
00879 }
00880
00881 inline void QTextTableCellFormat::setLeftPadding(qreal padding)
00882 {
00883 setProperty(TableCellLeftPadding, padding);
00884 }
00885
00886 inline qreal QTextTableCellFormat::leftPadding() const
00887 {
00888 return doubleProperty(TableCellLeftPadding);
00889 }
00890
00891 inline void QTextTableCellFormat::setRightPadding(qreal padding)
00892 {
00893 setProperty(TableCellRightPadding, padding);
00894 }
00895
00896 inline qreal QTextTableCellFormat::rightPadding() const
00897 {
00898 return doubleProperty(TableCellRightPadding);
00899 }
00900
00901 inline void QTextTableCellFormat::setPadding(qreal padding)
00902 {
00903 setTopPadding(padding);
00904 setBottomPadding(padding);
00905 setLeftPadding(padding);
00906 setRightPadding(padding);
00907 }
00908
00909
00910 QT_END_NAMESPACE
00911
00912 QT_END_HEADER
00913
00914 #endif // QTEXTFORMAT_H