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() override;
29 
30  // collector functions
31 
33 
35  void insertLayer(const KEYLayerPtr_t &layer);
37 
38  KEYPlaceholderPtr_t collectTextPlaceholder(const IWORKStylePtr_t &style, bool title, const boost::optional<unsigned> &resizeFlags=boost::none);
39  void insertTextPlaceholder(const KEYPlaceholderPtr_t &placeholder);
40 
41  void collectNote();
42 
43  void collectStickyNote() override;
44 
45  void setSlideStyle(const IWORKStylePtr_t &style);
46 
47  // helper functions
48 
49  void startDocument();
50  void sendSlides(const std::deque<KEYSlidePtr_t> &slides);
51  void endDocument();
52 
53  void startSlides();
54  void endSlides();
55  void startThemes();
56  void endThemes();
57 
58  void startPage();
59  void endPage();
60  void startLayer();
61  void endLayer();
62 
63 protected:
64  bool m_inSlides;
65 
66 private:
67  void insertSlide(const KEYSlidePtr_t &slide, bool isMaster, const boost::optional<std::string> &pageName=boost::none);
68  void drawTable() override;
69  void drawMedia(double x, double y, const librevenge::RVNGPropertyList &data) override;
70  void fillShapeProperties(librevenge::RVNGPropertyList &props) override;
71  bool createFrameStylesForTextBox() const override
72  {
73  return false;
74  }
75  void drawTextBox(const IWORKTextPtr_t &text, const glm::dmat3 &trafo, const IWORKGeometryPtr_t &boundingBox, const librevenge::RVNGPropertyList &style) override;
76 
77 private:
79 
83 
87 };
88 
89 } // namespace libetonyek
90 
91 #endif // KEYCOLLECTOR_H_INCLUDED
92 
93 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
bool m_pageOpened
Definition: KEYCollector.h:84
void endPage()
Definition: KEYCollector.cpp:321
std::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition: IWORKTypes_fwd.h:41
void startSlides()
Definition: KEYCollector.cpp:289
bool m_layerOpened
Definition: KEYCollector.h:85
void fillShapeProperties(librevenge::RVNGPropertyList &props) override
Definition: KEYCollector.cpp:403
void startLayer()
Definition: KEYCollector.cpp:334
Definition: IWORKOutputElements.h:32
bool createFrameStylesForTextBox() const override
Definition: KEYCollector.h:71
Definition: IWORKToken.h:291
double y
Definition: IWORKShape.cpp:47
void sendSlides(const std::deque< KEYSlidePtr_t > &slides)
Definition: KEYCollector.cpp:239
void insertTextPlaceholder(const KEYPlaceholderPtr_t &placeholder)
Definition: KEYCollector.cpp:167
std::shared_ptr< KEYPlaceholder > KEYPlaceholderPtr_t
Definition: KEYTypes_fwd.h:26
~KEYCollector() override
Definition: KEYCollector.cpp:49
std::shared_ptr< KEYSlide > KEYSlidePtr_t
Definition: KEYTypes_fwd.h:31
Definition: KEY1Token.h:92
std::shared_ptr< IWORKStyle > IWORKStylePtr_t
Definition: IWORKStyle_fwd.h:21
void endDocument()
Definition: KEYCollector.cpp:284
KEYLayerPtr_t collectLayer()
Definition: KEYCollector.cpp:59
void startDocument()
Definition: KEYCollector.cpp:234
Definition: IWORKTypes.h:44
Definition: IWORKToken.h:472
Definition: IWORKDocumentInterface.h:18
void setSlideStyle(const IWORKStylePtr_t &style)
Definition: KEYCollector.cpp:225
double x
Definition: IWORKShape.cpp:46
Definition: IWORKToken.h:674
KEYPlaceholderPtr_t collectTextPlaceholder(const IWORKStylePtr_t &style, bool title, const boost::optional< unsigned > &resizeFlags=boost::none)
Definition: KEYCollector.cpp:145
Definition: IWORKToken.h:421
void endLayer()
Definition: KEYCollector.cpp:345
void startPage()
Definition: KEYCollector.cpp:307
void drawTable() override
Definition: KEYCollector.cpp:356
std::shared_ptr< KEYLayer > KEYLayerPtr_t
Definition: KEYTypes_fwd.h:21
Definition: IWORKCollector.h:41
void insertLayer(const KEYLayerPtr_t &layer)
Definition: KEYCollector.cpp:75
std::shared_ptr< IWORKText > IWORKTextPtr_t
Definition: IWORKText_fwd.h:20
Definition: IWORKToken.h:402
IWORKOutputElements m_notes
Definition: KEYCollector.h:81
int m_layerCount
Definition: KEYCollector.h:86
IWORKSize m_size
Definition: KEYCollector.h:78
void collectPresentationSize(const IWORKSize &size)
Definition: KEYCollector.cpp:54
KEYSlidePtr_t m_currentSlide
Definition: KEYCollector.h:80
Definition: IWORKToken.h:483
void startThemes()
Definition: KEYCollector.cpp:299
void collectStickyNote() override
Definition: KEYCollector.cpp:199
Definition: IWORKToken.h:178
Definition: NUM1Token.h:34
void drawMedia(double x, double y, const librevenge::RVNGPropertyList &data) override
Definition: KEYCollector.cpp:388
Definition: KEYCollector.h:24
IWORKOutputElements m_stickyNotes
Definition: KEYCollector.h:82
KEYSlidePtr_t collectSlide()
Definition: KEYCollector.cpp:101
void endSlides()
Definition: KEYCollector.cpp:294
void endThemes()
Definition: KEYCollector.cpp:303
void drawTextBox(const IWORKTextPtr_t &text, const glm::dmat3 &trafo, const IWORKGeometryPtr_t &boundingBox, const librevenge::RVNGPropertyList &style) override
Definition: KEYCollector.cpp:407
void collectNote()
Definition: KEYCollector.cpp:190
bool m_inSlides
Definition: KEYCollector.h:64
void insertSlide(const KEYSlidePtr_t &slide, bool isMaster, const boost::optional< std::string > &pageName=boost::none)
Definition: KEYCollector.cpp:120
KEYCollector(IWORKDocumentInterface *document)
Definition: KEYCollector.cpp:35

Generated for libetonyek by doxygen 1.8.6