STOFFTextListener Class Reference

This class contains the code needed to create Text document. More...

#include <STOFFTextListener.hxx>

Inheritance diagram for STOFFTextListener:
STOFFListener

List of all members.

Public Member Functions

 STOFFTextListener (STOFFListManagerPtr listManager, std::vector< STOFFPageSpan > const &pageList, librevenge::RVNGTextInterface *documentInterface)
 constructor
virtual ~STOFFTextListener ()
 destructor
Type getType () const
 returns the listener type
void setDocumentLanguage (std::string locale)
 sets the documents language
void setDocumentMetaData (const librevenge::RVNGPropertyList &list)
 sets the document meta data
void startDocument ()
 starts a new document
void endDocument (bool sendDelayedSubDoc=true)
 ends the actual document
bool canWriteText () const
 returns true if a text zone is opened
bool isDocumentStarted () const
 returns true if a document is opened
void handleSubDocument (STOFFSubDocumentPtr subDocument, libstoff::SubDocumentType subDocumentType)
 function called to add a subdocument and modify the origin
bool isSubDocumentOpened (libstoff::SubDocumentType &subdocType) const
 returns try if a subdocument is open
bool openFrame (STOFFPosition const &pos, STOFFGraphicStyle const &style=STOFFGraphicStyle())
 store the position and the style (which will be needed further to insert a textbox or a table with openTable)
void closeFrame ()
 close a frame
bool openGroup (STOFFPosition const &pos)
 open a group
void closeGroup ()
 close a group
bool openLayer (librevenge::RVNGString const &name)
 open a layer
void closeLayer ()
 close a layer
bool openMasterPage (STOFFPageSpan &)
 opens a master page
void closeMasterPage ()
 close a master page
bool isPageSpanOpened () const
 returns true if a page is opened
STOFFPageSpan const & getPageSpan ()
 returns the current page span
bool openHeader (librevenge::RVNGPropertyList const &extras)
 open a header (interaction with STOFFPageSpan which fills the parameters for openHeader)
bool openFooter (librevenge::RVNGPropertyList const &extras)
 open a footer (interaction with STOFFPageSpan which fills the parameters for openFooter)
bool closeHeader ()
 close a header
bool closeFooter ()
 close a footer
bool insertHeaderRegion (STOFFSubDocumentPtr subDocument, librevenge::RVNGString const &which)
 insert a header
bool insertFooterRegion (STOFFSubDocumentPtr subDocument, librevenge::RVNGString const &which)
 insert a footer
bool isHeaderFooterOpened () const
 returns true if the header/footer is open
void insertChar (uint8_t character)
 adds a basic character, ..
void insertUnicode (uint32_t character)
 insert a character using the font converter to find the utf8 character
void insertUnicodeString (librevenge::RVNGString 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 (STOFFFont const &font)
 sets the font
STOFFFont const & getFont () const
 returns the actual font
bool isParagraphOpened () const
 returns true if a paragraph or a list is opened
void setParagraph (STOFFParagraph const &paragraph)
 sets the paragraph
STOFFParagraph const & getParagraph () const
 returns the actual paragraph
void defineStyle (STOFFFont const &style)
 defines a font styles
bool isFontStyleDefined (librevenge::RVNGString const &name) const
 check if a font style with a display name is already defined
void defineStyle (STOFFGraphicStyle const &style)
 defines a graphic styles
bool isGraphicStyleDefined (librevenge::RVNGString const &name) const
 check if a graphic style with a display name is already defined
void defineStyle (STOFFParagraph const &style)
 defines a paragraph styles
bool isParagraphStyleDefined (librevenge::RVNGString const &name) const
 check if a paragraph style with a display name is already defined
void insertField (STOFFField const &field)
 adds a field type
void openLink (STOFFLink const &link)
 open a link
void closeLink ()
 close a link
void insertShape (STOFFGraphicShape const &shape, STOFFGraphicStyle const &style, STOFFPosition const &pos)
 adds a shape picture in given position
void insertTextBox (STOFFPosition const &pos, STOFFSubDocumentPtr subDocument, STOFFGraphicStyle const &style=STOFFGraphicStyle())
 adds a textbox in given position
void insertPicture (STOFFPosition const &pos, STOFFEmbeddedObject const &picture, STOFFGraphicStyle const &style=STOFFGraphicStyle())
 adds a picture with potential various representationin given position
void insertNote (STOFFNote const &note, STOFFSubDocumentPtr &subDocument)
 insert a note
void insertComment (STOFFSubDocumentPtr &subDocument, librevenge::RVNGString const &creator="", librevenge::RVNGString const &date="")
 adds comment
void insertTable (STOFFPosition const &pos, STOFFTable &table, STOFFGraphicStyle const &style=STOFFGraphicStyle())
 adds a table in given position
void openTable (STOFFTable const &table)
 open a table (using the last parameters of openFrame for the position )
void openTable (STOFFPosition const &pos, STOFFTable const &table)
 open a table in a given position
void closeTable ()
 closes this table
void openTableRow (float h, librevenge::RVNGUnit 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 (STOFFCell const &cell)
 open a cell
void closeTableCell ()
 close a cell
void addEmptyTableCell (STOFFVec2i const &pos, STOFFVec2i span=STOFFVec2i(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
STOFFSection const & getSection () const
 returns the actual section
bool openSection (STOFFSection const &section)
 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 ()
 does open a section (low level)
void _closeSection ()
 does close a section (low level)
void _openPageSpan (bool sendHeaderFooters=true)
 does open a new page (low level)
void _closePageSpan ()
 does close a page (low level)
void _startSubDocument ()
void _endSubDocument ()
void _handleFrameParameters (librevenge::RVNGPropertyList &propList, STOFFPosition const &pos, STOFFGraphicStyle const &style)
 adds in propList the frame parameters.
void _openParagraph ()
void _closeParagraph ()
void _appendParagraphProperties (librevenge::RVNGPropertyList &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 ()
 low level: the function which opens a new span property
void _closeSpan ()
 low level: the function which closes the last opened span property
void _flushText ()
 low level: flush the deferred text
void _flushDeferredTabs ()
 low level: flush the deferred tabs
void _insertBreakIfNecessary (librevenge::RVNGPropertyList &propList)
shared_ptr
< STOFFTextListenerInternal::State
_pushParsingState ()
 creates a new parsing state (copy of the actual state)
void _popParsingState ()
 resets the previous parsing state

Protected Attributes

shared_ptr
< STOFFTextListenerInternal::TextState
m_ds
 the actual global state
shared_ptr
< STOFFTextListenerInternal::State
m_ps
 the actual local parse state
std::vector< shared_ptr
< STOFFTextListenerInternal::State > > 
m_psStack
 stack of local state
librevenge::RVNGTextInterface * m_documentInterface
 the document interface

Private Member Functions

 STOFFTextListener (const STOFFTextListener &)
STOFFTextListeneroperator= (const STOFFTextListener &)

Detailed Description

This class contains the code needed to create Text document.

Note:
All units are specified in librevenge::RVNG_POINT

Constructor & Destructor Documentation

STOFFTextListener::STOFFTextListener ( STOFFListManagerPtr  listManager,
std::vector< STOFFPageSpan > const &  pageList,
librevenge::RVNGTextInterface *  documentInterface 
)

constructor

destructor


Member Function Documentation

void STOFFTextListener::_appendParagraphProperties ( librevenge::RVNGPropertyList &  propList,
const bool  isListElement = false 
) [protected]

Referenced by _openListElement(), and _openParagraph().

void STOFFTextListener::_changeList ( ) [protected]

update the list so that it corresponds to the actual level

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

close a list level

Referenced by _closeParagraph().

void STOFFTextListener::_closePageSpan ( ) [protected]

does close a page (low level)

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

void STOFFTextListener::_closeSection ( ) [protected]

does close a section (low level)

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

void STOFFTextListener::_closeSpan ( ) [protected]

low level: the function which closes the last opened span property

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

low level: flush the deferred tabs

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

void STOFFTextListener::_flushText ( ) [protected]
int STOFFTextListener::_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 STOFFTextListener::_handleFrameParameters ( librevenge::RVNGPropertyList &  propList,
STOFFPosition const &  pos,
STOFFGraphicStyle const &  style 
) [protected]

adds in propList the frame parameters.

Note:
if there is some gradient, first draw a rectangle to print the gradient and them update propList

Referenced by openFrame().

void STOFFTextListener::_insertBreakIfNecessary ( librevenge::RVNGPropertyList &  propList) [protected]

open a list level

Referenced by _openSpan().

void STOFFTextListener::_openPageSpan ( bool  sendHeaderFooters = true) [protected]

does open a new page (low level)

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

void STOFFTextListener::_openSection ( ) [protected]

does open a section (low level)

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

resets the previous parsing state

Referenced by closeGroup(), closeLink(), closeTable(), and handleSubDocument().

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

Returns:
the old one

Referenced by handleSubDocument(), openGroup(), openLink(), and openTable().

void STOFFTextListener::_resetParagraphState ( const bool  isListElement = false) [protected]

Referenced by _openListElement(), and _openParagraph().

void STOFFTextListener::addEmptyTableCell ( STOFFVec2i const &  pos,
STOFFVec2i  span = STOFFVec2i(1,1) 
) [virtual]

add empty cell

Implements STOFFListener.

returns true if we can add open a section, add page break, ...

Implements STOFFListener.

bool STOFFTextListener::canWriteText ( ) const [inline, virtual]

returns true if a text zone is opened

Implements STOFFListener.

bool STOFFTextListener::closeFooter ( ) [virtual]

close a footer

Implements STOFFListener.

void STOFFTextListener::closeFrame ( ) [virtual]

close a frame

Implements STOFFListener.

Referenced by insertPicture().

void STOFFTextListener::closeGroup ( ) [virtual]

close a group

Implements STOFFListener.

bool STOFFTextListener::closeHeader ( ) [virtual]

close a header

Implements STOFFListener.

close a layer

void STOFFTextListener::closeLink ( ) [virtual]

close a link

Implements STOFFListener.

close a master page

bool STOFFTextListener::closeSection ( ) [virtual]

close a section

Implements STOFFListener.

void STOFFTextListener::closeTable ( ) [virtual]

closes this table

Implements STOFFListener.

Referenced by _endSubDocument(), and endDocument().

close a cell

Implements STOFFListener.

Referenced by addEmptyTableCell(), and openTableCell().

closes this row

Implements STOFFListener.

void STOFFTextListener::defineStyle ( STOFFFont const &  style) [virtual]

defines a font styles

Implements STOFFListener.

void STOFFTextListener::defineStyle ( STOFFGraphicStyle const &  style) [virtual]

defines a graphic styles

Implements STOFFListener.

void STOFFTextListener::defineStyle ( STOFFParagraph const &  style) [virtual]

defines a paragraph styles

Implements STOFFListener.

void STOFFTextListener::endDocument ( bool  sendDelayedSubDoc = true) [virtual]

ends the actual document

Implements STOFFListener.

STOFFFont const & STOFFTextListener::getFont ( ) const [virtual]

returns the actual font

Implements STOFFListener.

returns the current page span

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

Implements STOFFListener.

STOFFParagraph const & STOFFTextListener::getParagraph ( ) const [virtual]

returns the actual paragraph

Implements STOFFListener.

STOFFSection const & STOFFTextListener::getSection ( ) const [virtual]

returns the actual section

Implements STOFFListener.

Type STOFFTextListener::getType ( ) const [inline, virtual]

returns the listener type

Implements STOFFListener.

void STOFFTextListener::handleSubDocument ( STOFFSubDocumentPtr  subDocument,
libstoff::SubDocumentType  subDocumentType 
) [virtual]

function called to add a subdocument and modify the origin

Implements STOFFListener.

Referenced by insertComment(), insertFooterRegion(), insertHeaderRegion(), and insertNote().

inserts a break type: ColumBreak, PageBreak, ..

Implements STOFFListener.

void STOFFTextListener::insertChar ( uint8_t  character) [virtual]

adds a basic character, ..

Implements STOFFListener.

void STOFFTextListener::insertComment ( STOFFSubDocumentPtr subDocument,
librevenge::RVNGString const &  creator = "",
librevenge::RVNGString const &  date = "" 
) [virtual]

adds comment

Implements STOFFListener.

void STOFFTextListener::insertEOL ( bool  softBreak = false) [virtual]

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

Implements STOFFListener.

void STOFFTextListener::insertField ( STOFFField const &  field) [virtual]

adds a field type

Implements STOFFListener.

bool STOFFTextListener::insertFooterRegion ( STOFFSubDocumentPtr  subDocument,
librevenge::RVNGString const &  which 
) [virtual]

insert a footer

Implements STOFFListener.

bool STOFFTextListener::insertHeaderRegion ( STOFFSubDocumentPtr  subDocument,
librevenge::RVNGString const &  which 
) [virtual]

insert a header

Implements STOFFListener.

void STOFFTextListener::insertNote ( STOFFNote const &  note,
STOFFSubDocumentPtr subDocument 
) [virtual]

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.

Implements STOFFListener.

void STOFFTextListener::insertPicture ( STOFFPosition const &  pos,
STOFFEmbeddedObject const &  picture,
STOFFGraphicStyle const &  style = STOFFGraphicStyle() 
) [virtual]

adds a picture with potential various representationin given position

Implements STOFFListener.

void STOFFTextListener::insertShape ( STOFFGraphicShape const &  shape,
STOFFGraphicStyle const &  style,
STOFFPosition const &  pos 
) [virtual]

adds a shape picture in given position

Implements STOFFListener.

void STOFFTextListener::insertTab ( ) [virtual]

adds a tab

Implements STOFFListener.

void STOFFTextListener::insertTable ( STOFFPosition const &  pos,
STOFFTable table,
STOFFGraphicStyle const &  style = STOFFGraphicStyle() 
)

adds a table in given position

void STOFFTextListener::insertTextBox ( STOFFPosition const &  pos,
STOFFSubDocumentPtr  subDocument,
STOFFGraphicStyle const &  style = STOFFGraphicStyle() 
) [virtual]

adds a textbox in given position

Implements STOFFListener.

void STOFFTextListener::insertUnicode ( uint32_t  character) [virtual]

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

adds an unicode character. By convention if character=0xfffd(undef), no character is added

Implements STOFFListener.

Referenced by insertChar().

void STOFFTextListener::insertUnicodeString ( librevenge::RVNGString const &  str) [virtual]

adds a unicode string

Implements STOFFListener.

bool STOFFTextListener::isDocumentStarted ( ) const [virtual]

returns true if a document is opened

Implements STOFFListener.

Referenced by canWriteText().

bool STOFFTextListener::isFontStyleDefined ( librevenge::RVNGString const &  name) const [virtual]

check if a font style with a display name is already defined

Implements STOFFListener.

bool STOFFTextListener::isGraphicStyleDefined ( librevenge::RVNGString const &  name) const [virtual]

check if a graphic style with a display name is already defined

Implements STOFFListener.

bool STOFFTextListener::isHeaderFooterOpened ( ) const [virtual]

returns true if the header/footer is open

Implements STOFFListener.

bool STOFFTextListener::isPageSpanOpened ( ) const [virtual]

returns true if a page is opened

Implements STOFFListener.

bool STOFFTextListener::isParagraphOpened ( ) const [virtual]

returns true if a paragraph or a list is opened

Implements STOFFListener.

bool STOFFTextListener::isParagraphStyleDefined ( librevenge::RVNGString const &  name) const [virtual]

check if a paragraph style with a display name is already defined

Implements STOFFListener.

bool STOFFTextListener::isSectionOpened ( ) const [virtual]

returns true if a section is opened

Implements STOFFListener.

bool STOFFTextListener::isSubDocumentOpened ( libstoff::SubDocumentType subdocType) const [virtual]

returns try if a subdocument is open

Implements STOFFListener.

bool STOFFTextListener::openFooter ( librevenge::RVNGPropertyList const &  extras) [virtual]

open a footer (interaction with STOFFPageSpan which fills the parameters for openFooter)

Implements STOFFListener.

bool STOFFTextListener::openFrame ( STOFFPosition const &  pos,
STOFFGraphicStyle const &  style = STOFFGraphicStyle() 
) [virtual]

store the position and the style (which will be needed further to insert a textbox or a table with openTable)

Implements STOFFListener.

Referenced by insertPicture().

bool STOFFTextListener::openGroup ( STOFFPosition const &  pos) [virtual]

open a group

Implements STOFFListener.

bool STOFFTextListener::openHeader ( librevenge::RVNGPropertyList const &  extras) [virtual]

open a header (interaction with STOFFPageSpan which fills the parameters for openHeader)

Implements STOFFListener.

bool STOFFTextListener::openLayer ( librevenge::RVNGString const &  name)

open a layer

void STOFFTextListener::openLink ( STOFFLink const &  link) [virtual]

open a link

Implements STOFFListener.

opens a master page

bool STOFFTextListener::openSection ( STOFFSection const &  section) [virtual]

open a section if possible

Implements STOFFListener.

void STOFFTextListener::openTable ( STOFFTable const &  table) [virtual]

open a table (using the last parameters of openFrame for the position )

Implements STOFFListener.

void STOFFTextListener::openTable ( STOFFPosition const &  pos,
STOFFTable const &  table 
)

open a table in a given position

void STOFFTextListener::openTableCell ( STOFFCell const &  cell) [virtual]

open a cell

Implements STOFFListener.

void STOFFTextListener::openTableRow ( float  h,
librevenge::RVNGUnit  unit,
bool  headerRow = false 
) [virtual]

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

Implements STOFFListener.

STOFFTextListener& STOFFTextListener::operator= ( const STOFFTextListener ) [private]
void STOFFTextListener::setDocumentLanguage ( std::string  locale) [virtual]

sets the documents language

Implements STOFFListener.

void STOFFTextListener::setDocumentMetaData ( const librevenge::RVNGPropertyList &  list) [virtual]

sets the document meta data

Implements STOFFListener.

void STOFFTextListener::setFont ( STOFFFont const &  font) [virtual]

sets the font

Implements STOFFListener.

void STOFFTextListener::setParagraph ( STOFFParagraph const &  paragraph) [virtual]

sets the paragraph

Implements STOFFListener.

starts a new document

Implements STOFFListener.

Referenced by _openPageSpan().


Member Data Documentation

std::vector<shared_ptr<STOFFTextListenerInternal::State> > STOFFTextListener::m_psStack [protected]

stack of local state

Referenced by _popParsingState(), and _pushParsingState().


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