ITextRow interface

The ITextRow interface provides methods to insert one or more identical table rows, and to retrieve and change table row properties. To insert nonidentical rows, call ITextRow::Insert for each different row configuration.

Inheritance

The ITextRow interface inherits from the IDispatch interface. ITextRow also has these types of members:

Methods

The ITextRow interface has these methods.

Method Description
ITextRow::Apply Applies the formatting attributes of this text row object to the specified rows in the associated ITextRange2.
ITextRow::CanChange Determines whether changes can be made to this row.
ITextRow::GetAlignment Gets the horizontal alignment of a row.
ITextRow::GetCellAlignment Gets the vertical alignment of the active cell.
ITextRow::GetCellBorderColors Gets the border colors of the active cell.
ITextRow::GetCellBorderWidths Gets the border widths of the active cell.
ITextRow::GetCellColorBack Gets the background color of the active cell.
ITextRow::GetCellColorFore Gets the foreground color of the active cell.
ITextRow::GetCellCount Gets the count of cells in this row.
ITextRow::GetCellCountCache Gets the count of cells cached for this row.
ITextRow::GetCellIndex Gets the index of the active cell to get or set parameters for.
ITextRow::GetCellMargin Gets the cell margin of this row.
ITextRow::GetCellMergeFlags Gets the merge flags of the active cell.
ITextRow::GetCellShading Gets the shading of the active cell.
ITextRow::GetCellVerticalText Gets the vertical-text setting of the active cell.
ITextRow::GetCellWidth Gets the width of the active cell.
ITextRow::GetHeight Gets the height of the row.
ITextRow::GetIndent Gets the indent of this row.
ITextRow::GetKeepTogether Gets whether this row is allowed to be broken across pages.
ITextRow::GetKeepWithNext Gets whether this row should appear on the same page as the row that follows it.
ITextRow::GetNestLevel Gets the nest level of a table.
ITextRow::GetProperty Gets the value of the specified property.
ITextRow::GetRTL Gets whether this row has right-to-left orientation.
ITextRow::Insert Inserts a row, or rows, at the location identified by the associated ITextRange2 object.
ITextRow::IsEqual Compares two table rows to determine if they have the same properties.
ITextRow::Reset Resets a row.
ITextRow::SetAlignment Sets the horizontal alignment of a row.
ITextRow::SetCellAlignment Sets the vertical alignment of the active cell.
ITextRow::SetCellBorderColors Sets the border colors of the active cell.
ITextRow::SetCellBorderWidths Sets the border widths of the active cell.
ITextRow::SetCellColorBack Sets the background color of the active cell.
ITextRow::SetCellColorFore Sets the foreground color of the active cell.
ITextRow::SetCellCount Sets the count of cells in a row.
ITextRow::SetCellCountCache Sets the count of cells cached for a row.
ITextRow::SetCellIndex Sets the index of the active cell.
ITextRow::SetCellMargin Sets the cell margin of a row.
ITextRow::SetCellMergeFlags Sets the merge flags of the active cell.
ITextRow::SetCellShading Sets the shading of the active cell.
ITextRow::SetCellVerticalText Sets the vertical-text setting of the active cell.
ITextRow::SetCellWidth Sets the active cell width in twips.
ITextRow::SetHeight Sets the height of a row.
ITextRow::SetIndent Sets the indent of a row.
ITextRow::SetKeepTogether Sets whether this row is allowed to be broken across pages.
ITextRow::SetKeepWithNext Sets whether a row should appear on the same page as the row that follows it.
ITextRow::SetProperty Sets the value of the specified property.
ITextRow::SetRTL Sets whether this row has right-to-left orientation.

Remarks

To select a table, a row, or a cell, use ITextRange::Expand, with the Unit parameter set to tomTable, tomRow, or tomCell, respectively. These units can also be used with the ITextRange::Move methods to navigate and select multiple rows or cells.

Some of the ITextRow properties apply to the whole row, such as the row alignment. In addition, there are a number of properties, such as cell alignment, that apply to a cell with the index set via the ITextRow::SetCellIndex method. This cell is referred to as the active cell.

ITextRow works similarly to ITextPara2, but doesn't modify the document until either the ITextRow::Apply or ITextRow::Insert methods are called. In addition, the row and cell parameters are always active, that is, they cannot have the value tomDefault.

On initialization, the ITextRow object acquires the table row properties, if any, at the active end of the associated ITextRange2. The ITextRow::Reset method can be used to update these properties to the current values for ITextRange2 object.

A rich edit control table consists of a sequence of table rows, which, in turn, consist of sequences of paragraphs. A table row starts with the special two-character delimiter paragraph U+FFF9 U+000D and ends with the two-character delimiter paragraph U+FFFB U+000D. Each cell is terminated by the cell mark U+0007, which is treated as a hard end-of-paragraph mark just as U+000D (CR) is. The table row and cell parameters are treated as special paragraph formatting of the table-row delimiters. The cell parameters are stored in an expanded version of the tabs array. This format allows tables to be nested within other tables and is allowed to go fifteen levels deep.

The architecture is quite flexible in that each table row can have any valid table-row parameters, regardless of the parameters for other rows (except for vertical merge flags). For example, the number of cells and the start indents of table rows can differ, unlike in HTML which has n×m rectangular format with all rows starting at the same indent.

On the other hand, no formal table description is stored anywhere. Information such as the number of rows must be figured out by navigating through the table. For example, the count of rows in a table can be obtained by calling ITextRange::StartOf (tomTable, tomFalse, NULL) to move to the start of the current table and then calling ITextRange::Move (tomRow, tomForward, &dcRow). The quantity &dcRow + 1 then contains the count of rows in the table, because moving by tomRow increments doesn't move beyond the last table row.

For additional information about the rich edit control's support for tables, see RichEdit's Nested Table Facility.

Requirements

   
Minimum supported client Windows 8 [desktop apps only]
Minimum supported server Windows Server 2012 [desktop apps only]
Target Platform Windows
Header tom.h