KEYCollector.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /*
3  * This file is part of the libetonyek project.
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 
10 #ifndef KEYCOLLECTOR_H_INCLUDED
11 #define KEYCOLLECTOR_H_INCLUDED
12 
13 #include <deque>
14 
15 #include "IWORKCollector.h"
16 #include "IWORKPath_fwd.h"
17 #include "IWORKStyle_fwd.h"
18 #include "KEYTypes.h"
19 #include "KEYTypes_fwd.h"
20 
21 namespace libetonyek
22 {
23 
25 {
26 public:
28  ~KEYCollector();
29 
30  // collector functions
31 
33 
35  void insertLayer(const KEYLayerPtr_t &layer);
36  void collectPage();
37 
39  void insertTextPlaceholder(const KEYPlaceholderPtr_t &placeholder);
40 
41  void collectNote();
42 
43  void collectStickyNote();
44 
45  void setSlideStyle(const IWORKStylePtr_t &style);
46 
47  // helper functions
48 
49  void startDocument();
50  void endDocument();
51 
52  void startSlides();
53  void endSlides();
54  void startThemes();
55  void endThemes();
56 
57  void startPage();
58  void endPage();
59  void startLayer();
60  void endLayer();
61 
62 protected:
63  bool m_paint;
64 
65 private:
66  struct Slide
67  {
70  };
71 
72 private:
73  void drawTable() override;
74  void drawMedia(double x, double y, double w, double h, const std::string &mimetype, const librevenge::RVNGBinaryData &data) override;
75  void fillShapeProperties(librevenge::RVNGPropertyList &props) override;
76  void drawTextBox(const IWORKTextPtr_t &text, const glm::dmat3 &trafo, const IWORKGeometryPtr_t &boundingBox) override;
77 
78  void writeSlide(const Slide &slide);
79 
80 private:
82 
83  std::deque<Slide> m_slides;
86 
90 };
91 
92 } // namespace libetonyek
93 
94 #endif // KEYCOLLECTOR_H_INCLUDED
95 
96 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
bool m_paint
Definition: KEYCollector.h:63
bool m_pageOpened
Definition: KEYCollector.h:87
void endPage()
Definition: KEYCollector.cpp:242
std::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition: IWORKTypes_fwd.h:39
Definition: IWORKBezierElement.cpp:18
void startSlides()
Definition: KEYCollector.cpp:210
bool m_layerOpened
Definition: KEYCollector.h:88
void drawTextBox(const IWORKTextPtr_t &text, const glm::dmat3 &trafo, const IWORKGeometryPtr_t &boundingBox) override
Definition: KEYCollector.cpp:330
void fillShapeProperties(librevenge::RVNGPropertyList &props) override
Definition: KEYCollector.cpp:326
void startLayer()
Definition: KEYCollector.cpp:259
Definition: IWORKOutputElements.h:29
Definition: IWORKToken.h:176
double y
Definition: IWORKShape.cpp:43
void insertTextPlaceholder(const KEYPlaceholderPtr_t &placeholder)
Definition: KEYCollector.cpp:133
std::shared_ptr< KEYPlaceholder > KEYPlaceholderPtr_t
Definition: KEYTypes_fwd.h:26
void collectStickyNote()
Definition: KEYCollector.cpp:160
Definition: KEY1Token.h:80
std::shared_ptr< IWORKStyle > IWORKStylePtr_t
Definition: IWORKStyle_fwd.h:21
void endDocument()
Definition: KEYCollector.cpp:199
KEYLayerPtr_t collectLayer()
Definition: KEYCollector.cpp:57
std::deque< Slide > m_slides
Definition: KEYCollector.h:83
Definition: IWORKToken.h:328
void startDocument()
Definition: KEYCollector.cpp:194
Definition: IWORKTypes.h:37
Definition: IWORKToken.h:284
Definition: IWORKDocumentInterface.h:18
void setSlideStyle(const IWORKStylePtr_t &style)
Definition: KEYCollector.cpp:185
double x
Definition: IWORKShape.cpp:42
Definition: IWORKToken.h:268
IWORKStylePtr_t m_style
Definition: KEYCollector.h:69
void endLayer()
Definition: KEYCollector.cpp:270
void startPage()
Definition: KEYCollector.cpp:228
void drawTable() override
Definition: KEYCollector.cpp:281
std::shared_ptr< KEYLayer > KEYLayerPtr_t
Definition: KEYTypes_fwd.h:21
Definition: IWORKCollector.h:41
void insertLayer(const KEYLayerPtr_t &layer)
Definition: KEYCollector.cpp:68
void collectPage()
Definition: KEYCollector.cpp:95
std::shared_ptr< IWORKText > IWORKTextPtr_t
Definition: IWORKText_fwd.h:18
Definition: IWORKToken.h:254
IWORKOutputElements m_notes
Definition: KEYCollector.h:84
~KEYCollector()
Definition: KEYCollector.cpp:47
int m_layerCount
Definition: KEYCollector.h:89
IWORKSize m_size
Definition: KEYCollector.h:81
void collectPresentationSize(const IWORKSize &size)
Definition: KEYCollector.cpp:52
Definition: IWORKToken.h:373
Definition: IWORKToken.h:291
void startThemes()
Definition: KEYCollector.cpp:220
void drawMedia(double x, double y, double w, double h, const std::string &mimetype, const librevenge::RVNGBinaryData &data) override
Definition: KEYCollector.cpp:310
Definition: IWORKToken.h:101
Definition: NUM1Token.h:34
Definition: IWORKToken.h:266
Definition: KEYCollector.h:24
IWORKOutputElements m_stickyNotes
Definition: KEYCollector.h:85
Definition: KEYCollector.h:66
void endSlides()
Definition: KEYCollector.cpp:215
void endThemes()
Definition: KEYCollector.cpp:224
void collectNote()
Definition: KEYCollector.cpp:151
IWORKOutputElements m_content
Definition: KEYCollector.h:68
KEYPlaceholderPtr_t collectTextPlaceholder(const IWORKStylePtr_t &style, bool title)
Definition: KEYCollector.cpp:111
void writeSlide(const Slide &slide)
Definition: KEYCollector.cpp:370
KEYCollector(IWORKDocumentInterface *document)
Definition: KEYCollector.cpp:33

Generated for libetonyek by doxygen 1.8.13