WPS4Parser Class Reference

This class parses Works version 2 through 4. More...

#include <WPS4.h>

Inheritance diagram for WPS4Parser:
WPSParser

List of all members.

Public Member Functions

 WPS4Parser (RVNGInputStreamPtr &input, WPSHeaderPtr &header)
 constructor
 ~WPS4Parser ()
 destructor
void parse (librevenge::RVNGTextInterface *documentInterface)
 called by WPSDocument to parse the file
bool checkHeader (WPSHeader *header, bool strict=false)
 checks if the document header is correct (or not)

Protected Member Functions

bool getColor (int id, uint32_t &color) const
 color
void setSizeFile (long sz)
 sets the file size ( filled by WPS4Text )
bool checkFilePosition (long pos)
 return true if the pos is in the file, update the file size if need
void newPage (int number)
 adds a new page
void setListener (shared_ptr< WPSContentListener > listener)
 set the listener
bool createStructures ()
 tries to parse the main zone, ...
bool createOLEStructures ()
 tries to parse the different OLE zones ( except the main zone )
shared_ptr< WPSContentListenercreateListener (librevenge::RVNGTextInterface *interface)
 creates the main listener
float pageHeight () const
 returns the page height, ie. paper size less margin (in inches)
float pageWidth () const
 returns the page width, ie. paper size less margin (in inches)
int numColumns () const
 returns the number of columns
libwps_tools_win::Font::Type getDocumentFontType () const
 returns the document codepage ( if known )
void createDocument (WPSEntry const &entry, libwps::SubDocumentType type)
 creates a document for a comment entry and then send the data
void createNote (WPSEntry const &entry, librevenge::RVNGString const &label)
 creates a document for a footnote entry with label and then send the data
void createTextBox (WPSEntry const &entry, WPSPosition const &pos, librevenge::RVNGPropertyList &extras)
 creates a textbox and then send the data
void send (WPSEntry const &entry, libwps::SubDocumentType type)
 sends text corresponding to the entry to the listener (via WPS4Text)
int readObject (RVNGInputStreamPtr input, WPSEntry const &entry)
 tries to read a picture ( via its WPS4Graph )
void sendObject (Vec2f const &size, int id)
 sends an object with given id ( via its WPS4Graph )
bool findZones ()
 finds the different zones (text, print, ...) and updates nameMultiMap
bool parseEntry (std::string const &name)
 parses an entry
bool readDocDim ()
 tries to read the document dimension
bool readPrnt (WPSEntry const &entry)
 tries to read the printer information
bool readDocWindowsInfo (WPSEntry const &entry)
 reads the additional windows info

Protected Attributes

shared_ptr< WPSContentListenerm_listener
shared_ptr< WPS4Graphm_graphParser
 the graph parser
shared_ptr< WPS4Textm_textParser
 the text parser
shared_ptr
< WPS4ParserInternal::State
m_state
 the internal state

Friends

class WPS4ParserInternal::SubDocument
class WPS4Graph
class WPS4Text

Detailed Description

This class parses Works version 2 through 4.


Constructor & Destructor Documentation

constructor

destructor


Member Function Documentation

bool WPS4Parser::checkFilePosition ( long  pos) [protected]

return true if the pos is in the file, update the file size if need

Referenced by checkHeader(), findZones(), and parseEntry().

bool WPS4Parser::checkHeader ( WPSHeader header,
bool  strict = false 
)

checks if the document header is correct (or not)

Referenced by parse().

void WPS4Parser::createDocument ( WPSEntry const &  entry,
libwps::SubDocumentType  type 
) [protected]

creates a document for a comment entry and then send the data

Note:
actually all bookmarks (comments) are empty

Referenced by WPS4Text::readText().

shared_ptr< WPSContentListener > WPS4Parser::createListener ( librevenge::RVNGTextInterface *  interface) [protected]

creates the main listener

Referenced by parse().

void WPS4Parser::createNote ( WPSEntry const &  entry,
librevenge::RVNGString const &  label 
) [protected]

creates a document for a footnote entry with label and then send the data

Referenced by WPS4Text::readText().

bool WPS4Parser::createOLEStructures ( ) [protected]

tries to parse the different OLE zones ( except the main zone )

Referenced by parse().

bool WPS4Parser::createStructures ( ) [protected]

tries to parse the main zone, ...

Referenced by parse().

void WPS4Parser::createTextBox ( WPSEntry const &  entry,
WPSPosition const &  pos,
librevenge::RVNGPropertyList &  extras 
) [protected]

creates a textbox and then send the data

Referenced by WPS4Text::readText().

bool WPS4Parser::findZones ( ) [protected]

finds the different zones (text, print, ...) and updates nameMultiMap

Referenced by createStructures().

bool WPS4Parser::getColor ( int  id,
uint32_t &  color 
) const [protected]

returns the document codepage ( if known )

void WPS4Parser::newPage ( int  number) [protected]

adds a new page

Referenced by WPS4Text::readText().

int WPS4Parser::numColumns ( ) const [protected]

returns the number of columns

Referenced by WPS4Text::readText().

float WPS4Parser::pageHeight ( ) const [protected]

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

float WPS4Parser::pageWidth ( ) const [protected]

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

void WPS4Parser::parse ( librevenge::RVNGTextInterface *  documentInterface) [virtual]

called by WPSDocument to parse the file

Implements WPSParser.

bool WPS4Parser::parseEntry ( std::string const &  name) [protected]

parses an entry

reads a zone offset and a zone size and checks if this entry is valid

Referenced by findZones(), and WPS4Text::readEntries().

bool WPS4Parser::readDocDim ( ) [protected]

tries to read the document dimension

Referenced by findZones().

bool WPS4Parser::readDocWindowsInfo ( WPSEntry const &  entry) [protected]

reads the additional windows info

Note:
this zone contains many unknown data

Referenced by createStructures().

int WPS4Parser::readObject ( RVNGInputStreamPtr  input,
WPSEntry const &  entry 
) [protected]

tries to read a picture ( via its WPS4Graph )

Note:
returns the object id or -1 if find nothing

Referenced by WPS4Text::objectDataParser().

bool WPS4Parser::readPrnt ( WPSEntry const &  entry) [protected]

tries to read the printer information

Referenced by createStructures().

void WPS4Parser::send ( WPSEntry const &  entry,
libwps::SubDocumentType  type 
) [protected]

sends text corresponding to the entry to the listener (via WPS4Text)

Referenced by WPS4ParserInternal::SubDocument::parse().

void WPS4Parser::sendObject ( Vec2f const &  size,
int  id 
) [protected]

sends an object with given id ( via its WPS4Graph )

The object is sent as a character with given size size

Referenced by WPS4Text::readText().

void WPS4Parser::setListener ( shared_ptr< WPSContentListener listener) [protected]

set the listener

Referenced by parse().

void WPS4Parser::setSizeFile ( long  sz) [protected]

sets the file size ( filled by WPS4Text )

Referenced by WPS4Text::readEntries().


Friends And Related Function Documentation

friend class WPS4Graph [friend]

Referenced by WPS4Parser().

friend class WPS4ParserInternal::SubDocument [friend]
friend class WPS4Text [friend]

Referenced by WPS4Parser().


Member Data Documentation


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