Go to the
documentation of this file.
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 QTEXTTABLE_H
00043 #define QTEXTTABLE_H
00044
00045 #include <QtCore/qglobal.h>
00046 #include <QtCore/qobject.h>
00047 #include <QtGui/qtextobject.h>
00048
00049 QT_BEGIN_HEADER
00050
00051 QT_BEGIN_NAMESPACE
00052
00053 QT_MODULE(Gui)
00054
00055 class QTextCursor;
00056 class QTextTable;
00057 class QTextTablePrivate;
00058
00059 class Q_GUI_EXPORT QTextTableCell
00060 {
00061 public:
00062 QTextTableCell() : table(0) {}
00063 ~QTextTableCell() {}
00064 QTextTableCell(const QTextTableCell &o) : table(o.table), fragment(o.fragment) {}
00065 QTextTableCell &operator=(const QTextTableCell &o)
00066 { table = o.table; fragment = o.fragment; return *this; }
00067
00068 void setFormat(const QTextCharFormat &format);
00069 QTextCharFormat format() const;
00070
00071 int row() const;
00072 int column() const;
00073
00074 int rowSpan() const;
00075 int columnSpan() const;
00076
00077 inline bool isValid() const { return table != 0; }
00078
00079 QTextCursor firstCursorPosition() const;
00080 QTextCursor lastCursorPosition() const;
00081 int firstPosition() const;
00082 int lastPosition() const;
00083
00084 inline bool operator==(const QTextTableCell &other) const
00085 { return table == other.table && fragment == other.fragment; }
00086 inline bool operator!=(const QTextTableCell &other) const
00087 { return !operator==(other); }
00088
00089 QTextFrame::iterator begin() const;
00090 QTextFrame::iterator end() const;
00091
00092 int tableCellFormatIndex() const;
00093
00094 private:
00095 friend class QTextTable;
00096 QTextTableCell(const QTextTable *t, int f)
00097 : table(t), fragment(f) {}
00098
00099 const QTextTable *table;
00100 int fragment;
00101 };
00102
00103 class Q_GUI_EXPORT QTextTable : public QTextFrame
00104 {
00105 Q_OBJECT
00106 public:
00107 explicit QTextTable(QTextDocument *doc);
00108 ~QTextTable();
00109
00110 void resize(int rows, int cols);
00111 void insertRows(int pos, int num);
00112 void insertColumns(int pos, int num);
00113 void appendRows(int count);
00114 void appendColumns(int count);
00115 void removeRows(int pos, int num);
00116 void removeColumns(int pos, int num);
00117
00118 void mergeCells(int row, int col, int numRows, int numCols);
00119 void mergeCells(const QTextCursor &cursor);
00120 void splitCell(int row, int col, int numRows, int numCols);
00121
00122 int rows() const;
00123 int columns() const;
00124
00125 QTextTableCell cellAt(int row, int col) const;
00126 QTextTableCell cellAt(int position) const;
00127 QTextTableCell cellAt(const QTextCursor &c) const;
00128
00129 QTextCursor rowStart(const QTextCursor &c) const;
00130 QTextCursor rowEnd(const QTextCursor &c) const;
00131
00132 void setFormat(const QTextTableFormat &format);
00133 QTextTableFormat format() const { return QTextObject::format().toTableFormat(); }
00134
00135 private:
00136 Q_DISABLE_COPY(QTextTable)
00137 Q_DECLARE_PRIVATE(QTextTable)
00138 friend class QTextTableCell;
00139 };
00140
00141 QT_END_NAMESPACE
00142
00143 QT_END_HEADER
00144
00145 #endif // QTEXTTABLE_H