MWAWContentListener Class Reference

`#include <MWAWContentListener.hxx>`

## Public Types

enum | BreakType { PageBreak =0, SoftPageBreak, ColumnBreak }

## Public Member Functions

| MWAWContentListener (MWAWParserState &parserState, std::vector< MWAWPageSpan > const &pageList, WPXDocumentInterface *documentInterface)
| constructor More...
virtual | ~MWAWContentListener ()
| destructor More...
void | setDocumentLanguage (std::string locale)
| sets the documents language More...
void | startDocument ()
| starts the document More...
void | endDocument (bool sendDelayedSubDoc=true)
| ends the document More...
void | handleSubDocument (MWAWSubDocumentPtr subDocument, libmwaw::SubDocumentType subDocumentType)
| function called to add a subdocument More...
bool | isSubDocumentOpened (libmwaw::SubDocumentType &subdocType) const
| returns try if a subdocument is open More...
bool | isPageSpanOpened () const
| returns true if a page is opened More...
MWAWPageSpan const & | getPageSpan ()
| returns the current page span More...
bool | insertHeader (MWAWSubDocumentPtr subDocument, WPXPropertyList const &extras)
| insert a header More...
bool | insertFooter (MWAWSubDocumentPtr subDocument, WPXPropertyList const &extras)
| insert a footer More...
bool | isHeaderFooterOpened () const
| returns true if the header/footer is open More...
void | insertChar (uint8_t character)
| adds a basic character, .. More...
void | insertCharacter (unsigned char c)
| insert a character using the font converter to find the utf8 character More...
int | insertCharacter (unsigned char c, MWAWInputStreamPtr &input, long endPos=-1)
| insert a character using the font converter to find the utf8 character and if needed, input to read extra character. More...
void | insertUnicode (uint32_t character)
| adds an unicode character. More...
void | insertUnicodeString (WPXString const &str)
| adds a unicode string More...
void | insertTab ()
| adds a tab More...
void | insertEOL (bool softBreak=false)
| adds an end of line ( by default an hard one) More...
void | insertBreak (BreakType breakType)
| inserts a break type: ColumBreak, PageBreak, .. More...
void | setFont (MWAWFont const &font)
| sets the font More...
MWAWFont const & | getFont () const
| returns the actual font More...
bool | isParagraphOpened () const
| returns true if a paragraph or a list is opened More...
void | setParagraph (MWAWParagraph const &paragraph)
| sets the paragraph More...
MWAWParagraph const & | getParagraph () const
| returns the actual paragraph More...
void | insertField (MWAWField const &field)
| adds a field type More...
void | insertNote (MWAWNote const &note, MWAWSubDocumentPtr &subDocument)
| insert a note More...
void | insertComment (MWAWSubDocumentPtr &subDocument)
| adds comment More...
void | insertPicture (MWAWPosition const &pos, const WPXBinaryData &binaryData, std::string type="image/pict", WPXPropertyList frameExtras=WPXPropertyList())
| adds a picture in given position More...
void | insertTextBox (MWAWPosition const &pos, MWAWSubDocumentPtr subDocument, WPXPropertyList frameExtras=WPXPropertyList(), WPXPropertyList textboxExtras=WPXPropertyList())
| adds a textbox in given position More...
void | openTable (MWAWTable const &table)
| open a table More...
void | closeTable ()
| closes this table More...
void | openTableRow (float h, WPXUnit unit, bool headerRow=false)
| open a row with given height ( if h < 0.0, set min-row-height = -h ) More...
void | closeTableRow ()
| closes this row More...
void | openTableCell (MWAWCell const &cell)
| open a cell More...
void | closeTableCell ()
| close a cell More...
void | addEmptyTableCell (Vec2i const &pos, Vec2i span=Vec2i(1, 1))
| add empty cell More...
bool | isSectionOpened () const
| returns true if a section is opened More...
MWAWSection const & | getSection () const
| returns the actual section More...
bool | openSection (MWAWSection const &section)
| open a section if possible More...
bool | closeSection ()
| close a section More...

## Protected Member Functions

void | _openSection ()
void | _closeSection ()
void | _openPageSpan (bool sendHeaderFooters=true)
void | _closePageSpan ()
void | _startSubDocument ()
void | _endSubDocument ()
void | _handleFrameParameters (WPXPropertyList &propList, MWAWPosition const &pos)
bool | openFrame (MWAWPosition const &pos, WPXPropertyList extras=WPXPropertyList())
void | closeFrame ()
void | _openParagraph ()
void | _closeParagraph ()
void | _appendParagraphProperties (WPXPropertyList &propList, const bool isListElement=false)
void | _resetParagraphState (const bool isListElement=false)
void | _openListElement ()
| open a list level More...
void | _closeListElement ()
| close a list level More...
void | _changeList ()
| update the list so that it corresponds to the actual level More...
int | _getListId () const
| low level: find a list id which corresponds to actual list and a change of level. More...
void | _openSpan ()
void | _closeSpan ()
void | _flushText ()
void | _flushDeferredTabs ()
void | _insertBreakIfNecessary (WPXPropertyList &propList)
shared_ptr < MWAWContentListenerInternal::State > | _pushParsingState ()
| creates a new parsing state (copy of the actual state) More...
void | _popParsingState ()
| resets the previous parsing state More...

## Protected Attributes

shared_ptr < MWAWContentListenerInternal::DocumentState > | m_ds
| the main parse state More...
shared_ptr < MWAWContentListenerInternal::State > | m_ps
| the actual local parse state More...
std::vector< shared_ptr < MWAWContentListenerInternal::State > > | m_psStack
| stack of local state More...
MWAWParserState & | m_parserState
| the parser state More...
WPXDocumentInterface * | m_documentInterface
| the document interface More...

## Private Member Functions

| MWAWContentListener (const MWAWContentListener &)
MWAWContentListener & | operator= (const MWAWContentListener &)

## Member Enumeration Documentation

enum MWAWContentListener::BreakType

Enumerator
PageBreak |
SoftPageBreak |
ColumnBreak |

## Constructor & Destructor Documentation

MWAWContentListener::MWAWContentListener | ( | MWAWParserState & | parserState,
|  | std::vector< MWAWPageSpan > const & | pageList,
|  | WPXDocumentInterface * | documentInterface
| ) |  |

constructor

MWAWContentListener::~MWAWContentListener | ( |  | ) |

virtual

destructor

MWAWContentListener::MWAWContentListener | ( | const MWAWContentListener & |  | ) |

private

## Member Function Documentation

void MWAWContentListener::_appendParagraphProperties | ( | WPXPropertyList & | propList,
|  | const bool | isListElement = `false`
| ) |  |

protected

Referenced by _openListElement(), and _openParagraph().

void MWAWContentListener::_changeList | ( |  | ) |

protected

update the list so that it corresponds to the actual level

Referenced by _closeSection(), _endSubDocument(), _openSpan(), closeTableCell(), endDocument(), and insertNote().

void MWAWContentListener::_closeListElement | ( |  | ) |

protected

close a list level

Referenced by _closeParagraph().

void MWAWContentListener::_closePageSpan | ( |  | ) |

protected

Referenced by _closeListElement(), _closeParagraph(), endDocument(), and insertBreak().

void MWAWContentListener::_closeParagraph | ( |  | ) |

protected

Referenced by _changeList(), _closeSection(), _endSubDocument(), closeTableCell(), endDocument(), insertBreak(), insertEOL(), insertNote(), and openTable().

void MWAWContentListener::_closeSection | ( |  | ) |

protected

Referenced by _closePageSpan(), _openListElement(), _openParagraph(), closeSection(), endDocument(), and handleSubDocument().

void MWAWContentListener::_closeSpan | ( |  | ) |

protected

Referenced by _closeListElement(), _closeParagraph(), _flushDeferredTabs(), insertComment(), insertNote(), and setFont().

void MWAWContentListener::_endSubDocument | ( |  | ) |

protected

Referenced by closeTable(), and handleSubDocument().

void MWAWContentListener::_flushDeferredTabs | ( |  | ) |

protected

Referenced by insertChar(), insertEOL(), insertField(), insertTab(), insertUnicode(), and insertUnicodeString().

void MWAWContentListener::_flushText | ( |  | ) |

protected

Referenced by _closeSpan(), insertComment(), insertEOL(), insertField(), insertNote(), insertTab(), and openFrame().

int MWAWContentListener::_getListId | ( |  | ) | const

protected

low level: find a list id which corresponds to actual list and a change of level.

Note
  called when the list id is not set

Referenced by _changeList().

void MWAWContentListener::_handleFrameParameters | ( | WPXPropertyList & | propList,
|  | MWAWPosition const & | pos
| ) |  |

protected

Referenced by openFrame().

void MWAWContentListener::_insertBreakIfNecessary | ( | WPXPropertyList & | propList | ) |

protected

Referenced by _appendParagraphProperties().

void MWAWContentListener::_openListElement | ( |  | ) |

protected

open a list level

Referenced by _openSpan().

void MWAWContentListener::_openPageSpan | ( | bool | sendHeaderFooters = `true` | ) |

protected

Referenced by _openSection(), endDocument(), and getPageSpan().

void MWAWContentListener::_openParagraph | ( |  | ) |

protected

Referenced by _openSpan(), insertComment(), insertNote(), and openFrame().

void MWAWContentListener::_openSection | ( |  | ) |

protected

Referenced by _changeList(), _openListElement(), _openParagraph(), and openSection().

void MWAWContentListener::_openSpan | ( |  | ) |

protected

Referenced by _flushDeferredTabs(), endDocument(), handleSubDocument(), insertBreak(), insertChar(), insertEOL(), insertField(), insertUnicode(), insertUnicodeString(), and openFrame().

void MWAWContentListener::_popParsingState | ( |  | ) |

protected

resets the previous parsing state

Referenced by closeTable(), and handleSubDocument().

shared_ptr< MWAWContentListenerInternal::State > MWAWContentListener::_pushParsingState | ( |  | ) |

protected

creates a new parsing state (copy of the actual state)

Returns
  the old one

Referenced by handleSubDocument(), and openTable().

void MWAWContentListener::_resetParagraphState | ( | const bool | isListElement = `false` | ) |

protected

Referenced by _openListElement(), and _openParagraph().

void MWAWContentListener::_startSubDocument | ( |  | ) |

protected

Referenced by handleSubDocument(), and openTable().

void MWAWContentListener::addEmptyTableCell | ( | Vec2i const & | pos,
|  | Vec2i | span = `Vec2i(1,1)`
| ) |  |

add empty cell

void MWAWContentListener::closeFrame | ( |  | ) |

protected

bool MWAWContentListener::closeSection | ( |  | ) |

close a section

void MWAWContentListener::closeTable | ( |  | ) |

closes this table

Referenced by _endSubDocument(), and endDocument().

void MWAWContentListener::closeTableCell | ( |  | ) |

close a cell

Referenced by addEmptyTableCell(), and openTableCell().

void MWAWContentListener::closeTableRow | ( |  | ) |

closes this row

void MWAWContentListener::endDocument | ( | bool | sendDelayedSubDoc = `true` | ) |

ends the document

MWAWFont const & MWAWContentListener::getFont | ( |  | ) | const

returns the actual font

MWAWPageSpan const & MWAWContentListener::getPageSpan | ( |  | ) |

returns the current page span

Note
  this forces the opening of a new page if no page is opened.

Referenced by _openPageSpan().

MWAWParagraph const & MWAWContentListener::getParagraph | ( |  | ) | const

returns the actual paragraph

MWAWSection const & MWAWContentListener::getSection | ( |  | ) | const

returns the actual section

void MWAWContentListener::handleSubDocument | ( | MWAWSubDocumentPtr | subDocument,
|  | libmwaw::SubDocumentType | subDocumentType
| ) |  |

function called to add a subdocument

Referenced by insertComment(), insertFooter(), insertHeader(), and insertNote().

void MWAWContentListener::insertBreak | ( | MWAWContentListener::BreakType | breakType | ) |

inserts a break type: ColumBreak, PageBreak, ..

void MWAWContentListener::insertChar | ( | uint8_t | character | ) |

adds a basic character, ..

Referenced by insertCharacter().

void MWAWContentListener::insertCharacter | ( | unsigned char | c | ) |

insert a character using the font converter to find the utf8 character

int MWAWContentListener::insertCharacter | ( | unsigned char | c,
|  | MWAWInputStreamPtr & | input,
|  | long | endPos = `-1`
| ) |  |

insert a character using the font converter to find the utf8 character and if needed, input to read extra character.

Returns
  the number of extra character read

void MWAWContentListener::insertComment | ( | MWAWSubDocumentPtr & | subDocument | ) |

adds comment

void MWAWContentListener::insertEOL | ( | bool | softBreak = `false` | ) |

adds an end of line ( by default an hard one)

Referenced by MWAWHeaderFooter::insertPageNumberParagraph().

void MWAWContentListener::insertField | ( | MWAWField const & | field | ) |

adds a field type

Referenced by MWAWHeaderFooter::insertPageNumberParagraph(), and GWTextInternal::Token::sendTo().

bool MWAWContentListener::insertFooter | ( | MWAWSubDocumentPtr | subDocument,
|  | WPXPropertyList const & | extras
| ) |  |

insert a footer

Referenced by MWAWHeaderFooter::send().

bool MWAWContentListener::insertHeader | ( | MWAWSubDocumentPtr | subDocument,
|  | WPXPropertyList const & | extras
| ) |  |

insert a header

Referenced by MWAWHeaderFooter::send().

void MWAWContentListener::insertNote | ( | MWAWNote const & | note,
|  | MWAWSubDocumentPtr & | subDocument
| ) |  |

insert a note

Must not happen excepted in corrupted document, so we do the minimum. Note that we have no choice, either we begin by closing the paragraph, ... or we reprogram handleSubDocument.

void MWAWContentListener::insertPicture | ( | MWAWPosition const & | pos,
|  | const WPXBinaryData & | binaryData,
|  | std::string | type = `"image/pict"`,
|  | WPXPropertyList | frameExtras = `WPXPropertyList()`
| ) |  |

adds a picture in given position

void MWAWContentListener::insertTab | ( |  | ) |

adds a tab

void MWAWContentListener::insertTextBox | ( | MWAWPosition const & | pos,
|  | MWAWSubDocumentPtr | subDocument,
|  | WPXPropertyList | frameExtras = `WPXPropertyList()`,
|  | WPXPropertyList | textboxExtras = `WPXPropertyList()`
| ) |  |

adds a textbox in given position

void MWAWContentListener::insertUnicode | ( | uint32_t | character | ) |

adds an unicode character.

By convention if character=0xfffd(undef), no character is added

Referenced by insertChar(), and insertCharacter().

void MWAWContentListener::insertUnicodeString | ( | WPXString const & | str | ) |

adds a unicode string

Referenced by insertField(), and GWTextInternal::Token::sendTo().

bool MWAWContentListener::isHeaderFooterOpened | ( |  | ) | const

returns true if the header/footer is open

bool MWAWContentListener::isPageSpanOpened | ( |  | ) | const

returns true if a page is opened

bool MWAWContentListener::isParagraphOpened | ( |  | ) | const

returns true if a paragraph or a list is opened

Referenced by MWAWHeaderFooter::insertPageNumberParagraph().

bool MWAWContentListener::isSectionOpened | ( |  | ) | const

returns true if a section is opened

bool MWAWContentListener::isSubDocumentOpened | ( | libmwaw::SubDocumentType & | subdocType | ) | const

returns try if a subdocument is open

bool MWAWContentListener::openFrame | ( | MWAWPosition const & | pos,
|  | WPXPropertyList | extras = `WPXPropertyList()`
| ) |  |

protected

bool MWAWContentListener::openSection | ( | MWAWSection const & | section | ) |

open a section if possible

void MWAWContentListener::openTable | ( | MWAWTable const & | table | ) |

open a table

void MWAWContentListener::openTableCell | ( | MWAWCell const & | cell | ) |

open a cell

void MWAWContentListener::openTableRow | ( | float | h,
|  | WPXUnit | unit,
|  | bool | headerRow = `false`
| ) |  |

open a row with given height ( if h < 0.0, set min-row-height = -h )

MWAWContentListener& MWAWContentListener::operator= | ( | const MWAWContentListener & |  | ) |

private

void MWAWContentListener::setDocumentLanguage | ( | std::string | locale | ) |

sets the documents language

void MWAWContentListener::setFont | ( | MWAWFont const & | font | ) |

sets the font

Referenced by _flushDeferredTabs(), and MWAWHeaderFooter::insertPageNumberParagraph().

void MWAWContentListener::setParagraph | ( | MWAWParagraph const & | paragraph | ) |

sets the paragraph

Referenced by MWAWHeaderFooter::insertPageNumberParagraph().

void MWAWContentListener::startDocument | ( |  | ) |

starts the document

Referenced by _openPageSpan().

## Member Data Documentation

WPXDocumentInterface* MWAWContentListener::m_documentInterface

protected

the document interface

Referenced by _changeList(), _closeListElement(), _closePageSpan(), _closeParagraph(), _closeSection(), _closeSpan(), _flushDeferredTabs(), _flushText(), _openListElement(), _openPageSpan(), _openParagraph(), _openSection(), _openSpan(), addEmptyTableCell(), closeFrame(), closeTable(), closeTableCell(), closeTableRow(), endDocument(), insertComment(), insertEOL(), insertField(), insertFooter(), insertHeader(), insertNote(), openFrame(), openTable(), openTableCell(), openTableRow(), and startDocument().

shared_ptr<MWAWContentListenerInternal::DocumentState> MWAWContentListener::m_ds

protected

the main parse state

Referenced by _openPageSpan(), _startSubDocument(), endDocument(), handleSubDocument(), insertFooter(), insertHeader(), insertNote(), isHeaderFooterOpened(), openFrame(), setDocumentLanguage(), and startDocument().

MWAWParserState& MWAWContentListener::m_parserState

protected

the parser state

Referenced by _changeList(), _getListId(), _openSpan(), and insertCharacter().

shared_ptr<MWAWContentListenerInternal::State> MWAWContentListener::m_ps

protected

the actual local parse state

Referenced by _appendParagraphProperties(), _changeList(), _closeListElement(), _closePageSpan(), _closeParagraph(), _closeSection(), _closeSpan(), _endSubDocument(), _flushDeferredTabs(), _flushText(), _getListId(), _insertBreakIfNecessary(), _openListElement(), _openPageSpan(), _openParagraph(), _openSection(), _openSpan(), _popParsingState(), _pushParsingState(), _resetParagraphState(), _startSubDocument(), addEmptyTableCell(), closeFrame(), closeSection(), closeTable(), closeTableCell(), closeTableRow(), endDocument(), getFont(), getPageSpan(), getParagraph(), getSection(), handleSubDocument(), insertBreak(), insertChar(), insertCharacter(), insertComment(), insertEOL(), insertNote(), insertTab(), insertUnicode(), insertUnicodeString(), isPageSpanOpened(), isParagraphOpened(), isSectionOpened(), isSubDocumentOpened(), openFrame(), openSection(), openTable(), openTableCell(), openTableRow(), setFont(), and setParagraph().

std::vector<shared_ptr<MWAWContentListenerInternal::State> > MWAWContentListener::m_psStack

protected

stack of local state

Referenced by _popParsingState(), and _pushParsingState().

The documentation for this class was generated from the following files:

- MWAWContentListener.hxx
- MWAWContentListener.cxx