MacWrtProParser Class Reference documentation

Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
MacWrtProParser Class Referencefinal

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

`#include <MacWrtProParser.hxx>`

Inheritance diagram for MacWrtProParser:

## 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...
MWAWHeader * | getHeader ()
| returns the header More...
MWAWInputStreamPtr & | getInput ()
| returns the actual input More...
MWAWListenerPtr | getMainListener ()
| returns the main listener More...
MWAWGraphicListenerPtr & | getGraphicListener ()
| returns the graphic listener More...
MWAWPresentationListenerPtr & | getPresentationListener ()
| returns the presentation listener More...
MWAWSpreadsheetListenerPtr & | getSpreadsheetListener ()
| returns the spreadsheet listener More...
MWAWTextListenerPtr & | getTextListener ()
| returns the text listener More...
MWAWFontConverterPtr & | getFontConverter ()
| returns the font converter More...
MWAWFontManagerPtr & | getFontManager ()
| returns the font manager More...
MWAWPageSpan const & | getPageSpan () const
| returns the actual page dimension More...
MWAWPageSpan & | getPageSpan ()
| 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...
MWAWRSRCParserPtr & | getRSRCParser ()
| returns the rsrc parser More...
libmwaw::DebugFile & | ascii ()
| 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< MWAWStream > | getStreamForBlock (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< MWAWSubDocument > | getSubDocument (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::State > | m_state
| the state More...
std::shared_ptr< MacWrtProStructures > | m_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

convert a date in a string (for debugging)

Referenced by MacWrtProStructures::readCharStyles(), readDocHeader(), MacWrtProStructures::readGraphicsList(), and MacWrtProStructures::readStyle().

## ◆ 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

friend class MacWrtProParserInternal::SubDocument
| friend

## ◆ MacWrtProStructures

friend class MacWrtProStructures
| friend

Referenced by init().

## ◆ MacWrtProStructuresListenerState

friend class MacWrtProStructuresListenerState
| friend

## Member Data Documentation

## ◆ m_state

std::shared_ptr<MacWrtProParserInternal::State> MacWrtProParser::m_state
| protected

the state

Referenced by checkHeader(), checkUnparsed(), createDocument(), createZones(), findNumHardBreaks(), getFreeZoneList(), getGraphicIdCalledByToken(), getStreamForBlock(), hasTitlePage(), init(), newPage(), numColumns(), parse(), parseDataZone(), parseTextZone(), readDocHeader(), readTextEntries(), readTextTokens(), sendPictureZone(), and sendTextZone().

## ◆ 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:

- MacWrtProParser.hxx
- MacWrtProParser.cxx