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);
174 void setDocumentLanguage(
int lcid);
176 void startDocument();
179 bool isHeaderFooterOpened()
const;
184 void insertCharacter(uint8_t character);
188 void insertUnicode(uint32_t character);
190 void insertUnicodeString(WPXString
const &str);
192 static void appendUnicode(uint32_t val, WPXString &buffer);
195 void insertEOL(
bool softBreak=
false);
196 void insertBreak(
const uint8_t breakType);
199 void setTextFont(
const WPXString &fontName);
200 void setFontSize(
const uint16_t fontSize);
201 void setFontAttributes(
const uint32_t fontAttributes);
202 void setTextLanguage(
int lcid);
203 void setTextColor(
const uint32_t rgb);
204 void setFont(
const WPSFont &font);
208 bool isParagraphOpened()
const;
209 void setParagraphLineSpacing(
const double lineSpacing, WPXUnit unit=WPX_PERCENT);
214 void setParagraphTextIndent(
double margin);
219 void setParagraphMargin(
double margin,
int pos);
223 void setTabs(
const std::vector<WPSTabStop> &tabStops);
225 void setParagraphBackgroundColor(uint32_t color=0xFFFFFF);
234 void setCurrentList(shared_ptr<WPSList> list);
236 shared_ptr<WPSList> getCurrentList()
const;
239 void setCurrentListLevel(
int level);
247 void insertDateTimeField(
char const *format);
260 void insertPicture(
WPSPosition const &pos,
const WPXBinaryData &binaryData,
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);
276 void closeTableRow();
280 void openTableCell(
WPSCell const &cell, WPXPropertyList
const &extras);
282 void closeTableCell();
288 bool isSectionOpened()
const;
290 int getSectionNumColumns()
const;
292 bool openSection(std::vector<int> colsWidth=std::vector<int>(), WPXUnit unit=WPX_INCH);
298 void _closeSection();
300 void _openPageSpan();
301 void _closePageSpan();
302 void _updatePageSpanDependent(
bool set);
303 void _recomputeParagraphPositions();
305 void _startSubDocument();
306 void _endSubDocument();
308 void _handleFrameParameters( WPXPropertyList &propList,
WPSPosition const &pos);
309 bool _openFrame(
WPSPosition const &pos, WPXPropertyList extras=WPXPropertyList());
312 void _openParagraph();
313 void _closeParagraph();
314 void _appendParagraphProperties(WPXPropertyList &propList,
const bool isListElement=
false);
315 void _getTabStops(WPXPropertyListVector &tabStops);
317 void _resetParagraphState(
const bool isListElement=
false);
319 void _openListElement();
320 void _closeListElement();
327 void _flushDeferredTabs();
329 void _insertBreakIfNecessary(WPXPropertyList &propList);
331 static void _addLanguage(
int lcid, WPXPropertyList &propList);
336 shared_ptr<WPSContentParsingState> _pushParsingState();
338 void _popParsingState();
341 shared_ptr<WPSDocumentParsingState>
m_ds;
342 shared_ptr<WPSContentParsingState>
m_ps;
343 std::vector<shared_ptr<WPSContentParsingState> >
m_psStack;
bool m_isTableOpened
Definition: WPSContentListener.h:106
int m_currentPageNumber
Definition: WPSContentListener.h:113
bool m_isTableRowOpened
Definition: WPSContentListener.h:107
double m_rightMarginByPageMarginChange
Definition: WPSContentListener.h:140
~WPSDocumentParsingState()
Definition: WPSContentListener.cpp:51
bool m_isParagraphColumnBreak
Definition: WPSContentListener.h:81
double m_listBeginPosition
Definition: WPSContentListener.h:151
bool m_isNote
Definition: WPSContentListener.h:160
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 &)
WPXUnit m_paragraphMarginBottomUnit
Definition: WPSContentListener.h:138
Definition: WPSContentListener.h:48
double m_textIndentByTabs
Definition: WPSContentListener.h:148
Definition: libwps_internal.h:161
int m_textLanguage
Definition: WPSContentListener.h:79
double m_pageMarginBottom
Definition: WPSContentListener.h:127
shared_ptr< WPSContentParsingState > m_ps
Definition: WPSContentListener.h:342
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
std::vector< WPSTabStop > m_tabStops
Definition: WPSContentListener.h:155
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
bool m_isTableCellOpened
Definition: WPSContentListener.h:109
std::vector< unsigned int > m_numRowsToSkip
Definition: WPSContentListener.h:105
std::vector< WPSSubDocumentPtr > m_subDocuments
Definition: WPSContentListener.h:60
WPXDocumentInterface * m_documentInterface
Definition: WPSContentListener.h:344
Definition: WPSContentListener.h:168
unsigned m_currentPage
Definition: WPSContentListener.h:111
bool m_pageFormOrientationIsPortrait
Definition: WPSContentListener.h:122
int m_newListId
Definition: WPSContentListener.h:57
shared_ptr< WPSList > m_list
Definition: WPSContentListener.h:90
libwps::Justification m_paragraphJustification
Definition: WPSContentListener.h:83
bool m_isParagraphOpened
Definition: WPSContentListener.h:100
a structure used to defined the cell position, and a format
Definition: WPSCell.h:119
Justification
Definition: libwps_internal.h:266
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
bool m_isParagraphPageBreak
Definition: WPSContentListener.h:82
uint32_t m_paragraphBackgroundColor
Definition: WPSContentListener.h:86
double m_paragraphLineSpacing
Definition: WPSContentListener.h:84
double m_paragraphMarginTop
Definition: WPSContentListener.h:135
double m_sectionMarginRight
Definition: WPSContentListener.h:130
double m_pageMarginLeft
Definition: WPSContentListener.h:124
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
double m_sectionMarginLeft
Definition: WPSContentListener.h:129
std::vector< WPSPageSpan > m_pageList
Definition: WPSContentListener.h:53
shared_ptr< WPSDocumentParsingState > m_ds
Definition: WPSContentListener.h:341
bool m_isListElementOpened
Definition: WPSContentListener.h:101
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
double m_rightMarginByParagraphMarginChange
Definition: WPSContentListener.h:142
double m_pageMarginRight
Definition: WPSContentListener.h:125
bool m_firstParagraphInPageSpan
Definition: WPSContentListener.h:103
shared_ptr< WPSSubDocument > WPSSubDocumentPtr
Definition: WPSContentListener.h:44
bool m_isTextColumnWithoutParagraph
Definition: WPSContentListener.h:118
int m_numColumns
Definition: WPSContentListener.h:116
shared_ptr< WPSContentListener > WPSContentListenerPtr
Definition: WPSContentListener.h:351
Vec2< int > Vec2i
Vec2 of int.
Definition: libwps_internal.h:494
double m_pageMarginTop
Definition: WPSContentListener.h:126
WPSDocumentParsingState(std::vector< WPSPageSpan > const &pageList)
Definition: WPSContentListener.cpp:43
bool m_sectionAttributesChanged
Definition: WPSContentListener.h:115
libwps::SubDocumentType m_subDocumentType
Definition: WPSContentListener.h:161
double m_leftMarginByTabs
Definition: WPSContentListener.h:143
uint32_t m_fontColor
Definition: WPSContentListener.h:78
bool m_isFrameOpened
Definition: WPSContentListener.h:95
Definition: WPSParagraph.h:41
uint32_t m_textAttributeBits
Definition: WPSContentListener.h:75
Definition: WPSPageSpan.h:42
WPXString m_fontName
Definition: WPSContentListener.h:77
std::vector< WPSColumnDefinition > m_textColumns
Definition: WPSContentListener.h:117
bool m_isPageSpanOpened
Definition: WPSContentListener.h:93
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
double m_rightMarginByTabs
Definition: WPSContentListener.h:144
double m_paragraphTextIndent
Definition: WPSContentListener.h:146
Definition: WPSContentListener.h:243
bool m_inSubDocument
Definition: WPSContentListener.h:158
double m_fontSize
Definition: WPSContentListener.h:76
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