IWORKRecorder.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 IWORKRECORDER_H_INCLUDED
11 #define IWORKRECORDER_H_INCLUDED
12
13 #include <memory>
14 #include <string>
15
16 #include <boost/optional.hpp>
17
18 #include "IWORKPath_fwd.h"
19 #include "IWORKStyle.h"
20 #include "IWORKStylesheet.h"
21 #include "IWORKTypes_fwd.h"
22
23 namespace libetonyek
24 {
25
26 class IWORKCollector;
27 class IWORKTable;
28 class IWORKText;
29 struct IWORKSize;
30
31 class IWORKRecorder
32 {
33 public:
34 IWORKRecorder();
35
36 void replay(IWORKCollector &collector) const;
37
38 // recorder functions
39
40 void collectStyle(const IWORKStylePtr_t &style);
41
42 void setGraphicStyle(const IWORKStylePtr_t &style);
43
44 void collectGeometry(const IWORKGeometryPtr_t &geometry);
45
46 void collectPath(const IWORKPathPtr_t &path);
47 void collectImage(const IWORKImagePtr_t &image);
48 void collectLine(const IWORKLinePtr_t &line);
49 void collectShape();
50
51 void collectMedia(const IWORKMediaContentPtr_t &content);
52
53 void collectStylesheet(const IWORKStylesheetPtr_t &stylesheet);
54
55 void collectTable(const std::shared_ptr<IWORKTable> &table);
56 void collectText(const std::shared_ptr<IWORKText> &text);
57
58 void startGroup();
59 void endGroup();
60
61 void startLevel();
62 void endLevel();
63
64 void pushStylesheet(const IWORKStylesheetPtr_t &stylesheet);
65 void popStylesheet();
66
67 private:
68 struct Impl;
69
70 private:
71 std::shared_ptr<Impl> m_impl;
72 };
73
74 } // namespace libetonyek
75
76 #endif // IWORKRECORDER_H_INCLUDED
77
78 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libetonyek::IWORKGeometryPtr_t
std::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition: IWORKTypes_fwd.h:39
libetonyek
Definition: IWORKBezierElement.cpp:18
libetonyek::IWORKToken::path
Definition: IWORKToken.h:228
libetonyek::IWORKToken::stylesheet
Definition: IWORKToken.h:271
libetonyek::IWORKToken::line
Definition: IWORKToken.h:187
libetonyek::IWORKToken::content
Definition: IWORKToken.h:93
libetonyek::IWORKStylePtr_t
std::shared_ptr< IWORKStyle > IWORKStylePtr_t
Definition: IWORKStyle_fwd.h:21
libetonyek::IWORKToken::image
Definition: IWORKToken.h:163
libetonyek::IWORKRecorder
Definition: IWORKRecorder.h:31
libetonyek::IWORKRecorder::replay
void replay(IWORKCollector &collector) const
Definition: IWORKRecorder.cpp:312
libetonyek::IWORKToken::text
Definition: IWORKToken.h:284
IWORKTypes_fwd.h
libetonyek::IWORKRecorder::startLevel
void startLevel()
Definition: IWORKRecorder.cpp:384
libetonyek::IWORKRecorder::collectStylesheet
void collectStylesheet(const IWORKStylesheetPtr_t &stylesheet)
Definition: IWORKRecorder.cpp:359
libetonyek::IWORKRecorder::collectPath
void collectPath(const IWORKPathPtr_t &path)
Definition: IWORKRecorder.cpp:334
libetonyek::IWORKRecorder::collectMedia
void collectMedia(const IWORKMediaContentPtr_t &content)
Definition: IWORKRecorder.cpp:354
libetonyek::IWORKToken::style
Definition: IWORKToken.h:268
IWORKStyle.h
libetonyek::IWORKRecorder::collectLine
void collectLine(const IWORKLinePtr_t &line)
Definition: IWORKRecorder.cpp:344
libetonyek::IWORKCollector
Definition: IWORKCollector.h:41
libetonyek::IWORKRecorder::endLevel
void endLevel()
Definition: IWORKRecorder.cpp:389
libetonyek::IWORKRecorder::startGroup
void startGroup()
Definition: IWORKRecorder.cpp:374
IWORKPath_fwd.h
IWORKStylesheet.h
libetonyek::IWORKToken::geometry
Definition: IWORKToken.h:148
libetonyek::IWORKRecorder::collectStyle
void collectStyle(const IWORKStylePtr_t &style)
Definition: IWORKRecorder.cpp:319
libetonyek::IWORKLinePtr_t
std::shared_ptr< IWORKLine > IWORKLinePtr_t
Definition: IWORKTypes_fwd.h:43
libetonyek::IWORKRecorder::collectImage
void collectImage(const IWORKImagePtr_t &image)
Definition: IWORKRecorder.cpp:339
libetonyek::IWORKRecorder::m_impl
std::shared_ptr< Impl > m_impl
Definition: IWORKRecorder.h:68
libetonyek::IWORKRecorder::setGraphicStyle
void setGraphicStyle(const IWORKStylePtr_t &style)
Definition: IWORKRecorder.cpp:324
libetonyek::IWORKImagePtr_t
std::shared_ptr< IWORKImage > IWORKImagePtr_t
Definition: IWORKTypes_fwd.h:57
libetonyek::IWORKRecorder::collectTable
void collectTable(const std::shared_ptr< IWORKTable > &table)
Definition: IWORKRecorder.cpp:364
libetonyek::IWORKPathPtr_t
std::shared_ptr< IWORKPath > IWORKPathPtr_t
Definition: IWORKPath_fwd.h:20
libetonyek::IWORKRecorder::collectShape
void collectShape()
Definition: IWORKRecorder.cpp:349
libetonyek::IWORKRecorder::popStylesheet
void popStylesheet()
Definition: IWORKRecorder.cpp:399
libetonyek::IWORKRecorder::Impl
Definition: IWORKRecorder.cpp:295
libetonyek::IWORKMediaContentPtr_t
std::shared_ptr< IWORKMediaContent > IWORKMediaContentPtr_t
Definition: IWORKTypes_fwd.h:52
libetonyek::IWORKRecorder::collectGeometry
void collectGeometry(const IWORKGeometryPtr_t &geometry)
Definition: IWORKRecorder.cpp:329
libetonyek::IWORKRecorder::pushStylesheet
void pushStylesheet(const IWORKStylesheetPtr_t &stylesheet)
Definition: IWORKRecorder.cpp:394
libetonyek::IWORKRecorder::collectText
void collectText(const std::shared_ptr< IWORKText > &text)
Definition: IWORKRecorder.cpp:369
libetonyek::IWORKRecorder::endGroup
void endGroup()
Definition: IWORKRecorder.cpp:379
libetonyek::IWORKRecorder::IWORKRecorder
IWORKRecorder()
Definition: IWORKRecorder.cpp:307
libetonyek::IWORKStylesheetPtr_t
std::shared_ptr< IWORKStylesheet > IWORKStylesheetPtr_t
Definition: IWORKStylesheet.h:19