ClarisWksDocument Class Reference

main document information used to create a ClarisWorks file More...

#include <ClarisWksDocument.hxx>

Public Member Functions

 ClarisWksDocument (MWAWParser &parser)
 constructor
 
 ~ClarisWksDocument ()
 virtual destructor
 
bool checkHeader (MWAWHeader *header, bool strict=false)
 checks if the document header is correct (or not)
 
bool createZones ()
 finds the different objects zones
 
int numPages () const
 returns the document number of page
 
MWAWVec2i getDocumentPages ()
 returns the number of expected pages ( accross pages x down page)
 
librevenge::RVNGPropertyList const & getDocumentMetaData () const
 returns the document meta data
 
double getTextHeight () const
 returns the page height, ie. paper size less margin (in inches) less header/footer size
 
MWAWVec2f getPageLeftTop () const
 returns the page left top point ( in inches)
 
void updatePageSpanList (std::vector< MWAWPageSpan > &spanList)
 updates the page span list
 
void updatePageSpanList (std::vector< MWAWPageSpan > &spanList, MWAWPageSpan &master)
 updates the page span list (and returns a master page)
 
MWAWSection getMainSection () const
 returns the main document section
 
std::shared_ptr< ClarisWksStruct::DSETgetZone (int zId) const
 return the zone corresponding to an id ( low level)
 
void updateChildPositions ()
 try to update the child page of each zone
 
void newPage (int page, bool softBreak=false)
 send a page break
 
std::vector< int > const & getMainZonesList () const
 returns the list of the main zones
 
void forceParsed (int zoneId)
 indicates that a zone is parser
 
bool canSendZoneAsGraphic (int number) const
 check if we can send a zone as a graphic
 
bool sendZone (int zoneId, MWAWListenerPtr listener=MWAWListenerPtr(), MWAWPosition pos=MWAWPosition())
 try to send a zone
 
bool sendDatabasePictZone (int pictId, MWAWListenerPtr listener=MWAWListenerPtr(), MWAWPosition const &pos=MWAWPosition())
 try to send a database picture
 
void sendFootnote (int zoneId)
 ask the main parser to create a document to send a footnote
 
MWAWParsergetMainParser ()
 returns the main parser
 
std::shared_ptr< ClarisWksStyleManagergetStyleManager ()
 returns the style manager
 
std::shared_ptr< ClarisWksDatabasegetDatabaseParser ()
 returns the database parser
 
std::shared_ptr< ClarisWksGraphgetGraphParser ()
 returns the graph parser
 
std::shared_ptr< ClarisWksPresentationgetPresentationParser ()
 returns the presentation parser
 
std::shared_ptr< ClarisWksSpreadsheetgetSpreadsheetParser ()
 returns the spreadsheet parser
 
std::shared_ptr< ClarisWksTablegetTableParser ()
 returns the table parser
 
std::shared_ptr< ClarisWksTextgetTextParser ()
 returns the text parser
 
bool readZone ()
 read a zone
 
bool readDocHeader ()
 reads the document header
 
bool readDocInfo ()
 reads the document info part ( end of the header)
 
bool readPrintInfo ()
 read the print info zone
 
bool readEndTable (long &eof)
 reads the end table ( appears in v3.0 : file version ? )
 
bool readCPRT (MWAWEntry const &entry)
 
bool readMARKList (MWAWEntry const &entry)
 
bool readURL (long endPos)
 
bool readBookmark (long endPos)
 
bool readDocumentMark (long endPos)
 
bool readEndMark (long endPos)
 
bool readDSUM (MWAWEntry const &entry, bool inHeader)
 
bool readSNAP (MWAWEntry const &entry)
 
bool readTNAM (MWAWEntry const &entry)
 
std::shared_ptr< ClarisWksStruct::DSETreadDSET (bool &complete)
 reads the zone DSET
 
void typeMainZones ()
 try to type the main zones
 
int typeMainZonesRec (int zId, ClarisWksStruct::DSET::Position type, int maxHeight)
 try to type the main zones recursif, returns the father id
 
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 cleanZonesGraph ()
 remove uneeded edge (mainly header/footer edges in main graph)
 
bool readStructCellZone (char const *zoneName, bool hasEntete, std::vector< MWAWVec2i > &res)
 try to read a structured zone list of cells
 
bool readStringList (char const *zoneName, bool hasEntete, std::vector< std::string > &res)
 
bool readDataLinkList ()
 try to read a structured zone list of picture definition: v5-v6
 
bool readZoneA ()
 try to read a unknown zone which appear to be filled at least in some v2 database file
 
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
 

Public Attributes

std::shared_ptr< MWAWParserStatem_parserState
 the parser state
 

Protected Types

typedef void(MWAWParser::* NewPage) (int page, bool softBreak)
 callback used to send a page break
 
typedef void(MWAWParser::* SendFootnote) (int zoneId)
 callback used to send a footnote
 

Protected Member Functions

MWAWPageSpan getFinalPageSpan () const
 returns the final page span to use for the document
 

Protected Attributes

std::shared_ptr< ClarisWksDocumentInternal::Statem_state
 the state
 
MWAWParserm_parser
 the main parser
 
std::shared_ptr< ClarisWksStyleManagerm_styleManager
 the style manager
 
std::shared_ptr< ClarisWksDatabasem_databaseParser
 the database parser
 
std::shared_ptr< ClarisWksGraphm_graphParser
 the graph parser
 
std::shared_ptr< ClarisWksPresentationm_presentationParser
 the spreadsheet parser
 
std::shared_ptr< ClarisWksSpreadsheetm_spreadsheetParser
 the spreadsheet parser
 
std::shared_ptr< ClarisWksTablem_tableParser
 the table parser
 
std::shared_ptr< ClarisWksTextm_textParser
 the text parser
 
NewPage m_newPage
 the new page callback
 
SendFootnote m_sendFootnote
 the send footnote callback
 

Private Member Functions

 ClarisWksDocument (ClarisWksDocument const &orig)=delete
 
ClarisWksDocument operator= (ClarisWksDocument const &orig)=delete
 

Friends

class ClarisWksParser
 
class ClarisWksBMParser
 
class ClarisWksPRParser
 
class ClarisWksSSParser
 
class ClarisWksDocumentInternal::SubDocument
 

Detailed Description

main document information used to create a ClarisWorks file

Member Typedef Documentation

◆ NewPage

typedef void(MWAWParser::* ClarisWksDocument::NewPage) (int page, bool softBreak)
protected

callback used to send a page break

◆ SendFootnote

typedef void(MWAWParser::* ClarisWksDocument::SendFootnote) (int zoneId)
protected

callback used to send a footnote

Constructor & Destructor Documentation

◆ ClarisWksDocument() [1/2]

ClarisWksDocument::ClarisWksDocument ( MWAWParser parser)
explicit

constructor

◆ ~ClarisWksDocument()

ClarisWksDocument::~ClarisWksDocument ( )

virtual destructor

◆ ClarisWksDocument() [2/2]

ClarisWksDocument::ClarisWksDocument ( ClarisWksDocument const &  orig)
privatedelete

Member Function Documentation

◆ canSendZoneAsGraphic()

bool ClarisWksDocument::canSendZoneAsGraphic ( int  number) const

check if we can send a zone as a graphic

Referenced by ClarisWksGraph::canSendAsGraphic(), ClarisWksGraph::sendGroup(), and ClarisWksGraph::sendGroupChild().

◆ checkHeader()

bool ClarisWksDocument::checkHeader ( MWAWHeader header,
bool  strict = false 
)

checks if the document header is correct (or not)

◆ checkOrdering()

void ClarisWksDocument::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

Referenced by ClarisWksStyleManager::readGraphStyles(), and ClarisWksGraph::readGroupUnknown().

◆ cleanZonesGraph()

void ClarisWksDocument::cleanZonesGraph ( )

remove uneeded edge (mainly header/footer edges in main graph)

Referenced by createZones().

◆ createZones()

bool ClarisWksDocument::createZones ( )

finds the different objects zones

◆ exploreZonesGraph()

bool ClarisWksDocument::exploreZonesGraph ( )

try to find the zone dags structure...

Referenced by createZones().

◆ exploreZonesGraphRec()

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

try to find the zone tree graph ( DSF) function

Referenced by exploreZonesGraph(), and exploreZonesGraphRec().

◆ forceParsed()

void ClarisWksDocument::forceParsed ( int  zoneId)

indicates that a zone is parser

Referenced by ClarisWksPresentation::sendZone(), and ClarisWksTable::sendZone().

◆ getDatabaseParser()

std::shared_ptr< ClarisWksDatabase > ClarisWksDocument::getDatabaseParser ( )
inline

returns the database parser

Referenced by readDSET(), and sendZone().

◆ getDocumentMetaData()

librevenge::RVNGPropertyList const & ClarisWksDocument::getDocumentMetaData ( ) const

returns the document meta data

◆ getDocumentPages()

MWAWVec2i ClarisWksDocument::getDocumentPages ( )

returns the number of expected pages ( accross pages x down page)

Referenced by updateChildPositions().

◆ getFinalPageSpan()

MWAWPageSpan ClarisWksDocument::getFinalPageSpan ( ) const
protected

returns the final page span to use for the document

Referenced by updatePageSpanList().

◆ getGraphParser()

std::shared_ptr< ClarisWksGraph > ClarisWksDocument::getGraphParser ( )
inline

returns the graph parser

Referenced by readDocHeader(), readDSET(), sendDatabasePictZone(), and sendZone().

◆ getMainParser()

MWAWParser & ClarisWksDocument::getMainParser ( )
inline

returns the main parser

◆ getMainSection()

MWAWSection ClarisWksDocument::getMainSection ( ) const

returns the main document section

Referenced by ClarisWksText::sendText().

◆ getMainZonesList()

std::vector< int > const & ClarisWksDocument::getMainZonesList ( ) const

returns the list of the main zones

Referenced by createZones().

◆ getPageLeftTop()

MWAWVec2f ClarisWksDocument::getPageLeftTop ( ) const

returns the page left top point ( in inches)

Referenced by ClarisWksGraph::sendGroup(), and ClarisWksGraph::sendPageChild().

◆ getPresentationParser()

std::shared_ptr< ClarisWksPresentation > ClarisWksDocument::getPresentationParser ( )
inline

returns the presentation parser

Referenced by readDSET(), sendZone(), and typeMainZones().

◆ getSpreadsheetParser()

std::shared_ptr< ClarisWksSpreadsheet > ClarisWksDocument::getSpreadsheetParser ( )
inline

returns the spreadsheet parser

Referenced by readDSET(), and sendZone().

◆ getStyleManager()

◆ getTableParser()

std::shared_ptr< ClarisWksTable > ClarisWksDocument::getTableParser ( )
inline

returns the table parser

Referenced by readDSET(), and sendZone().

◆ getTextHeight()

double ClarisWksDocument::getTextHeight ( ) const

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

Referenced by updateChildPositions().

◆ getTextParser()

std::shared_ptr< ClarisWksText > ClarisWksDocument::getTextParser ( )
inline

returns the text parser

Referenced by readDocHeader(), readDSET(), ClarisWksStyleManager::readGenStyle(), and sendZone().

◆ getZone()

◆ newPage()

void ClarisWksDocument::newPage ( int  page,
bool  softBreak = false 
)

send a page break

Referenced by ClarisWksText::sendText().

◆ numPages()

int ClarisWksDocument::numPages ( ) const

returns the document number of page

Referenced by ClarisWksText::updatePageSpanList(), and updatePageSpanList().

◆ operator=()

ClarisWksDocument ClarisWksDocument::operator= ( ClarisWksDocument const &  orig)
privatedelete

◆ readBookmark()

bool ClarisWksDocument::readBookmark ( long  endPos)

Referenced by readMARKList().

◆ readCPRT()

bool ClarisWksDocument::readCPRT ( MWAWEntry const &  entry)

Referenced by readEndTable().

◆ readDataLinkList()

bool ClarisWksDocument::readDataLinkList ( )

try to read a structured zone list of picture definition: v5-v6

Referenced by readDocHeader().

◆ readDocHeader()

bool ClarisWksDocument::readDocHeader ( )

reads the document header

Referenced by createZones().

◆ readDocInfo()

bool ClarisWksDocument::readDocInfo ( )

reads the document info part ( end of the header)

Referenced by createZones().

◆ readDocumentMark()

bool ClarisWksDocument::readDocumentMark ( long  endPos)

Referenced by readMARKList().

◆ readDSET()

std::shared_ptr< ClarisWksStruct::DSET > ClarisWksDocument::readDSET ( bool &  complete)

reads the zone DSET

Note
set complete to true if we read all the zone

Referenced by readZone().

◆ readDSUM()

bool ClarisWksDocument::readDSUM ( MWAWEntry const &  entry,
bool  inHeader 
)

Referenced by readDocHeader(), and readEndTable().

◆ readEndMark()

bool ClarisWksDocument::readEndMark ( long  endPos)

◆ readEndTable()

bool ClarisWksDocument::readEndTable ( long &  eof)

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

Referenced by createZones().

◆ readMARKList()

bool ClarisWksDocument::readMARKList ( MWAWEntry const &  entry)

Referenced by readEndTable().

◆ readPrintInfo()

bool ClarisWksDocument::readPrintInfo ( )

read the print info zone

Referenced by readDocHeader().

◆ readSNAP()

bool ClarisWksDocument::readSNAP ( MWAWEntry const &  entry)

Referenced by readEndTable().

◆ readStringList()

bool ClarisWksDocument::readStringList ( char const *  zoneName,
bool  hasEntete,
std::vector< std::string > &  res 
)

◆ readStructCellZone()

bool ClarisWksDocument::readStructCellZone ( char const *  zoneName,
bool  hasEntete,
std::vector< MWAWVec2i > &  res 
)

try to read a structured zone list of cells

Referenced by ClarisWksSpreadsheet::readSpreadsheetZone().

◆ readTNAM()

bool ClarisWksDocument::readTNAM ( MWAWEntry const &  entry)

Referenced by readEndTable().

◆ readURL()

bool ClarisWksDocument::readURL ( long  endPos)

Referenced by readMARKList().

◆ readZone()

bool ClarisWksDocument::readZone ( )

read a zone

Referenced by createZones().

◆ readZoneA()

bool ClarisWksDocument::readZoneA ( )

try to read a unknown zone which appear to be filled at least in some v2 database file

Referenced by readDocHeader().

◆ sendDatabasePictZone()

bool ClarisWksDocument::sendDatabasePictZone ( int  pictId,
MWAWListenerPtr  listener = MWAWListenerPtr(),
MWAWPosition const &  pos = MWAWPosition() 
)

try to send a database picture

Referenced by ClarisWksDatabase::sendDatabase().

◆ sendFootnote()

void ClarisWksDocument::sendFootnote ( int  zoneId)

ask the main parser to create a document to send a footnote

Referenced by ClarisWksText::sendText().

◆ sendZone()

◆ typeMainZones()

void ClarisWksDocument::typeMainZones ( )

try to type the main zones

Referenced by createZones().

◆ typeMainZonesRec()

int ClarisWksDocument::typeMainZonesRec ( int  zId,
ClarisWksStruct::DSET::Position  type,
int  maxHeight 
)

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

Referenced by typeMainZones(), and typeMainZonesRec().

◆ updateChildPositions()

void ClarisWksDocument::updateChildPositions ( )

try to update the child page of each zone

Referenced by createZones().

◆ updatePageSpanList() [1/2]

void ClarisWksDocument::updatePageSpanList ( std::vector< MWAWPageSpan > &  spanList)

updates the page span list

◆ updatePageSpanList() [2/2]

void ClarisWksDocument::updatePageSpanList ( std::vector< MWAWPageSpan > &  spanList,
MWAWPageSpan master 
)

updates the page span list (and returns a master page)

Friends And Related Function Documentation

◆ ClarisWksBMParser

friend class ClarisWksBMParser
friend

◆ ClarisWksDocumentInternal::SubDocument

◆ ClarisWksParser

friend class ClarisWksParser
friend

◆ ClarisWksPRParser

friend class ClarisWksPRParser
friend

◆ ClarisWksSSParser

friend class ClarisWksSSParser
friend

Member Data Documentation

◆ m_databaseParser

std::shared_ptr<ClarisWksDatabase> ClarisWksDocument::m_databaseParser
protected

the database parser

Referenced by canSendZoneAsGraphic(), ClarisWksDocument(), getDatabaseParser(), and numPages().

◆ m_graphParser

std::shared_ptr<ClarisWksGraph> ClarisWksDocument::m_graphParser
protected

◆ m_newPage

NewPage ClarisWksDocument::m_newPage
protected

the new page callback

Referenced by newPage().

◆ m_parser

MWAWParser* ClarisWksDocument::m_parser
protected

◆ m_parserState

◆ m_presentationParser

std::shared_ptr<ClarisWksPresentation> ClarisWksDocument::m_presentationParser
protected

◆ m_sendFootnote

SendFootnote ClarisWksDocument::m_sendFootnote
protected

the send footnote callback

Referenced by sendFootnote().

◆ m_spreadsheetParser

std::shared_ptr<ClarisWksSpreadsheet> ClarisWksDocument::m_spreadsheetParser
protected

the spreadsheet parser

Referenced by canSendZoneAsGraphic(), ClarisWksDocument(), getSpreadsheetParser(), and numPages().

◆ m_state

◆ m_styleManager

std::shared_ptr<ClarisWksStyleManager> ClarisWksDocument::m_styleManager
protected

◆ m_tableParser

std::shared_ptr<ClarisWksTable> ClarisWksDocument::m_tableParser
protected

the table parser

Referenced by ClarisWksDocument(), getTableParser(), and numPages().

◆ m_textParser

std::shared_ptr<ClarisWksText> ClarisWksDocument::m_textParser
protected

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

Generated on Wed May 3 2023 07:18:29 for libmwaw by doxygen 1.9.6