libmspub::MSPUBParser2k Class Reference

#include <MSPUBParser2k.h>

Inheritance diagram for libmspub::MSPUBParser2k:
libmspub::MSPUBParser libmspub::MSPUBParser97

Public Member Functions

 MSPUBParser2k (librevenge::RVNGInputStream *input, MSPUBCollector *collector)
bool parse () override
 ~MSPUBParser2k () override
Public Member Functions inherited from libmspub::MSPUBParser
 MSPUBParser (librevenge::RVNGInputStream *input, MSPUBCollector *collector)
virtual ~MSPUBParser ()

Protected Member Functions

bool parse2kShapeChunk (const ContentChunkReference &chunk, librevenge::RVNGInputStream *input, boost::optional< unsigned > pageSeqNum=boost::optional< unsigned >(), bool topLevelCall=true)
void parseShapeLine (librevenge::RVNGInputStream *input, bool isRectangle, unsigned offset, unsigned seqNum)
void parseShapeType (librevenge::RVNGInputStream *input, unsigned seqNum, unsigned chunkOffset, bool &isGroup, bool &isLine, bool &isImage, bool &isRectangle, unsigned &flagsOffset)
void parseShapeRotation (librevenge::RVNGInputStream *input, bool isGroup, bool isLine, unsigned seqNum, unsigned chunkOffset)
void parseShapeFlips (librevenge::RVNGInputStream *input, unsigned flagsOffset, unsigned seqNum, unsigned chunkOffset)
void parseShapeCoordinates (librevenge::RVNGInputStream *input, unsigned seqNum, unsigned chunkOffset)
bool parseGroup (librevenge::RVNGInputStream *input, unsigned seqNum, unsigned page)
void assignShapeImgIndex (unsigned seqNum)
void parseShapeFill (librevenge::RVNGInputStream *input, unsigned seqNum, unsigned chunkOffset)
bool parseContents (librevenge::RVNGInputStream *input) override
virtual bool parseDocument (librevenge::RVNGInputStream *input)
unsigned getColorIndexByQuillEntry (unsigned entry) override
virtual int translateCoordinateIfNecessary (int coordinate) const
virtual unsigned getFirstLineOffset () const
virtual unsigned getSecondLineOffset () const
virtual unsigned getShapeFillTypeOffset () const
virtual unsigned getShapeFillColorOffset () const
virtual unsigned short getTextMarker () const
virtual unsigned getTextIdOffset () const
virtual void parseContentsTextIfNecessary (librevenge::RVNGInputStream *input)
Protected Member Functions inherited from libmspub::MSPUBParser
 MSPUBParser ()
 MSPUBParser (const MSPUBParser &)
MSPUBParseroperator= (const MSPUBParser &)
bool parseMetaData ()
bool parseQuill (librevenge::RVNGInputStream *input)
bool parseEscher (librevenge::RVNGInputStream *input)
bool parseEscherDelay (librevenge::RVNGInputStream *input)
MSPUBBlockInfo parseBlock (librevenge::RVNGInputStream *input, bool skipHierarchicalData=false)
EscherContainerInfo parseEscherContainer (librevenge::RVNGInputStream *input)
bool parseContentChunkReference (librevenge::RVNGInputStream *input, MSPUBBlockInfo block)
QuillChunkReference parseQuillChunkReference (librevenge::RVNGInputStream *input)
bool parseDocumentChunk (librevenge::RVNGInputStream *input, const ContentChunkReference &chunk)
bool parsePageChunk (librevenge::RVNGInputStream *input, const ContentChunkReference &chunk)
bool parsePaletteChunk (librevenge::RVNGInputStream *input, const ContentChunkReference &chunk)
bool parsePageShapeList (librevenge::RVNGInputStream *input, MSPUBBlockInfo block, unsigned pageSeqNum)
bool parseShape (librevenge::RVNGInputStream *input, const ContentChunkReference &chunk)
bool parseBorderArtChunk (librevenge::RVNGInputStream *input, const ContentChunkReference &chunk)
bool parseFontChunk (librevenge::RVNGInputStream *input, const ContentChunkReference &chunk)
void parsePaletteEntry (librevenge::RVNGInputStream *input, MSPUBBlockInfo block)
void parseColors (librevenge::RVNGInputStream *input, const QuillChunkReference &chunk)
void parseFonts (librevenge::RVNGInputStream *input, const QuillChunkReference &chunk)
void parseDefaultStyle (librevenge::RVNGInputStream *input, const QuillChunkReference &chunk)
void parseShapeGroup (librevenge::RVNGInputStream *input, const EscherContainerInfo &spgr, Coordinate parentCoordinateSystem, Coordinate parentGroupAbsoluteCoord)
void skipBlock (librevenge::RVNGInputStream *input, MSPUBBlockInfo block)
void parseEscherShape (librevenge::RVNGInputStream *input, const EscherContainerInfo &sp, Coordinate &parentCoordinateSystem, Coordinate &parentGroupAbsoluteCoord)
bool findEscherContainer (librevenge::RVNGInputStream *input, const EscherContainerInfo &parent, EscherContainerInfo &out, unsigned short type)
bool findEscherContainerWithTypeInSet (librevenge::RVNGInputStream *input, const EscherContainerInfo &parent, EscherContainerInfo &out, std::set< unsigned short > types)
std::map< unsigned short, unsigned > extractEscherValues (librevenge::RVNGInputStream *input, const EscherContainerInfo &record)
FOPTValues extractFOPTValues (librevenge::RVNGInputStream *input, const libmspub::EscherContainerInfo &record)
std::vector< TextSpanReferenceparseCharacterStyles (librevenge::RVNGInputStream *input, const QuillChunkReference &chunk)
std::vector< TextParagraphReferenceparseParagraphStyles (librevenge::RVNGInputStream *input, const QuillChunkReference &chunk)
std::vector< CalculationparseGuides (const std::vector< unsigned char > &guideData)
std::vector< VertexparseVertices (const std::vector< unsigned char > &vertexData)
std::vector< unsigned > parseTableCellDefinitions (librevenge::RVNGInputStream *input, const QuillChunkReference &chunk)
std::vector< unsigned short > parseSegments (const std::vector< unsigned char > &segmentData)
DynamicCustomShape getDynamicCustomShape (const std::vector< unsigned char > &vertexData, const std::vector< unsigned char > &segmentData, const std::vector< unsigned char > &guideData, unsigned geoWidth, unsigned geoHeight)
int getColorIndex (librevenge::RVNGInputStream *input, const MSPUBBlockInfo &info)
unsigned getFontIndex (librevenge::RVNGInputStream *input, const MSPUBBlockInfo &info)
CharacterStyle getCharacterStyle (librevenge::RVNGInputStream *input)
ParagraphStyle getParagraphStyle (librevenge::RVNGInputStream *input)
std::shared_ptr< FillgetNewFill (const std::map< unsigned short, unsigned > &foptProperties, bool &skipIfNotBg, std::map< unsigned short, std::vector< unsigned char > > &foptValues)

Static Protected Member Functions

static Color getColorBy2kIndex (unsigned char index)
static Color getColorBy2kHex (unsigned hex)
static unsigned translate2kColorReference (unsigned ref2k)
static PageType getPageTypeBySeqNum (unsigned seqNum)
Static Protected Member Functions inherited from libmspub::MSPUBParser
static short getBlockDataLength (unsigned type)
static bool isBlockDataString (unsigned type)
static PageType getPageTypeBySeqNum (unsigned seqNum)
static unsigned getEscherElementTailLength (unsigned short type)
static unsigned getEscherElementAdditionalHeaderLength (unsigned short type)
static ImgType imgTypeByBlipType (unsigned short type)
static int getStartOffset (ImgType type, unsigned short initial)
static bool lineExistsByFlagPointer (unsigned *flags, unsigned *geomFlags=nullptr)

Static Private Member Functions

static ShapeType getShapeType (unsigned char shapeSpecifier)

Private Attributes

std::vector< unsigned > m_imageDataChunkIndices
std::vector< unsigned > m_quillColorEntries
std::map< unsigned, std::vector< unsigned > > m_chunkChildIndicesById
std::deque< unsigned > m_chunksBeingRead

Additional Inherited Members

Protected Types inherited from libmspub::MSPUBParser
typedef std::vector< ContentChunkReference >::const_iterator ccr_iterator_t
Protected Attributes inherited from libmspub::MSPUBParser
librevenge::RVNGInputStream * m_input
unsigned m_length
MSPUBCollectorm_collector
std::vector< MSPUBBlockInfom_blockInfo
std::vector< ContentChunkReferencem_contentChunks
std::vector< unsigned > m_cellsChunkIndices
std::vector< unsigned > m_pageChunkIndices
std::vector< unsigned > m_shapeChunkIndices
std::vector< unsigned > m_paletteChunkIndices
std::vector< unsigned > m_borderArtChunkIndices
std::vector< unsigned > m_fontChunkIndices
std::vector< unsigned > m_unknownChunkIndices
boost::optional< unsigned > m_documentChunkIndex
int m_lastSeenSeqNum
unsigned m_lastAddedImage
std::vector< int > m_alternateShapeSeqNums
std::vector< int > m_escherDelayIndices

Constructor & Destructor Documentation

◆ MSPUBParser2k()

libmspub::MSPUBParser2k::MSPUBParser2k ( librevenge::RVNGInputStream * input,
MSPUBCollector * collector )
explicit

◆ ~MSPUBParser2k()

libmspub::MSPUBParser2k::~MSPUBParser2k ( )
override

Member Function Documentation

◆ assignShapeImgIndex()

void libmspub::MSPUBParser2k::assignShapeImgIndex ( unsigned seqNum)
protected

Referenced by parse2kShapeChunk().

◆ getColorBy2kHex()

Color libmspub::MSPUBParser2k::getColorBy2kHex ( unsigned hex)
staticprotected

◆ getColorBy2kIndex()

Color libmspub::MSPUBParser2k::getColorBy2kIndex ( unsigned char index)
staticprotected

Referenced by getColorBy2kHex().

◆ getColorIndexByQuillEntry()

unsigned libmspub::MSPUBParser2k::getColorIndexByQuillEntry ( unsigned entry)
overrideprotectedvirtual

◆ getFirstLineOffset()

unsigned libmspub::MSPUBParser2k::getFirstLineOffset ( ) const
protectedvirtual

Reimplemented in libmspub::MSPUBParser97.

Referenced by parseShapeLine().

◆ getPageTypeBySeqNum()

PageType libmspub::MSPUBParser2k::getPageTypeBySeqNum ( unsigned seqNum)
staticprotected

Referenced by parse2kShapeChunk().

◆ getSecondLineOffset()

unsigned libmspub::MSPUBParser2k::getSecondLineOffset ( ) const
protectedvirtual

Reimplemented in libmspub::MSPUBParser97.

Referenced by parseShapeLine().

◆ getShapeFillColorOffset()

unsigned libmspub::MSPUBParser2k::getShapeFillColorOffset ( ) const
protectedvirtual

Reimplemented in libmspub::MSPUBParser97.

Referenced by parseShapeFill().

◆ getShapeFillTypeOffset()

unsigned libmspub::MSPUBParser2k::getShapeFillTypeOffset ( ) const
protectedvirtual

Reimplemented in libmspub::MSPUBParser97.

Referenced by parseShapeFill().

◆ getShapeType()

ShapeType libmspub::MSPUBParser2k::getShapeType ( unsigned char shapeSpecifier)
staticprivate

Referenced by parseShapeType().

◆ getTextIdOffset()

unsigned libmspub::MSPUBParser2k::getTextIdOffset ( ) const
protectedvirtual

Reimplemented in libmspub::MSPUBParser97.

Referenced by parseShapeType().

◆ getTextMarker()

unsigned short libmspub::MSPUBParser2k::getTextMarker ( ) const
protectedvirtual

Reimplemented in libmspub::MSPUBParser97.

Referenced by parseShapeType().

◆ parse()

bool libmspub::MSPUBParser2k::parse ( )
overridevirtual

Reimplemented from libmspub::MSPUBParser.

Reimplemented in libmspub::MSPUBParser97.

◆ parse2kShapeChunk()

bool libmspub::MSPUBParser2k::parse2kShapeChunk ( const ContentChunkReference & chunk,
librevenge::RVNGInputStream * input,
boost::optional< unsigned > pageSeqNum = boost::optional<unsigned>(),
bool topLevelCall = true )
protected

Referenced by parseContents(), and parseGroup().

◆ parseContents()

bool libmspub::MSPUBParser2k::parseContents ( librevenge::RVNGInputStream * input)
overrideprotectedvirtual

Reimplemented from libmspub::MSPUBParser.

Referenced by parse(), and libmspub::MSPUBParser97::parse().

◆ parseContentsTextIfNecessary()

void libmspub::MSPUBParser2k::parseContentsTextIfNecessary ( librevenge::RVNGInputStream * input)
protectedvirtual

Reimplemented in libmspub::MSPUBParser97.

Referenced by parseContents().

◆ parseDocument()

bool libmspub::MSPUBParser2k::parseDocument ( librevenge::RVNGInputStream * input)
protectedvirtual

Reimplemented in libmspub::MSPUBParser97.

Referenced by parseContents().

◆ parseGroup()

bool libmspub::MSPUBParser2k::parseGroup ( librevenge::RVNGInputStream * input,
unsigned seqNum,
unsigned page )
protected

Referenced by parse2kShapeChunk().

◆ parseShapeCoordinates()

void libmspub::MSPUBParser2k::parseShapeCoordinates ( librevenge::RVNGInputStream * input,
unsigned seqNum,
unsigned chunkOffset )
protected

Referenced by parse2kShapeChunk().

◆ parseShapeFill()

void libmspub::MSPUBParser2k::parseShapeFill ( librevenge::RVNGInputStream * input,
unsigned seqNum,
unsigned chunkOffset )
protected

Referenced by parse2kShapeChunk().

◆ parseShapeFlips()

void libmspub::MSPUBParser2k::parseShapeFlips ( librevenge::RVNGInputStream * input,
unsigned flagsOffset,
unsigned seqNum,
unsigned chunkOffset )
protected

Referenced by parse2kShapeChunk().

◆ parseShapeLine()

void libmspub::MSPUBParser2k::parseShapeLine ( librevenge::RVNGInputStream * input,
bool isRectangle,
unsigned offset,
unsigned seqNum )
protected

Referenced by parse2kShapeChunk().

◆ parseShapeRotation()

void libmspub::MSPUBParser2k::parseShapeRotation ( librevenge::RVNGInputStream * input,
bool isGroup,
bool isLine,
unsigned seqNum,
unsigned chunkOffset )
protected

Referenced by parse2kShapeChunk().

◆ parseShapeType()

void libmspub::MSPUBParser2k::parseShapeType ( librevenge::RVNGInputStream * input,
unsigned seqNum,
unsigned chunkOffset,
bool & isGroup,
bool & isLine,
bool & isImage,
bool & isRectangle,
unsigned & flagsOffset )
protected

Referenced by parse2kShapeChunk().

◆ translate2kColorReference()

unsigned libmspub::MSPUBParser2k::translate2kColorReference ( unsigned ref2k)
staticprotected

◆ translateCoordinateIfNecessary()

int libmspub::MSPUBParser2k::translateCoordinateIfNecessary ( int coordinate) const
protectedvirtual

Reimplemented in libmspub::MSPUBParser97.

Referenced by parseShapeCoordinates().

Member Data Documentation

◆ m_chunkChildIndicesById

std::map<unsigned, std::vector<unsigned> > libmspub::MSPUBParser2k::m_chunkChildIndicesById
private

◆ m_chunksBeingRead

std::deque<unsigned> libmspub::MSPUBParser2k::m_chunksBeingRead
private

Referenced by MSPUBParser2k(), and parse2kShapeChunk().

◆ m_imageDataChunkIndices

std::vector<unsigned> libmspub::MSPUBParser2k::m_imageDataChunkIndices
private

◆ m_quillColorEntries

std::vector<unsigned> libmspub::MSPUBParser2k::m_quillColorEntries
private

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

Generated for libmspub by doxygen 1.14.0