CWParser Class Reference

the main class to read a Claris Works file More...

`#include <CWParser.hxx>`

Inheritance diagram for CWParser:

## Public Member Functions

| CWParser (MWAWInputStreamPtr input, MWAWRSRCParserPtr rsrcParser, MWAWHeader *header)
| constructor More...
virtual | ~CWParser ()
| destructor More...
bool | checkHeader (MWAWHeader *header, bool strict=false)
| checks if the document header is correct (or not) More...
void | parse (WPXDocumentInterface *documentInterface)
| virtual function used to parse the input More...
Public Member Functions inherited from MWAWParser
virtual | ~MWAWParser ()
| virtual destructor More...
int | version () const
| returns the works version More...
void | setVersion (int vers)
| sets the works version More...

## Protected Member Functions

void | init ()
| inits all internal variables More...
void | createDocument (WPXDocumentInterface *documentInterface)
| creates the listener which will be associated to the document More...
bool | createZones ()
| finds the different objects zones More...
CWStruct::DSET::Type | getZoneType (int zId) const
| try to return the type of a zone More...
bool | exploreZonesGraph ()
| try to find the zone dags structure... More...
bool | exploreZonesGraphRec (int zId, std::set< int > &notDoneList)
| try to find the zone tree graph ( DSF) function More...
void | typeMainZones ()
| try to type the main zones More...
int | typeMainZonesRec (int zId, CWStruct::DSET::Type type, int maxHeight)
| try to type the main zones recursif, returns the father id More...
bool | readZone ()
| read a zone More...
bool | readPrintInfo ()
| read the print info zone More...
bool | readStructZone (char const *zoneName, bool hasEntete)
| try to read a structured zone More...
bool | readStructIntZone (char const *zoneName, bool hasEntete, int fSz, std::vector< int > &res)
| try to read a int structured zone where fSz to the int size: 1(int8), 2(int16), 4(int32) More...
double | getTextHeight () const
| returns the page height, ie. paper size less margin (in inches) less header/footer size More...
Vec2f | getPageLeftTop () const
| returns the page left top point ( in inches) More...
void | newPage (int number)
| adds a new page More...
bool | sendZone (int zoneId, MWAWPosition pos=MWAWPosition())
| send a zone More...
void | sendZoneInFrame (int zoneId, MWAWPosition pos, WPXPropertyList extras=WPXPropertyList(), WPXPropertyList frameExtras=WPXPropertyList())
| send a zone in a frame More...
void | forceParsed (int zoneId)
| indicate that a zone is already parsed More...
void | sendFootnote (int zoneId)
| creates a document to send a footnote More...
MWAWSection | getMainSection () const
| returns the columns information More...
bool | getColor (int colId, MWAWColor &col) const
| returns the color corresponding to colId (if possible) More...
float | getPatternPercent (int id) const
| return the pattern percent which corresponds to an id (or -1) More...
void | getHeaderFooterId (int &headerId, int &footerId) const
| returns the header/footer id More...
bool | readDocHeader ()
| reads the document header More...
bool | readEndTable ()
| reads the end table ( appears in v3.0 : file version ? ) More...
shared_ptr< CWStruct::DSET > | readDSET (bool &complete)
| reads the zone DSET More...
bool | readDSUM (MWAWEntry const &entry, bool inHeader)
bool | readTNAM (MWAWEntry const &entry)
bool | readSNAP (MWAWEntry const &entry)
bool | readCPRT (MWAWEntry const &entry)
void | checkOrdering (std::vector< int16_t > &vec16, std::vector< int32_t > &vec32) const
| small fonction used to check unusual endian ordering of a list of int16_t, int32_t More...
Protected Member Functions inherited from MWAWParser
| MWAWParser (MWAWInputStreamPtr input, MWAWRSRCParserPtr rsrcParser, MWAWHeader *header)
| constructor (protected) More...
| MWAWParser (MWAWParserStatePtr state)
| constructor using a state More...
MWAWParserStatePtr | getParserState ()
| returns the parser state More...
MWAWHeader * | getHeader ()
| returns the header More...
MWAWInputStreamPtr & | getInput ()
| returns the actual input More...
MWAWContentListenerPtr & | getListener ()
| returns the listener More...
MWAWPageSpan const & | getPageSpan () const
| returns the actual page dimension More...
MWAWPageSpan & | getPageSpan ()
| returns the actual page dimension More...
double | getFormLength () const
| returns the form length More...
double | getFormWidth () const
| returns the form width More...
double | getPageLength () const
| returns the page length (form length without margin ) More...
double | getPageWidth () const
| returns the page width (form width without margin ) More...
MWAWRSRCParserPtr & | getRSRCParser ()
| returns the rsrc parser More...
void | setListener (MWAWContentListenerPtr &listener)
| sets the listener More...
void | resetListener ()
| resets the listener More...
MWAWFontConverterPtr & | getFontConverter ()
| returns the font converter More...
void | setFontConverter (MWAWFontConverterPtr fontConverter)
| sets the font convertor More...
libmwaw::DebugFile & | ascii ()
| a DebugFile used to write what we recognize when we parse the document More...
void | setAsciiName (char const *name)
| Debugging: change the default ascii file. More...
std::string const & | asciiName () const
| return the ascii file name More...

## Protected Attributes

shared_ptr < CWParserInternal::State > | m_state
| the state More...
bool | m_pageSpanSet
| a flag to know if pageSpan is filled More...
shared_ptr< CWDatabase > | m_databaseParser
| the database parser More...
shared_ptr< CWGraph > | m_graphParser
| the graph parser More...
shared_ptr< CWPresentation > | m_presentationParser
| the spreadsheet parser More...
shared_ptr< CWSpreadsheet > | m_spreadsheetParser
| the spreadsheet parser More...
shared_ptr< CWStyleManager > | m_styleManager
| the style manager More...
shared_ptr< CWTable > | m_tableParser
| the table parser More...
shared_ptr< CWText > | m_textParser
| the text parser More...

## Friends

class | CWParserInternal::SubDocument
class | CWDatabase
class | CWGraph
class | CWPresentation
class | CWSpreadsheet
class | CWStyleManager
class | CWTable
class | CWText

## Detailed Description

the main class to read a Claris Works file

## Constructor & Destructor Documentation

CWParser::CWParser | ( | MWAWInputStreamPtr | input,
|  | MWAWRSRCParserPtr | rsrcParser,
|  | MWAWHeader * | header
| ) |  |

constructor

CWParser::~CWParser | ( |  | ) |

virtual

destructor

## Member Function Documentation

bool CWParser::checkHeader | ( | MWAWHeader * | header,
|  | bool | strict = `false`
| ) |  |

virtual

checks if the document header is correct (or not)

Implements MWAWParser.

Referenced by parse().

void CWParser::checkOrdering | ( | std::vector< int16_t > & | vec16,
|  | std::vector< int32_t > & | vec32
| ) |  | const

protected

small fonction used to check unusual endian ordering of a list of int16_t, int32_t

Referenced by CWStyleManager::readGraphStyles(), and CWGraph::readGroupUnknown().

void CWParser::createDocument | ( | WPXDocumentInterface * | documentInterface | ) |

protected

creates the listener which will be associated to the document

Referenced by parse().

bool CWParser::createZones | ( |  | ) |

protected

finds the different objects zones

Referenced by parse().

bool CWParser::exploreZonesGraph | ( |  | ) |

protected

try to find the zone dags structure...

Referenced by createZones().

bool CWParser::exploreZonesGraphRec | ( | int | zId,
|  | std::set< int > & | notDoneList
| ) |  |

protected

try to find the zone tree graph ( DSF) function

Referenced by exploreZonesGraph().

void CWParser::forceParsed | ( | int | zoneId | ) |

protected

indicate that a zone is already parsed

Referenced by CWPresentation::sendZone(), and CWTable::sendZone().

bool CWParser::getColor | ( | int | colId,
|  | MWAWColor & | col
| ) |  | const

protected

returns the color corresponding to colId (if possible)

Referenced by CWText::readFont(), and CWStyleManager::readGraphStyles().

void CWParser::getHeaderFooterId | ( | int & | headerId,
|  | int & | footerId
| ) |  | const

protected

returns the header/footer id

Referenced by CWGraph::updateInformation().

MWAWSection CWParser::getMainSection | ( |  | ) | const

protected

returns the columns information

Referenced by CWText::sendText().

Vec2f CWParser::getPageLeftTop | ( |  | ) | const

protected

returns the page left top point ( in inches)

Referenced by CWGraph::sendZone().

float CWParser::getPatternPercent | ( | int | id | ) | const

protected

return the pattern percent which corresponds to an id (or -1)

Referenced by CWStyleManager::readGraphStyles().

double CWParser::getTextHeight | ( |  | ) | const

protected

returns the page height, ie. paper size less margin (in inches) less header/footer size

Referenced by CWGraph::updateInformation().

CWStruct::DSET::Type CWParser::getZoneType | ( | int | zId | ) | const

protected

try to return the type of a zone

Referenced by CWGraph::sendZone().

void CWParser::init | ( |  | ) |

protected

inits all internal variables

Referenced by CWParser().

void CWParser::newPage | ( | int | number | ) |

protected

adds a new page

Referenced by CWText::sendText(), and CWPresentation::sendZone().

void CWParser::parse | ( | WPXDocumentInterface * | documentInterface | ) |

virtual

virtual function used to parse the input

Implements MWAWParser.

bool CWParser::readCPRT | ( | MWAWEntry const & | entry | ) |

protected

Referenced by readEndTable().

bool CWParser::readDocHeader | ( |  | ) |

protected

reads the document header

Referenced by createZones().

shared_ptr< CWStruct::DSET > CWParser::readDSET | ( | bool & | complete | ) |

protected

reads the zone DSET

set complete to true if we read all the zone

Referenced by readZone().

bool CWParser::readDSUM | ( | MWAWEntry const & | entry,
|  | bool | inHeader
| ) |  |

protected

Referenced by readDocHeader(), and readEndTable().

bool CWParser::readEndTable | ( |  | ) |

protected

reads the end table ( appears in v3.0 : file version ? )

Referenced by createZones().

bool CWParser::readPrintInfo | ( |  | ) |

protected

read the print info zone

Referenced by readDocHeader().

bool CWParser::readSNAP | ( | MWAWEntry const & | entry | ) |

protected

Referenced by readEndTable().

bool CWParser::readStructIntZone | ( | char const * | zoneName,
|  | bool | hasEntete,
|  | int | fSz,
|  | std::vector< int > & | res
| ) |  |

protected

try to read a int structured zone where fSz to the int size: 1(int8), 2(int16), 4(int32)

Referenced by CWGraph::readGroupHeader().

bool CWParser::readStructZone | ( | char const * | zoneName,
|  | bool | hasEntete
| ) |  |

protected

try to read a structured zone

Referenced by readDocHeader().

bool CWParser::readTNAM | ( | MWAWEntry const & | entry | ) |

protected

Referenced by readEndTable().

bool CWParser::readZone | ( |  | ) |

protected

read a zone

Referenced by createZones().

void CWParser::sendFootnote | ( | int | zoneId | ) |

protected

creates a document to send a footnote

Referenced by CWText::sendText().

bool CWParser::sendZone | ( | int | zoneId,
|  | MWAWPosition | pos = `MWAWPosition()`
| ) |  |

protected

send a zone

Referenced by CWTable::askMainToSendZone(), parse(), CWText::sendText(), CWPresentation::sendZone(), and CWGraph::sendZone().

void CWParser::sendZoneInFrame | ( | int | zoneId,
|  | MWAWPosition | pos,
|  | WPXPropertyList | extras = `WPXPropertyList()`,
|  | WPXPropertyList | frameExtras = `WPXPropertyList()`
| ) |  |

protected

send a zone in a frame

Referenced by CWGraph::sendZone().

void CWParser::typeMainZones | ( |  | ) |

protected

try to type the main zones

Referenced by createZones().

int CWParser::typeMainZonesRec | ( | int | zId,
|  | CWStruct::DSET::Type | type,
|  | int | maxHeight
| ) |  |

protected

try to type the main zones recursif, returns the father id

Referenced by typeMainZones().

## Friends And Related Function Documentation

friend class CWDatabase

friend

Referenced by init().

friend class CWGraph

friend

Referenced by init().

friend class CWParserInternal::SubDocument

friend

friend class CWPresentation

friend

Referenced by init().

friend class CWSpreadsheet

friend

Referenced by init().

friend class CWStyleManager

friend

Referenced by init().

friend class CWTable

friend

Referenced by init().

friend class CWText

friend

Referenced by init().

## Member Data Documentation

shared_ptr<CWDatabase> CWParser::m_databaseParser

protected

the database parser

Referenced by createDocument(), init(), and readDSET().

shared_ptr<CWGraph> CWParser::m_graphParser

protected

the graph parser

Referenced by createDocument(), getColor(), getPatternPercent(), init(), parse(), readDocHeader(), readDSET(), and sendZone().

bool CWParser::m_pageSpanSet

protected

a flag to know if pageSpan is filled

Referenced by readDocHeader(), and readPrintInfo().

shared_ptr<CWPresentation> CWParser::m_presentationParser

protected

the spreadsheet parser

Referenced by createDocument(), init(), parse(), readDSET(), sendZone(), and typeMainZones().

shared_ptr<CWSpreadsheet> CWParser::m_spreadsheetParser

protected

the spreadsheet parser

Referenced by createDocument(), init(), and readDSET().

shared_ptr<CWParserInternal::State> CWParser::m_state

protected

the state

Referenced by checkHeader(), createDocument(), createZones(), exploreZonesGraph(), exploreZonesGraphRec(), forceParsed(), getHeaderFooterId(), getMainSection(), getPageLeftTop(), getTextHeight(), getZoneType(), init(), newPage(), parse(), readDocHeader(), readDSET(), readEndTable(), sendZone(), sendZoneInFrame(), typeMainZones(), and typeMainZonesRec().

shared_ptr<CWStyleManager> CWParser::m_styleManager

protected

the style manager

Referenced by init(), and readEndTable().

shared_ptr<CWTable> CWParser::m_tableParser

protected

the table parser

Referenced by createDocument(), init(), parse(), readDSET(), and sendZone().

shared_ptr<CWText> CWParser::m_textParser

protected

the text parser

Referenced by createDocument(), init(), parse(), readDocHeader(), readDSET(), CWStyleManager::readGenStyle(), and sendZone().

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

- CWParser.hxx
- CWParser.cxx