WPSContentListener Class Reference

`#include <WPSContentListener.h>`

## Public Types

enum | FieldType { None, PageNumber, Date, Time, Title, Link, Database }
| Defines some basic type for field. More...
enum | NoteType { FOOTNOTE, ENDNOTE }
| defines the footnote type More...

## Public Member Functions

| WPSContentListener (std::vector< WPSPageSpan > const &pageList, WPXDocumentInterface *documentInterface)
virtual | ~WPSContentListener ()
void | setDocumentLanguage (int lcid)
void | startDocument ()
void | endDocument ()
void | handleSubDocument (WPSSubDocumentPtr &subDocument, libwps::SubDocumentType subDocumentType)
bool | isHeaderFooterOpened () const
void | insertCharacter (uint8_t character)
| adds a basic character, .. More...
void | insertUnicode (uint32_t character)
| adds an unicode character More...
void | insertUnicodeString (WPXString const &str)
| adds a unicode string More...
void | insertTab ()
void | insertEOL (bool softBreak=false)
void | insertBreak (const uint8_t breakType)
void | setTextFont (const WPXString &fontName)
void | setFontSize (const uint16_t fontSize)
void | setFontAttributes (const uint32_t fontAttributes)
void | setTextLanguage (int lcid)
void | setTextColor (const uint32_t rgb)
void | setFont (const WPSFont &font)
bool | isParagraphOpened () const
| returns true if a paragraph or a list is opened More...
void | setParagraphLineSpacing (const double lineSpacing, WPXUnit unit=WPX_PERCENT)
void | setParagraphJustification (libwps::Justification justification, bool force=false)
| Define the paragraph justification. More...
void | setParagraphTextIndent (double margin)
| sets the first paragraph text indent. More...
void | setParagraphMargin (double margin, int pos)
| sets the paragraph margin. More...
void | setTabs (const std::vector< WPSTabStop > &tabStops)
| sets the tabulations. More...
void | setParagraphBackgroundColor (uint32_t color=0xFFFFFF)
| sets the paragraph background color More...
void | setParagraphBorders (int which, WPSBorder style=WPSBorder())
| indicates that the paragraph has a basic borders (ie. More...
void | setCurrentList (shared_ptr< WPSList > list)
| function to set the actual list More...
shared_ptr< WPSList > | getCurrentList () const
| returns the current list More...
void | setCurrentListLevel (int level)
| function to set the level of the current list More...
void | insertField (FieldType type)
| adds a field type More...
void | insertDateTimeField (char const *format)
| insert a date/time field with given format (see strftime) More...
void | insertNote (const NoteType noteType, WPSSubDocumentPtr &subDocument)
| adds note More...
void | insertLabelNote (const NoteType noteType, WPXString const &label, WPSSubDocumentPtr &subDocument)
| adds a label note More...
void | insertComment (WPSSubDocumentPtr &subDocument)
| adds comment More...
void | insertPicture (WPSPosition const &pos, const WPXBinaryData &binaryData, std::string type="image/pict", WPXPropertyList frameExtras=WPXPropertyList())
| adds a picture in given position More...
void | insertTextBox (WPSPosition const &pos, WPSSubDocumentPtr subDocument, WPXPropertyList frameExtras=WPXPropertyList())
| adds a textbox in given position More...
void | openTable (std::vector< float > const &colWidth, WPXUnit unit)
| 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. More...
void | closeTableRow ()
| closes this row More...
void | openTableCell (WPSCell const &cell, WPXPropertyList const &extras)
| low level function to define 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...
int | getSectionNumColumns () const
| returns the actual number of columns ( or 1 if no section is opened ) More...
bool | openSection (std::vector< int > colsWidth=std::vector< int >(), WPXUnit unit=WPX_INCH)
| open a section if possible More...
bool | closeSection ()
| close a section More...

## Static Public Member Functions

static void | appendUnicode (uint32_t val, WPXString &buffer)
| adds an unicode character to a string ( with correct encoding ). More...

## Protected Member Functions

void | _openSection ()
void | _closeSection ()
void | _openPageSpan ()
void | _closePageSpan ()
void | _updatePageSpanDependent (bool set)
void | _recomputeParagraphPositions ()
void | _startSubDocument ()
void | _endSubDocument ()
void | _handleFrameParameters (WPXPropertyList &propList, WPSPosition const &pos)
bool | _openFrame (WPSPosition const &pos, WPXPropertyList extras=WPXPropertyList())
void | _closeFrame ()
void | _openParagraph ()
void | _closeParagraph ()
void | _appendParagraphProperties (WPXPropertyList &propList, const bool isListElement=false)
void | _getTabStops (WPXPropertyListVector &tabStops)
void | _appendJustification (WPXPropertyList &propList, libwps::Justification justification)
void | _resetParagraphState (const bool isListElement=false)
void | _openListElement ()
void | _closeListElement ()
void | _changeList ()
void | _openSpan ()
void | _closeSpan ()
void | _flushText ()
void | _flushDeferredTabs ()
void | _insertBreakIfNecessary (WPXPropertyList &propList)
shared_ptr < WPSContentParsingState > | _pushParsingState ()
| creates a new parsing state (copy of the actual state) More...
void | _popParsingState ()
| resets the previous parsing state More...

## Static Protected Member Functions

static void | _addLanguage (int lcid, WPXPropertyList &propList)

## Protected Attributes

shared_ptr < WPSDocumentParsingState > | m_ds
shared_ptr < WPSContentParsingState > | m_ps
std::vector< shared_ptr < WPSContentParsingState > > | m_psStack
WPXDocumentInterface * | m_documentInterface

## Private Member Functions

| WPSContentListener (const WPSContentListener &)
WPSContentListener & | operator= (const WPSContentListener &)

## Member Enumeration Documentation

enum WPSContentListener::FieldType

Defines some basic type for field.

Enumerator
None |
PageNumber |
Date |
Time |
Title |
Link |
Database |

enum WPSContentListener::NoteType

defines the footnote type

Enumerator
FOOTNOTE |
ENDNOTE |

## Constructor & Destructor Documentation

WPSContentListener::WPSContentListener | ( | std::vector< WPSPageSpan > const & | pageList,
|  | WPXDocumentInterface * | documentInterface
| ) |  |

WPSContentListener::~WPSContentListener | ( |  | ) |

virtual

WPSContentListener::WPSContentListener | ( | const WPSContentListener & |  | ) |

private

## Member Function Documentation

void WPSContentListener::_addLanguage | ( | int | lcid,
|  | WPXPropertyList & | propList
| ) |  |

static protected

Referenced by _openSpan().

void WPSContentListener::_appendJustification | ( | WPXPropertyList & | propList,
|  | libwps::Justification | justification
| ) |  |

protected

Referenced by _appendParagraphProperties().

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

protected

Referenced by _openListElement(), and _openParagraph().

void WPSContentListener::_changeList | ( |  | ) |

protected

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

void WPSContentListener::_closeFrame | ( |  | ) |

protected

void WPSContentListener::_closeListElement | ( |  | ) |

protected

Referenced by _closeParagraph().

void WPSContentListener::_closePageSpan | ( |  | ) |

protected

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

void WPSContentListener::_closeParagraph | ( |  | ) |

protected

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

void WPSContentListener::_closeSection | ( |  | ) |

protected

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

void WPSContentListener::_closeSpan | ( |  | ) |

protected

Referenced by _closeListElement(), _closeParagraph(), insertComment(), insertLabelNote(), setFontAttributes(), setFontSize(), setTextColor(), setTextFont(), and setTextLanguage().

void WPSContentListener::_endSubDocument | ( |  | ) |

protected

Referenced by closeTable(), and handleSubDocument().

void WPSContentListener::_flushDeferredTabs | ( |  | ) |

protected

Referenced by insertCharacter(), insertEOL(), insertTab(), insertUnicode(), and insertUnicodeString().

void WPSContentListener::_flushText | ( |  | ) |

protected

Referenced by _closeSpan(), _openFrame(), insertComment(), insertEOL(), insertField(), insertLabelNote(), and insertTab().

void WPSContentListener::_getTabStops | ( | WPXPropertyListVector & | tabStops | ) |

protected

Referenced by _openListElement(), and _openParagraph().

void WPSContentListener::_handleFrameParameters | ( | WPXPropertyList & | propList,
|  | WPSPosition const & | pos
| ) |  |

protected

Referenced by _openFrame().

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

protected

Referenced by _appendParagraphProperties().

bool WPSContentListener::_openFrame | ( | WPSPosition const & | pos,
|  | WPXPropertyList | extras = `WPXPropertyList()`
| ) |  |

protected

void WPSContentListener::_openListElement | ( |  | ) |

protected

Referenced by _openSpan().

void WPSContentListener::_openPageSpan | ( |  | ) |

protected

Referenced by _openSection().

void WPSContentListener::_openParagraph | ( |  | ) |

protected

Referenced by _openFrame(), _openSpan(), insertComment(), and insertLabelNote().

void WPSContentListener::_openSection | ( |  | ) |

protected

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

void WPSContentListener::_openSpan | ( |  | ) |

protected

Referenced by _flushDeferredTabs(), _openFrame(), endDocument(), handleSubDocument(), insertBreak(), insertCharacter(), insertEOL(), insertField(), insertUnicode(), and insertUnicodeString().

void WPSContentListener::_popParsingState | ( |  | ) |

protected

resets the previous parsing state

Referenced by closeTable(), and handleSubDocument().

shared_ptr< WPSContentParsingState > WPSContentListener::_pushParsingState | ( |  | ) |

protected

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

Returns
  the old one

Referenced by handleSubDocument(), and openTable().

void WPSContentListener::_recomputeParagraphPositions | ( |  | ) |

protected

Referenced by _openPageSpan(), _resetParagraphState(), setParagraphMargin(), setParagraphTextIndent(), and WPSContentListener().

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

protected

Referenced by _openListElement(), and _openParagraph().

void WPSContentListener::_startSubDocument | ( |  | ) |

protected

Referenced by handleSubDocument(), and openTable().

void WPSContentListener::_updatePageSpanDependent | ( | bool | set | ) |

protected

Referenced by _openPageSpan(), and WPSContentListener().

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

add empty cell

void WPSContentListener::appendUnicode | ( | uint32_t | val,
|  | WPXString & | buffer
| ) |  |

static

adds an unicode character to a string ( with correct encoding ).

Referenced by WPS4Text::footNotesDataParser(), insertUnicode(), WPS8TextStyle::readParagraph(), WPS4Text::readParagraph(), and WPS8Text::readString().

bool WPSContentListener::closeSection | ( |  | ) |

close a section

void WPSContentListener::closeTable | ( |  | ) |

closes this table

Referenced by _endSubDocument(), and endDocument().

void WPSContentListener::closeTableCell | ( |  | ) |

close a cell

Referenced by addEmptyTableCell(), and openTableCell().

void WPSContentListener::closeTableRow | ( |  | ) |

closes this row

void WPSContentListener::endDocument | ( |  | ) |

shared_ptr< WPSList > WPSContentListener::getCurrentList | ( |  | ) | const

returns the current list

int WPSContentListener::getSectionNumColumns | ( |  | ) | const

returns the actual number of columns ( or 1 if no section is opened )

void WPSContentListener::handleSubDocument | ( | WPSSubDocumentPtr & | subDocument,
|  | libwps::SubDocumentType | subDocumentType
| ) |  |

Referenced by insertComment(), insertLabelNote(), and WPSPageSpan::sendHeaderFooters().

void WPSContentListener::insertBreak | ( | const uint8_t | breakType | ) |

void WPSContentListener::insertCharacter | ( | uint8_t | character | ) |

adds a basic character, ..

void WPSContentListener::insertComment | ( | WPSSubDocumentPtr & | subDocument | ) |

adds comment

void WPSContentListener::insertDateTimeField | ( | char const * | format | ) |

insert a date/time field with given format (see strftime)

Referenced by insertField().

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

void WPSContentListener::insertField | ( | WPSContentListener::FieldType | type | ) |

adds a field type

void WPSContentListener::insertLabelNote | ( | const NoteType | noteType,
|  | WPXString const & | label,
|  | WPSSubDocumentPtr & | subDocument
| ) |  |

adds a label 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.

Referenced by insertNote().

void WPSContentListener::insertNote | ( | const NoteType | noteType,
|  | WPSSubDocumentPtr & | subDocument
| ) |  |

adds note

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

adds a picture in given position

void WPSContentListener::insertTab | ( |  | ) |

void WPSContentListener::insertTextBox | ( | WPSPosition const & | pos,
|  | WPSSubDocumentPtr | subDocument,
|  | WPXPropertyList | frameExtras = `WPXPropertyList()`
| ) |  |

adds a textbox in given position

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

adds an unicode character

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

Referenced by insertCharacter().

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

adds a unicode string

Referenced by insertDateTimeField(), and insertField().

bool WPSContentListener::isHeaderFooterOpened | ( |  | ) | const

bool WPSContentListener::isParagraphOpened | ( |  | ) | const

returns true if a paragraph or a list is opened

bool WPSContentListener::isSectionOpened | ( |  | ) | const

returns true if a section is opened

bool WPSContentListener::openSection | ( | std::vector< int > | colsWidth = `std::vector<int>()`,
|  | WPXUnit | unit = `WPX_INCH`
| ) |  |

open a section if possible

void WPSContentListener::openTable | ( | std::vector< float > const & | colWidth,
|  | WPXUnit | unit
| ) |  |

open a table

void WPSContentListener::openTableCell | ( | WPSCell const & | cell,
|  | WPXPropertyList const & | extras
| ) |  |

low level function to define a cell.

Parameters

  cell | the cell position, alignement, ...
  extras | to be used to pass extra data, for instance spreadsheet data

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

open a row with given height.

If h<0, use min-row-heigth

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

private

void WPSContentListener::setCurrentList | ( | shared_ptr< WPSList > | list | ) |

function to set the actual list

void WPSContentListener::setCurrentListLevel | ( | int | level | ) |

function to set the level of the current list

Warning
  minimal implementation...

void WPSContentListener::setDocumentLanguage | ( | int | lcid | ) |

void WPSContentListener::setFont | ( | const WPSFont & | font | ) |

void WPSContentListener::setFontAttributes | ( | const uint32_t | fontAttributes | ) |

Referenced by _flushDeferredTabs(), and setFont().

void WPSContentListener::setFontSize | ( | const uint16_t | fontSize | ) |

Referenced by setFont().

void WPSContentListener::setParagraphBackgroundColor | ( | uint32_t | color = `0xFFFFFF` | ) |

sets the paragraph background color

void WPSContentListener::setParagraphBorders | ( | int | which,
|  | WPSBorder | style = `WPSBorder()`
| ) |  |

indicates that the paragraph has a basic borders (ie.

a black line)

Parameters

  which | = libwps::LeftBorderBit | ...
  style | indicates the style

void WPSContentListener::setParagraphJustification | ( | libwps::Justification | justification,
|  | bool | force = `false`
| ) |  |

Define the paragraph justification.

You can set force=true to force a break if there is a justification change

void WPSContentListener::setParagraphLineSpacing | ( | const double | lineSpacing,
|  | WPXUnit | unit = `WPX_PERCENT`
| ) |  |

void WPSContentListener::setParagraphMargin | ( | double | margin,
|  | int | pos
| ) |  |

sets the paragraph margin.

Parameters

  margin | is given in inches
  pos | in WPS_LEFT, WPS_RIGHT, WPS_TOP, WPS_BOTTOM

void WPSContentListener::setParagraphTextIndent | ( | double | margin | ) |

sets the first paragraph text indent.

Warning
  unit are given in inches

void WPSContentListener::setTabs | ( | const std::vector< WPSTabStop > & | tabStops | ) |

sets the tabulations.

Parameters

  tabStops | the tabulations

void WPSContentListener::setTextColor | ( | const uint32_t | rgb | ) |

Referenced by setFont().

void WPSContentListener::setTextFont | ( | const WPXString & | fontName | ) |

Referenced by setFont().

void WPSContentListener::setTextLanguage | ( | int | lcid | ) |

Referenced by setFont().

void WPSContentListener::startDocument | ( |  | ) |

Referenced by _openPageSpan().

## Member Data Documentation

WPXDocumentInterface* WPSContentListener::m_documentInterface

protected

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

shared_ptr<WPSDocumentParsingState> WPSContentListener::m_ds

protected

Referenced by _appendParagraphProperties(), _changeList(), _openPageSpan(), _startSubDocument(), endDocument(), handleSubDocument(), insertLabelNote(), isHeaderFooterOpened(), setCurrentList(), setDocumentLanguage(), and startDocument().

shared_ptr<WPSContentParsingState> WPSContentListener::m_ps

protected

Referenced by _appendParagraphProperties(), _changeList(), _closeFrame(), _closeListElement(), _closePageSpan(), _closeParagraph(), _closeSection(), _closeSpan(), _endSubDocument(), _flushDeferredTabs(), _flushText(), _getTabStops(), _insertBreakIfNecessary(), _openFrame(), _openListElement(), _openPageSpan(), _openParagraph(), _openSection(), _openSpan(), _popParsingState(), _pushParsingState(), _recomputeParagraphPositions(), _resetParagraphState(), _startSubDocument(), _updatePageSpanDependent(), addEmptyTableCell(), closeSection(), closeTable(), closeTableCell(), closeTableRow(), endDocument(), getCurrentList(), getSectionNumColumns(), handleSubDocument(), insertBreak(), insertCharacter(), insertComment(), insertEOL(), insertLabelNote(), insertNote(), insertTab(), insertUnicode(), insertUnicodeString(), isParagraphOpened(), isSectionOpened(), openSection(), openTable(), openTableCell(), openTableRow(), setCurrentList(), setCurrentListLevel(), setFontAttributes(), setFontSize(), setParagraphBackgroundColor(), setParagraphBorders(), setParagraphJustification(), setParagraphLineSpacing(), setParagraphMargin(), setParagraphTextIndent(), setTabs(), setTextColor(), setTextFont(), and setTextLanguage().

std::vector<shared_ptr<WPSContentParsingState> > WPSContentListener::m_psStack

protected

Referenced by _popParsingState(), and _pushParsingState().

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

- WPSContentListener.h
- WPSContentListener.cpp