This class contents the main functions needed to create a Writer Document. More...
#include <MWAWContentListener.hxx>
Public Member Functions | |
MWAWContentListener (MWAWParserState &parserState, std::vector< MWAWPageSpan > const &pageList, WPXDocumentInterface *documentInterface) | |
constructor | |
virtual | ~MWAWContentListener () |
destructor | |
void | setDocumentLanguage (std::string locale) |
sets the documents language | |
void | startDocument () |
starts the document | |
void | endDocument (bool sendDelayedSubDoc=true) |
ends the document | |
bool | isDocumentStarted () const |
returns true if a document is opened | |
void | handleSubDocument (MWAWSubDocumentPtr subDocument, libmwaw::SubDocumentType subDocumentType) |
function called to add a subdocument | |
bool | isSubDocumentOpened (libmwaw::SubDocumentType &subdocType) const |
returns try if a subdocument is open | |
bool | canWriteText () const |
returns true if we can add text data | |
bool | isPageSpanOpened () const |
returns true if a page is opened | |
MWAWPageSpan const & | getPageSpan () |
returns the current page span | |
bool | insertHeader (MWAWSubDocumentPtr subDocument, WPXPropertyList const &extras) |
insert a header | |
bool | insertFooter (MWAWSubDocumentPtr subDocument, WPXPropertyList const &extras) |
insert a footer | |
bool | isHeaderFooterOpened () const |
returns true if the header/footer is open | |
void | insertChar (uint8_t character) |
adds a basic character, .. | |
void | insertCharacter (unsigned char c) |
insert a character using the font converter to find the utf8 character | |
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. | |
void | insertUnicode (uint32_t character) |
adds an unicode character. | |
void | insertUnicodeString (WPXString const &str) |
adds a unicode string | |
void | insertTab () |
adds a tab | |
void | insertEOL (bool softBreak=false) |
adds an end of line ( by default an hard one) | |
void | setFont (MWAWFont const &font) |
sets the font | |
MWAWFont const & | getFont () const |
returns the actual font | |
bool | isParagraphOpened () const |
returns true if a paragraph or a list is opened | |
void | setParagraph (MWAWParagraph const ¶graph) |
sets the paragraph | |
MWAWParagraph const & | getParagraph () const |
returns the actual paragraph | |
void | insertField (MWAWField const &field) |
adds a field type | |
void | insertNote (MWAWNote const ¬e, MWAWSubDocumentPtr &subDocument) |
insert a note | |
void | insertComment (MWAWSubDocumentPtr &subDocument) |
adds comment | |
void | insertPicture (MWAWPosition const &pos, const WPXBinaryData &binaryData, std::string type="image/pict", WPXPropertyList frameExtras=WPXPropertyList()) |
adds a picture in given position | |
void | insertPicture (MWAWPosition const &pos, MWAWGraphicShape const &shape, MWAWGraphicStyle const &style) |
adds a shape picture in given position | |
void | insertTextBox (MWAWPosition const &pos, MWAWSubDocumentPtr subDocument, WPXPropertyList frameExtras=WPXPropertyList(), WPXPropertyList textboxExtras=WPXPropertyList()) |
adds a textbox in given position | |
void | openTable (MWAWTable const &table, WPXPropertyList tableExtras=WPXPropertyList()) |
open a table | |
void | closeTable () |
closes this table | |
void | openTableRow (float h, WPXUnit unit, bool headerRow=false) |
open a row with given height ( if h < 0.0, set min-row-height = -h ) | |
void | closeTableRow () |
closes this row | |
void | openTableCell (MWAWCell const &cell) |
open a cell | |
void | closeTableCell () |
close a cell | |
void | addEmptyTableCell (Vec2i const &pos, Vec2i span=Vec2i(1, 1)) |
add empty cell | |
bool | canOpenSectionAddBreak () const |
returns true if we can add open a section, add page break, ... | |
bool | isSectionOpened () const |
returns true if a section is opened | |
MWAWSection const & | getSection () const |
returns the actual section | |
bool | openSection (MWAWSection const §ion) |
open a section if possible | |
bool | closeSection () |
close a section | |
void | insertBreak (BreakType breakType) |
inserts a break type: ColumBreak, PageBreak, .. | |
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 | |
void | _closeListElement () |
close a list level | |
void | _changeList () |
update the list so that it corresponds to the actual level | |
int | _getListId () const |
low level: find a list id which corresponds to actual list and a change of level. | |
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) | |
void | _popParsingState () |
resets the previous parsing state | |
Protected Attributes | |
shared_ptr < MWAWContentListenerInternal::DocumentState > | m_ds |
the main parse state | |
shared_ptr < MWAWContentListenerInternal::State > | m_ps |
the actual local parse state | |
std::vector< shared_ptr < MWAWContentListenerInternal::State > > | m_psStack |
stack of local state | |
MWAWParserState & | m_parserState |
the parser state | |
WPXDocumentInterface * | m_documentInterface |
the document interface | |
Private Member Functions | |
MWAWContentListener (const MWAWContentListener &) | |
MWAWContentListener & | operator= (const MWAWContentListener &) |
This class contents the main functions needed to create a Writer Document.
MWAWContentListener::MWAWContentListener | ( | MWAWParserState & | parserState, |
std::vector< MWAWPageSpan > const & | pageList, | ||
WPXDocumentInterface * | documentInterface | ||
) |
constructor
MWAWContentListener::~MWAWContentListener | ( | ) | [virtual] |
destructor
MWAWContentListener::MWAWContentListener | ( | const MWAWContentListener & | ) | [private] |
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.
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)
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
bool MWAWContentListener::canOpenSectionAddBreak | ( | ) | const [virtual] |
returns true if we can add open a section, add page break, ...
Implements MWAWListener.
bool MWAWContentListener::canWriteText | ( | ) | const [inline, virtual] |
returns true if we can add text data
Implements MWAWListener.
void MWAWContentListener::closeFrame | ( | ) | [protected] |
bool MWAWContentListener::closeSection | ( | ) | [virtual] |
close a section
Implements MWAWListener.
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 [virtual] |
returns the actual font
Implements MWAWListener.
MWAWPageSpan const & MWAWContentListener::getPageSpan | ( | ) |
returns the current page span
Referenced by _openPageSpan().
MWAWParagraph const & MWAWContentListener::getParagraph | ( | ) | const [virtual] |
returns the actual paragraph
Implements MWAWListener.
MWAWSection const & MWAWContentListener::getSection | ( | ) | const [virtual] |
returns the actual section
Implements MWAWListener.
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 | ) | [virtual] |
inserts a break type: ColumBreak, PageBreak, ..
Implements MWAWListener.
void MWAWContentListener::insertChar | ( | uint8_t | character | ) | [virtual] |
void MWAWContentListener::insertCharacter | ( | unsigned char | c | ) | [virtual] |
insert a character using the font converter to find the utf8 character
Implements MWAWListener.
int MWAWContentListener::insertCharacter | ( | unsigned char | c, |
MWAWInputStreamPtr & | input, | ||
long | endPos = -1 |
||
) | [virtual] |
insert a character using the font converter to find the utf8 character and if needed, input to read extra character.
Implements MWAWListener.
void MWAWContentListener::insertComment | ( | MWAWSubDocumentPtr & | subDocument | ) |
adds comment
void MWAWContentListener::insertEOL | ( | bool | softBreak = false | ) | [virtual] |
adds an end of line ( by default an hard one)
Implements MWAWListener.
Referenced by MWAWHeaderFooter::insertPageNumberParagraph().
void MWAWContentListener::insertField | ( | MWAWField const & | field | ) | [virtual] |
adds a field type
Implements MWAWListener.
Referenced by MWAWHeaderFooter::insertPageNumberParagraph().
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::insertPicture | ( | MWAWPosition const & | pos, |
MWAWGraphicShape const & | shape, | ||
MWAWGraphicStyle const & | style | ||
) |
adds a shape picture in given position
void MWAWContentListener::insertTab | ( | ) | [virtual] |
adds a tab
Implements MWAWListener.
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 | ) | [virtual] |
adds an unicode character.
By convention if character=0xfffd(undef), no character is added
Implements MWAWListener.
Referenced by insertChar(), and insertCharacter().
void MWAWContentListener::insertUnicodeString | ( | WPXString const & | str | ) | [virtual] |
bool MWAWContentListener::isDocumentStarted | ( | ) | const [virtual] |
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 [virtual] |
returns true if a paragraph or a list is opened
Implements MWAWListener.
Referenced by MWAWHeaderFooter::insertPageNumberParagraph().
bool MWAWContentListener::isSectionOpened | ( | ) | const [virtual] |
returns true if a section is opened
Implements MWAWListener.
bool MWAWContentListener::isSubDocumentOpened | ( | libmwaw::SubDocumentType & | subdocType | ) | const [virtual] |
returns try if a subdocument is open
Implements MWAWListener.
bool MWAWContentListener::openFrame | ( | MWAWPosition const & | pos, |
WPXPropertyList | extras = WPXPropertyList() |
||
) | [protected] |
bool MWAWContentListener::openSection | ( | MWAWSection const & | section | ) | [virtual] |
open a section if possible
Implements MWAWListener.
void MWAWContentListener::openTable | ( | MWAWTable const & | table, |
WPXPropertyList | tableExtras = WPXPropertyList() |
||
) |
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 | ) | [virtual] |
sets the font
Implements MWAWListener.
Referenced by _flushDeferredTabs(), and MWAWHeaderFooter::insertPageNumberParagraph().
void MWAWContentListener::setParagraph | ( | MWAWParagraph const & | paragraph | ) | [virtual] |
sets the paragraph
Implements MWAWListener.
Referenced by MWAWHeaderFooter::insertPageNumberParagraph().
void MWAWContentListener::startDocument | ( | ) |
starts the document
Referenced by _openPageSpan().
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 _changeList(), _openPageSpan(), _startSubDocument(), endDocument(), handleSubDocument(), insertFooter(), insertHeader(), insertNote(), isDocumentStarted(), 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(), canOpenSectionAddBreak(), 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().