LotusChart.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2 /* libwps
3  * Version: MPL 2.0 / LGPLv2.1+
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * Major Contributor(s):
10  * Copyright (C) 2006, 2007 Andrew Ziem
11  * Copyright (C) 2003-2005 William Lachance (william.lachance@sympatico.ca)
12  * Copyright (C) 2003 Marc Maurer (uwog@uwog.net)
13  *
14  * For minor contributions see the git repository.
15  *
16  * Alternatively, the contents of this file may be used under the terms
17  * of the GNU Lesser General Public License Version 2.1 or later
18  * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
19  * applicable instead of those above.
20  */
21 
22 #ifndef LOTUS_CHART_H
23 #define LOTUS_CHART_H
24 
25 #include <ostream>
26 #include <string>
27 #include <map>
28 #include <vector>
29 
30 #include <librevenge-stream/librevenge-stream.h>
31 
32 #include "libwps_internal.h"
33 
34 #include "WPSDebug.h"
35 #include "WKSChart.h"
36 #include "WKSContentListener.h"
37 
38 #include "Lotus.h"
39 
40 namespace LotusChartInternal
41 {
42 class Chart;
43 struct State;
44 }
45 
46 class LotusStyleManager;
47 class WPSGraphicStyle;
48 
54 {
55 public:
56  friend class LotusParser;
58 
60  explicit LotusChart(LotusParser &parser);
62  void cleanState();
64  void updateState();
66  ~LotusChart();
69  {
70  m_listener = listen;
71  }
72 
73 protected:
75  int version() const;
76 
78  int getNumCharts() const;
80  std::map<std::string,int> getNameToChartIdMap() const;
82  void updateChart(LotusChartInternal::Chart &chart, int id);
84  bool sendCharts();
86  bool sendChart(int cId, WPSPosition const &pos, WPSGraphicStyle const &style);
88  bool sendText(std::shared_ptr<WPSStream> stream, WPSEntry const &entry);
89 
91  bool readChart(std::shared_ptr<WPSStream> stream);
93  bool readChartName(std::shared_ptr<WPSStream> stream);
94 
95  // zone 1b
96 
98  bool readMacHeader(std::shared_ptr<WPSStream> stream, long endPos, int &chartId);
100  bool readMacPlacement(std::shared_ptr<WPSStream> stream, long endPos);
102  bool readMacLegend(std::shared_ptr<WPSStream> stream, long endPos);
104  bool readMacPlotArea(std::shared_ptr<WPSStream> stream, long endPos);
106  bool readMacAxis(std::shared_ptr<WPSStream> stream, long endPos);
108  bool readMacSerie(std::shared_ptr<WPSStream> stream, long endPos);
110  bool readMacFloor(std::shared_ptr<WPSStream> stream, long endPos);
112  bool readMacPosition(std::shared_ptr<WPSStream> stream, long endPos);
113 
115  bool readPlotArea(std::shared_ptr<WPSStream> stream, long endPos);
117  bool readSerie(std::shared_ptr<WPSStream> stream, long endPos);
119  bool readSerieName(std::shared_ptr<WPSStream> stream, long endPos);
121  bool readSerieWidth(std::shared_ptr<WPSStream> stream, long endPos);
123  bool readFontsStyle(std::shared_ptr<WPSStream> stream, long endPos);
125  bool readFramesStyle(std::shared_ptr<WPSStream> stream, long endPos);
126 
128  bool convert(LotusParser::Link const &link, WKSChart::Position(&positions)[2]) const;
129 private:
130  LotusChart(LotusChart const &orig) = delete;
131  LotusChart &operator=(LotusChart const &orig) = delete;
132  std::shared_ptr<WKSContentListener> m_listener;
133  LotusParser &m_mainParser;
136  std::shared_ptr<LotusStyleManager> m_styleManager;
138  std::shared_ptr<LotusChartInternal::State> m_state;
139 };
140 
141 #endif /* WPS4_H */
142 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
a cell position
Definition: WKSChart.h:50
This class parses Microsoft Works chart file.
Definition: LotusChart.h:53
the chart of a Lotus Pro Dos
Definition: LotusChart.cpp:54
This class parses a wk3,wk4,123 Lotus spreadsheet.
Definition: Lotus.h:72
void setListener(WKSContentListenerPtr &listen)
sets the listener
Definition: LotusChart.h:68
a structure used to define a picture style
Definition: WPSGraphicStyle.h:37
void sendChart(WKSContentListenerPtr &listener, librevenge::RVNGSpreadsheetInterface *interface) const
send the chart to the listener
Definition: WKSChart.cpp:186
std::shared_ptr< WKSContentListener > m_listener
Definition: LotusChart.h:132
This class parses the Lotus style.
Definition: LotusStyleManager.h:47
std::shared_ptr< LotusStyleManager > m_styleManager
the style manager
Definition: LotusChart.h:136
std::shared_ptr< LotusChartInternal::State > m_state
the internal state
Definition: LotusChart.h:138
WKSChart & operator=(WKSChart const &orig)=delete
std::shared_ptr< WKSContentListener > WKSContentListenerPtr
shared pointer to WKSContentListener
Definition: libwps_internal.h:114
basic class to store an entry in a file This contained :
Definition: WPSEntry.h:38
Class to define the position of an object (textbox, picture, ..) in the document. ...
Definition: WPSPosition.h:39
Definition: LotusChart.cpp:49

Generated on Mon Feb 11 2019 22:32:02 for libwps by doxygen 1.8.13