LotusChart.h Source File documentation

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
53 class LotusChart
54 {
55 public:
56 friend class LotusParser;
57 friend class LotusChartInternal::Chart;
58
60 explicit LotusChart(LotusParser &parser);
62 void cleanState();
64 void updateState();
66 ~LotusChart();
68 void setListener(WKSContentListenerPtr &listen)
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: */
WKSChart::Position
a cell position
Definition: WKSChart.h:50
LotusChart
This class parses Microsoft Works chart file.
Definition: LotusChart.h:53
WKSContentListener.h
LotusChartInternal::Chart
the chart of a Lotus Pro Dos
Definition: LotusChart.cpp:54
LotusParser
This class parses a wk3,wk4,123 Lotus spreadsheet.
Definition: Lotus.h:72
LotusParser::Link
basic struct used to store link
Definition: Lotus.h:92
LotusChart::setListener
void setListener(WKSContentListenerPtr &listen)
sets the listener
Definition: LotusChart.h:68
WPSGraphicStyle
a structure used to define a picture style
Definition: WPSGraphicStyle.h:37
libwps_internal.h
WKSChart::sendChart
void sendChart(WKSContentListenerPtr &listener, librevenge::RVNGSpreadsheetInterface *interface) const
send the chart to the listener
Definition: WKSChart.cpp:186
LotusChart::m_listener
std::shared_ptr< WKSContentListener > m_listener
Definition: LotusChart.h:132
WKSChart.h
LotusStyleManager
This class parses the Lotus style.
Definition: LotusStyleManager.h:47
Lotus.h
LotusChart::m_styleManager
std::shared_ptr< LotusStyleManager > m_styleManager
the style manager
Definition: LotusChart.h:136
LotusChart::m_state
std::shared_ptr< LotusChartInternal::State > m_state
the internal state
Definition: LotusChart.h:138
WKSChart::operator=
WKSChart & operator=(WKSChart const &orig)=delete
WKSContentListenerPtr
std::shared_ptr< WKSContentListener > WKSContentListenerPtr
shared pointer to WKSContentListener
Definition: libwps_internal.h:114
WPSEntry
basic class to store an entry in a file This contained :
Definition: WPSEntry.h:38
WPSPosition
Class to define the position of an object (textbox, picture, ..) in the document. ...
Definition: WPSPosition.h:39
LotusChartInternal
Definition: LotusChart.cpp:49
WPSDebug.h