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 "KEYTypes.h"
18 #include "KEYTypes_fwd.h"
19 
20 namespace libetonyek
21 {
22 
24 {
25 public:
27  ~KEYCollector();
28 
29  // collector functions
30 
32 
34  void insertLayer(const KEYLayerPtr_t &layer);
35  void collectPage();
36 
38  void insertTextPlaceholder(const KEYPlaceholderPtr_t &placeholder);
39 
40  void collectNote();
41 
42  void collectStickyNote();
43 
44  void setSlideStyle(const IWORKStylePtr_t &style);
45 
46  // helper functions
47 
48  void startDocument();
49  void endDocument();
50 
51  void startSlides();
52  void endSlides();
53  void startThemes();
54  void endThemes();
55 
56  void startPage();
57  void endPage();
58  void startLayer();
59  void endLayer();
60 
61 private:
62  struct Slide
63  {
65  boost::shared_ptr<IWORKStyle> m_style;
66  };
67 
68 private:
69  virtual void drawTable();
70  virtual void drawMedia(double x, double y, double w, double h, const std::string &mimetype, const librevenge::RVNGBinaryData &data);
71  virtual void fillShapeProperties(librevenge::RVNGPropertyList &props);
72  virtual void drawTextBox(const IWORKTextPtr_t &text, const glm::dmat3 &trafo, const IWORKGeometryPtr_t &boundingBox);
73 
74  void writeSlide(const Slide &slide);
75 
76 private:
78 
79  std::deque<Slide> m_slides;
82 
86 
87  bool m_paint;
88 };
89 
90 } // namespace libetonyek
91 
92 #endif // KEYCOLLECTOR_H_INCLUDED
93 
94 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
bool m_paint
Definition: KEYCollector.h:87
bool m_pageOpened
Definition: KEYCollector.h:83
void endPage()
Definition: KEYCollector.cpp:240
Definition: IWORKBezierElement.cpp:18
void startSlides()
Definition: KEYCollector.cpp:208
bool m_layerOpened
Definition: KEYCollector.h:84
void startLayer()
Definition: KEYCollector.cpp:252
Definition: IWORKOutputElements.h:30
boost::shared_ptr< IWORKStyle > m_style
Definition: KEYCollector.h:65
Definition: IWORKToken.h:164
double y
Definition: IWORKShape.cpp:43
void insertTextPlaceholder(const KEYPlaceholderPtr_t &placeholder)
Definition: KEYCollector.cpp:131
boost::shared_ptr< IWORKStyle > IWORKStylePtr_t
Definition: IWORKStyle_fwd.h:21
void collectStickyNote()
Definition: KEYCollector.cpp:158
Definition: KEY1Token.h:80
void endDocument()
Definition: KEYCollector.cpp:197
KEYLayerPtr_t collectLayer()
Definition: KEYCollector.cpp:55
std::deque< Slide > m_slides
Definition: KEYCollector.h:79
Definition: IWORKToken.h:295
void startDocument()
Definition: KEYCollector.cpp:192
boost::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition: IWORKTypes_fwd.h:40
Definition: IWORKTypes.h:36
boost::shared_ptr< KEYPlaceholder > KEYPlaceholderPtr_t
Definition: KEYTypes_fwd.h:27
Definition: IWORKToken.h:257
Definition: IWORKDocumentInterface.h:18
void setSlideStyle(const IWORKStylePtr_t &style)
Definition: KEYCollector.cpp:183
double x
Definition: IWORKShape.cpp:42
virtual void fillShapeProperties(librevenge::RVNGPropertyList &props)
Definition: KEYCollector.cpp:319
Definition: IWORKToken.h:241
void endLayer()
Definition: KEYCollector.cpp:263
void startPage()
Definition: KEYCollector.cpp:226
virtual void drawMedia(double x, double y, double w, double h, const std::string &mimetype, const librevenge::RVNGBinaryData &data)
Definition: KEYCollector.cpp:303
Definition: IWORKCollector.h:40
void insertLayer(const KEYLayerPtr_t &layer)
Definition: KEYCollector.cpp:66
void collectPage()
Definition: KEYCollector.cpp:93
Definition: IWORKToken.h:227
IWORKOutputElements m_notes
Definition: KEYCollector.h:80
~KEYCollector()
Definition: KEYCollector.cpp:45
int m_layerCount
Definition: KEYCollector.h:85
IWORKSize m_size
Definition: KEYCollector.h:77
void collectPresentationSize(const IWORKSize &size)
Definition: KEYCollector.cpp:50
Definition: IWORKToken.h:333
Definition: IWORKToken.h:262
void startThemes()
Definition: KEYCollector.cpp:218
Definition: IWORKToken.h:92
Definition: NUM1Token.h:34
Definition: IWORKToken.h:239
Definition: KEYCollector.h:23
IWORKOutputElements m_stickyNotes
Definition: KEYCollector.h:81
virtual void drawTable()
Definition: KEYCollector.cpp:274
virtual void drawTextBox(const IWORKTextPtr_t &text, const glm::dmat3 &trafo, const IWORKGeometryPtr_t &boundingBox)
Definition: KEYCollector.cpp:323
Definition: KEYCollector.h:62
boost::shared_ptr< IWORKText > IWORKTextPtr_t
Definition: IWORKText_fwd.h:18
void endSlides()
Definition: KEYCollector.cpp:213
void endThemes()
Definition: KEYCollector.cpp:222
void collectNote()
Definition: KEYCollector.cpp:149
IWORKOutputElements m_content
Definition: KEYCollector.h:64
KEYPlaceholderPtr_t collectTextPlaceholder(const IWORKStylePtr_t &style, bool title)
Definition: KEYCollector.cpp:109
void writeSlide(const Slide &slide)
Definition: KEYCollector.cpp:363
KEYCollector(IWORKDocumentInterface *document)
Definition: KEYCollector.cpp:31
boost::shared_ptr< KEYLayer > KEYLayerPtr_t
Definition: KEYTypes_fwd.h:22

Generated for libetonyek by doxygen 1.8.10