25 #ifndef WPSCONTENTLISTENER_H
26 #define WPSCONTENTLISTENER_H
30 #include <libwpd/libwpd.h>
35 class WPXDocumentInterface;
37 class WPXPropertyListVector;
171 WPSContentListener(std::vector<WPSPageSpan>
const &pageList, WPXDocumentInterface *documentInterface);
223 void setTabs(
const std::vector<WPSTabStop> &tabStops);
261 std::string type=
"image/pict",
262 WPXPropertyList frameExtras=WPXPropertyList());
265 WPXPropertyList frameExtras=WPXPropertyList());
270 void openTable(std::vector<float>
const &colWidth, WPXUnit unit);
274 void openTableRow(
float h, WPXUnit unit,
bool headerRow=
false);
292 bool openSection(std::vector<int> colsWidth=std::vector<int>(), WPXUnit unit=WPX_INCH);
331 static void _addLanguage(
int lcid, WPXPropertyList &propList);
341 shared_ptr<WPSDocumentParsingState>
m_ds;
342 shared_ptr<WPSContentParsingState>
m_ps;
343 std::vector<shared_ptr<WPSContentParsingState> >
m_psStack;
void _recomputeParagraphPositions()
Definition: WPSContentListener.cpp:747
void _closeParagraph()
Definition: WPSContentListener.cpp:852
bool m_isTableOpened
Definition: WPSContentListener.h:106
void setParagraphLineSpacing(const double lineSpacing, WPXUnit unit=WPX_PERCENT)
Definition: WPSContentListener.cpp:385
int m_currentPageNumber
Definition: WPSContentListener.h:113
bool m_isTableRowOpened
Definition: WPSContentListener.h:107
double m_rightMarginByPageMarginChange
Definition: WPSContentListener.h:140
void _appendJustification(WPXPropertyList &propList, libwps::Justification justification)
Definition: WPSContentListener.cpp:897
~WPSDocumentParsingState()
Definition: WPSContentListener.cpp:51
bool m_isParagraphColumnBreak
Definition: WPSContentListener.h:81
double m_listBeginPosition
Definition: WPSContentListener.h:151
void startDocument()
Definition: WPSContentListener.cpp:621
void insertEOL(bool softBreak=false)
Definition: WPSContentListener.cpp:225
bool m_isNote
Definition: WPSContentListener.h:160
void _updatePageSpanDependent(bool set)
Definition: WPSContentListener.cpp:735
WPSContentListener & operator=(const WPSContentListener &)
static void _addLanguage(int lcid, WPXPropertyList &propList)
Definition: WPSContentListener.cpp:1963
shared_ptr< WPSContentListener > WPSContentListenerPtr
Definition: WPSCell.h:38
bool m_isHeaderFooterStarted
Definition: WPSContentListener.h:59
bool m_isSpanOpened
Definition: WPSContentListener.h:99
a border list
Definition: libwps_internal.h:225
WPSDocumentParsingState & operator=(const WPSDocumentParsingState &)
void setTextLanguage(int lcid)
Definition: WPSContentListener.cpp:370
WPXUnit m_paragraphMarginBottomUnit
Definition: WPSContentListener.h:138
void _flushText()
Definition: WPSContentListener.cpp:1251
void _closeListElement()
Definition: WPSContentListener.cpp:1035
Definition: WPSContentListener.h:48
void setDocumentLanguage(int lcid)
Definition: WPSContentListener.cpp:613
double m_textIndentByTabs
Definition: WPSContentListener.h:148
Definition: libwps_internal.h:161
void setTextColor(const uint32_t rgb)
Definition: WPSContentListener.cpp:363
bool _openFrame(WPSPosition const &pos, WPXPropertyList extras=WPXPropertyList())
Definition: WPSContentListener.cpp:1409
int m_textLanguage
Definition: WPSContentListener.h:79
double m_pageMarginBottom
Definition: WPSContentListener.h:127
void _flushDeferredTabs()
Definition: WPSContentListener.cpp:1236
shared_ptr< WPSContentParsingState > m_ps
Definition: WPSContentListener.h:342
void _popParsingState()
resets the previous parsing state
Definition: WPSContentListener.cpp:2007
double m_leftMarginByPageMarginChange
Definition: WPSContentListener.h:139
double m_pageFormWidth
Definition: WPSContentListener.h:121
int m_endNoteNumber
endnote number
Definition: WPSContentListener.h:56
double m_sectionMarginBottom
Definition: WPSContentListener.h:132
Definition: WPSContentListener.h:67
void closeTable()
closes this table
Definition: WPSContentListener.cpp:1819
void _changeList()
Definition: WPSContentListener.cpp:1052
std::vector< WPSTabStop > m_tabStops
Definition: WPSContentListener.h:155
Definition: WPSContentListener.h:243
bool m_isSectionOpened
Definition: WPSContentListener.h:94
int m_numPagesRemainingInSpan
Definition: WPSContentListener.h:112
uint16_t m_alignmentCharacter
a stack used to know what is open
Definition: WPSContentListener.h:154
Definition: WPSContentListener.h:243
bool m_isTableCellOpened
Definition: WPSContentListener.h:109
void _openPageSpan()
Definition: WPSContentListener.cpp:666
std::vector< unsigned int > m_numRowsToSkip
Definition: WPSContentListener.h:105
void insertBreak(const uint8_t breakType)
Definition: WPSContentListener.cpp:258
std::vector< WPSSubDocumentPtr > m_subDocuments
Definition: WPSContentListener.h:60
void insertDateTimeField(char const *format)
insert a date/time field with given format (see strftime)
Definition: WPSContentListener.cpp:521
WPXDocumentInterface * m_documentInterface
Definition: WPSContentListener.h:344
Definition: WPSContentListener.h:243
Definition: WPSContentListener.h:168
unsigned m_currentPage
Definition: WPSContentListener.h:111
void setParagraphBorders(int which, WPSBorder style=WPSBorder())
indicates that the paragraph has a basic borders (ie.
Definition: WPSContentListener.cpp:445
bool m_pageFormOrientationIsPortrait
Definition: WPSContentListener.h:122
WPSContentListener(std::vector< WPSPageSpan > const &pageList, WPXDocumentInterface *documentInterface)
Definition: WPSContentListener.cpp:135
int m_newListId
Definition: WPSContentListener.h:57
void endDocument()
Definition: WPSContentListener.cpp:637
shared_ptr< WPSList > m_list
Definition: WPSContentListener.h:90
libwps::Justification m_paragraphJustification
Definition: WPSContentListener.h:83
Definition: WPSContentListener.h:251
Definition: WPSContentListener.h:243
void setParagraphTextIndent(double margin)
sets the first paragraph text indent.
Definition: WPSContentListener.cpp:405
bool m_isParagraphOpened
Definition: WPSContentListener.h:100
void setFontAttributes(const uint32_t fontAttributes)
Definition: WPSContentListener.cpp:336
a structure used to defined the cell position, and a format
Definition: WPSCell.h:119
void _startSubDocument()
Definition: WPSContentListener.cpp:1763
Justification
Definition: libwps_internal.h:266
void _appendParagraphProperties(WPXPropertyList &propList, const bool isListElement=false)
Definition: WPSContentListener.cpp:923
shared_ptr< WPSList > getCurrentList() const
returns the current list
Definition: WPSContentListener.cpp:472
void closeTableRow()
closes this row
Definition: WPSContentListener.cpp:1857
FieldType
Defines some basic type for field.
Definition: WPSContentListener.h:243
Basic class used to store a sub document.
Definition: WPSSubDocument.h:33
bool m_isDocumentStarted
Definition: WPSContentListener.h:59
double m_paragraphMarginBottom
Definition: WPSContentListener.h:137
double m_paragraphMarginLeft
Definition: WPSContentListener.h:133
bool m_isPageSpanBreakDeferred
Definition: WPSContentListener.h:96
NoteType
defines the footnote type
Definition: WPSContentListener.h:251
uint8_t m_currentListLevel
Definition: WPSContentListener.h:91
double m_leftMarginByParagraphMarginChange
Definition: WPSContentListener.h:141
int m_footNoteNumber
footnote number
Definition: WPSContentListener.h:56
WPXUnit m_paragraphLineSpacingUnit
Definition: WPSContentListener.h:85
double m_sectionMarginTop
Definition: WPSContentListener.h:131
double m_textIndentByParagraphIndentChange
Definition: WPSContentListener.h:147
void insertUnicodeString(WPXString const &str)
adds a unicode string
Definition: WPSContentListener.cpp:172
void _closePageSpan()
Definition: WPSContentListener.cpp:723
bool m_isParagraphPageBreak
Definition: WPSContentListener.h:82
void setTextFont(const WPXString &fontName)
Definition: WPSContentListener.cpp:344
void openTableCell(WPSCell const &cell, WPXPropertyList const &extras)
low level function to define a cell.
Definition: WPSContentListener.cpp:1889
uint32_t m_paragraphBackgroundColor
Definition: WPSContentListener.h:86
void setParagraphBackgroundColor(uint32_t color=0xFFFFFF)
sets the paragraph background color
Definition: WPSContentListener.cpp:440
void _endSubDocument()
Definition: WPSContentListener.cpp:1769
double m_paragraphLineSpacing
Definition: WPSContentListener.h:84
double m_paragraphMarginTop
Definition: WPSContentListener.h:135
void insertField(FieldType type)
adds a field type
Definition: WPSContentListener.cpp:481
double m_sectionMarginRight
Definition: WPSContentListener.h:130
void insertComment(WPSSubDocumentPtr &subDocument)
adds comment
Definition: WPSContentListener.cpp:1354
shared_ptr< WPSContentParsingState > _pushParsingState()
creates a new parsing state (copy of the actual state)
Definition: WPSContentListener.cpp:1987
double m_pageMarginLeft
Definition: WPSContentListener.h:124
void _getTabStops(WPXPropertyListVector &tabStops)
Definition: WPSContentListener.cpp:996
SubDocumentType
Definition: libwps_internal.h:265
a small structure used to store the informations about a list
Definition: WPSList.h:39
double m_listReferencePosition
Definition: WPSContentListener.h:150
void setFontSize(const uint16_t fontSize)
Definition: WPSContentListener.cpp:353
void _openListElement()
Definition: WPSContentListener.cpp:1007
~WPSContentParsingState()
Definition: WPSContentListener.cpp:131
double m_sectionMarginLeft
Definition: WPSContentListener.h:129
bool isHeaderFooterOpened() const
Definition: WPSContentListener.cpp:1758
std::vector< WPSPageSpan > m_pageList
Definition: WPSContentListener.h:53
int getSectionNumColumns() const
returns the actual number of columns ( or 1 if no section is opened )
Definition: WPSContentListener.cpp:540
WPSContentParsingState & operator=(const WPSContentParsingState &)
shared_ptr< WPSDocumentParsingState > m_ds
Definition: WPSContentListener.h:341
void _handleFrameParameters(WPXPropertyList &propList, WPSPosition const &pos)
Definition: WPSContentListener.cpp:1464
bool m_isListElementOpened
Definition: WPSContentListener.h:101
void _openParagraph()
Definition: WPSContentListener.cpp:820
WPXPropertyList m_metaData
Definition: WPSContentListener.h:54
int m_numDeferredTabs
Definition: WPSContentListener.h:73
WPXString m_textBuffer
Definition: WPSContentListener.h:72
double m_paragraphMarginRight
Definition: WPSContentListener.h:134
Definition: WPSContentListener.h:243
void setFont(const WPSFont &font)
Definition: WPSContentListener.cpp:324
double m_rightMarginByParagraphMarginChange
Definition: WPSContentListener.h:142
double m_pageMarginRight
Definition: WPSContentListener.h:125
void insertTab()
Definition: WPSContentListener.cpp:246
void setParagraphMargin(double margin, int pos)
sets the paragraph margin.
Definition: WPSContentListener.cpp:411
bool m_firstParagraphInPageSpan
Definition: WPSContentListener.h:103
void insertTextBox(WPSPosition const &pos, WPSSubDocumentPtr subDocument, WPXPropertyList frameExtras=WPXPropertyList())
adds a textbox in given position
Definition: WPSContentListener.cpp:1381
shared_ptr< WPSSubDocument > WPSSubDocumentPtr
Definition: WPSContentListener.h:44
bool m_isTextColumnWithoutParagraph
Definition: WPSContentListener.h:118
void insertPicture(WPSPosition const &pos, const WPXBinaryData &binaryData, std::string type="image/pict", WPXPropertyList frameExtras=WPXPropertyList())
adds a picture in given position
Definition: WPSContentListener.cpp:1394
int m_numColumns
Definition: WPSContentListener.h:116
void insertCharacter(uint8_t character)
adds a basic character, ..
Definition: WPSContentListener.cpp:150
Vec2< int > Vec2i
Vec2 of int.
Definition: libwps_internal.h:494
double m_pageMarginTop
Definition: WPSContentListener.h:126
void _openSpan()
Definition: WPSContentListener.cpp:1129
WPSDocumentParsingState(std::vector< WPSPageSpan > const &pageList)
Definition: WPSContentListener.cpp:43
static void appendUnicode(uint32_t val, WPXString &buffer)
adds an unicode character to a string ( with correct encoding ).
Definition: WPSContentListener.cpp:179
WPSContentParsingState()
Definition: WPSContentListener.cpp:55
bool m_sectionAttributesChanged
Definition: WPSContentListener.h:115
void openTable(std::vector< float > const &colWidth, WPXUnit unit)
open a table
Definition: WPSContentListener.cpp:1783
libwps::SubDocumentType m_subDocumentType
Definition: WPSContentListener.h:161
double m_leftMarginByTabs
Definition: WPSContentListener.h:143
bool isParagraphOpened() const
returns true if a paragraph or a list is opened
Definition: WPSContentListener.cpp:380
void setCurrentList(shared_ptr< WPSList > list)
function to set the actual list
Definition: WPSContentListener.cpp:466
uint32_t m_fontColor
Definition: WPSContentListener.h:78
bool m_isFrameOpened
Definition: WPSContentListener.h:95
bool closeSection()
close a section
Definition: WPSContentListener.cpp:592
void handleSubDocument(WPSSubDocumentPtr &subDocument, libwps::SubDocumentType subDocumentType)
Definition: WPSContentListener.cpp:1679
void _resetParagraphState(const bool isListElement=false)
Definition: WPSContentListener.cpp:875
Definition: WPSParagraph.h:41
uint32_t m_textAttributeBits
Definition: WPSContentListener.h:75
Definition: WPSPageSpan.h:42
WPXString m_fontName
Definition: WPSContentListener.h:77
void closeTableCell()
close a cell
Definition: WPSContentListener.cpp:1944
std::vector< WPSColumnDefinition > m_textColumns
Definition: WPSContentListener.h:117
bool isSectionOpened() const
returns true if a section is opened
Definition: WPSContentListener.cpp:535
bool m_isPageSpanOpened
Definition: WPSContentListener.h:93
void setParagraphJustification(libwps::Justification justification, bool force=false)
Define the paragraph justification.
Definition: WPSContentListener.cpp:391
void setTabs(const std::vector< WPSTabStop > &tabStops)
sets the tabulations.
Definition: WPSContentListener.cpp:434
void _closeFrame()
Definition: WPSContentListener.cpp:1452
void _openSection()
Definition: WPSContentListener.cpp:761
void insertNote(const NoteType noteType, WPSSubDocumentPtr &subDocument)
adds note
Definition: WPSContentListener.cpp:1285
void insertLabelNote(const NoteType noteType, WPXString const &label, WPSSubDocumentPtr &subDocument)
adds a label note
Definition: WPSContentListener.cpp:1296
void insertUnicode(uint32_t character)
adds an unicode character
Definition: WPSContentListener.cpp:162
bool m_isTabPositionRelative
Definition: WPSContentListener.h:156
WPSBorder m_paragraphBordersStyle
Definition: WPSContentListener.h:88
Class to define the position of an object (textbox, picture, ..) in the document. ...
Definition: WPSPosition.h:39
int m_paragraphBorders
Definition: WPSContentListener.h:87
void _insertBreakIfNecessary(WPXPropertyList &propList)
Definition: WPSContentListener.cpp:304
double m_rightMarginByTabs
Definition: WPSContentListener.h:144
double m_paragraphTextIndent
Definition: WPSContentListener.h:146
Definition: WPSContentListener.h:243
void setCurrentListLevel(int level)
function to set the level of the current list
Definition: WPSContentListener.cpp:456
Definition: WPSContentListener.h:251
virtual ~WPSContentListener()
Definition: WPSContentListener.cpp:143
void _closeSection()
Definition: WPSContentListener.cpp:801
void _closeSpan()
Definition: WPSContentListener.cpp:1223
Definition: WPSContentListener.h:243
void openTableRow(float h, WPXUnit unit, bool headerRow=false)
open a row with given height.
Definition: WPSContentListener.cpp:1834
bool openSection(std::vector< int > colsWidth=std::vector< int >(), WPXUnit unit=WPX_INCH)
open a section if possible
Definition: WPSContentListener.cpp:545
bool m_inSubDocument
Definition: WPSContentListener.h:158
double m_fontSize
Definition: WPSContentListener.h:76
void addEmptyTableCell(Vec2i const &pos, Vec2i span=Vec2i(1, 1))
add empty cell
Definition: WPSContentListener.cpp:1868
std::vector< bool > m_listOrderedLevels
Definition: WPSContentListener.h:152
std::vector< shared_ptr< WPSContentParsingState > > m_psStack
Definition: WPSContentListener.h:343
WPXUnit m_paragraphMarginTopUnit
Definition: WPSContentListener.h:136
bool m_isHeaderFooterWithoutParagraph
Definition: WPSContentListener.h:97
bool m_isTableColumnOpened
Definition: WPSContentListener.h:108
double m_pageFormLength
Definition: WPSContentListener.h:120