61#ifndef INCLUDED_LOTUSWORDPRO_SOURCE_FILTER_LWPTABLELAYOUT_HXX
62#define INCLUDED_LOTUSWORDPRO_SOURCE_FILTER_LWPTABLELAYOUT_HXX
69#include <mdds/rtree.hpp>
121 if (rHint.
GetId() == SfxHintId::Dying)
150 void Read()
override;
198 using rt_type = mdds::rtree<int, XFCellListener>;
229 void Read()
override;
252 void Read()
override;
270 void Read()
override;
285 void Read()
override;
298 void Read()
override;
307 void Read()
override;
bool IsJustifiable() const
LwpColumnLayout(LwpObjectHeader const &objHdr, LwpSvStream *pStrm)
double GetWidth() override
virtual LWP_LAYOUT_TYPE GetLayoutType() override
sal_uInt32 GetColumnID() const
virtual ~LwpColumnLayout() override
void Read() override
@descr Read name of LwpDLNFVList from object stream
VO_CONNECTEDCELLLAYOUT object.
For register frame style and parse frame.
virtual void RegisterStyle()
@descr default register style function
LwpParallelColumnsLayout(LwpObjectHeader const &objHdr, LwpSvStream *pStrm)
void Read() override
read table layout
virtual ~LwpParallelColumnsLayout() override
void Read() override
Read super table layout record.
LwpSuperGlossaryLayout(LwpObjectHeader const &objHdr, LwpSvStream *pStrm)
virtual ~LwpSuperGlossaryLayout() override
VO_SUPERPARALLELCOLUMNLAYOUT object.
void Read() override
Read super table layout record.
virtual ~LwpSuperParallelColumnLayout() override
LwpSuperParallelColumnLayout(LwpObjectHeader const &objHdr, LwpSvStream *pStrm)
VO_SUPERTABLELAYOUT object.
void ApplyBackColor(XFTableStyle *pTableStyle)
Apply back color to table.
void ApplyBackGround(XFTableStyle *pTableStyle)
Apply background to table style.
void Read() override
Read super table layout record.
double GetWidth() override
Get width of frame outside table.
void RegisterNewStyle()
Register super table layout style.
void RegisterFrameStyle()
register frame style
bool IsSizeRightToContent()
Judge whether table size is according to content, borrowed from Word Pro code.
LwpSuperTableLayout(LwpObjectHeader const &objHdr, LwpSvStream *pStrm)
void ApplyPatternFill(XFTableStyle *pTableStyle)
Apply pattern fill to table style.
void ApplyShadow(XFTableStyle *pTableStyle)
Apply shadow to table.
bool IsJustifiable()
Judge whether table is justifiable, borrowed from Word Pro code.
LwpTableHeadingLayout * GetTableHeadingLayout()
Get effective heading table layout, the one just before table layout is the only one which is effecti...
void XFConvert(XFContentContainer *pCont) override
Add table to container.
std::unique_ptr< LwpFrame > m_pFrame
void ApplyWatermark(XFTableStyle *pTableStyle)
Apply watermark to table.
double GetTableWidth()
Get width of table.
LwpTableLayout * GetTableLayout()
Get child table layout.
virtual LWP_LAYOUT_TYPE GetLayoutType() override
virtual void XFConvertFrame(XFContentContainer *pCont, sal_Int32 nStart=0, sal_Int32 nEnd=0, bool bAll=false) override
convert frame which anchor to page
virtual ~LwpSuperTableLayout() override
void ApplyAlignment(XFTableStyle *pTableStyle)
Apply alignment to table.
encapsulate XInputStream to provide SvStream like interfaces
VO_TABLEHEADINGLAYOUT object.
virtual LWP_LAYOUT_TYPE GetLayoutType() override
void Read() override
read table heading layout
virtual ~LwpTableHeadingLayout() override
void GetStartEndRow(sal_uInt16 &nStartRow, sal_uInt16 &nEndRow)
get start and end row number of table heading
LwpTableHeadingLayout(LwpObjectHeader const &objHdr, LwpSvStream *pStrm)
VO_TABLELAYOUT object and functions for registering styles and converting tables.
void PutCellVals(LwpFoundry *pFoundry, LwpObjectID aTableID)
apply numeric value and formula to cell
LwpCellLayout * GetCellByRowCol(sal_uInt16 nRow, sal_uInt16 nCol)
Get neighbour cell by specifying ROW+COL.
std::vector< LwpCellLayout * > m_WordProCellsMap
std::map< sal_uInt16, LwpRowLayout * > m_RowsMap
void SplitConflictCells()
split conflict merged cells
LwpSuperTableLayout * GetSuperTableLayout()
Get parent super table layout of table layout.
sal_uInt16 ConvertHeadingRow(rtl::Reference< XFTable > const &pXFTable, sal_uInt16 nStartHeadRow, sal_uInt16 nEndHeadRow)
convert heading row
std::vector< LwpColumnLayout * > m_aColumns
OUString m_DefaultColumnStyleName
void RegisterRows()
register all row styles
virtual LWP_LAYOUT_TYPE GetLayoutType() override
LwpRowLayout * GetRowLayout(sal_uInt16 nRow)
@descr Get row layout by row id
static bool FindSplitColMark(XFTable *pXFTable, std::vector< sal_uInt8 > &rCellMark, sal_uInt8 &nMaxColSpan)
find if the heading rows can be split to 2 cells
void ConvertTable(rtl::Reference< XFTable > const &pXFTable, sal_uInt16 nStartRow, sal_uInt16 nEndRow, sal_uInt8 nStartCol, sal_uInt8 nEndCol)
convert word pro table to SODC table
LwpObjectID & GetColumnLayoutHead()
LwpObjectID m_ColumnLayout
void PostProcessParagraph(XFCell *pCell, sal_uInt16 nRowID, sal_uInt16 nColID)
1.
void SplitRowToCells(XFTable *pTmpTable, rtl::Reference< XFTable > const &pXFTable, sal_uInt8 nFirstColSpann, const sal_uInt8 *pCellMark)
void SetWordProCellMap(sal_uInt16 nRow, sal_uInt16 nCol, LwpCellLayout *pCell)
rtl::Reference< XFTable > m_pXFTable
void ConvertDefaultRow(rtl::Reference< XFTable > const &pXFTable, sal_uInt8 nStartCol, sal_uInt8 nEndCol, sal_uInt16 nRowID)
add default row which are missing in the file
void ParseTable()
read table layout
void RegisterColumns()
analyze all columns to get whole table width and width of all columns
const std::map< sal_uInt16, LwpRowLayout * > & GetRowsMap() const
void RegisterStyle() override
register table style, if needed, including frame style
LwpCellLayout * m_pDefaultCellLayout
void TraverseTable()
traverse all table cells
LwpObjectID * SearchCellStoryMap(sal_uInt16 nRow, sal_uInt16 nCol)
search the cell map
void SetCellsMap(sal_uInt16 nRow1, sal_uInt8 nCol1, sal_uInt16 nRow2, sal_uInt8 nCol2, XFCell *pXFCell)
set cell map info
OUString m_DefaultRowStyleName
LwpTable * GetTable()
Get table pointer.
LwpTableLayout(LwpObjectHeader const &objHdr, LwpSvStream *pStrm)
OUString GetColumnWidth(sal_uInt16 nCol)
Get column style name by column ID.
mdds::rtree< int, XFCellListener > rt_type
void XFConvert(XFContentContainer *pCont) override
Convert table.
LwpCellLayout * GetDefaultCellLayout()
std::vector< TableConvertAttempt > m_aConvertingStack
XFCell * GetCellsMap(sal_uInt16 nRow, sal_uInt8 nCol)
get cell map info
const OUString & GetDefaultRowStyleName() const
void Read() override
read table layout
void ConvertColumn(rtl::Reference< XFTable > const &pXFTable, sal_uInt8 nStartCol, sal_uInt8 nEndCol)
Parse all cols of table.
sal_uInt32 m_nAttributes2
@ LWP_TABLE_HEADING_LAYOUT
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
virtual void Notify(SfxBroadcaster &, const SfxHint &rHint) override
XFCellListener(XFCell *pCell)
@descr Table cell object.
#define STYLE2_JUSTIFIABLE
TableConvertAttempt(sal_uInt16 nStartRow, sal_uInt16 nEndRow, sal_uInt8 nStartCol, sal_uInt8 nEndCol)