the main class to read a Claris Works file More...
#include <CWParser.hxx>
Public Member Functions | |
CWParser (MWAWInputStreamPtr input, MWAWRSRCParserPtr rsrcParser, MWAWHeader *header) | |
constructor | |
virtual | ~CWParser () |
destructor | |
bool | checkHeader (MWAWHeader *header, bool strict=false) |
checks if the document header is correct (or not) | |
void | parse (WPXDocumentInterface *documentInterface) |
virtual function used to parse the input | |
Protected Member Functions | |
void | init () |
inits all internal variables | |
void | createDocument (WPXDocumentInterface *documentInterface) |
creates the listener which will be associated to the document | |
bool | createZones () |
finds the different objects zones | |
shared_ptr< CWStruct::DSET > | getZone (int zId) const |
return the zone corresponding to an id ( low level) | |
bool | exploreZonesGraph () |
try to find the zone dags structure... | |
bool | exploreZonesGraphRec (int zId, std::set< int > ¬DoneList) |
try to find the zone tree graph ( DSF) function | |
void | typeMainZones () |
try to type the main zones | |
int | typeMainZonesRec (int zId, CWStruct::DSET::Type type, int maxHeight) |
try to type the main zones recursif, returns the father id | |
bool | readZone () |
read a zone | |
bool | readPrintInfo () |
read the print info zone | |
bool | readStructZone (char const *zoneName, bool hasEntete) |
try to read a structured zone | |
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) | |
Vec2i | getDocumentPages () const |
returns the number of expected pages ( accross pages x down page) | |
double | getTextHeight () const |
returns the page height, ie. paper size less margin (in inches) less header/footer size | |
Vec2f | getPageLeftTop () const |
returns the page left top point ( in inches) | |
void | newPage (int number) |
adds a new page | |
bool | canSendZoneAsGraphic (int number) const |
check if we can send a zone as a graphic | |
bool | sendZone (int zoneId, bool asGraphic, MWAWPosition pos=MWAWPosition()) |
send a zone | |
void | forceParsed (int zoneId) |
indicate that a zone is already parsed | |
void | sendFootnote (int zoneId) |
creates a document to send a footnote | |
MWAWSection | getMainSection () const |
returns the columns information | |
void | getHeaderFooterId (int &headerId, int &footerId) const |
returns the header/footer id | |
bool | readDocHeader () |
reads the document header | |
bool | readDocInfo () |
reads the document info part ( end of the header) | |
bool | readEndTable () |
reads the end table ( appears in v3.0 : file version ? ) | |
shared_ptr< CWStruct::DSET > | readDSET (bool &complete) |
reads the zone DSET | |
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 | |
Protected Attributes | |
shared_ptr < CWParserInternal::State > | m_state |
the state | |
bool | m_pageSpanSet |
a flag to know if pageSpan is filled | |
shared_ptr< CWDatabase > | m_databaseParser |
the database parser | |
shared_ptr< CWGraph > | m_graphParser |
the graph parser | |
shared_ptr< CWPresentation > | m_presentationParser |
the spreadsheet parser | |
shared_ptr< CWSpreadsheet > | m_spreadsheetParser |
the spreadsheet parser | |
shared_ptr< CWStyleManager > | m_styleManager |
the style manager | |
shared_ptr< CWTable > | m_tableParser |
the table parser | |
shared_ptr< CWText > | m_textParser |
the text parser | |
Friends | |
class | CWParserInternal::SubDocument |
class | CWDatabase |
class | CWGraph |
class | CWPresentation |
class | CWSpreadsheet |
class | CWStyleManager |
class | CWTable |
class | CWText |
the main class to read a Claris Works file
CWParser::CWParser | ( | MWAWInputStreamPtr | input, |
MWAWRSRCParserPtr | rsrcParser, | ||
MWAWHeader * | header | ||
) |
constructor
CWParser::~CWParser | ( | ) | [virtual] |
destructor
bool CWParser::canSendZoneAsGraphic | ( | int | number | ) | const [protected] |
check if we can send a zone as a graphic
Referenced by CWGraph::canSendAsGraphic(), CWGraph::sendGroup(), and CWGraph::sendGroupChild().
bool CWParser::checkHeader | ( | MWAWHeader * | header, |
bool | strict = false |
||
) | [virtual] |
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().
Vec2i CWParser::getDocumentPages | ( | ) | const [protected] |
returns the number of expected pages ( accross pages x down page)
Referenced by CWGraph::numPages().
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::sendGroup().
double CWParser::getTextHeight | ( | ) | const [protected] |
returns the page height, ie. paper size less margin (in inches) less header/footer size
Referenced by CWGraph::updateInformation().
shared_ptr< CWStruct::DSET > CWParser::getZone | ( | int | zId | ) | const [protected] |
return the zone corresponding to an id ( low level)
Referenced by CWGraph::sendGroup(), and CWGraph::sendGroupChild().
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().
bool CWParser::readDocInfo | ( | ) | [protected] |
reads the document info part ( end of the header)
Referenced by createZones().
shared_ptr< CWStruct::DSET > CWParser::readDSET | ( | bool & | complete | ) | [protected] |
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(), and readZone().
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, |
bool | asGraphic, | ||
MWAWPosition | pos = MWAWPosition() |
||
) | [protected] |
send a zone
Referenced by CWTable::askMainToSendZone(), CWGraph::askToSend(), parse(), CWGraph::sendGroup(), CWGraph::sendGroupChild(), CWText::sendText(), and CWPresentation::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().
friend class CWDatabase [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().
shared_ptr<CWDatabase> CWParser::m_databaseParser [protected] |
the database parser
Referenced by canSendZoneAsGraphic(), createDocument(), init(), readDSET(), and sendZone().
shared_ptr<CWGraph> CWParser::m_graphParser [protected] |
the graph parser
Referenced by canSendZoneAsGraphic(), createDocument(), init(), parse(), readDSET(), sendZone(), and typeMainZones().
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 canSendZoneAsGraphic(), createDocument(), init(), readDSET(), and sendZone().
shared_ptr<CWParserInternal::State> CWParser::m_state [protected] |
the state
Referenced by canSendZoneAsGraphic(), checkHeader(), createDocument(), createZones(), exploreZonesGraph(), exploreZonesGraphRec(), forceParsed(), getDocumentPages(), getHeaderFooterId(), getMainSection(), getPageLeftTop(), getTextHeight(), getZone(), init(), newPage(), parse(), readDocHeader(), readDocInfo(), readDSET(), readEndTable(), sendZone(), typeMainZones(), and typeMainZonesRec().
shared_ptr<CWStyleManager> CWParser::m_styleManager [protected] |
the style manager
Referenced by init(), readDocHeader(), 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 canSendZoneAsGraphic(), createDocument(), init(), parse(), readDocHeader(), readDSET(), CWStyleManager::readGenStyle(), and sendZone().