KEYContentCollector.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 KEYCONTENTCOLLECTOR_H_INCLUDED
11 #define KEYCONTENTCOLLECTOR_H_INCLUDED
12 
13 #include "KEYCollectorBase.h"
14 #include "KEYTypes.h"
15 
16 namespace libetonyek
17 {
18 
19 struct KEYDictionary;
20 class KEYPresentationInterface;
21 
23 {
24  // disable copying
27 
28 public:
29  KEYContentCollector(KEYPresentationInterface *painter, KEYDictionary &dict, const KEYLayerMap_t &masterPages, const KEYSize &size, const KEYDefaults &defaults);
30  virtual ~KEYContentCollector();
31 
32  // collector functions
33 
34  virtual void collectPresentation(const boost::optional<KEYSize> &size);
35 
36  virtual void collectLayer(const boost::optional<ID_t> &id, bool ref);
37  virtual void collectPage(const boost::optional<ID_t> &id);
38 
39  virtual void startSlides();
40  virtual void endSlides();
41  virtual void startThemes();
42  virtual void endThemes();
43 
44  virtual void startPage();
45  virtual void endPage();
46  virtual void startLayer();
47  virtual void endLayer();
48 
49 private:
50  // helper functions
51 
53 
54  void drawLayer(const KEYLayerPtr_t &layer);
55 
56 private:
57  KEYPresentationInterface *m_painter;
58 
60  const KEYSize m_size;
61 
64 
66 };
67 
68 } // namespace libetonyek
69 
70 #endif // KEYCONTENTCOLLECTOR_H_INCLUDED
71 
72 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */

Generated for libetonyek by doxygen 1.8.3.1