20 #ifndef INCLUDED_SVX_SOURCE_TABLE_TABLELAYOUTER_HXX
21 #define INCLUDED_SVX_SOURCE_TABLE_TABLELAYOUTER_HXX
43 bool findMergeOrigin(
const TableModelRef& xTable, sal_Int32 nMergedCol, sal_Int32 nMergedRow, sal_Int32& rOriginCol, sal_Int32& rOriginRow );
58 EdgeInfo(sal_Int32 nInIndex, sal_Int32 nInPosition, sal_Int32 nInMin, sal_Int32 nInMax)
60 , nPosition(nInPosition)
99 bool isEdgeVisible( sal_Int32 nEdgeX, sal_Int32 nEdgeY,
bool bHorizontal )
const;
110 sal_Int32
getVerticalEdge(
int nEdgeX , sal_Int32* pnMin, sal_Int32* pnMax);
116 const bool bOptimize,
117 const bool bMinimize );
121 const bool bOptimize,
122 const bool bMinimize );
132 bool isValidColumn( sal_Int32 nColumn )
const {
return (nColumn >= 0) && (nColumn < static_cast<sal_Int32>(
maColumns.size())); }
133 bool isValidRow( sal_Int32 nRow )
const {
return (nRow >= 0) && (nRow < static_cast<sal_Int32>(
maRows.size())); }
151 Layout() : mnPos( 0 ), mnSize( 0 ), mnMinSize( 0 ) {}
152 void clear() { mnPos = 0; mnSize = 0; mnMinSize = 0; }
157 static sal_Int32
distribute( LayoutVector& rLayouts, sal_Int32 nDistribute );
bool findMergeOrigin(const TableModelRef &xTable, sal_Int32 nMergedX, sal_Int32 nMergedY, sal_Int32 &rOriginX, sal_Int32 &rOriginY)
returns true if the cell(nMergedX,nMergedY) is merged with other cells.
::sal_Int32 getColumnCount() const
void DistributeColumns(::tools::Rectangle &rArea, sal_Int32 nFirstCol, sal_Int32 nLastCol, const bool bOptimize, const bool bMinimize)
void dumpAsXml(xmlTextWriterPtr pWriter) const
struct _xmlTextWriter * xmlTextWriterPtr
EdgeInfo(sal_Int32 nInIndex, sal_Int32 nInPosition, sal_Int32 nInMin, sal_Int32 nInMax)
basegfx::B2ITuple getCellSize(const CellRef &xCell, const CellPos &rPos) const
std::vector< Layout > LayoutVector
::sal_Int32 getRowCount() const
std::vector< EdgeInfo > getHorizontalEdges()
static sal_Int32 distribute(LayoutVector &rLayouts, sal_Int32 nDistribute)
sal_Int32 getMinimumColumnWidth(sal_Int32 nColumn)
bool isValidColumn(sal_Int32 nColumn) const
sal_Int32 getHorizontalEdge(int nEdgeY, sal_Int32 *pnMin, sal_Int32 *pnMax)
void SetBorder(sal_Int32 nCol, sal_Int32 nRow, bool bHorizontal, const editeng::SvxBorderLine *pLine)
editeng::SvxBorderLine * getBorderLine(sal_Int32 nEdgeX, sal_Int32 nEdgeY, bool bHorizontal) const
returns the requested borderline in rpBorderLine or a null pointer if there is no border at this edge...
void ResizeBorderLayout()
void UpdateBorderLayout()
void dumpAsXml(xmlTextWriterPtr pWriter) const
void updateCells(::tools::Rectangle const &rRectangle)
sal_Int32 getColumnWidth(sal_Int32 nColumn) const
BorderLineMap maHorizontalBorders
bool getCellArea(const CellRef &xCell, const CellPos &rPos, basegfx::B2IRectangle &rArea) const
CellRef getCell(const CellPos &rPos) const
bool isValid(const CellPos &rPos) const
static bool HasPriority(const editeng::SvxBorderLine *pThis, const editeng::SvxBorderLine *pOther)
bool isEdgeVisible(sal_Int32 nEdgeX, sal_Int32 nEdgeY, bool bHorizontal) const
checks if the given edge is visible.
void LayoutTableHeight(::tools::Rectangle &rArea, bool bFit)
bool isValidRow(sal_Int32 nRow) const
TableLayouter(const TableModelRef &xTableModel)
sal_Int32 getRowHeight(sal_Int32 nRow) const
sal_Int32 calcPreferredColumnWidth(sal_Int32 nColumn, Size aSize) const
std::vector< BorderLineVector > BorderLineMap
void LayoutTableWidth(::tools::Rectangle &rArea, bool bFit)
void LayoutTable(::tools::Rectangle &rRectangle, bool bFitWidth, bool bFitHeight)
try to fit the table into the given rectangle.
void DistributeRows(::tools::Rectangle &rArea, sal_Int32 nFirstRow, sal_Int32 nLastRow, const bool bOptimize, const bool bMinimize)
rtl::Reference< TableModel > TableModelRef
std::vector< EdgeInfo > getVerticalEdges()
BorderLineMap maVerticalBorders
std::vector< editeng::SvxBorderLine * > BorderLineVector
sal_Int32 getVerticalEdge(int nEdgeX, sal_Int32 *pnMin, sal_Int32 *pnMax)