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);
96 void startDocument(
const librevenge::RVNGPropertyList &props);
135 virtual std::shared_ptr<IWORKText>
createText(
const IWORKLanguageManager &langManager,
bool discardEmptyContent =
false,
bool allowListInsertion=
true)
const;
141 bool isSurface=
true,
bool isFrame=
false);
145 const boost::optional<int> &
order);
157 virtual void drawMedia(
double x,
double y,
const librevenge::RVNGPropertyList &
data) = 0;
205 #endif // IWORKCOLLECTOR_H_INCLUDED
IWORKPathPtr_t m_currentPath
Definition: IWORKCollector.h:183
void endDocument()
Definition: IWORKCollector.cpp:527
IWORKHeaderFooterMap_t m_headers
Definition: IWORKCollector.h:179
IWORKOutputManager & getOutputManager()
Definition: IWORKCollector.cpp:1016
@ IWORK_WRAP_DIRECTION_RIGHT
Definition: IWORKEnum.h:163
std::shared_ptr< IWORKShape > IWORKShapePtr_t
Definition: IWORKShape.h:39
Definition: IWORKDocumentInterface.h:19
Definition: IWORKBezierElement.cpp:21
@ none
Definition: IWORKToken.h:674
Definition: IWORKTypes.h:278
std::stack< IWORKPathPtr_t > m_pathStack
Definition: IWORKCollector.h:182
@ IWORK_LINE_CAP_ROUND
Definition: IWORKEnum.h:69
@ table
Definition: KEY1Token.h:198
bool m_accumulateTransform
Definition: IWORKCollector.h:198
Definition: IWORKLanguageManager.h:24
@ flags
Definition: IWORKToken.h:534
void startLevel()
Definition: IWORKCollector.cpp:598
double m_opacity
the opacity
Definition: IWORKCollector.cpp:178
@ shape
Definition: IWORKToken.h:401
std::string detectMimetype(const RVNGInputStreamPtr_t &stream)
Definition: libetonyek_utils.cpp:329
double m_offset
Definition: IWORKTypes.h:320
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:481
RVNGPropertyList & m_props
Definition: IWORKCollector.cpp:176
IWORKStrokeType
Definition: IWORKEnum.h:120
void addDrawPolyline(const librevenge::RVNGPropertyList &propList)
Definition: IWORKOutputElements.cpp:1021
IWORKOutputElements & getCurrent()
Get the current output element.
Definition: IWORKOutputManager.cpp:57
@ type
Definition: IWORKToken.h:493
void pushStyle(const IWORKStylePtr_t &style)
IWORKOutputManager m_outputManager
Definition: IWORKCollector.h:172
std::shared_ptr< IWORKData > IWORKDataPtr_t
Definition: IWORKTypes_fwd.h:49
Definition: IWORKPath.h:29
@ stylesheet
Definition: IWORKToken.h:424
std::deque< IWORKStylePtr_t > m_newStyles
Definition: IWORKCollector.h:174
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:397
Representation of a shape.
Definition: IWORKShape.h:27
IWORKPathPtr_t makeStarPath(const IWORKSize &size, const unsigned points, const double innerRadius)
Definition: IWORKShape.cpp:259
Definition: IWORKTypes.h:173
void endGroup()
Definition: IWORKCollector.cpp:550
@ IWORK_GRADIENT_TYPE_LINEAR
Definition: IWORKEnum.h:108
#define ETONYEK_DEBUG_MSG(M)
Definition: libetonyek_utils.h:54
IWORKMediaContentPtr_t m_currentUnfiltered
Definition: IWORKCollector.h:191
@ IWORK_STROKE_TYPE_AUTO
Definition: IWORKEnum.h:124
Definition: IWORKTypes.h:100
@ IWORK_STROKE_TYPE_SOLID
Definition: IWORKEnum.h:122
std::unordered_map< std::string, IWORKOutputElements > IWORKHeaderFooterMap_t
Definition: IWORKTypes.h:40
IWORKHeaderFooterMap_t m_footers
Definition: IWORKCollector.h:180
@ IWORK_WRAP_TYPE_NEITHER
Definition: IWORKEnum.h:176
std::shared_ptr< IWORKText > IWORKTextPtr_t
Definition: IWORKText_fwd.h:20
IWORKVerticalAlignment
Definition: IWORKEnum.h:113
Representation of a dynamic inheritance of styles.
Definition: IWORKStyleStack.h:35
void collectPolygonPath(const IWORKSize &size, unsigned edges)
Definition: IWORKCollector.cpp:379
IWORKCollector(const IWORKCollector &)
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:296
Definition: IWORKTypes.h:90
Definition: IWORKTypes.h:62
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:619
bool getOpenGroupLevel() const
Definition: IWORKCollector.h:111
IWORKPathPtr_t makeCalloutPath(const IWORKSize &size, const double radius, const double tailSize, const double tailX, const double tailY)
Definition: IWORKShape.cpp:289
void set(const IWORKStylePtr_t &style)
Definition: IWORKStyleStack.cpp:45
glm::dmat3 m_trafo
Definition: IWORKCollector.h:48
@ locked
Definition: IWORKToken.h:577
void startAttachment()
Definition: IWORKCollector.cpp:633
std::shared_ptr< IWORKStylesheet > IWORKStylesheetPtr_t
Definition: IWORKStylesheet.h:19
@ IWORK_STROKE_TYPE_NONE
Definition: IWORKEnum.h:121
@ IWORK_VERTICAL_ALIGNMENT_BOTTOM
Definition: IWORKEnum.h:116
@ path
Definition: IWORKToken.h:365
Definition: IWORKCollector.h:45
std::stack< bool > m_attachmentStack
Definition: IWORKCollector.h:185
@ align
Definition: IWORKToken.h:509
void collectMedia(const IWORKMediaContentPtr_t &content, const IWORKGeometryPtr_t &cropGeometry=IWORKGeometryPtr_t(), const boost::optional< int > &order=boost::none)
Definition: IWORKCollector.cpp:441
IWORKStylePtr_t m_graphicStyle
Definition: IWORKCollector.h:47
IWORKColor m_color
Definition: IWORKTypes.h:317
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:217
@ IWORK_VERTICAL_ALIGNMENT_MIDDLE
Definition: IWORKEnum.h:115
std::stack< IWORKStylesheetPtr_t > m_stylesheetStack
Definition: IWORKCollector.h:171
void startDocument(const librevenge::RVNGPropertyList &props)
Definition: IWORKCollector.cpp:522
void collectCalloutPath(const IWORKSize &size, double radius, double tailSize, double tailX, double tailY, bool quoteBubble)
Definition: IWORKCollector.cpp:428
IWORKMetadata m_metadata
Definition: IWORKCollector.h:196
void collectLine(const IWORKLinePtr_t &line)
Definition: IWORKCollector.cpp:319
void fillMetadata(librevenge::RVNGPropertyList &props)
Definition: IWORKCollector.cpp:732
void drawLine(const IWORKLinePtr_t &line)
Definition: IWORKCollector.cpp:1021
@ IWORK_VERTICAL_ALIGNMENT_TOP
Definition: IWORKEnum.h:114
void addSetStyle(const librevenge::RVNGPropertyList &propList)
Definition: IWORKOutputElements.cpp:1166
void endAttachments()
Definition: IWORKCollector.cpp:678
void collectTable(const std::shared_ptr< IWORKTable > &table)
Definition: IWORKCollector.cpp:491
static void fillTextAutoSizeProps(const boost::optional< unsigned > &resizeFlags, const IWORKGeometryPtr_t &boundingBox, librevenge::RVNGPropertyList &props)
Definition: IWORKCollector.cpp:946
IWORKCollector(IWORKDocumentInterface *document)
Definition: IWORKCollector.cpp:191
void pushStylesheet(const IWORKStylesheetPtr_t &stylesheet)
Definition: IWORKCollector.cpp:694
double pt2in(const double d)
Convert a length from points to inches.
Definition: libetonyek_utils.cpp:225
Definition: IWORKPath.h:88
IWORKStyleStack m_styleStack
Definition: IWORKCollector.h:170
bool link(const IWORKStylesheetPtr_t &stylesheet)
Find the parent style by its ID.
Definition: IWORKStyle.cpp:38
bool m_visible
Definition: IWORKTypes.h:316
Definition: libetonyek_utils.h:154
void pushStyle()
Definition: IWORKCollector.cpp:684
std::shared_ptr< IWORKTable > m_currentTable
Definition: IWORKCollector.h:176
double m_scale
Definition: IWORKTypes.h:93
@ size
Definition: IWORKToken.h:402
virtual std::shared_ptr< IWORKTable > createTable(const IWORKTableNameMapPtr_t &tableNameMap, const IWORKLanguageManager &langManager) const
Definition: IWORKCollector.cpp:588
Definition: IWORKPath.h:34
@ order
Definition: PAG1Token.h:43
@ line
Definition: IWORKToken.h:303
@ content
Definition: IWORKToken.h:167
int m_groupLevel
Definition: IWORKCollector.h:199
glm::dmat3 makeTransformation(const IWORKGeometry &geometry)
Create a transformation from a geometry.
Definition: IWORKTransformation.cpp:19
@ IWORK_WRAP_DIRECTION_BOTH
Definition: IWORKEnum.h:161
void addDrawPath(const librevenge::RVNGPropertyList &propList)
Definition: IWORKOutputElements.cpp:1016
IWORKPathPtr_t makePolygonPath(const IWORKSize &size, const unsigned edges)
Path creator functions for stock shapes.
Definition: IWORKShape.cpp:176
@ c
Definition: IWORKToken.h:516
@ IWORK_IMAGE_TYPE_SCALE_TO_FIT
Definition: IWORKEnum.h:103
IWORKDataPtr_t m_currentData
Definition: IWORKCollector.h:190
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:593
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:388
IWORKMediaContentPtr_t m_currentLeveled
Definition: IWORKCollector.h:193
void startAttachments()
Definition: IWORKCollector.cpp:672
@ image
Definition: IWORKToken.h:264
bool m_inAttachment
Definition: IWORKCollector.h:186
@ metadata
Definition: IWORKToken.h:328
@ color
Definition: IWORKToken.h:155
const IWORKGeometryPtr_t m_geometry
Definition: IWORKRecorder.cpp:56
@ IWORK_LINE_JOIN_MITER
Definition: IWORKEnum.h:75
@ IWORK_STROKE_TYPE_DASHED
Definition: IWORKEnum.h:123
bool empty() const
Definition: IWORKOutputElements.cpp:916
void collectConnectionPath(const IWORKConnectionPath &path)
Definition: IWORKCollector.cpp:419
IWORKPathPtr_t makeDoubleArrowPath(const IWORKSize &size, const double headWidth, const double stemThickness)
Definition: IWORKShape.cpp:234
void collectBezier(const IWORKPathPtr_t &path)
Definition: IWORKCollector.cpp:285
@ string
Definition: IWORKToken.h:418
double m_opacity
Definition: IWORKTypes.h:321
@ document
Definition: NUM1Token.h:34
@ pos
Definition: IWORKToken.h:599
@ angle
Definition: IWORKToken.h:512
Definition: IWORKTable.h:32
std::shared_ptr< IWORKLine > IWORKLinePtr_t
Definition: IWORKTypes_fwd.h:45
IWORKPathPtr_t makeRoundedRectanglePath(const IWORKSize &size, const double radius)
Definition: IWORKShape.cpp:190
@ style
Definition: IWORKToken.h:421
void popStylesheet()
Definition: IWORKCollector.cpp:705
double y
Definition: IWORKShape.cpp:47
Definition: IWORKCollector.h:42
A manager for output elements.
Definition: IWORKOutputManager.h:30
Definition: IWORKTypes.h:45
IWORKMediaContentPtr_t m_currentFiltered
Definition: IWORKCollector.h:192
void startGroup()
Definition: IWORKCollector.cpp:539
static void fillLayoutProps(const IWORKStylePtr_t style, librevenge::RVNGPropertyList &props)
Definition: IWORKCollector.cpp:910
static void fillWrapProps(const IWORKStylePtr_t style, librevenge::RVNGPropertyList &props, const boost::optional< int > &order)
Definition: IWORKCollector.cpp:966
@ IWORK_IMAGE_TYPE_TILE
Definition: IWORKEnum.h:101
void setAccumulateTransformTo(bool accumulate)
Definition: IWORKCollector.cpp:262
virtual void drawTable()=0
double x
Definition: IWORKShape.cpp:46
@ start
Definition: IWORKToken.h:412
boost::variant< IWORKColor, IWORKGradient, IWORKMediaContent > IWORKFill
Definition: IWORKTypes.h:309
virtual void collectStickyNote()
Definition: IWORKCollector.cpp:517
@ _1
Definition: IWORKToken.h:649
@ IWORK_WRAP_TYPE_DIRECTIONAL
Definition: IWORKEnum.h:174
void addCloseGroup()
Definition: IWORKOutputElements.cpp:946
@ IWORK_IMAGE_TYPE_ORIGINAL_SIZE
Definition: IWORKEnum.h:99
@ IWORK_IMAGE_TYPE_STRETCH
Definition: IWORKEnum.h:100
void collectGeometry(const IWORKGeometryPtr_t &geometry)
Definition: IWORKCollector.cpp:267
@ tailSize
Definition: IWORKToken.h:624
@ wrap
Definition: IWORKToken.h:503
IWORKMediaContentPtr_t m_currentContent
Definition: IWORKCollector.h:194
@ first
Definition: IWORKToken.h:531
@ layoutStyle
Definition: IWORKToken.h:300
virtual void drawMedia(double x, double y, const librevenge::RVNGPropertyList &data)=0
@ stroke
Definition: IWORKToken.h:419
void collectFooter(const std::string &name)
Definition: IWORKCollector.cpp:486
@ IWORK_LINE_JOIN_NONE
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
@ IWORK_GRADIENT_TYPE_RADIAL
Definition: IWORKEnum.h:109
@ s
Definition: IWORKToken.h:394
Definition: IWORKTypes.h:313
@ IWORK_IMAGE_TYPE_SCALE_TO_FILL
Definition: IWORKEnum.h:102
void setGraphicStyle(const IWORKStylePtr_t &style)
Definition: IWORKCollector.cpp:247
void collectMetadata(const IWORKMetadata &metadata)
Definition: IWORKCollector.cpp:476
@ end
Definition: IWORKToken.h:193
void collectStarPath(const IWORKSize &size, unsigned points, double innerRadius)
Definition: IWORKCollector.cpp:410
glm::dmat3 m_previousTrafo
Definition: IWORKCollector.h:49
void collectStyle(const IWORKStylePtr_t &style)
Definition: IWORKCollector.cpp:235
void setRecorder(const std::shared_ptr< IWORKRecorder > &recorder)
Definition: IWORKCollector.cpp:230
@ fill
Definition: IWORKToken.h:204
IWORKPathPtr_t makeQuoteBubblePath(const IWORKSize &size, const double radius, const double tailSize, const double tailX, const double tailY)
Definition: IWORKShape.cpp:431
void addOpenGroup(const librevenge::RVNGPropertyList &propList)
Definition: IWORKOutputElements.cpp:1106
void closeGroup()
Definition: IWORKCollector.cpp:576
void collectStylesheet(const IWORKStylesheetPtr_t &stylesheet)
Definition: IWORKCollector.cpp:464
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:220
void openGroup()
Definition: IWORKCollector.cpp:563
@ IWORK_LINE_CAP_NONE
Definition: IWORKEnum.h:67
@ padding
Definition: IWORKToken.h:349
std::shared_ptr< IWORKRecorder > m_recorder
Definition: IWORKCollector.h:167
@ IWORK_LINE_JOIN_ROUND
Definition: IWORKEnum.h:76
virtual void endDocument()=0
@ IWORK_WRAP_DIRECTION_LEFT
Definition: IWORKEnum.h:162
void popStyle()
Definition: IWORKCollector.cpp:689
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
void collectShape(const boost::optional< int > &order=boost::none, const boost::optional< unsigned > &resizeFlags=boost::none, bool locked=false)
Definition: IWORKCollector.cpp:337
@ IWORK_LINE_CAP_BUTT
Definition: IWORKEnum.h:68
void collectHeaderFooter(const std::string &name, IWORKHeaderFooterMap_t &map)
Definition: IWORKCollector.cpp:718
static void writeFill(const IWORKFill &fill, librevenge::RVNGPropertyList &props)
Definition: IWORKCollector.cpp:1234
@ radius
Definition: KEY1Token.h:185
virtual void fillShapeProperties(librevenge::RVNGPropertyList &props)=0
int m_groupOpenLevel
Definition: IWORKCollector.h:200
static void fillGraphicProps(const IWORKStylePtr_t style, librevenge::RVNGPropertyList &props, bool isSurface=true, bool isFrame=false)
Definition: IWORKCollector.cpp:744
bool m_inAttachments
Definition: IWORKCollector.h:187
@ IWORK_WRAP_TYPE_LARGEST
Definition: IWORKEnum.h:175
void drawMedia(const IWORKMediaPtr_t &media)
Definition: IWORKCollector.cpp:1100
@ geometry
Definition: IWORKToken.h:236
std::stack< Level > m_levelStack
Definition: IWORKCollector.h:169
@ name
Definition: IWORKToken.h:585
boost::optional< std::string > m_path
Definition: IWORKTypes.h:95
@ data
Definition: IWORKToken.h:178
IWORKPathPtr_t getPath() const
void collectText(const std::shared_ptr< IWORKText > &text)
Definition: IWORKCollector.cpp:505
std::shared_ptr< IWORKText > m_currentText
Definition: IWORKCollector.h:177
IWORKStylesheetPtr_t getStylesheet() const
Definition: IWORKCollector.h:124
void drawShape(const IWORKShapePtr_t &shape)
Definition: IWORKCollector.cpp:1180
double m_angle
Definition: IWORKTypes.h:318
void push()
Push a style onto the active styles stack.
Definition: IWORKStyleStack.cpp:30
@ gradient
Definition: KEY1Token.h:58
Level()
Definition: IWORKCollector.cpp:183
@ opacity
Definition: IWORKToken.h:595
void collectBezierPath()
Definition: IWORKCollector.cpp:374
IWORKDocumentInterface * m_document
Definition: IWORKCollector.h:166
@ media
Definition: IWORKToken.h:326
Definition: IWORKOutputElements.h:33
@ text
Definition: IWORKToken.h:472
void endAttachment()
Definition: IWORKCollector.cpp:649
Generated for libetonyek by
doxygen 1.8.20