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... | |
| std::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)=delete | |
| MsWks4Text & | operator= (MsWks4Text const &orig)=delete | 
| Friends | |
| class | MsWks4Zone | 
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:
| 
 | protected | 
definition of the plc data parser (low level)
| 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 | 
| 
 | protected | 
callback when a new attribute is found in an FDPP/FDPC entry
| input | defines the input | 
| endPos | the last position in the input | 
| 
 | explicit | 
constructor
| MsWks4Text::~MsWks4Text | ( | ) | 
destructor
| 
 | privatedelete | 
| 
 | protected | 
the default parser (does nothing)
| 
 | protected | 
parses the object position : EOBJ
Referenced by readStructures().
| 
 | 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
| input | the file input | 
| which | set to 0 for paragraphs structures and to 1 for characters structures | 
Referenced by readStructures().
| 
 | 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.
| input | the file input | 
| which | set to 0 for paragraphs structures and to 1 for characters structures | 
Referenced by readStructures().
| 
 | inline | 
sends the data which have not been sent: actually do nothing
| 
 | protected | 
sends to the listener the text which corresponds to noteId
| 
 | protected | 
parses the footnote position : FTNT
Referenced by readStructures().
| 
 | protected | 
function which takes two sorted list of attribute (by text position).
Referenced by readPLC(), and readStructures().
| int MsWks4Text::numPages | ( | ) | const | 
returns the number of pages
| 
 | privatedelete | 
| 
 | protected | 
parses the pagebreak positin entries : PGD
Referenced by readStructures().
| 
 | 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().
| 
 | protected | 
reads a font properties
Referenced by readStructures().
| 
 | protected | 
reads the font names entry : FONT
Referenced by readStructures().
| 
 | protected | 
sends the text which corresponds to footnote id to the listner
| 
 | protected | 
reads a paragraph properties
Referenced by readStructures().
| 
 | protected | 
reads a PLC (Pointer List Composant ?) in zone entry
| 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().
| 
 | inlineprotected | 
reads a PLC (Pointer List Composant ?) in zone entry
| 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().
| 
 | 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, ...
| 
 | protected | 
reads a text section and send it to the listener
Referenced by readFootNote().
| void MsWks4Text::setDefault | ( | MWAWFont & | font | ) | 
sets the default font
| 
 | protected | 
sends a paragraph properties to the listener
Referenced by readText().
| 
 | protected | 
parses the field properties entries : TOKN.
Referenced by readStructures().
| 
 | friend | 
| 
 | protected | 
the main document
Referenced by findFDPStructures(), findFDPStructuresByHand(), readFDP(), readFontNames(), readParagraph(), readPLC(), readStructures(), readText(), and toknDataParser().
| 
 | protected | 
the list of FDPC entries
Referenced by findFDPStructures(), findFDPStructuresByHand(), and readStructures().
| 
 | protected | 
the list of FDPP entries
Referenced by findFDPStructures(), findFDPStructuresByHand(), and readStructures().
| 
 | protected | 
the list of a FOD
Referenced by numPages(), readPLC(), readStructures(), and readText().
| 
 | protected | 
the main parser;
Referenced by MsWks4Text().
| 
 | protected | 
the parser state
Referenced by MsWks4Text(), readFont(), readFontNames(), readFootNote(), readParagraph(), readText(), and setProperty().
| 
 | mutableprotected | 
the internal state
Referenced by eobjDataParser(), ftntDataParser(), MsWks4Text(), numPages(), readFont(), readFontNames(), readFootNote(), readParagraph(), readPLC(), readStructures(), readText(), setDefault(), and setProperty().
| 
 | protected | 
an entry which corresponds to the complete text zone
Referenced by readFDP(), readFootNote(), readPLC(), readStructures(), readText(), and toknDataParser().