CWParser Class Reference

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

#include <CWParser.hxx>

Inheritance diagram for CWParser:
MWAWParser

List of all members.

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::DSETgetZone (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 > &notDoneList)
 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::DSETreadDSET (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< CWDatabasem_databaseParser
 the database parser
shared_ptr< CWGraphm_graphParser
 the graph parser
shared_ptr< CWPresentationm_presentationParser
 the spreadsheet parser
shared_ptr< CWSpreadsheetm_spreadsheetParser
 the spreadsheet parser
shared_ptr< CWStyleManagerm_styleManager
 the style manager
shared_ptr< CWTablem_tableParser
 the table parser
shared_ptr< CWTextm_textParser
 the text parser

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::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]

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().

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]

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(), 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().

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 canSendZoneAsGraphic(), createDocument(), init(), readDSET(), and sendZone().

bool CWParser::m_pageSpanSet [protected]

a flag to know if pageSpan is filled

Referenced by readDocHeader(), and readPrintInfo().

the spreadsheet parser

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

the spreadsheet parser

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

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().


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