- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
MsWks4Text Class Reference

The class which parses text zones in a mac MS Works document v4. More...

`#include <MsWks4Text.hxx>`

## Classes
struct | DataFOD
| structure which retrieves data information which correspond to a text position More...

## Public Member Functions
| MsWks4Text (MsWksDocument &document)
| constructor More...
| ~MsWks4Text ()
| destructor More...
void | setDefault (MWAWFont &font)
| sets the default font More...
int | numPages () const
| returns the number of pages More...
void | flushExtra (MWAWInputStreamPtr)
| sends the data which have not been sent: actually do nothing More...

## Protected Types
typedef bool(MsWks4Text::* | FDPParser) (MWAWInputStreamPtr &input, long endPos, int &id, std::string &mess)
| callback when a new attribute is found in an FDPP/FDPC entry More...
typedef bool(MsWks4Text::* | DataParser) (MWAWInputStreamPtr input, long endPos, long bot, long eot, int id, std::string &mess)
| definition of the plc data parser (low level) More...

## Protected Member Functions
bool | readStructures (MWAWInputStreamPtr input, bool mainOle)
| finds and parses all structures which correspond to the text More...
bool | readText (MWAWInputStreamPtr input, MWAWEntry const &entry, bool mainOle)
| reads a text section and send it to the listener More...
bool | readFootNote (MWAWInputStreamPtr input, int id)
| sends the text which corresponds to footnote id to the listner More...
bool | readPLC (MWAWInputStreamPtr input, MWAWEntry const &entry, std::vector< long > &textPtrs, std::vector< long > &listValues, DataParser parser=&MsWks4Text::defDataParser)
| reads a PLC (Pointer List Composant ?) in zone entry More...
bool | readSimplePLC (MWAWInputStreamPtr &input, MWAWEntry const &entry, std::vector< long > &textPtrs, std::vector< long > &listValues)
| reads a PLC (Pointer List Composant ?) in zone entry More...
bool | defDataParser (MWAWInputStreamPtr input, long endPos, long bot, long eot, int id, std::string &mess)
| the default parser (does nothing) More...
bool | readFontNames (MWAWInputStreamPtr input, MWAWEntry const &entry)
| reads the font names entry : FONT More...
bool | readFont (MWAWInputStreamPtr &input, long endPos, int &id, std::string &mess)
| reads a font properties More...
void | setProperty (MsWks4TextInternal::Paragraph const &tabs)
| sends a paragraph properties to the listener More...
bool | readParagraph (MWAWInputStreamPtr &input, long endPos, int &id, std::string &mess)
| reads a paragraph properties More...
bool | ftntDataParser (MWAWInputStreamPtr input, long endPos, long bot, long eot, int id, std::string &mess)
| parses the footnote position : FTNT More...
bool | eobjDataParser (MWAWInputStreamPtr input, long endPos, long bot, long eot, int id, std::string &mess)
| parses the object position : EOBJ More...
bool | toknDataParser (MWAWInputStreamPtr input, long endPos, long bot, long eot, int id, std::string &mess)
| parses the field properties entries : TOKN. More...
bool | pgdDataParser (MWAWInputStreamPtr input, long endPos, long, long, int id, std::string &mess)
| parses the pagebreak positin entries : PGD More...
void | flushNote (int noteId)
| sends to the listener the text which corresponds to noteId More...
std::vector< DataFOD > | mergeSortedLists (std::vector< DataFOD > const &lst1, std::vector< DataFOD > const &lst2) const
| function which takes two sorted list of attribute (by text position). More...
bool | readFDP (MWAWInputStreamPtr &input, MWAWEntry const &entry, std::vector< DataFOD > &fods, FDPParser parser)
| parses a FDPP or a FDPC entry (which contains a list of ATTR_TEXT/ATTR_PARAG with their definition ) and adds found data in listFODs More...
bool | findFDPStructures (MWAWInputStreamPtr &input, int which)
| Fills the vector of (FDPCs/FDPPs) paragraph/characters strutures. More...
bool | findFDPStructuresByHand (MWAWInputStreamPtr &input, int which)
| Fills the vector of (FDPCs/FDPPs) paragraph/characters strutures, a function to call when the normal ways fails. More...

## Protected Attributes
MWAWParser * | m_mainParser
| the main parser; More...
MWAWParserStatePtr | m_parserState
| the parser state More...
MsWksDocument & | m_document
| the main document More...
MWAWEntry | m_textPositions
| an entry which corresponds to the complete text zone More...
shared_ptr< MsWks4TextInternal::State > | m_state
| the internal state More...
std::vector< DataFOD > | m_FODsList
| the list of a FOD More...
std::vector< MWAWEntry const * > | m_FDPCs
| the list of FDPC entries More...
std::vector< MWAWEntry const * > | m_FDPPs
| the list of FDPP entries More...

## Private Member Functions
| MsWks4Text (MsWks4Text const &orig)
MsWks4Text & | operator= (MsWks4Text const &orig)

## Friends
class | MsWks4Zone

## Detailed Description

The class which parses text zones in a mac MS Works document v4.

This class must be associated with a MsWks4Zone. It reads the entries:

- TEXT : the text strings
- FONT : the fonts name
- FDPC, BTEC : the fonts properties
- FDPP, BTEP : the paragraph properties
- FTNT : the footnote definition
- PGD : the page break (only parsed)
- TOKN : the field properties (pagenumber, date, ...)

## Member Typedef Documentation

typedef bool(MsWks4Text::* MsWks4Text::DataParser) (MWAWInputStreamPtr input, long endPos, long bot, long eot, int id, std::string &mess)
| protected

definition of the plc data parser (low level)

Parameters

  endPos | the end of the properties' definition,
  bot | defined the begin of the text zone corresponding to these properties
  eot | defined the end of the text zone corresponding to these properties
  id | the number of this properties
  mess | a string which can be filled to indicate unparsed data

typedef bool(MsWks4Text::* MsWks4Text::FDPParser) (MWAWInputStreamPtr &input, long endPos, int &id, std::string &mess)
| protected

callback when a new attribute is found in an FDPP/FDPC entry

Parameters

  input | defines the input
  endPos | the last position in the input

Returns
  true and filled id if this attribute can be parsed

Note
  mess can be filled to add a message in debugFile

## Constructor & Destructor Documentation

MsWks4Text::MsWks4Text | ( | MsWksDocument & | document | ) |

constructor

MsWks4Text::~MsWks4Text | ( |  | ) |

destructor

MsWks4Text::MsWks4Text | ( | MsWks4Text const & | orig | ) |
| private

## Member Function Documentation

bool MsWks4Text::defDataParser | ( | MWAWInputStreamPtr | input,
|  | long | endPos,
|  | long | bot,
|  | long | eot,
|  | int | id,
|  | std::string & | mess
| ) |  |
| protected

the default parser (does nothing)

bool MsWks4Text::eobjDataParser | ( | MWAWInputStreamPtr | input,
|  | long | endPos,
|  | long | bot,
|  | long | eot,
|  | int | id,
|  | std::string & | mess
| ) |  |
| protected

parses the object position : EOBJ

Referenced by readStructures().

bool MsWks4Text::findFDPStructures | ( | MWAWInputStreamPtr & | input,
|  | int | which
| ) |  |
| protected

Fills the vector of (FDPCs/FDPPs) paragraph/characters strutures.

Uses the entry BTEC/BTEP : the normal ways, and calls readSimplePLC on each entry to check that the parsing is correct

Parameters

  input | the file input
  which | set to 0 for paragraphs structures and to 1 for characters structures

Referenced by readStructures().

bool MsWks4Text::findFDPStructuresByHand | ( | MWAWInputStreamPtr & | input,
|  | int | which
| ) |  |
| protected

Fills the vector of (FDPCs/FDPPs) paragraph/characters strutures, a function to call when the normal ways fails.

Uses all entries FDPCs/FDPPs and calls readSimplePLC on each entry to check that the parsing is correct.

Parameters

  input | the file input
  which | set to 0 for paragraphs structures and to 1 for characters structures

Referenced by readStructures().

void MsWks4Text::flushExtra | ( | MWAWInputStreamPtr |  | ) |
| inline

sends the data which have not been sent: actually do nothing

void MsWks4Text::flushNote | ( | int | noteId | ) |
| protected

sends to the listener the text which corresponds to noteId

bool MsWks4Text::ftntDataParser | ( | MWAWInputStreamPtr | input,
|  | long | endPos,
|  | long | bot,
|  | long | eot,
|  | int | id,
|  | std::string & | mess
| ) |  |
| protected

parses the footnote position : FTNT

Referenced by readStructures().

std::vector< MsWks4Text::DataFOD > MsWks4Text::mergeSortedLists | ( | std::vector< DataFOD > const & | lst1,
|  | std::vector< DataFOD > const & | lst2
| ) |  | const
| protected

function which takes two sorted list of attribute (by text position).

Returns
  a list of attribute

Referenced by readPLC(), and readStructures().

int MsWks4Text::numPages | ( |  | ) | const

returns the number of pages

MsWks4Text& MsWks4Text::operator= | ( | MsWks4Text const & | orig | ) |
| private

bool MsWks4Text::pgdDataParser | ( | MWAWInputStreamPtr | input,
|  | long | endPos,
|  | long | ,
|  | long | ,
|  | int | id,
|  | std::string & | mess
| ) |  |
| protected

parses the pagebreak positin entries : PGD

Note
  the read data are not used to create the document

Referenced by readStructures().

bool MsWks4Text::readFDP | ( | MWAWInputStreamPtr & | input,
|  | MWAWEntry const & | entry,
|  | std::vector< DataFOD > & | fods,
|  | MsWks4Text::FDPParser | parser
| ) |  |
| protected

parses a FDPP or a FDPC entry (which contains a list of ATTR_TEXT/ATTR_PARAG with their definition ) and adds found data in listFODs

Referenced by readStructures().

bool MsWks4Text::readFont | ( | MWAWInputStreamPtr & | input,
|  | long | endPos,
|  | int & | id,
|  | std::string & | mess
| ) |  |
| protected

reads a font properties

Referenced by readStructures().

bool MsWks4Text::readFontNames | ( | MWAWInputStreamPtr | input,
|  | MWAWEntry const & | entry
| ) |  |
| protected

reads the font names entry : FONT

Referenced by readStructures().

bool MsWks4Text::readFootNote | ( | MWAWInputStreamPtr | input,
|  | int | id
| ) |  |
| protected

sends the text which corresponds to footnote id to the listner

bool MsWks4Text::readParagraph | ( | MWAWInputStreamPtr & | input,
|  | long | endPos,
|  | int & | id,
|  | std::string & | mess
| ) |  |
| protected

reads a paragraph properties

Referenced by readStructures().

bool MsWks4Text::readPLC | ( | MWAWInputStreamPtr | input,
|  | MWAWEntry const & | entry,
|  | std::vector< long > & | textPtrs,
|  | std::vector< long > & | listValues,
|  | MsWks4Text::DataParser | parser = `&MsWks4Text::defDataParser`
| ) |  |
| protected

reads a PLC (Pointer List Composant ?) in zone entry

Parameters

  input | the file's input
  entry | the zone which contains the plc
  textPtrs | lists of offset in text zones where properties changes
  listValues | lists of properties values (filled only if values are simple types: int, ..)
  parser | the parser to use to read the values

Referenced by readSimplePLC(), and readStructures().

bool MsWks4Text::readSimplePLC | ( | MWAWInputStreamPtr & | input,
|  | MWAWEntry const & | entry,
|  | std::vector< long > & | textPtrs,
|  | std::vector< long > & | listValues
| ) |  |
| inline protected

reads a PLC (Pointer List Composant ?) in zone entry

Parameters

  input | the file's input
  entry | the zone which contains the plc
  textPtrs | lists of offset in text zones where properties changes
  listValues | lists of properties values (filled only if values are simple types: int, ..)

Referenced by findFDPStructures().

bool MsWks4Text::readStructures | ( | MWAWInputStreamPtr | input,
|  | bool | mainOle
| ) |  |
| protected

finds and parses all structures which correspond to the text

More precisely the TEXT, FONT, FDPC/FDPP, BTEC/BTEP, FTNT, PGD, TOKN entries

eobj and RBIL seems linked ( and associate with a 0xc6 symbol in file) RBIL: can store a chart, a calendar, ...

bool MsWks4Text::readText | ( | MWAWInputStreamPtr | input,
|  | MWAWEntry const & | entry,
|  | bool | mainOle
| ) |  |
| protected

reads a text section and send it to the listener

Referenced by readFootNote().

void MsWks4Text::setDefault | ( | MWAWFont & | font | ) |

sets the default font

void MsWks4Text::setProperty | ( | MsWks4TextInternal::Paragraph const & | tabs | ) |
| protected

sends a paragraph properties to the listener

Referenced by readText().

bool MsWks4Text::toknDataParser | ( | MWAWInputStreamPtr | input,
|  | long | endPos,
|  | long | bot,
|  | long | eot,
|  | int | id,
|  | std::string & | mess
| ) |  |
| protected

parses the field properties entries : TOKN.

Note
  the read data are not used to create the document

Referenced by readStructures().

## Friends And Related Function Documentation

friend class MsWks4Zone
| friend

## Member Data Documentation

MsWksDocument& MsWks4Text::m_document
| protected

the main document

Referenced by findFDPStructures(), findFDPStructuresByHand(), readFDP(), readFontNames(), readParagraph(), readPLC(), readStructures(), readText(), and toknDataParser().

std::vector<MWAWEntry const *> MsWks4Text::m_FDPCs
| protected

the list of FDPC entries

Referenced by findFDPStructures(), findFDPStructuresByHand(), and readStructures().

std::vector<MWAWEntry const *> MsWks4Text::m_FDPPs
| protected

the list of FDPP entries

Referenced by findFDPStructures(), findFDPStructuresByHand(), and readStructures().

std::vector<DataFOD> MsWks4Text::m_FODsList
| protected

the list of a FOD

Referenced by numPages(), readPLC(), readStructures(), and readText().

MWAWParser* MsWks4Text::m_mainParser
| protected

the main parser;

Referenced by MsWks4Text().

MWAWParserStatePtr MsWks4Text::m_parserState
| protected

the parser state

Referenced by MsWks4Text(), readFont(), readFontNames(), readFootNote(), readParagraph(), readText(), and setProperty().

shared_ptr<MsWks4TextInternal::State> MsWks4Text::m_state
| mutable protected

the internal state

Referenced by eobjDataParser(), ftntDataParser(), MsWks4Text(), numPages(), readFont(), readFontNames(), readFootNote(), readParagraph(), readPLC(), readStructures(), readText(), setDefault(), and setProperty().

MWAWEntry MsWks4Text::m_textPositions
| protected

an entry which corresponds to the complete text zone

Referenced by readFDP(), readFootNote(), readPLC(), readStructures(), readText(), and toknDataParser().

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

- MsWks4Text.hxx
- MsWks4Text.cxx