Go to the documentation of this file.
10 #ifndef IWORKCOLLECTOR_H_INCLUDED
11 #define IWORKCOLLECTOR_H_INCLUDED
18 #include <boost/optional.hpp>
33 class IWORKDocumentInterface;
34 class IWORKLanguageManager;
35 class IWORKPropertyMap;
58 void setRecorder(
const std::shared_ptr<IWORKRecorder> &recorder);
130 virtual std::shared_ptr<IWORKText>
createText(
const IWORKLanguageManager &langManager,
bool discardEmptyContent =
false,
bool allowListInsertion=
true)
const;
136 bool isSurface=
true,
bool isFrame=
false);
139 const boost::optional<int> &
order);
151 virtual void drawMedia(
double x,
double y,
const librevenge::RVNGPropertyList &
data) = 0;
198 #endif // IWORKCOLLECTOR_H_INCLUDED
IWORKPathPtr_t m_currentPath
Definition: IWORKCollector.h:177
void endDocument()
Definition: IWORKCollector.cpp:566
IWORKHeaderFooterMap_t m_headers
Definition: IWORKCollector.h:173
IWORKOutputManager & getOutputManager()
Definition: IWORKCollector.cpp:1034
Definition: IWORKEnum.h:162
std::shared_ptr< IWORKShape > IWORKShapePtr_t
Definition: IWORKShape.h:38
Definition: IWORKDocumentInterface.h:18
Definition: IWORKBezierElement.cpp:20
Definition: IWORKToken.h:666
Definition: IWORKTypes.h:277
std::stack< IWORKPathPtr_t > m_pathStack
Definition: IWORKCollector.h:176
Definition: IWORKEnum.h:69
Definition: KEY1Token.h:198
bool m_accumulateTransform
Definition: IWORKCollector.h:192
Definition: IWORKLanguageManager.h:23
void startDocument()
Definition: IWORKCollector.cpp:561
void startLevel()
Definition: IWORKCollector.cpp:635
double m_opacity
the opacity
Definition: IWORKCollector.cpp:224
Definition: IWORKToken.h:394
double m_offset
Definition: IWORKTypes.h:319
std::shared_ptr< IWORKTableNameMap_t > IWORKTableNameMapPtr_t
Definition: IWORKTypes_fwd.h:34
double rad2deg(double value)
Convert an angle from radians to degrees.
Definition: libetonyek_utils.cpp:239
virtual void startDocument(const librevenge::RVNGPropertyList &propList)=0
void collectHeader(const std::string &name)
Definition: IWORKCollector.cpp:525
RVNGPropertyList & m_props
Definition: IWORKCollector.cpp:222
IWORKStrokeType
Definition: IWORKEnum.h:118
void addDrawPolyline(const librevenge::RVNGPropertyList &propList)
Definition: IWORKOutputElements.cpp:988
IWORKOutputElements & getCurrent()
Get the current output element.
Definition: IWORKOutputManager.cpp:57
Definition: IWORKToken.h:486
IWORKOutputManager m_outputManager
Definition: IWORKCollector.h:166
std::shared_ptr< IWORKData > IWORKDataPtr_t
Definition: IWORKTypes_fwd.h:49
Definition: IWORKPath.h:28
Definition: IWORKToken.h:417
std::deque< IWORKStylePtr_t > m_newStyles
Definition: IWORKCollector.h:168
IWORKStylePtr_t m_graphicStyle
Definition: KEY2Parser.cpp:531
IWORKCollector & operator=(const IWORKCollector &)
void collectArrowPath(const IWORKSize &size, double headWidth, double stemRelYPos, bool doubleSided)
Definition: IWORKCollector.cpp:441
Representation of a shape.
Definition: IWORKShape.h:26
IWORKPathPtr_t makeStarPath(const IWORKSize &size, const unsigned points, const double innerRadius)
Definition: IWORKShape.cpp:258
Definition: IWORKTypes.h:172
void endGroup()
Definition: IWORKCollector.cpp:589
Definition: IWORKEnum.h:107
#define ETONYEK_DEBUG_MSG(M)
Definition: libetonyek_utils.h:54
IWORKMediaContentPtr_t m_currentUnfiltered
Definition: IWORKCollector.h:185
Definition: IWORKEnum.h:123
Definition: IWORKTypes.h:99
Definition: IWORKEnum.h:121
std::unordered_map< std::string, IWORKOutputElements > IWORKHeaderFooterMap_t
Definition: IWORKTypes.h:40
IWORKHeaderFooterMap_t m_footers
Definition: IWORKCollector.h:174
Definition: IWORKEnum.h:175
std::shared_ptr< IWORKText > IWORKTextPtr_t
Definition: IWORKText_fwd.h:18
IWORKVerticalAlignment
Definition: IWORKEnum.h:111
Representation of a dynamic inheritance of styles.
Definition: IWORKStyleStack.h:34
void collectPolygonPath(const IWORKSize &size, unsigned edges)
Definition: IWORKCollector.cpp:423
void collectImage(const IWORKMediaContentPtr_t &image, const IWORKGeometryPtr_t &cropGeometry=IWORKGeometryPtr_t(), const boost::optional< int > &order=boost::none, bool locked=false)
Definition: IWORKCollector.cpp:341
Definition: IWORKTypes.h:89
Definition: IWORKTypes.h:61
virtual void drawTextBox(const IWORKTextPtr_t &text, const glm::dmat3 &trafo, const IWORKGeometryPtr_t &boundingBox, const librevenge::RVNGPropertyList &style)=0
void endLevel()
Definition: IWORKCollector.cpp:656
IWORKPathPtr_t makeCalloutPath(const IWORKSize &size, const double radius, const double tailSize, const double tailX, const double tailY)
Definition: IWORKShape.cpp:288
void set(const IWORKStylePtr_t &style)
Definition: IWORKStyleStack.cpp:45
glm::dmat3 m_trafo
Definition: IWORKCollector.h:48
Definition: IWORKToken.h:570
void startAttachment()
Definition: IWORKCollector.cpp:670
std::shared_ptr< IWORKStylesheet > IWORKStylesheetPtr_t
Definition: IWORKStylesheet.h:19
Definition: IWORKEnum.h:120
Definition: IWORKEnum.h:115
Definition: IWORKToken.h:358
Definition: IWORKCollector.h:44
std::stack< bool > m_attachmentStack
Definition: IWORKCollector.h:179
Definition: IWORKToken.h:502
void collectMedia(const IWORKMediaContentPtr_t &content, const IWORKGeometryPtr_t &cropGeometry=IWORKGeometryPtr_t(), const boost::optional< int > &order=boost::none)
Definition: IWORKCollector.cpp:485
IWORKStylePtr_t m_graphicStyle
Definition: IWORKCollector.h:47
IWORKColor m_color
Definition: IWORKTypes.h:316
std::shared_ptr< IWORKMediaContent > IWORKMediaContentPtr_t
Definition: IWORKTypes_fwd.h:54
const double etonyek_half_pi(1.57079632679489661923132169163975144209858469968755291048747229615390820314310449931401741267105853399107404326e+00)
IWORKPathPtr_t makeArrowPath(const IWORKSize &size, const double headWidth, const double stemThickness)
Definition: IWORKShape.cpp:216
Definition: IWORKEnum.h:114
std::stack< IWORKStylesheetPtr_t > m_stylesheetStack
Definition: IWORKCollector.h:165
void collectCalloutPath(const IWORKSize &size, double radius, double tailSize, double tailX, double tailY, bool quoteBubble)
Definition: IWORKCollector.cpp:472
IWORKMetadata m_metadata
Definition: IWORKCollector.h:190
void collectLine(const IWORKLinePtr_t &line)
Definition: IWORKCollector.cpp:364
void fillMetadata(librevenge::RVNGPropertyList &props)
Definition: IWORKCollector.cpp:769
void drawLine(const IWORKLinePtr_t &line)
Definition: IWORKCollector.cpp:1039
Definition: IWORKEnum.h:113
void addSetStyle(const librevenge::RVNGPropertyList &propList)
Definition: IWORKOutputElements.cpp:1133
void endAttachments()
Definition: IWORKCollector.cpp:715
void collectTable(const std::shared_ptr< IWORKTable > &table)
Definition: IWORKCollector.cpp:535
IWORKCollector(IWORKDocumentInterface *document)
Definition: IWORKCollector.cpp:237
void pushStylesheet(const IWORKStylesheetPtr_t &stylesheet)
Definition: IWORKCollector.cpp:731
double pt2in(const double d)
Convert a length from points to inches.
Definition: libetonyek_utils.cpp:225
Definition: IWORKPath.h:87
IWORKStyleStack m_styleStack
Definition: IWORKCollector.h:164
bool link(const IWORKStylesheetPtr_t &stylesheet)
Find the parent style by its ID.
Definition: IWORKStyle.cpp:38
Definition: libetonyek_utils.h:151
void pushStyle()
Definition: IWORKCollector.cpp:721
std::shared_ptr< IWORKTable > m_currentTable
Definition: IWORKCollector.h:170
double m_scale
Definition: IWORKTypes.h:93
Definition: IWORKToken.h:395
virtual std::shared_ptr< IWORKTable > createTable(const IWORKTableNameMapPtr_t &tableNameMap, const IWORKLanguageManager &langManager) const
Definition: IWORKCollector.cpp:625
Definition: IWORKPath.h:34
Definition: PAG1Token.h:43
Definition: IWORKToken.h:298
Definition: IWORKToken.h:163
int m_groupLevel
Definition: IWORKCollector.h:193
glm::dmat3 makeTransformation(const IWORKGeometry &geometry)
Create a transformation from a geometry.
Definition: IWORKTransformation.cpp:19
Definition: IWORKEnum.h:160
void addDrawPath(const librevenge::RVNGPropertyList &propList)
Definition: IWORKOutputElements.cpp:983
IWORKPathPtr_t makePolygonPath(const IWORKSize &size, const unsigned edges)
Path creator functions for stock shapes.
Definition: IWORKShape.cpp:175
Definition: IWORKToken.h:509
Definition: IWORKEnum.h:102
IWORKDataPtr_t m_currentData
Definition: IWORKCollector.h:184
std::shared_ptr< IWORKMedia > IWORKMediaPtr_t
Definition: IWORKTypes_fwd.h:64
virtual std::shared_ptr< IWORKText > createText(const IWORKLanguageManager &langManager, bool discardEmptyContent=false, bool allowListInsertion=true) const
Definition: IWORKCollector.cpp:630
IWORKGeometryPtr_t m_geometry
Definition: IWORKCollector.h:46
unsigned long getLength(const RVNGInputStreamPtr_t &input)
Definition: libetonyek_utils.cpp:184
std::shared_ptr< IWORKPath > IWORKPathPtr_t
Definition: IWORKPath_fwd.h:20
void collectRoundedRectanglePath(const IWORKSize &size, double radius)
Definition: IWORKCollector.cpp:432
IWORKMediaContentPtr_t m_currentLeveled
Definition: IWORKCollector.h:187
void startAttachments()
Definition: IWORKCollector.cpp:709
Definition: IWORKToken.h:260
bool m_inAttachment
Definition: IWORKCollector.h:180
Definition: IWORKToken.h:323
Definition: IWORKToken.h:151
const IWORKGeometryPtr_t m_geometry
Definition: IWORKRecorder.cpp:56
Definition: IWORKEnum.h:75
Definition: IWORKEnum.h:122
bool empty() const
Definition: IWORKOutputElements.cpp:888
void collectConnectionPath(const IWORKConnectionPath &path)
Definition: IWORKCollector.cpp:463
IWORKPathPtr_t makeDoubleArrowPath(const IWORKSize &size, const double headWidth, const double stemThickness)
Definition: IWORKShape.cpp:233
void collectBezier(const IWORKPathPtr_t &path)
Definition: IWORKCollector.cpp:330
Definition: IWORKToken.h:411
double m_opacity
Definition: IWORKTypes.h:320
Definition: NUM1Token.h:34
Definition: IWORKToken.h:592
Definition: IWORKToken.h:505
void collectShape(const boost::optional< int > &order=boost::none, bool locked=false)
Definition: IWORKCollector.cpp:382
Definition: IWORKTable.h:29
std::shared_ptr< IWORKLine > IWORKLinePtr_t
Definition: IWORKTypes_fwd.h:45
IWORKPathPtr_t makeRoundedRectanglePath(const IWORKSize &size, const double radius)
Definition: IWORKShape.cpp:189
Definition: IWORKToken.h:414
void popStylesheet()
Definition: IWORKCollector.cpp:742
double y
Definition: IWORKShape.cpp:46
Definition: IWORKCollector.h:41
A manager for output elements.
Definition: IWORKOutputManager.h:29
Definition: IWORKTypes.h:44
IWORKMediaContentPtr_t m_currentFiltered
Definition: IWORKCollector.h:186
void startGroup()
Definition: IWORKCollector.cpp:578
static void fillLayoutProps(const IWORKStylePtr_t style, librevenge::RVNGPropertyList &props)
Definition: IWORKCollector.cpp:948
static void fillWrapProps(const IWORKStylePtr_t style, librevenge::RVNGPropertyList &props, const boost::optional< int > &order)
Definition: IWORKCollector.cpp:984
Definition: IWORKEnum.h:100
void setAccumulateTransformTo(bool accumulate)
Definition: IWORKCollector.cpp:307
virtual void drawTable()=0
double x
Definition: IWORKShape.cpp:45
Definition: IWORKToken.h:405
boost::variant< IWORKColor, IWORKGradient, IWORKMediaContent > IWORKFill
Definition: IWORKTypes.h:309
#define ETONYEK_NUM_ELEMENTS(array)
Definition: libetonyek_utils.h:29
Definition: IWORKToken.h:641
Definition: IWORKEnum.h:173
void addCloseGroup()
Definition: IWORKOutputElements.cpp:918
Definition: IWORKEnum.h:98
Definition: IWORKEnum.h:99
void collectGeometry(const IWORKGeometryPtr_t &geometry)
Definition: IWORKCollector.cpp:312
Definition: IWORKToken.h:617
Definition: IWORKToken.h:496
IWORKMediaContentPtr_t m_currentContent
Definition: IWORKCollector.h:188
Definition: IWORKToken.h:524
Definition: IWORKToken.h:295
Definition: IWORKToken.h:412
void collectFooter(const std::string &name)
Definition: IWORKCollector.cpp:530
Definition: IWORKEnum.h:74
virtual bool createFrameStylesForTextBox() const =0
std::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition: IWORKTypes_fwd.h:41
double deg2rad(double value)
Convert an angle from degrees to radians.
Definition: libetonyek_utils.cpp:230
std::shared_ptr< IWORKStyle > IWORKStylePtr_t
Definition: IWORKStyle_fwd.h:21
Definition: IWORKEnum.h:108
Definition: IWORKToken.h:387
Definition: IWORKTypes.h:312
Definition: IWORKEnum.h:101
void setGraphicStyle(const IWORKStylePtr_t &style)
Definition: IWORKCollector.cpp:292
void collectMetadata(const IWORKMetadata &metadata)
Definition: IWORKCollector.cpp:520
Definition: IWORKToken.h:189
void collectStarPath(const IWORKSize &size, unsigned points, double innerRadius)
Definition: IWORKCollector.cpp:454
glm::dmat3 m_previousTrafo
Definition: IWORKCollector.h:49
void collectStyle(const IWORKStylePtr_t &style)
Definition: IWORKCollector.cpp:280
void setRecorder(const std::shared_ptr< IWORKRecorder > &recorder)
Definition: IWORKCollector.cpp:275
Definition: IWORKToken.h:200
IWORKPathPtr_t makeQuoteBubblePath(const IWORKSize &size, const double radius, const double tailSize, const double tailX, const double tailY)
Definition: IWORKShape.cpp:430
void addOpenGroup(const librevenge::RVNGPropertyList &propList)
Definition: IWORKOutputElements.cpp:1073
void closeGroup()
Definition: IWORKCollector.cpp:614
void collectStylesheet(const IWORKStylesheetPtr_t &stylesheet)
Definition: IWORKCollector.cpp:508
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr_t
Definition: libetonyek_utils.h:82
void pop()
Pop a style from the active styles stack.
Definition: IWORKStyleStack.cpp:40
virtual ~IWORKCollector()
Definition: IWORKCollector.cpp:265
void openGroup()
Definition: IWORKCollector.cpp:602
Definition: IWORKEnum.h:67
Definition: IWORKToken.h:343
std::shared_ptr< IWORKRecorder > m_recorder
Definition: IWORKCollector.h:161
Definition: IWORKEnum.h:76
virtual void endDocument()=0
Definition: IWORKEnum.h:161
void popStyle()
Definition: IWORKCollector.cpp:726
const ValueT & get(const detail::IWAFieldImpl< TagV, ValueT, Reader > &field)
Definition: IWAField.h:190
librevenge::RVNGString makeColor(const IWORKColor &color)
Definition: libetonyek_utils.cpp:251
Definition: IWORKEnum.h:68
void collectHeaderFooter(const std::string &name, IWORKHeaderFooterMap_t &map)
Definition: IWORKCollector.cpp:755
static void writeFill(const IWORKFill &fill, librevenge::RVNGPropertyList &props)
Definition: IWORKCollector.cpp:1249
Definition: KEY1Token.h:185
virtual void fillShapeProperties(librevenge::RVNGPropertyList &props)=0
static void fillGraphicProps(const IWORKStylePtr_t style, librevenge::RVNGPropertyList &props, bool isSurface=true, bool isFrame=false)
Definition: IWORKCollector.cpp:781
bool m_inAttachments
Definition: IWORKCollector.h:181
Definition: IWORKEnum.h:174
void drawMedia(const IWORKMediaPtr_t &media)
Definition: IWORKCollector.cpp:1117
Definition: IWORKToken.h:232
std::stack< Level > m_levelStack
Definition: IWORKCollector.h:163
Definition: IWORKToken.h:578
boost::optional< std::string > m_path
Definition: IWORKTypes.h:95
Definition: IWORKToken.h:174
IWORKPathPtr_t getPath() const
void collectText(const std::shared_ptr< IWORKText > &text)
Definition: IWORKCollector.cpp:549
std::shared_ptr< IWORKText > m_currentText
Definition: IWORKCollector.h:171
IWORKStylesheetPtr_t getStylesheet() const
Definition: IWORKCollector.h:119
virtual void drawShape(const IWORKShapePtr_t &shape)
Definition: IWORKCollector.cpp:1197
double m_angle
Definition: IWORKTypes.h:317
void push()
Push a style onto the active styles stack.
Definition: IWORKStyleStack.cpp:30
Definition: KEY1Token.h:58
Level()
Definition: IWORKCollector.cpp:229
Definition: IWORKToken.h:588
void collectBezierPath()
Definition: IWORKCollector.cpp:418
IWORKDocumentInterface * m_document
Definition: IWORKCollector.h:160
Definition: IWORKToken.h:321
Definition: IWORKOutputElements.h:32
Definition: IWORKToken.h:465
void endAttachment()
Definition: IWORKCollector.cpp:686
Generated for libetonyek by
doxygen 1.8.16