Quattro9Graph.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 QUATTRO9_GRAPH_H
23#define QUATTRO9_GRAPH_H
24
25#include <ostream>
26#include <map>
27#include <vector>
28
29#include <librevenge-stream/librevenge-stream.h>
30
31#include "libwps_internal.h"
32
33#include "WPSDebug.h"
34#include "WKSContentListener.h"
35#include "WPSGraphicStyle.h"
36
38{
39struct Graph;
40struct Shape;
41struct State;
42
43class SubDocument;
44}
45
46class Quattro9Parser;
47
53{
54public:
55 friend class Quattro9Parser;
57
59 explicit Quattro9Graph(Quattro9Parser &parser);
64 {
65 m_listener = listen;
66 }
67
68 void cleanState();
70 void updateState();
71
73 bool getColor(int id, WPSColor &color) const;
75 bool getPattern(int id, WPSGraphicStyle::Pattern &pattern) const;
76protected:
78 int version() const;
80 void storeObjects(std::map<librevenge::RVNGString,WPSEmbeddedObject> const &nameToObjectMap);
81
83 bool sendPageGraphics(int sheetId) const;
85 bool sendShape(Quattro9GraphInternal::Graph const &graph, int sheetId) const;
87 bool sendShape(Quattro9GraphInternal::Shape const &shape, WPSTransformation const &transf) const;
89 bool sendShape(WPSGraphicShape const &shape, WPSGraphicStyle const &style, WPSTransformation const &transf) const;
91 bool sendOLE(Quattro9GraphInternal::Graph const &graph, int sheetId) const;
93 bool sendTextbox(Quattro9GraphInternal::Graph const &graph, int sheetId) const;
94
95 //
96 // low level
97 //
98
100 bool readBeginEnd(std::shared_ptr<WPSStream> stream, int sheetId);
102 bool readBeginEndZone(std::shared_ptr<WPSStream> const &stream);
104 bool readGraphHeader(std::shared_ptr<WPSStream> const &stream);
106 static bool readFrameStyle(std::shared_ptr<WPSStream> const &stream);
108 static bool readFramePattern(std::shared_ptr<WPSStream> const &stream);
110 static bool readFrameHeader(std::shared_ptr<WPSStream> const &stream);
112 bool readOLEName(std::shared_ptr<WPSStream> const &stream);
114 bool readShape(std::shared_ptr<WPSStream> const &stream);
116 bool readShapeRec(std::shared_ptr<WPSStream> const &stream, long endPos, Quattro9GraphInternal::Shape &shape, WPSGraphicStyle const &actStyle);
117
119 bool readTextboxStyle(std::shared_ptr<WPSStream> const &stream);
121 bool readTextboxText(std::shared_ptr<WPSStream> const &stream);
122
123private:
124 Quattro9Graph(Quattro9Graph const &orig) = delete;
125 Quattro9Graph &operator=(Quattro9Graph const &orig) = delete;
126 std::shared_ptr<WKSContentListener> m_listener;
130 std::shared_ptr<Quattro9GraphInternal::State> m_state;
131};
132
133#endif /* QUATTRO9_GRAPH_H */
134/* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
Internal: the subdocument of a Quattro9GraphInternal.
Definition Quattro9Graph.cpp:473
bool getColor(int id, WPSColor &color) const
returns the color corresponding to an id
Definition Quattro9Graph.cpp:567
bool getPattern(int id, WPSGraphicStyle::Pattern &pattern) const
returns the pattern corresponding to a pattern id between 0 and 24
Definition Quattro9Graph.cpp:571
bool readOLEName(std::shared_ptr< WPSStream > const &stream)
try to read the OLE name zone: 21d1
Definition Quattro9Graph.cpp:1498
void updateState()
update the state (need to be called before sending data)
Definition Quattro9Graph.cpp:551
void cleanState()
clean internal state
Definition Quattro9Graph.cpp:546
bool readShapeRec(std::shared_ptr< WPSStream > const &stream, long endPos, Quattro9GraphInternal::Shape &shape, WPSGraphicStyle const &actStyle)
try to read a shape sub zone: 2221, 23d1
Definition Quattro9Graph.cpp:744
Quattro9Graph(Quattro9Graph const &orig)=delete
bool sendOLE(Quattro9GraphInternal::Graph const &graph, int sheetId) const
send a OLE
Definition Quattro9Graph.cpp:1673
void setListener(WKSContentListenerPtr &listen)
sets the listener
Definition Quattro9Graph.h:63
bool sendShape(Quattro9GraphInternal::Graph const &graph, int sheetId) const
send a shape
Definition Quattro9Graph.cpp:1610
static bool readFrameHeader(std::shared_ptr< WPSStream > const &stream)
try to read a frame header zone: 2171
Definition Quattro9Graph.cpp:1232
bool readBeginEndZone(std::shared_ptr< WPSStream > const &stream)
try to read a begin/end zone: 2051
Definition Quattro9Graph.cpp:617
std::shared_ptr< WKSContentListener > m_listener
Definition Quattro9Graph.h:126
int version() const
return the file version
Definition Quattro9Graph.cpp:555
~Quattro9Graph()
destructor
Definition Quattro9Graph.cpp:542
static bool readFramePattern(std::shared_ptr< WPSStream > const &stream)
try to read a frame style zone: 2141
Definition Quattro9Graph.cpp:1276
bool sendTextbox(Quattro9GraphInternal::Graph const &graph, int sheetId) const
send a textbox
Definition Quattro9Graph.cpp:1697
void storeObjects(std::map< librevenge::RVNGString, WPSEmbeddedObject > const &nameToObjectMap)
stores the OLE objets
Definition Quattro9Graph.cpp:562
bool readTextboxText(std::shared_ptr< WPSStream > const &stream)
try to read a textbox text zone: 2372
Definition Quattro9Graph.cpp:1554
std::shared_ptr< Quattro9GraphInternal::State > m_state
the internal state
Definition Quattro9Graph.h:130
friend class Quattro9Parser
Definition Quattro9Graph.h:55
Quattro9Graph & operator=(Quattro9Graph const &orig)=delete
bool readTextboxStyle(std::shared_ptr< WPSStream > const &stream)
try to read a textbox style zone: 2371
Definition Quattro9Graph.cpp:1365
Quattro9Parser & m_mainParser
the listener (if set)
Definition Quattro9Graph.h:128
bool readShape(std::shared_ptr< WPSStream > const &stream)
try to read a shape zone: 2221, 23d1
Definition Quattro9Graph.cpp:708
static bool readFrameStyle(std::shared_ptr< WPSStream > const &stream)
try to read a frame style zone: 2131
Definition Quattro9Graph.cpp:1311
bool readBeginEnd(std::shared_ptr< WPSStream > stream, int sheetId)
read the begin/end graph zone: 1401/1402
Definition Quattro9Graph.cpp:582
bool readGraphHeader(std::shared_ptr< WPSStream > const &stream)
try to read a graph header zone: 2051
Definition Quattro9Graph.cpp:659
Quattro9Graph(Quattro9Parser &parser)
constructor
Definition Quattro9Graph.cpp:535
bool sendPageGraphics(int sheetId) const
send the page graphic corresponding to a sheet
Definition Quattro9Graph.cpp:1716
This class parses Quattro Pro WP spreadsheet: .qpw.
Definition Quattro9.h:91
a structure used to define a picture shape
Definition WPSGraphicShape.h:35
a structure used to define a picture style
Definition WPSGraphicStyle.h:38
a transformation which stored the first row of a 3x3 perspective matrix
Definition libwps_internal.h:1131
std::shared_ptr< WKSContentListener > WKSContentListenerPtr
shared pointer to WKSContentListener
Definition libwps_internal.h:114
Definition Quattro9Graph.cpp:53
Internal: a graph of a QuattroGraph.
Definition Quattro9Graph.cpp:135
Internal: a shape of a Quattro9Graph.
Definition Quattro9Graph.cpp:56
the state of Quattro9Graph
Definition Quattro9Graph.cpp:181
the class to store a color
Definition libwps_internal.h:281
a basic pattern used in a WPSGraphicStyle:
Definition WPSGraphicStyle.h:89

Generated on Sat Jul 19 2025 05:24:39 for libwps by doxygen 1.14.0