GreatWksGraph.hxx Source File documentation

GreatWksGraph.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; c-default-style: "k&r"; indent-tabs-mode: nil; tab-width: 2; c-basic-offset: 2 -*- */
2
3 /* libmwaw
4 * Version: MPL 2.0 / LGPLv2+
5 *
6 * The contents of this file are subject to the Mozilla Public License Version
7 * 2.0 (the "License"); you may not use this file except in compliance with
8 * the License or as specified alternatively below. You may obtain a copy of
9 * the License at http://www.mozilla.org/MPL/
10 *
11 * Software distributed under the License is distributed on an "AS IS" basis,
12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13 * for the specific language governing rights and limitations under the
14 * License.
15 *
16 * Major Contributor(s):
17 * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
18 * Copyright (C) 2002,2004 Marc Maurer (uwog@uwog.net)
19 * Copyright (C) 2004-2006 Fridrich Strba (fridrich.strba@bluewin.ch)
20 * Copyright (C) 2006, 2007 Andrew Ziem
21 * Copyright (C) 2011, 2012 Alonso Laurent (alonso@loria.fr)
22 *
23 *
24 * All Rights Reserved.
25 *
26 * For minor contributions see the git repository.
27 *
28 * Alternatively, the contents of this file may be used under the terms of
29 * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
30 * in which case the provisions of the LGPLv2+ are applicable
31 * instead of those above.
32 */
33
34 /*
35 * Parser to GreatWorks text document ( graphic part )
36 *
37 */
38 #ifndef GREAT_WKS_GRAPH
39 # define GREAT_WKS_GRAPH
40
41 #include <set>
42 #include <string>
43 #include <vector>
44
45 #include <librevenge/librevenge.h>
46
47 #include "libmwaw_internal.hxx"
48
49 #include "MWAWDebug.hxx"
50 #include "MWAWInputStream.hxx"
51
52 namespace GreatWksGraphInternal
53 {
54 struct Frame;
55 struct FrameGroup;
56 struct FrameShape;
57 struct FrameText;
58 struct Zone;
59
60 struct State;
61 class SubDocument;
62 }
63
64 class GreatWksDocument;
65 class GreatWksParser;
66 class GreatWksDBParser;
67 class GreatWksDRParser;
68 class GreatWksSSParser;
69
75 class GreatWksGraph
76 {
77 friend class GreatWksDocument;
78 friend class GreatWksParser;
79 friend class GreatWksDBParser;
80 friend class GreatWksDRParser;
81 friend class GreatWksSSParser;
82 friend class GreatWksGraphInternal::SubDocument;
83
84 public:
86 explicit GreatWksGraph(GreatWksDocument &document);
88 virtual ~GreatWksGraph();
89
91 int version() const;
92
94 int numPages() const;
95
96 protected:
98 bool sendPageGraphics();
100 void flushExtra();
101
102 //
103 // Intermediate level
104 //
105
106 // RSRC
108 bool readPatterns(MWAWEntry const &entry);
110 bool readPalettes(MWAWEntry const &entry);
111
112 // DataFork: pict
114 bool sendPageFrames(GreatWksGraphInternal::Zone const &zone);
116 bool sendFrame(std::shared_ptr<GreatWksGraphInternal::Frame> frame, GreatWksGraphInternal::Zone const &zone);
117
119 bool sendGroup(GreatWksGraphInternal::FrameGroup const &group, GreatWksGraphInternal::Zone const &zone, MWAWPosition const &pos);
121 void sendGroupChild(GreatWksGraphInternal::FrameGroup const &group, GreatWksGraphInternal::Zone const &zone, MWAWPosition const &pos);
123 bool canCreateGraphic(GreatWksGraphInternal::FrameGroup const &group, GreatWksGraphInternal::Zone const &zone);
125 void sendGroup(GreatWksGraphInternal::FrameGroup const &group, GreatWksGraphInternal::Zone const &zone, MWAWGraphicListenerPtr &listener);
126
128 bool sendTextbox(GreatWksGraphInternal::FrameText const &text, GreatWksGraphInternal::Zone const &zone, MWAWPosition const &pos);
130 bool sendTextboxAsGraphic(MWAWBox2f const &box, GreatWksGraphInternal::FrameText const &text, MWAWGraphicStyle const &style, MWAWListenerPtr listener);
132 bool sendTextbox(MWAWEntry const &entry, MWAWListenerPtr listener);
133
135 bool sendPicture(MWAWEntry const &entry, MWAWPosition pos);
137 bool sendShape(GreatWksGraphInternal::FrameShape const &graph, GreatWksGraphInternal::Zone const &zone, MWAWPosition const &pos);
138
139 // DataFork: graphic zone
140
142 bool readGraphicZone();
144 bool isGraphicZone();
146 bool findGraphicZone();
147
149 bool isPageFrames();
151 bool readPageFrames();
153 std::shared_ptr<GreatWksGraphInternal::Frame> readFrameHeader();
155 bool readFrameExtraData(GreatWksGraphInternal::Frame &frame, int id, long endPos=-1);
156
158 bool readStyle(MWAWGraphicStyle &style);
160 bool readLineFormat(std::string &extra);
161
162 // interface with mainParser
163
164 //
165 // low level
166 //
168 bool readFrameExtraDataRec(GreatWksGraphInternal::Zone &zone, int id, std::set<int> &seens, long endPos=-1);
170 bool checkGraph(GreatWksGraphInternal::Zone &zone, int id, std::set<int> &seens);
171
172 private:
173 GreatWksGraph(GreatWksGraph const &orig) = delete;
174 GreatWksGraph &operator=(GreatWksGraph const &orig) = delete;
175
176 protected:
177 //
178 // data
179 //
181 GreatWksDocument &m_document;
183 MWAWParserStatePtr m_parserState;
185 std::shared_ptr<GreatWksGraphInternal::State> m_state;
187 MWAWParser *m_mainParser;
188 };
189 #endif
190 // vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
MWAWEntry
basic class to store an entry in a file This contained :
Definition: MWAWEntry.hxx:47
GreatWksGraphInternal::FrameBad
Internal: a unknown zone of a GreatWksGraph.
Definition: GreatWksGraph.cxx:177
MWAWDocument::MWAW_K_DATABASE
@ MWAW_K_DATABASE
database
Definition: MWAWDocument.hxx:87
GreatWksGraphInternal::FrameShape::FrameShape
FrameShape(FrameShape const &)=delete
MWAWInputStreamPtr
std::shared_ptr< MWAWInputStream > MWAWInputStreamPtr
a smart pointer of MWAWInputStream
Definition: libmwaw_internal.hxx:551
MWAWGraphicStyle::Gradient::G_Square
@ G_Square
Definition: MWAWGraphicStyle.hxx:177
MWAWSubDocument::m_zone
MWAWEntry m_zone
if valid the zone to parse
Definition: MWAWSubDocument.hxx:79
GreatWksGraphInternal::Frame::m_page
int m_page
the page
Definition: GreatWksGraph.cxx:164
GreatWksGraphInternal::Frame::T_BAD
@ T_BAD
Definition: GreatWksGraph.cxx:66
GreatWksGraphInternal::State
Internal: the state of a GreatWksGraph.
Definition: GreatWksGraph.cxx:448
GreatWksGraphInternal::FrameDBField::print
void print(std::ostream &o) const final
print funtion
Definition: GreatWksGraph.cxx:412
MWAWGraphicStyle::hasSurfaceColor
bool hasSurfaceColor() const
returns true if the surface is defined
Definition: MWAWGraphicStyle.hxx:421
MWAWGraphicListenerPtr
std::shared_ptr< MWAWGraphicListener > MWAWGraphicListenerPtr
a smart pointer of MWAWGraphicListener
Definition: libmwaw_internal.hxx:549
GreatWksGraphInternal::Frame::~Frame
virtual ~Frame()
destructor
Definition: GreatWksGraph.cxx:171
GreatWksGraphInternal::FrameBad::~FrameBad
~FrameBad() final
destructor
Definition: GreatWksGraph.cxx:191
GreatWksGraph::sendPageFrames
bool sendPageFrames(GreatWksGraphInternal::Zone const &zone)
try to send all data corresponding to a zone
Definition: GreatWksGraph.cxx:2239
GreatWksGraphInternal::FrameGroup
Internal: the group zone of a GreatWksGraph.
Definition: GreatWksGraph.cxx:276
GreatWksGraphInternal::Frame::T_PICTURE
@ T_PICTURE
Definition: GreatWksGraph.cxx:66
MWAWDocument::MWAW_K_SPREADSHEET
@ MWAW_K_SPREADSHEET
spreadsheet
Definition: MWAWDocument.hxx:86
GreatWksGraphInternal::FrameGroup::~FrameGroup
~FrameGroup() final
destructor
Definition: GreatWksGraph.cxx:304
MWAW_DEBUG_MSG
#define MWAW_DEBUG_MSG(M)
Definition: libmwaw_internal.hxx:129
MWAWVec2f
MWAWVec2< float > MWAWVec2f
MWAWVec2 of float.
Definition: libmwaw_internal.hxx:842
libmwaw::rotateBoxFromCenter
MWAWBox2f rotateBoxFromCenter(MWAWBox2f const &box, float angle)
rotate a bdox and returns the final bdbox, angle is given in degree
Definition: libmwaw_internal.cxx:708
libmwaw::DebugFile::addDelimiter
void addDelimiter(long pos, char c)
adds a not breaking delimiter in position pos
Definition: MWAWDebug.cxx:73
GreatWksGraphInternal::Frame::m_box
MWAWBox2f m_box
the zone bdbox
Definition: GreatWksGraph.cxx:162
GreatWksGraphInternal::FramePicture::getType
Type getType() const final
return the frame type
Definition: GreatWksGraph.cxx:320
MWAWGraphicStyle::m_extra
std::string m_extra
extra data
Definition: MWAWGraphicStyle.hxx:568
GreatWksGraphInternal::FrameShape::m_lineFormat
int m_lineFormat
the line format?
Definition: GreatWksGraph.cxx:264
GreatWksGraph::GreatWksGraph
GreatWksGraph(GreatWksDocument &document)
constructor
Definition: GreatWksGraph.cxx:516
MWAWPosition::setRelativePosition
void setRelativePosition(AnchorTo anchor, XPos X=XLeft, YPos Y=YTop)
sets the relative position
Definition: MWAWPosition.hxx:237
GreatWksGraphInternal::FrameShape::updateStyle
void updateStyle(MWAWGraphicStyle &style) const
update the style
Definition: GreatWksGraph.cxx:237
GreatWksGraph::m_state
std::shared_ptr< GreatWksGraphInternal::State > m_state
the state
Definition: GreatWksGraph.hxx:185
GreatWksGraphInternal::FrameText::getType
Type getType() const final
return the frame type
Definition: GreatWksGraph.cxx:353
MWAWGraphicShape::pie
static MWAWGraphicShape pie(MWAWBox2f const &box, MWAWBox2f const &circleBox, MWAWVec2f const &angles)
static constructor to create a pie
Definition: MWAWGraphicShape.hxx:147
MWAWGraphicStyle::Gradient::G_None
@ G_None
Definition: MWAWGraphicStyle.hxx:177
GreatWksGraph::readPatterns
bool readPatterns(MWAWEntry const &entry)
read a pattern list block ( PAT# resource block )
Definition: GreatWksGraph.cxx:561
GreatWksGraph::isGraphicZone
bool isGraphicZone()
return true if this corresponds to a graphic zone
Definition: GreatWksGraph.cxx:659
MWAWPosition::setPage
void setPage(int pg) const
sets the page
Definition: MWAWPosition.hxx:205
MWAWGraphicStyle::Arrow::plain
static Arrow plain()
returns a basic plain arrow
Definition: MWAWGraphicStyle.hxx:74
GreatWksGraphInternal::Frame::T_BASIC
@ T_BASIC
Definition: GreatWksGraph.cxx:66
GreatWksGraphInternal::FrameText::print
void print(std::ostream &o) const final
print funtion
Definition: GreatWksGraph.cxx:358
GreatWksGraphInternal::Frame::Frame
Frame()
constructor
Definition: GreatWksGraph.cxx:68
GreatWksGraph::sendFrame
bool sendFrame(std::shared_ptr< GreatWksGraphInternal::Frame > frame, GreatWksGraphInternal::Zone const &zone)
try to send a frame
Definition: GreatWksGraph.cxx:2195
GreatWksGraphInternal::FrameBad::getType
Type getType() const final
return the frame type
Definition: GreatWksGraph.cxx:185
MWAWGraphicStyle::m_surfaceOpacity
float m_surfaceOpacity
true if the surface has some color
Definition: MWAWGraphicStyle.hxx:520
GreatWksGraphInternal::SubDocument::parse
void parse(MWAWListenerPtr &listener, libmwaw::SubDocumentType) final
the parser function
Definition: GreatWksGraph.cxx:488
MWAWColor::white
static MWAWColor white()
return the white color
Definition: libmwaw_internal.hxx:250
GreatWksGraphInternal::Zone
Internal: a list of graphic corresponding to a page.
Definition: GreatWksGraph.cxx:424
GreatWksGraphInternal::FrameGroup::FrameGroup
FrameGroup(Frame const &frame)
constructor
Definition: GreatWksGraph.cxx:278
MWAWPosition::WBackground
@ WBackground
Definition: MWAWPosition.hxx:53
MWAWGraphicShape
a structure used to define a picture shape
Definition: MWAWGraphicShape.hxx:46
MWAWColor
the class to store a color
Definition: libmwaw_internal.hxx:192
MWAWEmbeddedObject
small class use to define a embedded object
Definition: libmwaw_internal.hxx:467
GreatWksParser
the main class to read a GreatWorks text file
Definition: GreatWksParser.hxx:57
MWAWGraphicShape::line
static MWAWGraphicShape line(MWAWVec2f const &orign, MWAWVec2f const &dest)
static constructor to create a line
Definition: MWAWGraphicShape.cxx:228
MWAWGraphicStyle::setBackgroundColor
void setBackgroundColor(MWAWColor const &col, float opacity=1)
set the background color
Definition: MWAWGraphicStyle.hxx:447
GreatWksGraphInternal::FramePicture::print
void print(std::ostream &o) const final
print funtion
Definition: GreatWksGraph.cxx:325
GreatWksGraph::version
int version() const
returns the file version
Definition: GreatWksGraph.cxx:527
MWAWGraphicStyle::Pattern::getAverageColor
bool getAverageColor(MWAWColor &col) const
return the average color
Definition: MWAWGraphicStyle.cxx:101
GreatWksGraphInternal::Zone::m_frameList
std::vector< std::shared_ptr< Frame > > m_frameList
the list of frame
Definition: GreatWksGraph.cxx:437
MWAWGraphicStyle::Gradient::G_Linear
@ G_Linear
Definition: MWAWGraphicStyle.hxx:177
MWAWDocument::MWAW_K_DRAW
@ MWAW_K_DRAW
vectorized grphic
Definition: MWAWDocument.hxx:83
MWAWListener::Graphic
@ Graphic
Definition: MWAWListener.hxx:56
GreatWksDBParser
the main class to read a GreatWorks database file
Definition: GreatWksDBParser.hxx:62
GreatWksGraphInternal::Frame::Type
Type
the frame type
Definition: GreatWksGraph.cxx:66
MWAWPictData::get
static MWAWPictData * get(MWAWInputStreamPtr const &input, int size)
checks if the data pointed by input is known
Definition: MWAWPictData.hxx:108
MWAWEntry::setParsed
void setParsed(bool ok=true) const
sets the flag m_parsed to true or false
Definition: MWAWEntry.hxx:126
GreatWksGraph::sendGroupChild
void sendGroupChild(GreatWksGraphInternal::FrameGroup const &group, GreatWksGraphInternal::Zone const &zone, MWAWPosition const &pos)
try to send a group elements by elemenys
Definition: GreatWksGraph.cxx:2045
GreatWksGraphInternal::FrameShape::FrameShape
FrameShape(Frame const &frame)
constructor
Definition: GreatWksGraph.cxx:199
GreatWksGraph::m_document
GreatWksDocument & m_document
the document
Definition: GreatWksGraph.hxx:181
GreatWksGraphInternal::FrameShape
Internal: the basic shape of a GreatWksGraph.
Definition: GreatWksGraph.cxx:197
GreatWksGraphInternal::Zone::m_page
int m_page
the page number (if known)
Definition: GreatWksGraph.cxx:435
GreatWksGraphInternal::SubDocument::m_graphParser
GreatWksGraph * m_graphParser
the graph parser
Definition: GreatWksGraph.cxx:481
libmwaw::DebugFile::addNote
void addNote(char const *note)
adds a note in the file, in actual position
Definition: MWAWDebug.cxx:59
GreatWksGraphInternal::Frame::Frame
Frame(Frame const &)=default
GreatWksGraphInternal::FrameShape::~FrameShape
~FrameShape() final
destructor
Definition: GreatWksGraph.cxx:270
MWAWSubDocument
abstract class used to store a subdocument (with a comparison function)
Definition: MWAWSubDocument.hxx:42
GreatWksGraphInternal::SubDocument::~SubDocument
~SubDocument() final
destructor
Definition: GreatWksGraph.cxx:471
GreatWksGraphInternal::State::m_numPages
int m_numPages
Definition: GreatWksGraph.cxx:455
MWAWGraphicStyle
a structure used to define a picture style
Definition: MWAWGraphicStyle.hxx:48
MWAWGraphicShape::m_bdBox
MWAWBox2f m_bdBox
the shape bdbox
Definition: MWAWGraphicShape.hxx:218
MWAWPageSpan::getMarginLeft
double getMarginLeft() const
returns the left margin
Definition: MWAWPageSpan.hxx:132
MWAWGraphicStyle::Pattern::m_data
std::vector< unsigned char > m_data
the pattern data: a sequence of data: p[0..7,0],p[8..15,0]...p[0..7,1],p[8..15,1],...
Definition: MWAWGraphicStyle.hxx:363
GreatWksGraph::operator=
GreatWksGraph & operator=(GreatWksGraph const &orig)=delete
GreatWksGraph::findGraphicZone
bool findGraphicZone()
try to find the beginning of the next graphic zone
Definition: GreatWksGraph.cxx:773
GreatWksGraph::readPageFrames
bool readPageFrames()
try to read a list of page frame ( picture, texture or basic )
Definition: GreatWksGraph.cxx:1181
MWAWGraphicStyle::m_lineOpacity
float m_lineOpacity
the line opacity: 0=transparent
Definition: MWAWGraphicStyle.hxx:514
GreatWksGraphInternal::FrameText
Internal: the text zone of a GreatWksGraph.
Definition: GreatWksGraph.cxx:341
GreatWksGraphInternal::FrameText::m_flip
bool m_flip[2]
two bool to know if we must flip x or y
Definition: GreatWksGraph.cxx:387
GreatWksDocument::canSendTextboxAsGraphic
bool canSendTextboxAsGraphic(MWAWEntry const &entry)
check if a textbox can be send in a graphic zone, ie. does not contains any graphic
Definition: GreatWksDocument.cxx:146
MWAWGraphicStyle::Pattern
a basic pattern used in a MWAWGraphicStyle:
Definition: MWAWGraphicStyle.hxx:277
MWAWSubDocument.hxx
MWAWPosition::size
MWAWVec2f const & size() const
returns the frame size
Definition: MWAWPosition.hxx:135
MWAWGraphicShape::Polygon
@ Polygon
Definition: MWAWGraphicShape.hxx:49
MWAWGraphicShape::polygon
static MWAWGraphicShape polygon(MWAWBox2f const &box)
static constructor to create a polygon
Definition: MWAWGraphicShape.hxx:165
MWAWGraphicStyle::hasPattern
bool hasPattern() const
returns true if the pattern is defined
Definition: MWAWGraphicStyle.hxx:432
GreatWksGraphInternal::SubDocument::operator!=
bool operator!=(MWAWSubDocument const &doc) const final
operator!=
Definition: GreatWksGraph.cxx:503
MWAWBox2::getUnion
MWAWBox2< T > getUnion(MWAWBox2< T > const &box) const
returns the union between this and box
Definition: libmwaw_internal.hxx:1129
GreatWksGraphInternal::FrameText::m_entry
MWAWEntry m_entry
the text entry
Definition: GreatWksGraph.cxx:385
GreatWksGraphInternal::Frame::T_UNSET
@ T_UNSET
Definition: GreatWksGraph.cxx:66
MWAWGraphicShape::Rectangle
@ Rectangle
Definition: MWAWGraphicShape.hxx:49
libmwaw::SubDocumentType
SubDocumentType
Definition: libmwaw_internal.hxx:188
MWAWSubDocument::m_input
std::shared_ptr< MWAWInputStream > m_input
the input
Definition: MWAWSubDocument.hxx:77
GreatWksGraphInternal::FrameGroup::getType
Type getType() const final
return the frame type
Definition: GreatWksGraph.cxx:287
GreatWksGraph::readPalettes
bool readPalettes(MWAWEntry const &entry)
read a list of color and maybe patterns ( PlTT resource block: v2 )
Definition: GreatWksGraph.cxx:604
MWAWGraphicStyle::m_surfaceColor
MWAWColor m_surfaceColor
the surface color
Definition: MWAWGraphicStyle.hxx:518
libmwaw::DebugFile::skipZone
void skipZone(long beginPos, long endPos)
skips the file zone defined by beginPos-endPos
Definition: MWAWDebug.hxx:113
MWAWGraphicEncoder.hxx
MWAWPageSpan::getMarginTop
double getMarginTop() const
returns the top margin
Definition: MWAWPageSpan.hxx:142
MWAWRSRCParser.hxx
libmwaw::Debug::dumpFile
bool dumpFile(librevenge::RVNGBinaryData &data, char const *fileName)
a debug function to store in a datafile in the current directory WARNING: this function erase the fil...
Definition: MWAWDebug.cxx:193
GreatWksGraphInternal::Frame::operator<<
friend std::ostream & operator<<(std::ostream &o, Frame const &zone)
operator<<
Definition: GreatWksGraph.cxx:89
libmwaw_internal.hxx
GreatWksGraphInternal::FrameText::getStyle
MWAWGraphicStyle getStyle(MWAWGraphicStyle const &zoneStyle) const
return the text style
Definition: GreatWksGraph.cxx:368
MWAWGraphicStyle::m_lineWidth
float m_lineWidth
the linewidth
Definition: MWAWGraphicStyle.hxx:508
MWAWPosition.hxx
MWAWPosition::setSize
void setSize(MWAWVec2f const &sz)
sets the frame size
Definition: MWAWPosition.hxx:215
GreatWksGraphInternal::Zone::m_styleList
std::vector< MWAWGraphicStyle > m_styleList
the list of style
Definition: GreatWksGraph.cxx:441
GreatWksGraph.hxx
GreatWksGraph::sendTextbox
bool sendTextbox(GreatWksGraphInternal::FrameText const &text, GreatWksGraphInternal::Zone const &zone, MWAWPosition const &pos)
try to send a textbox
Definition: GreatWksGraph.cxx:1852
GreatWksGraphInternal::Frame::m_parsed
bool m_parsed
true if the frame is send
Definition: GreatWksGraph.cxx:168
GreatWksGraph::readLineFormat
bool readLineFormat(std::string &extra)
try to read a line format style? in v1
Definition: GreatWksGraph.cxx:1159
GreatWksGraphInternal::Frame::getType
virtual Type getType() const
return the frame type
Definition: GreatWksGraph.cxx:84
MWAWPosition
Class to define the position of an object (textbox, picture, ..) in the document.
Definition: MWAWPosition.hxx:48
GreatWksGraph::numPages
int numPages() const
returns the number of pages
Definition: GreatWksGraph.cxx:533
MWAWGraphicStyle::Gradient::Stop
a structure used to define the gradient limit in MWAWGraphicStyle
Definition: MWAWGraphicStyle.hxx:141
GreatWksGraphInternal::FramePicture::FramePicture
FramePicture(Frame const &frame)
constructor
Definition: GreatWksGraph.cxx:312
MWAWGraphicShape::m_vertices
std::vector< MWAWVec2f > m_vertices
the list of vertices for lines or polygons
Definition: MWAWGraphicShape.hxx:226
MWAWGraphicStyle::m_flip
bool m_flip[2]
two bool to indicated we need to flip the shape or not
Definition: MWAWGraphicStyle.hxx:560
M_PI
#define M_PI
Definition: libmwaw_internal.hxx:52
MWAWGraphicStyle::Pattern::m_dim
MWAWVec2i m_dim
the dimension width x height
Definition: MWAWGraphicStyle.hxx:358
MWAWGraphicEncoder::getBinaryResult
bool getBinaryResult(MWAWEmbeddedObject &result)
return the final graphic
Definition: MWAWGraphicEncoder.cxx:77
MWAWPosition::m_wrapping
Wrapping m_wrapping
Wrapping.
Definition: MWAWPosition.hxx:278
MWAWEntry::length
long length() const
returns the length of the zone
Definition: MWAWEntry.hxx:93
GreatWksGraphInternal::FrameGroup::print
void print(std::ostream &o) const final
print funtion
Definition: GreatWksGraph.cxx:292
MWAWGraphicShape::Path
@ Path
Definition: MWAWGraphicShape.hxx:49
MWAWGraphicShape::m_type
Type m_type
the type
Definition: MWAWGraphicShape.hxx:216
GreatWksGraph::sendShape
bool sendShape(GreatWksGraphInternal::FrameShape const &graph, GreatWksGraphInternal::Zone const &zone, MWAWPosition const &pos)
try to send a basic picture
Definition: GreatWksGraph.cxx:2177
MWAWVec2< float >
GreatWksGraphInternal::Zone::Zone
Zone()
constructor
Definition: GreatWksGraph.cxx:426
MWAWGraphicListener.hxx
GreatWksGraphInternal::FrameShape::operator=
FrameShape & operator=(FrameShape const &)=delete
MWAWPictMac.hxx
MWAWGraphicShape.hxx
GreatWksGraphInternal::Frame::m_styleId
int m_styleId
the style identifier
Definition: GreatWksGraph.cxx:154
MWAWDebug.hxx
GreatWksGraph::readStyle
bool readStyle(MWAWGraphicStyle &style)
try to read a zone style
Definition: GreatWksGraph.cxx:903
MWAWPosition::setOrigin
void setOrigin(MWAWVec2f const &orig)
sets the frame origin
Definition: MWAWPosition.hxx:210
MWAWEntry::begin
long begin() const
returns the begin offset
Definition: MWAWEntry.hxx:83
GreatWksGraphInternal::FramePicture::m_entry
MWAWEntry m_entry
the picture entry
Definition: GreatWksGraph.cxx:332
GreatWksGraphInternal::FrameText::m_rotate
int m_rotate
the rotate angle
Definition: GreatWksGraph.cxx:389
MWAWParser::getPageSpan
MWAWPageSpan const & getPageSpan() const
returns the actual page dimension
Definition: MWAWParser.hxx:160
MWAWGraphicStyle::m_arrows
Arrow m_arrows[2]
the two arrows corresponding to start and end extremity
Definition: MWAWGraphicStyle.hxx:553
GreatWksGraphInternal::Frame::m_parent
int m_parent
the parent identifier
Definition: GreatWksGraph.cxx:156
MWAWGraphicStyle::setPattern
void setPattern(Pattern const &pat, float opacity=1)
set the pattern
Definition: MWAWGraphicStyle.hxx:426
MWAWColor::black
static MWAWColor black()
return the back color
Definition: libmwaw_internal.hxx:245
MWAWBox2f
MWAWBox2< float > MWAWBox2f
MWAWBox2 of float.
Definition: libmwaw_internal.hxx:1193
GreatWksGraph::readGraphicZone
bool readGraphicZone()
try to read the graphic zone ( draw file or end of v2 text file)
Definition: GreatWksGraph.cxx:696
GreatWksGraph::~GreatWksGraph
virtual ~GreatWksGraph()
destructor
Definition: GreatWksGraph.cxx:524
GreatWksDocument.hxx
GreatWksGraphInternal::Frame
Internal: the graphic zone of a GreatWksGraph.
Definition: GreatWksGraph.cxx:64
GreatWksGraphInternal::FrameDBField::~FrameDBField
~FrameDBField() final
destructor
Definition: GreatWksGraph.cxx:418
GreatWksGraphInternal::Frame::m_order
int m_order
the z order
Definition: GreatWksGraph.cxx:158
GreatWksGraphInternal::SubDocument::operator=
SubDocument & operator=(SubDocument const &orig)=delete
GreatWksGraphInternal::Frame::T_DBFIELD
@ T_DBFIELD
Definition: GreatWksGraph.cxx:66
GreatWksGraphInternal::FramePicture
Internal: the picture zone of a GreatWksGraph.
Definition: GreatWksGraph.cxx:310
MWAWGraphicStyle::Gradient::G_Axial
@ G_Axial
Definition: MWAWGraphicStyle.hxx:177
GreatWksGraphInternal::FramePicture::~FramePicture
~FramePicture() final
destructor
Definition: GreatWksGraph.cxx:335
MWAWGraphicShape::arc
static MWAWGraphicShape arc(MWAWBox2f const &box, MWAWBox2f const &circleBox, MWAWVec2f const &angles)
static constructor to create a arc
Definition: MWAWGraphicShape.hxx:137
GreatWksGraphInternal::FrameShape::m_lineArrow
int m_lineArrow
the line arrow style (in v1)
Definition: GreatWksGraph.cxx:262
MWAWGraphicStyle::Pattern::m_colors
MWAWColor m_colors[2]
the two indexed colors
Definition: MWAWGraphicStyle.hxx:361
GreatWksGraphInternal::Frame::m_type
int m_type
the zone type
Definition: GreatWksGraph.cxx:152
MWAWEntry::end
long end() const
returns the end offset
Definition: MWAWEntry.hxx:88
MWAWGraphicStyle::m_lineColor
MWAWColor m_lineColor
the line color
Definition: MWAWGraphicStyle.hxx:516
GreatWksGraphInternal::FrameGroup::m_numChild
int m_numChild
the number of child
Definition: GreatWksGraph.cxx:299
MWAWGraphicEncoder
main class used to define store librevenge::RVNGDrawingInterface lists of command in a librevenge::RV...
Definition: MWAWGraphicEncoder.hxx:56
GreatWksGraphInternal::Zone::m_parsed
bool m_parsed
true if we have send the data
Definition: GreatWksGraph.cxx:443
MWAWGraphicShape::Line
@ Line
Definition: MWAWGraphicShape.hxx:49
GreatWksGraph::readFrameExtraData
bool readFrameExtraData(GreatWksGraphInternal::Frame &frame, int id, long endPos=-1)
try to read a frame extra data zone
Definition: GreatWksGraph.cxx:1692
GreatWksGraphInternal::Frame::T_TEXT
@ T_TEXT
Definition: GreatWksGraph.cxx:66
GreatWksDocument
the main class to read/store generic data of a GreatWorks document
Definition: GreatWksDocument.hxx:61
GreatWksGraph::sendPicture
bool sendPicture(MWAWEntry const &entry, MWAWPosition pos)
try to send a picture
Definition: GreatWksGraph.cxx:1919
MWAWParser
virtual class which defines the ancestor of all main zone parser
Definition: MWAWParser.hxx:100
GreatWksDRParser
the main class to read a GreatWorks graphic file
Definition: GreatWksDRParser.hxx:56
MWAWGraphicStyle.hxx
GreatWksGraphInternal::SubDocument
Internal: the subdocument of a GreatWksGraph.
Definition: GreatWksGraph.cxx:462
GreatWksGraphInternal::FrameDBField::FrameDBField
FrameDBField(Frame const &frame)
constructor
Definition: GreatWksGraph.cxx:400
GreatWksGraphInternal::Frame::m_extra
std::string m_extra
extra data
Definition: GreatWksGraph.cxx:166
GreatWksGraphInternal::SubDocument::SubDocument
SubDocument(SubDocument const &orig)=delete
GreatWksGraphInternal::FrameShape::getType
Type getType() const final
return the frame type
Definition: GreatWksGraph.cxx:209
MWAWGraphicShape::path
static MWAWGraphicShape path(MWAWBox2f const &box)
static constructor to create a path
Definition: MWAWGraphicShape.hxx:173
GreatWksGraphInternal::Zone::m_rootList
std::vector< int > m_rootList
the list of root id
Definition: GreatWksGraph.cxx:439
MWAWGraphicStyle::m_gradient
Gradient m_gradient
the gradient
Definition: MWAWGraphicStyle.hxx:533
GreatWksGraph::sendPageGraphics
bool sendPageGraphics()
try to send the page graphic
Definition: GreatWksGraph.cxx:2259
MWAWPosition::Page
@ Page
Definition: MWAWPosition.hxx:51
GreatWksGraphInternal::Frame::T_GROUP
@ T_GROUP
Definition: GreatWksGraph.cxx:66
GreatWksGraph::isPageFrames
bool isPageFrames()
check if a zone is or not a page frame zone
Definition: GreatWksGraph.cxx:843
MWAWParserStatePtr
std::shared_ptr< MWAWParserState > MWAWParserStatePtr
a smart pointer of MWAWParserState
Definition: libmwaw_internal.hxx:557
MWAWGraphicStyle::hasGradient
bool hasGradient(bool complex=false) const
returns true if the gradient is defined
Definition: MWAWGraphicStyle.hxx:437
GreatWksGraphInternal
Internal: the structures of a GreatWksGraph.
Definition: GreatWksGraph.cxx:61
GreatWksGraph::sendGroup
bool sendGroup(GreatWksGraphInternal::FrameGroup const &group, GreatWksGraphInternal::Zone const &zone, MWAWPosition const &pos)
try to send a group
Definition: GreatWksGraph.cxx:1960
GreatWksGraph::readFrameExtraDataRec
bool readFrameExtraDataRec(GreatWksGraphInternal::Zone &zone, int id, std::set< int > &seens, long endPos=-1)
try to read a frame extra data zone recursively ( draw method)
Definition: GreatWksGraph.cxx:1461
libmwaw::DebugFile::addPos
void addPos(long pos)
adds a new position in the file
Definition: MWAWDebug.cxx:53
MWAWGraphicStyle::m_lineDashWidth
std::vector< float > m_lineDashWidth
the dash array: a sequence of (fullsize, emptysize)
Definition: MWAWGraphicStyle.hxx:506
MWAWPosition::origin
MWAWVec2f const & origin() const
return the frame origin
Definition: MWAWPosition.hxx:130
MWAWEntry::valid
bool valid() const
returns true if the zone length is positive
Definition: MWAWEntry.hxx:99
GreatWksGraphInternal::FrameShape::m_shape
MWAWGraphicShape m_shape
the shape
Definition: GreatWksGraph.cxx:260
GreatWksGraph::m_mainParser
MWAWParser * m_mainParser
the main parser;
Definition: GreatWksGraph.hxx:187
GreatWksGraph::readFrameHeader
std::shared_ptr< GreatWksGraphInternal::Frame > readFrameHeader()
try to read a basic frame header
Definition: GreatWksGraph.cxx:1501
MWAWListener.hxx
GreatWksGraph::sendTextboxAsGraphic
bool sendTextboxAsGraphic(MWAWBox2f const &box, GreatWksGraphInternal::FrameText const &text, MWAWGraphicStyle const &style, MWAWListenerPtr listener)
try to send a textbox via a graphiclistener
Definition: GreatWksGraph.cxx:1893
GreatWksGraph::m_parserState
MWAWParserStatePtr m_parserState
the parser state
Definition: GreatWksGraph.hxx:183
GreatWksGraphInternal::FrameShape::print
void print(std::ostream &o) const final
print function
Definition: GreatWksGraph.cxx:214
MWAWBox2::size
MWAWVec2< T > size() const
the box size
Definition: libmwaw_internal.hxx:1067
libmwaw::DebugFile
an interface used to insert comment in a binary file, written in ascii form (if debug_with_files is n...
Definition: MWAWDebug.hxx:66
GreatWksGraphInternal::Frame::print
virtual void print(std::ostream &o) const
a virtual print function
Definition: GreatWksGraph.cxx:95
GreatWksGraph::canCreateGraphic
bool canCreateGraphic(GreatWksGraphInternal::FrameGroup const &group, GreatWksGraphInternal::Zone const &zone)
check if we can send a group as graphic
Definition: GreatWksGraph.cxx:1966
GreatWksGraphInternal::State::m_zoneList
std::vector< Zone > m_zoneList
the list of zone ( one by page)
Definition: GreatWksGraph.cxx:454
GreatWksGraph::GreatWksGraph
GreatWksGraph(GreatWksGraph const &orig)=delete
GreatWksGraphInternal::Frame::m_dataSize
long m_dataSize
the data size ( if know)
Definition: GreatWksGraph.cxx:160
MWAWInputStream.hxx
MWAWGraphicShape::Circle
@ Circle
Definition: MWAWGraphicShape.hxx:49
MWAWListenerPtr
std::shared_ptr< MWAWListener > MWAWListenerPtr
a smart pointer of MWAWListener
Definition: libmwaw_internal.hxx:553
MWAWFont.hxx
MWAWPosition::m_anchorTo
AnchorTo m_anchorTo
anchor position
Definition: MWAWPosition.hxx:270
GreatWksGraphInternal::FrameGroup::m_childList
std::vector< int > m_childList
the list of child
Definition: GreatWksGraph.cxx:301
MWAWGraphicStyle::m_rotate
float m_rotate
the rotation
Definition: MWAWGraphicStyle.hxx:544
GreatWksGraph
the main class to read the graphic part of a HanMac Word-J file
Definition: GreatWksGraph.hxx:76
GreatWksGraphInternal::SubDocument::SubDocument
SubDocument(GreatWksGraph &pars, MWAWInputStreamPtr const &input, MWAWEntry const &entry)
constructor
Definition: GreatWksGraph.cxx:465
MWAWBox2< float >
GreatWksGraph::flushExtra
void flushExtra()
sends the data which have not yet been sent to the listener
Definition: GreatWksGraph.cxx:2274
MWAWGraphicShape::PathData
a simple path component
Definition: MWAWGraphicShape.hxx:53
MWAWGraphicStyle::Gradient::G_Radial
@ G_Radial
Definition: MWAWGraphicStyle.hxx:177
GreatWksGraphInternal::FrameBad::FrameBad
FrameBad()
constructor
Definition: GreatWksGraph.cxx:179
MWAWGraphicShape::rectangle
static MWAWGraphicShape rectangle(MWAWBox2f const &box, MWAWVec2f const &corners=MWAWVec2f(0, 0))
static constructor to create a rectangle
Definition: MWAWGraphicShape.hxx:120
GreatWksGraphInternal::FrameDBField::getType
Type getType() const final
return the frame type
Definition: GreatWksGraph.cxx:407
GreatWksGraph::checkGraph
bool checkGraph(GreatWksGraphInternal::Zone &zone, int id, std::set< int > &seens)
check if the graph of zones is ok (ie. does not form loop)
Definition: GreatWksGraph.cxx:1436
GreatWksGraphInternal::FrameText::FrameText
FrameText(Frame const &frame)
constructor
Definition: GreatWksGraph.cxx:343
MWAWVec2i
MWAWVec2< int > MWAWVec2i
MWAWVec2 of int.
Definition: libmwaw_internal.hxx:838
libmwaw::DebugStream
std::stringstream DebugStream
a basic stream (if debug_with_files is not defined, does nothing)
Definition: MWAWDebug.hxx:61
MWAWParser.hxx
GreatWksGraphInternal::FrameDBField
Internal: the DBField zone of a GreatWksGraph.
Definition: GreatWksGraph.cxx:398
GreatWksGraphInternal::State::State
State()
constructor
Definition: GreatWksGraph.cxx:450
MWAWGraphicStyle::Gradient::m_stopList
std::vector< Stop > m_stopList
the list of gradient limits
Definition: MWAWGraphicStyle.hxx:262
MWAWGraphicListener
This class contains the code needed to create Graphic document.
Definition: MWAWGraphicListener.hxx:60
MWAWGraphicShape::m_formBox
MWAWBox2f m_formBox
the internal shape bdbox ( used for arc, circle to store the circle bdbox )
Definition: MWAWGraphicShape.hxx:220
GreatWksGraphInternal::FrameText::~FrameText
~FrameText() final
destructor
Definition: GreatWksGraph.cxx:392
MWAWGraphicStyle::Arrow
a structure used to define an arrow
Definition: MWAWGraphicStyle.hxx:56
GreatWksGraphInternal::FrameText::hasTransform
bool hasTransform() const
return true if the has some transforms.
Definition: GreatWksGraph.cxx:380
GreatWksDocument::sendTextbox
bool sendTextbox(MWAWEntry const &entry, MWAWListenerPtr listener)
try to send textbox
Definition: GreatWksDocument.cxx:137
GreatWksSSParser
the main class to read a GreatWorks spreadsheet file
Definition: GreatWksSSParser.hxx:59