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

Protected Member Functions

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

Static Protected Member Functions

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

Protected Attributes

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

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 MacWrtProParserInternal::SubDocument, and parse().

◆ checkUnparsed()

void MacWrtProParser::checkUnparsed ( )
protected

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

Referenced by pageHeight(), and 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 MacWrtProParserInternal::SubDocument, and parse().

◆ createZones()

bool MacWrtProParser::createZones ( )
protected

finds the different objects zones

Referenced by MacWrtProParserInternal::SubDocument, and parse().

◆ findNumHardBreaks() [1/2]

int MacWrtProParser::findNumHardBreaks ( int blockId)
protected

compute the number of hard page break

Referenced by findNumHardBreaks(), and pageHeight().

◆ 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 MacWrtProParserInternal::SubDocument, and 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 MacWrtProParserInternal::SubDocument.

◆ getStreamForBlock()

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

returns a stream corresponding to a block

Referenced by createZones(), MacWrtProParserInternal::SubDocument, and parseDataZone().

◆ getSubDocument()

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

returns a subdocument corresponding to a blockid

Referenced by pageHeight().

◆ hasTitlePage()

bool MacWrtProParser::hasTitlePage ( ) const
protected

returns true if the document has a title page

Referenced by pageHeight().

◆ init()

void MacWrtProParser::init ( )
protected

inits all internal variables

Referenced by MacWrtProParser(), and MacWrtProParserInternal::SubDocument.

◆ newPage()

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

adds a new page

Referenced by pageHeight().

◆ numColumns()

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

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

Referenced by pageHeight().

◆ pageHeight()

float MacWrtProParser::pageHeight ( ) const
protected

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

Referenced by pageHeight().

◆ parse()

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

virtual function used to parse the input

Implements MWAWTextParser.

Referenced by MacWrtProParserInternal::SubDocument.

◆ 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 MacWrtProParserInternal::SubDocument, and readTextTokens().

◆ parseTextZone()

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

parse a text zone

Referenced by MacWrtProParserInternal::SubDocument, and 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(), and pageHeight().

◆ readPrintInfo()

bool MacWrtProParser::readPrintInfo ( )
protected

read the print info zone

Referenced by checkHeader(), createZones(), and pageHeight().

◆ 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 MacWrtProParserInternal::SubDocument, and 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 MacWrtProParserInternal::SubDocument, and 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 MacWrtProParserInternal::SubDocument, and 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 pageHeight().

◆ 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 pageHeight(), and sendPictureZone().

◆ sendPictureZone()

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

try to send a picture

Referenced by pageHeight(), and sendText().

◆ sendText()

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

try to send a text

Referenced by pageHeight(), and sendTextZone().

◆ sendTextBoxZone()

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

send a textbox zone

Referenced by pageHeight().

◆ sendTextZone()

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

send a text box

Referenced by pageHeight().

Friends And Related Symbol Documentation

◆ MacWrtProParserInternal::SubDocument

◆ MacWrtProStructures

friend class MacWrtProStructures
friend

Referenced by init(), and MacWrtProStructures.

◆ MacWrtProStructuresListenerState

Member Data Documentation

◆ m_state

◆ m_structures

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

the structures parser

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


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

Generated on Mon Jan 20 2025 00:00:00 for libmwaw by doxygen 1.13.2