20#ifndef INCLUDED_SW_SOURCE_FILTER_WW8_WW8TABLEINFO_HXX
21#define INCLUDED_SW_SOURCE_FILTER_WW8_WW8TABLEINFO_HXX
27#include <unordered_map>
49typedef std::vector<sal_uInt32>
Widths;
70 typedef std::shared_ptr<WW8TableNodeInfoInner>
Pointer_t;
76 void setRow(sal_uInt32 nRow);
189 void setCell(sal_uInt32 nCell);
190 void setRow(sal_uInt32 nRow);
209 sal_uInt32
getRow()
const;
221 {
return reinterpret_cast<size_t>(pNode); }
227 {
return reinterpret_cast<size_t>(pTable); }
243 CellInfoMultiSet::const_iterator
begin()
const;
244 CellInfoMultiSet::const_iterator
end()
const;
258 typedef std::map<tools::Long, WW8TableCellGridRow::Pointer_t>
Rows_t;
292 typedef std::unordered_map<const SwNode *, WW8TableNodeInfo::Pointer_t, hashNode >
Map_t;
295 typedef std::unordered_map<const SwTable *, WW8TableCellGrid::Pointer_t, hashTable >
CellGridMap_t;
312 sal_uInt32 nDepth,
bool bEndOfLine,
330 SwRect const * pRect =
nullptr);
333 bool bCreate =
true);
Base class of the Writer document model elements.
Of course Writer needs its own rectangles.
void Height(tools::Long nNew)
void Top(const tools::Long nTop)
void Right(const tools::Long nRight)
void Bottom(const tools::Long nBottom)
void Left(const tools::Long nLeft)
void Width(tools::Long nNew)
SwTableBox is one table cell in the document model.
SwTableLine is one table row in the document model.
SwTable is one table in the document model, containing rows (which contain cells).
tools::ULong getFormatFrameWidth() const
WW8TableNodeInfo * getTableNodeInfo() const
const SwRect & getRect() const
tools::Long height() const
tools::Long width() const
tools::ULong m_nFormatFrameWidth
bool operator<(const CellInfo &aCellInfo) const
std::string toString() const
CellInfo(const SwRect &aRect, WW8TableNodeInfo *pNodeInfo)
WW8TableNodeInfo * m_pNodeInfo
tools::Long bottom() const
CellInfo(const CellInfo &aRectAndTableInfo)
void setFormatFrameWidth(tools::ULong nFormatFrameWidth)
tools::Long right() const
CellInfoMultiSet::const_iterator begin() const
void insert(const CellInfo &rCellInfo)
CellInfoMultiSet::const_iterator end() const
void setWidths(WidthsPtr const &pGridCols)
std::shared_ptr< WW8TableCellGridRow > Pointer_t
void setTableBoxVector(TableBoxVectorPtr const &pTableBoxVector)
const RowSpansPtr & getRowSpans() const
std::shared_ptr< CellInfoMultiSet > m_pCellInfos
const WidthsPtr & getWidths() const
const TableBoxVectorPtr & getTableBoxVector() const
TableBoxVectorPtr m_pTableBoxVector
void setRowSpans(RowSpansPtr const &pRowSpans)
std::shared_ptr< WW8TableCellGrid > Pointer_t
WidthsPtr getWidthsOfRow(WW8TableNodeInfoInner const *pNodeInfo)
std::map< tools::Long, WW8TableCellGridRow::Pointer_t > Rows_t
WW8TableCellGridRow::Pointer_t getRow(tools::Long nTop, bool bCreate=true)
RowSpansPtr getRowSpansOfRow(WW8TableNodeInfoInner const *pNodeInfo)
WW8TableNodeInfo * connectCells(RowEndInners_t &rLastRowEnds)
RowTops_t::const_iterator getRowTopsEnd() const
void insert(const SwRect &rRect, WW8TableNodeInfo *pNodeInfo, tools::ULong const *pFormatFrameWidth=nullptr)
CellInfoMultiSet::const_iterator getCellsBegin(tools::Long nTop)
CellInfoMultiSet::const_iterator getCellsEnd(tools::Long nTop)
RowTops_t::const_iterator getRowTopsBegin() const
std::set< tools::Long > RowTops_t
TableBoxVectorPtr getTableBoxesOfRow(WW8TableNodeInfoInner const *pNodeInfo)
WW8TableNodeInfo * processTableBox(const SwTable *pTable, const SwTableBox *pTableBox, sal_uInt32 nRow, sal_uInt32 nCell, sal_uInt32 nDepth, bool bEndOfLine, WW8TableNodeInfo *pPrev, RowEndInners_t &rLastRowEnds)
std::unordered_map< const SwTable *, WW8TableCellGrid::Pointer_t, hashTable > CellGridMap_t
WW8TableNodeInfo::Pointer_t getTableNodeInfo(const SwNode *pNode)
FirstInTableMap_t mFirstInTableMap
WW8TableCellGrid::Pointer_t getCellGridForTable(const SwTable *pTable, bool bCreate=true)
std::unordered_map< const SwNode *, WW8TableNodeInfo::Pointer_t, hashNode > Map_t
WW8TableNodeInfo * processTableLine(const SwTable *pTable, const SwTableLine *pTableLine, sal_uInt32 nRow, sal_uInt32 nDepth, WW8TableNodeInfo *pPrev, RowEndInners_t &rLastRowEnds)
WW8TableNodeInfo * reorderByLayout(const SwTable *pTable, RowEndInners_t &rLastRowEnds)
WW8TableNodeInfo * processSwTableByLayout(const SwTable *pTable, RowEndInners_t &rLastRowEnds)
std::unordered_map< const SwTable *, const SwNode *, hashTable > FirstInTableMap_t
std::shared_ptr< WW8TableInfo > Pointer_t
void processSwTable(const SwTable *pTable)
WW8TableNodeInfo::Pointer_t insertTableNodeInfo(const SwNode *pNode, const SwTable *pTable, const SwTableBox *pTableBox, sal_uInt32 nRow, sal_uInt32 nCell, sal_uInt32 nDepth, SwRect const *pRect=nullptr)
WW8TableNodeInfo::Pointer_t processTableBoxLines(const SwTableBox *pBox, const SwTable *pTable, const SwTableBox *pBoxToSet, sal_uInt32 nRow, sal_uInt32 nCell, sal_uInt32 nDepth)
const SwNode * getNextNode(const SwNode *pNode)
CellGridMap_t mCellGridMap
void setTableBox(const SwTableBox *pTableBox)
const SwNode * getNode() const
const SwTableBox * mpTableBox
const SwTableBox * getTableBox() const
void setRect(const SwRect &rRect)
GridColsPtr getGridColsOfRow(AttributeOutputBase &rBase, bool calculateColumnsFromAllRows=false)
const SwTable * getTable() const
sal_uInt32 getDepth() const
sal_uInt32 getShadowsAfter() const
void setFinalEndOfLine(bool bEndOfLine)
sal_uInt32 mnShadowsBefore
WidthsPtr getColumnWidthsBasedOnAllRows() const
void setEndOfLine(bool bEndOfLine)
RowSpansPtr getRowSpansOfRow() const
std::string toString() const
void setCell(sal_uInt32 nCell)
void setFirstInTable(bool bFirstInTable)
bool isFinalEndOfLine() const
TableBoxVectorPtr getTableBoxesOfRow() const
void setShadowsBefore(sal_uInt32 nShadowsBefore)
WW8TableNodeInfoInner(WW8TableNodeInfo *pParent)
WW8TableNodeInfo * mpParent
void setDepth(sal_uInt32 nDepth)
void setRow(sal_uInt32 nRow)
sal_uInt32 getShadowsBefore() const
sal_uInt32 getRow() const
const SwRect & getRect() const
WidthsPtr getWidthsOfRow() const
sal_uInt32 getCell() const
void setEndOfCell(bool bEndOfCell)
void setVertMerge(bool bVertMerge)
bool isFirstInTable() const
std::shared_ptr< WW8TableNodeInfoInner > Pointer_t
void setTable(const SwTable *pTable)
sal_uInt32 mnShadowsAfter
void setShadowsAfter(sal_uInt32 nShadowsAfter)
WW8TableInfo * getParent() const
WW8TableNodeInfoInner::Pointer_t getFirstInner() const
void setNextNode(const SwNode *pNode)
std::map< sal_uInt32, WW8TableNodeInfoInner::Pointer_t, std::greater< sal_uInt32 > > Inners_t
void setShadowsAfter(sal_uInt32 nShadowsAfter)
void setRect(const SwRect &rRect)
const SwNode * getNextNode() const
void setVertMerge(bool bVertMerge)
void setCell(sal_uInt32 nCell)
void setEndOfLine(bool bEndOfLine)
void setNext(WW8TableNodeInfo *pNext)
WW8TableNodeInfo * getNext() const
void setEndOfCell(bool bEndOfCell)
const SwNode * getNode() const
void setTableBox(const SwTableBox *pTableBox)
sal_uInt32 getCell() const
void setShadowsBefore(sal_uInt32 nShadowsBefore)
void setDepth(sal_uInt32 nDepth)
WW8TableNodeInfo * mpNext
sal_uInt32 getDepth() const
void setFirstInTable(bool bFirstInTable)
WW8TableNodeInfo(WW8TableInfo *pParent, const SwNode *pTextNode)
const Inners_t & getInners() const
const SwTableBox * getTableBox() const
std::shared_ptr< WW8TableNodeInfo > Pointer_t
void setRow(sal_uInt32 nRow)
std::string toString() const
WW8TableNodeInfoInner::Pointer_t getInnerForDepth(sal_uInt32 nDepth) const
bool operator<(const WW8TableNodeInfo &rInfo) const
void setTable(const SwTable *pTable)
sal_uInt32 getRow() const
const SwNode * mpNextNode
std::shared_ptr< RowSpans > RowSpansPtr
std::vector< sal_uInt32 > Widths
std::shared_ptr< GridCols > GridColsPtr
std::shared_ptr< TableBoxVector > TableBoxVectorPtr
std::multiset< CellInfo > CellInfoMultiSet
std::vector< sal_Int32 > RowSpans
std::shared_ptr< Widths > WidthsPtr
std::map< sal_uInt32, WW8TableNodeInfoInner *, std::greater< sal_uInt32 > > RowEndInners_t
const unsigned int MAXTABLECELLS
std::vector< const SwTableBox * > TableBoxVector
std::vector< sal_uInt32 > GridCols
size_t operator()(const SwNode *pNode) const
size_t operator()(const SwTable *pTable) const