summaryrefslogtreecommitdiff
path: root/writerfilter/documentation/tablesInDoc.txt
diff options
context:
space:
mode:
Diffstat (limited to 'writerfilter/documentation/tablesInDoc.txt')
-rw-r--r--writerfilter/documentation/tablesInDoc.txt135
1 files changed, 0 insertions, 135 deletions
diff --git a/writerfilter/documentation/tablesInDoc.txt b/writerfilter/documentation/tablesInDoc.txt
deleted file mode 100644
index 629e68d75590..000000000000
--- a/writerfilter/documentation/tablesInDoc.txt
+++ /dev/null
@@ -1,135 +0,0 @@
-All paragraphs in tables:
-
- sprms:
- 0x2416 (sprmPFInTable) indicates a paragraph is in a table
- 0x6649 (sprmPTableDepth) demarks the nesting depth of the paragraph
-
-paragraph at nesting depth 1:
-
- end of cell: 0x7
- end of row: 0x7 + sprm 0x2417(sprmFTtp)
-
- the end of a row has its own 0x7
-
-paragraphs at nesting depth > 1;
-
- end of cell: 0xd + sprm 0x244b(sprmPCell)
- end of row 0xd + sprm 0x244b(sprmPCell) + sprm 0x244c(sprmPRow)
-
- the end of a row has its own 0xd
-
-Algorithm to detect table structure:
-
-Datastructures:
-
-RowData<Handle>:
- int getCellCount()
- // return number of cells in row
- Handle getStart(i)
- // get handle for start of cell i
- Handle getEnd(i)
- // get handle for end off cell i
- Properties getProperties()
- // return properties of row
-
-TableData<Handle>:
- void addCell(Handle start, Handle end)
- // insert cell starting at start and ending at end into the
- // current row
- void endRow(properties)
- // end current row and save properties for that row, begin new row
- int getRowCount
- // return number of rows in table
- RowData<Handle> getRow(i)
- // get data for row i
-
-prevTableDepth
- depth in table hierarchy of previous paragraph
-
-curTableDepth
- depth in table hierarchy of current paragraph
-
-bInCell
- true if current paragraph is in a cell
-
-bEndCell
- true if current paragraph if the last paragraph of a cell
-
-bEndRow
- true if current paragraph is the end of a row
-
-paragraphHandle
- handle for current paragraph
-
-initial:
- create stack of TableData<Handle>
-
-final:
- handle remaining TableData<Handle> on stack
-
-creating StreamHandler:
- push new TableData<Handle> on stack
-
-destroying StreamHandler:
- handle TableData<Handle> on top of stack
- pop TableData<Handle> from stack
-
-StreamHandler::substream:
- push new TableData<Handle> on stack
- handle TableData<Handle> on top of stack
- pop TableData<Handle> from stack
-
-starting paragraph group:
- paragraphHandle = currentHandle;
- bInCell = false;
- bCellEnd = false;
- bRowEnd = false;
-
-ending paragraph group:
- difference = curTableDepth - prevTableDepth
-
- if (difference > 0)
- push difference new TableData<Handle> onto stack
- else if (difference < 0)
- {
- repeat difference times
- {
- handle top of stack
- pop stack
- }
- }
- precTableDepth = curTableDepth
-
- if (bInCell)
- {
- if (handleStart is null)
- handleStart = paragraphHandle;
-
- if (bCellEnd)
- {
- stack.top().addCell(handleStart, paragraphHandle);
- clear handleStart
- }
-
- if (bRowEnd)
- {
- stack.top().endRow(properties)
- }
-
-
-in StreamHandler::props:
- save properties
-
-PropertiesHandler::sprm:
- sprm 0x6649:
- save value in curTableDepth
- sprm 0x2416:
- bInCell = true
- sprm 0x244b:
- bCellEnd = true
- sprm 0x2417:
- bRowEnd = true
-
-text:
- 0x7:
- bCellEnd = true