MacWrtProParser Class Referencefinal

the main class to read a MacWrite II and MacWrite Pro file More...

#include <MacWrtProParser.hxx>

Inheritance diagram for MacWrtProParser:
MWAWTextParser MWAWParser

Public Member Functions

 MacWrtProParser (MWAWInputStreamPtr const &input, MWAWRSRCParserPtr const &rsrcParser, MWAWHeader *header)
 constructor More...
 
 ~MacWrtProParser () final
 destructor More...
 
bool checkHeader (MWAWHeader *header, bool strict=false) final
 checks if the document header is correct (or not) More...
 
void parse (librevenge::RVNGTextInterface *documentInterface) final
 virtual function used to parse the input More...
 
- Public Member Functions inherited from MWAWTextParser
 ~MWAWTextParser () override
 destructor More...
 
- Public Member Functions inherited from MWAWParser
virtual ~MWAWParser ()
 virtual destructor More...
 
int version () const
 returns the works version More...
 
MWAWParserStatePtr getParserState ()
 returns the parser state More...
 
MWAWHeadergetHeader ()
 returns the header More...
 
MWAWInputStreamPtrgetInput ()
 returns the actual input More...
 
MWAWListenerPtr getMainListener ()
 returns the main listener More...
 
MWAWGraphicListenerPtrgetGraphicListener ()
 returns the graphic listener More...
 
MWAWPresentationListenerPtrgetPresentationListener ()
 returns the presentation listener More...
 
MWAWSpreadsheetListenerPtrgetSpreadsheetListener ()
 returns the spreadsheet listener More...
 
MWAWTextListenerPtrgetTextListener ()
 returns the text listener More...
 
MWAWFontConverterPtrgetFontConverter ()
 returns the font converter More...
 
MWAWFontManagerPtrgetFontManager ()
 returns the font manager More...
 
MWAWPageSpan const & getPageSpan () const
 returns the actual page dimension More...
 
MWAWPageSpangetPageSpan ()
 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...
 
MWAWRSRCParserPtrgetRSRCParser ()
 returns the rsrc parser More...
 
libmwaw::DebugFileascii ()
 a DebugFile used to write what we recognize when we parse the document More...
 

Protected Member Functions

void init ()
 inits all internal variables More...
 
void createDocument (librevenge::RVNGTextInterface *documentInterface)
 creates the listener which will be associated to the document More...
 
bool createZones ()
 finds the different objects zones More...
 
std::shared_ptr< MWAWStreamgetStreamForBlock (int bId)
 returns a stream corresponding to a block More...
 
bool getFreeZoneList (std::vector< int > &blockLists)
 return the chain list of block ( used to get free blocks): MWPro only More...
 
bool parseDataZone (int blockId, int type)
 parse a data zone More...
 
bool parseTextZone (std::shared_ptr< MacWrtProParserInternal::Zone > zone)
 parse a text zone More...
 
bool readTextEntries (std::shared_ptr< MacWrtProParserInternal::Zone > zone, std::vector< MWAWEntry > &res, int textLength)
 try to read the text block entries More...
 
bool readTextIds (std::shared_ptr< MacWrtProParserInternal::Zone > zone, std::vector< MacWrtProParserInternal::TextZoneData > &res, int textLength, int type)
 try to read the text id entries More...
 
bool readTextTokens (std::shared_ptr< MacWrtProParserInternal::Zone > zone, std::vector< MacWrtProParserInternal::Token > &res, int textLength)
 try to read the text token entries More...
 
std::vector< int > const & getGraphicIdCalledByToken () const
 return the list of graphicid called by token. More...
 
float pageHeight () const
 returns the page height, ie. paper size less margin (in inches) More...
 
int numColumns (double &sep) const
 returns the document number of columns and the column separator width in inch( filed in MWII) More...
 
void newPage (int number, bool softBreak=false)
 adds a new page More...
 
bool hasTitlePage () const
 returns true if the document has a title page More...
 
std::shared_ptr< MWAWSubDocumentgetSubDocument (int blockId)
 returns a subdocument corresponding to a blockid More...
 
bool sendTextZone (int blockId, bool mainZone=false)
 send a text box More...
 
int findNumHardBreaks (int blockId)
 compute the number of hard page break More...
 
bool sendPictureZone (int blockId, MWAWPosition const &pictPos, MWAWGraphicStyle const &style=MWAWGraphicStyle::emptyStyle())
 try to send a picture More...
 
bool sendTextBoxZone (int blockId, MWAWPosition const &pos, MWAWGraphicStyle const &style=MWAWGraphicStyle::emptyStyle())
 send a textbox zone More...
 
bool sendEmptyFrameZone (MWAWPosition const &pos, MWAWGraphicStyle const &style)
 try to send an empty zone (can exist in MacWrtPro1.5) More...
 
bool readPrintInfo ()
 read the print info zone More...
 
bool readDocHeader ()
 try to read the doc header zone More...
 
bool sendPicture (std::shared_ptr< MacWrtProParserInternal::Zone > zone, MWAWPosition pictPos, MWAWGraphicStyle const &style=MWAWGraphicStyle::emptyStyle())
 try to send a picture More...
 
bool sendText (std::shared_ptr< MacWrtProParserInternal::TextZone > zone, bool mainZone=false)
 try to send a text More...
 
int findNumHardBreaks (std::shared_ptr< MacWrtProParserInternal::TextZone > zone)
 compute the number of hard page break More...
 
void checkUnparsed ()
 a debug function which can be used to save the unparsed block More...
 
- Protected Member Functions inherited from MWAWTextParser
 MWAWTextParser (MWAWInputStreamPtr const &input, MWAWRSRCParserPtr const &rsrcParser, MWAWHeader *header)
 constructor (protected) More...
 
 MWAWTextParser (MWAWParserStatePtr const &state)
 constructor using a state More...
 
- Protected Member Functions inherited from MWAWParser
 MWAWParser (MWAWParserState::Type type, MWAWInputStreamPtr const &input, MWAWRSRCParserPtr const &rsrcParser, MWAWHeader *header)
 constructor (protected) More...
 
 MWAWParser (MWAWParserStatePtr const &state)
 constructor using a state More...
 
void setVersion (int vers)
 sets the document's version More...
 
void setGraphicListener (MWAWGraphicListenerPtr &listener)
 sets the graphic listener More...
 
void resetGraphicListener ()
 resets the listener More...
 
void setPresentationListener (MWAWPresentationListenerPtr &listener)
 sets the presentation listener More...
 
void resetPresentationListener ()
 resets the listener More...
 
void setSpreadsheetListener (MWAWSpreadsheetListenerPtr &listener)
 sets the spreadsheet listener More...
 
void resetSpreadsheetListener ()
 resets the listener More...
 
void setTextListener (MWAWTextListenerPtr &listener)
 sets the text listener More...
 
void resetTextListener ()
 resets the listener More...
 
void setAsciiName (char const *name)
 Debugging: change the default ascii file. More...
 
std::string const & asciiName () const
 return the ascii file name More...
 

Static Protected Member Functions

static std::string convertDateToDebugString (unsigned date)
 convert a date in a string (for debugging) More...
 

Protected Attributes

std::shared_ptr< MacWrtProParserInternal::Statem_state
 the state More...
 
std::shared_ptr< MacWrtProStructuresm_structures
 the structures parser More...
 

Friends

class MacWrtProStructures
 
class MacWrtProStructuresListenerState
 
class MacWrtProParserInternal::SubDocument
 

Detailed Description

the main class to read a MacWrite II and MacWrite Pro file

Constructor & Destructor Documentation

◆ MacWrtProParser()

MacWrtProParser::MacWrtProParser ( MWAWInputStreamPtr const &  input,
MWAWRSRCParserPtr const &  rsrcParser,
MWAWHeader header 
)

constructor

◆ ~MacWrtProParser()

MacWrtProParser::~MacWrtProParser ( )
final

destructor

Member Function Documentation

◆ checkHeader()

bool MacWrtProParser::checkHeader ( MWAWHeader header,
bool  strict = false 
)
finalvirtual

checks if the document header is correct (or not)

Implements MWAWParser.

Referenced by parse().

◆ checkUnparsed()

void MacWrtProParser::checkUnparsed ( )
protected

a debug function which can be used to save the unparsed block

Referenced by parse().

◆ convertDateToDebugString()

std::string MacWrtProParser::convertDateToDebugString ( unsigned  date)
staticprotected

◆ createDocument()

void MacWrtProParser::createDocument ( librevenge::RVNGTextInterface *  documentInterface)
protected

creates the listener which will be associated to the document

Referenced by parse().

◆ createZones()

bool MacWrtProParser::createZones ( )
protected

finds the different objects zones

Referenced by parse().

◆ findNumHardBreaks() [1/2]

int MacWrtProParser::findNumHardBreaks ( int  blockId)
protected

compute the number of hard page break

Referenced by MacWrtProStructures::createZonesII().

◆ findNumHardBreaks() [2/2]

int MacWrtProParser::findNumHardBreaks ( std::shared_ptr< MacWrtProParserInternal::TextZone zone)
protected

compute the number of hard page break

◆ getFreeZoneList()

bool MacWrtProParser::getFreeZoneList ( std::vector< int > &  blockLists)
protected

return the chain list of block ( used to get free blocks): MWPro only

Referenced by parse().

◆ getGraphicIdCalledByToken()

std::vector< int > const & MacWrtProParser::getGraphicIdCalledByToken ( ) const
protected

return the list of graphicid called by token.

A hack to help structures to retrieve the page attachment

Referenced by MacWrtProStructures::buildPageStructures().

◆ getStreamForBlock()

std::shared_ptr< MWAWStream > MacWrtProParser::getStreamForBlock ( int  bId)
protected

returns a stream corresponding to a block

Referenced by createZones(), and parseDataZone().

◆ getSubDocument()

std::shared_ptr< MWAWSubDocument > MacWrtProParser::getSubDocument ( int  blockId)
protected

returns a subdocument corresponding to a blockid

Referenced by MacWrtProStructures::updatePageSpan().

◆ hasTitlePage()

bool MacWrtProParser::hasTitlePage ( ) const
protected

returns true if the document has a title page

◆ init()

void MacWrtProParser::init ( )
protected

inits all internal variables

Referenced by MacWrtProParser().

◆ newPage()

void MacWrtProParser::newPage ( int  number,
bool  softBreak = false 
)
protected

adds a new page

◆ numColumns()

int MacWrtProParser::numColumns ( double &  sep) const
protected

returns the document number of columns and the column separator width in inch( filed in MWII)

◆ pageHeight()

float MacWrtProParser::pageHeight ( ) const
protected

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

◆ parse()

void MacWrtProParser::parse ( librevenge::RVNGTextInterface *  documentInterface)
finalvirtual

virtual function used to parse the input

Implements MWAWTextParser.

◆ parseDataZone()

bool MacWrtProParser::parseDataZone ( int  blockId,
int  type 
)
protected

parse a data zone

Note
type=0 ( text entry), type = 1 ( graphic entry ), other unknown

Referenced by MacWrtProStructures::createZonesII(), MacWrtProStructures::readGraphicsList(), and readTextTokens().

◆ parseTextZone()

bool MacWrtProParser::parseTextZone ( std::shared_ptr< MacWrtProParserInternal::Zone zone)
protected

parse a text zone

Referenced by parseDataZone().

◆ readDocHeader()

bool MacWrtProParser::readDocHeader ( )
protected

try to read the doc header zone

then find 000000fd0000000000018200000100002f00 44[40|80] followed by something like a7c3ec07|a7c4c3c6 : 2 date 6f6600000000000000080009000105050506010401

Referenced by createZones().

◆ readPrintInfo()

bool MacWrtProParser::readPrintInfo ( )
protected

read the print info zone

Referenced by checkHeader(), and createZones().

◆ readTextEntries()

bool MacWrtProParser::readTextEntries ( std::shared_ptr< MacWrtProParserInternal::Zone zone,
std::vector< MWAWEntry > &  res,
int  textLength 
)
protected

try to read the text block entries

Referenced by parseTextZone().

◆ readTextIds()

bool MacWrtProParser::readTextIds ( std::shared_ptr< MacWrtProParserInternal::Zone zone,
std::vector< MacWrtProParserInternal::TextZoneData > &  res,
int  textLength,
int  type 
)
protected

try to read the text id entries

Referenced by parseTextZone().

◆ readTextTokens()

bool MacWrtProParser::readTextTokens ( std::shared_ptr< MacWrtProParserInternal::Zone zone,
std::vector< MacWrtProParserInternal::Token > &  res,
int  textLength 
)
protected

try to read the text token entries

Referenced by parseTextZone().

◆ sendEmptyFrameZone()

bool MacWrtProParser::sendEmptyFrameZone ( MWAWPosition const &  pos,
MWAWGraphicStyle const &  style 
)
protected

try to send an empty zone (can exist in MacWrtPro1.5)

Referenced by MacWrtProStructures::send().

◆ sendPicture()

bool MacWrtProParser::sendPicture ( std::shared_ptr< MacWrtProParserInternal::Zone zone,
MWAWPosition  pictPos,
MWAWGraphicStyle const &  style = MWAWGraphicStyle::emptyStyle() 
)
protected

try to send a picture

Referenced by sendPictureZone().

◆ sendPictureZone()

bool MacWrtProParser::sendPictureZone ( int  blockId,
MWAWPosition const &  pictPos,
MWAWGraphicStyle const &  style = MWAWGraphicStyle::emptyStyle() 
)
protected

try to send a picture

Referenced by MacWrtProStructures::send(), and sendText().

◆ sendText()

bool MacWrtProParser::sendText ( std::shared_ptr< MacWrtProParserInternal::TextZone zone,
bool  mainZone = false 
)
protected

try to send a text

Referenced by sendTextZone().

◆ sendTextBoxZone()

bool MacWrtProParser::sendTextBoxZone ( int  blockId,
MWAWPosition const &  pos,
MWAWGraphicStyle const &  style = MWAWGraphicStyle::emptyStyle() 
)
protected

send a textbox zone

Referenced by MacWrtProStructures::send().

◆ sendTextZone()

bool MacWrtProParser::sendTextZone ( int  blockId,
bool  mainZone = false 
)
protected

send a text box

Referenced by MacWrtProStructures::send().

Friends And Related Function Documentation

◆ MacWrtProParserInternal::SubDocument

◆ MacWrtProStructures

friend class MacWrtProStructures
friend

Referenced by init().

◆ MacWrtProStructuresListenerState

friend class MacWrtProStructuresListenerState
friend

Member Data Documentation

◆ m_state

◆ m_structures

std::shared_ptr<MacWrtProStructures> MacWrtProParser::m_structures
protected

the structures parser

Referenced by createDocument(), createZones(), init(), parse(), and sendText().


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

Generated on Fri Sep 18 2020 18:14:52 for libmwaw by doxygen 1.8.20