This class parses Microsoft Works graph file. More...
#include <LotusGraph.h>
Public Member Functions | |
LotusGraph (LotusParser &parser) | |
constructor | |
~LotusGraph () | |
destructor | |
void | cleanState () |
clean internal state | |
void | setListener (WKSContentListenerPtr &listen) |
sets the listener | |
void | updateState (std::map< int, int > const &zIdToSheetIdMap, std::map< std::string, int > const &nameToChartIdMap) |
update the state (need to be called before sending data) |
Protected Member Functions | |
int | version () const |
return the file version | |
bool | hasGraphics (int sheetId) const |
return true if the sheet sheetId has some graphic | |
void | sendGraphics (int sheetId) |
send the graphics corresponding to a sheetId | |
void | sendZone (LotusGraphInternal::ZonePcList const &zoneList, size_t id, WPSTransformation const &transf) |
try to send a shape: 123 pc | |
void | sendPicture (LotusGraphInternal::ZoneMac const &zone) |
try to send a picture: 123 mac | |
void | sendTextBox (std::shared_ptr< WPSStream > stream, WPSEntry const &entry) |
try to send a textbox content's | |
void | sendTextBoxWK4 (std::shared_ptr< WPSStream > stream, WPSEntry const &entry, bool isButton) |
try to send a textbox content's | |
bool | setChartId (int chartId) |
sets the current chart id(interface with LotusChart) | |
bool | readZoneBegin (std::shared_ptr< WPSStream > stream, long endPos) |
reads a begin graphic zone: 2328 (wk3mac) | |
bool | readZoneData (std::shared_ptr< WPSStream > stream, long endPos, int type) |
reads a graphic zone: 2332, 2346, 2350, 2352, 23f0 (wk3mac) | |
bool | readTextBoxData (std::shared_ptr< WPSStream > stream, long endPos) |
reads a graphic textbox data: 23f0 (wk3mac) | |
bool | readPictureDefinition (std::shared_ptr< WPSStream > stream, long endPos) |
reads a picture definition: 240e (wk3mac) | |
bool | readPictureData (std::shared_ptr< WPSStream > stream, long endPos) |
reads a picture data: 2410 (wk3mac) | |
bool | readFMTPictName (std::shared_ptr< WPSStream > stream) |
try to read the pict filename, ...: b7 (wk3-wk4 pc) | |
bool | readZoneBeginC9 (std::shared_ptr< WPSStream > stream) |
try to read the sheet id: 0xc9 (wk4) | |
bool | readGraphic (std::shared_ptr< WPSStream > stream) |
try to read a graphic: 0xca (wk4) | |
bool | readFrame (std::shared_ptr< WPSStream > stream) |
try to read a graph's frame: 0xcc (wk4) | |
bool | readTextBoxDataD1 (std::shared_ptr< WPSStream > stream) |
reads a graphic textbox data: 0xd1 (wk4) | |
bool | readGraphZone (std::shared_ptr< WPSStream > stream, int zId) |
try to read the graphic zone: 1XXX | |
bool | readGraphDataZone (std::shared_ptr< WPSStream > stream, long endPos) |
try to read the graphic data zone: 010d |
Private Member Functions | |
LotusGraph (LotusGraph const &orig)=delete | |
LotusGraph & | operator= (LotusGraph const &orig)=delete |
Private Attributes | |
std::shared_ptr< WKSContentListener > | m_listener |
LotusParser & | m_mainParser |
the listener (if set) | |
std::shared_ptr< LotusStyleManager > | m_styleManager |
the style manager | |
std::shared_ptr< LotusGraphInternal::State > | m_state |
the internal state |
Friends | |
class | LotusParser |
class | LotusGraphInternal::SubDocument |
This class parses Microsoft Works graph file.
|
explicit |
constructor
Referenced by LotusGraph(), and operator=().
LotusGraph::~LotusGraph | ( | ) |
destructor
|
privatedelete |
void LotusGraph::cleanState | ( | ) |
clean internal state
|
protected |
return true if the sheet sheetId has some graphic
|
privatedelete |
|
protected |
try to read the pict filename, ...: b7 (wk3-wk4 pc)
|
protected |
try to read a graph's frame: 0xcc (wk4)
|
protected |
try to read the graphic data zone: 010d
|
protected |
try to read a graphic: 0xca (wk4)
|
protected |
try to read the graphic zone: 1XXX
|
protected |
reads a picture data: 2410 (wk3mac)
|
protected |
reads a picture definition: 240e (wk3mac)
|
protected |
reads a graphic textbox data: 23f0 (wk3mac)
|
protected |
reads a graphic textbox data: 0xd1 (wk4)
|
protected |
reads a begin graphic zone: 2328 (wk3mac)
|
protected |
try to read the sheet id: 0xc9 (wk4)
|
protected |
reads a graphic zone: 2332, 2346, 2350, 2352, 23f0 (wk3mac)
|
protected |
send the graphics corresponding to a sheetId
|
protected |
try to send a picture: 123 mac
Referenced by sendGraphics().
|
protected |
try to send a textbox content's
|
protected |
try to send a textbox content's
|
protected |
try to send a shape: 123 pc
Referenced by sendGraphics(), and sendZone().
|
protected |
sets the current chart id(interface with LotusChart)
|
inline |
sets the listener
void LotusGraph::updateState | ( | std::map< int, int > const & | zIdToSheetIdMap, |
std::map< std::string, int > const & | nameToChartIdMap ) |
update the state (need to be called before sending data)
\param zIdToSheetIdMap the correspondance between a zone and a sheet: defined in .123 \param nameToChartIdMap the name and the id of each chart's: used to retrieve the correspondance betweeen a graphic's chart and the chart in .wk4
|
protected |
return the file version
Referenced by readFMTPictName(), readGraphDataZone(), and readGraphZone().
|
friend |
|
friend |
Referenced by LotusGraph(), LotusGraphInternal::SubDocument, and LotusParser.
|
private |
Referenced by LotusGraph(), sendGraphics(), sendPicture(), sendTextBox(), sendTextBoxWK4(), sendZone(), and setListener().
|
private |
the listener (if set)
the main parser
Referenced by LotusGraph(), sendGraphics(), sendTextBox(), sendTextBoxWK4(), and version().
|
private |
the internal state
Referenced by cleanState(), hasGraphics(), LotusGraph(), readFMTPictName(), readFrame(), readGraphDataZone(), readGraphic(), readGraphZone(), readPictureData(), readPictureDefinition(), readTextBoxData(), readTextBoxDataD1(), readZoneBegin(), readZoneBeginC9(), readZoneData(), sendGraphics(), setChartId(), updateState(), and version().
|
private |
the style manager
Referenced by LotusGraph(), readGraphic(), sendGraphics(), sendPicture(), sendTextBox(), and sendZone().