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 IWORKMediaContentPtr_t &image, const IWORKGeometryPtr_t &cropGeometry, const boost::optional<int> &order, bool locked);
48 void collectLine(const IWORKLinePtr_t &line);
49 void collectShape(const boost::optional<int> &order, const boost::optional<unsigned> &resizeFlags, bool locked);
50
51 void collectMedia(const IWORKMediaContentPtr_t &content, const IWORKGeometryPtr_t &cropGeometry, const boost::optional<int> &order);
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 startAttachment();
59 void endAttachment();
60
61 void startAttachments();
62 void endAttachments();
63
64 void startGroup();
65 void endGroup();
66
67 void openGroup();
68 void closeGroup();
69
70 void startLevel();
71 void endLevel();
72
73 void pushStylesheet(const IWORKStylesheetPtr_t &stylesheet);
74 void popStylesheet();
75
76 private:
77 struct Impl;
78
79 private:
80 std::shared_ptr<Impl> m_impl;
81};
82
83} // namespace libetonyek
84
85#endif // IWORKRECORDER_H_INCLUDED
86
87/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
IWORKPath_fwd.h
IWORKStyle.h
IWORKStylesheet.h
IWORKTypes_fwd.h
libetonyek::IWORKCollector
Definition IWORKCollector.h:42
libetonyek::IWORKRecorder::collectShape
void collectShape(const boost::optional< int > &order, const boost::optional< unsigned > &resizeFlags, bool locked)
Definition IWORKRecorder.cpp:401
libetonyek::IWORKRecorder::collectImage
void collectImage(const IWORKMediaContentPtr_t &image, const IWORKGeometryPtr_t &cropGeometry, const boost::optional< int > &order, bool locked)
Definition IWORKRecorder.cpp:391
libetonyek::IWORKRecorder::startAttachment
void startAttachment()
Definition IWORKRecorder.cpp:427
libetonyek::IWORKRecorder::startLevel
void startLevel()
Definition IWORKRecorder.cpp:467
libetonyek::IWORKRecorder::collectMedia
void collectMedia(const IWORKMediaContentPtr_t &content, const IWORKGeometryPtr_t &cropGeometry, const boost::optional< int > &order)
Definition IWORKRecorder.cpp:406
libetonyek::IWORKRecorder::endLevel
void endLevel()
Definition IWORKRecorder.cpp:472
libetonyek::IWORKRecorder::replay
void replay(IWORKCollector &collector) const
Definition IWORKRecorder.cpp:364
libetonyek::IWORKRecorder::collectGeometry
void collectGeometry(const IWORKGeometryPtr_t &geometry)
Definition IWORKRecorder.cpp:381
libetonyek::IWORKRecorder::popStylesheet
void popStylesheet()
Definition IWORKRecorder.cpp:482
libetonyek::IWORKRecorder::collectPath
void collectPath(const IWORKPathPtr_t &path)
Definition IWORKRecorder.cpp:386
libetonyek::IWORKRecorder::startGroup
void startGroup()
Definition IWORKRecorder.cpp:457
libetonyek::IWORKRecorder::collectText
void collectText(const std::shared_ptr< IWORKText > &text)
Definition IWORKRecorder.cpp:421
libetonyek::IWORKRecorder::pushStylesheet
void pushStylesheet(const IWORKStylesheetPtr_t &stylesheet)
Definition IWORKRecorder.cpp:477
libetonyek::IWORKRecorder::setGraphicStyle
void setGraphicStyle(const IWORKStylePtr_t &style)
Definition IWORKRecorder.cpp:376
libetonyek::IWORKRecorder::IWORKRecorder
IWORKRecorder()
Definition IWORKRecorder.cpp:359
libetonyek::IWORKRecorder::collectLine
void collectLine(const IWORKLinePtr_t &line)
Definition IWORKRecorder.cpp:396
libetonyek::IWORKRecorder::endAttachments
void endAttachments()
Definition IWORKRecorder.cpp:442
libetonyek::IWORKRecorder::startAttachments
void startAttachments()
Definition IWORKRecorder.cpp:437
libetonyek::IWORKRecorder::collectTable
void collectTable(const std::shared_ptr< IWORKTable > &table)
Definition IWORKRecorder.cpp:416
libetonyek::IWORKRecorder::openGroup
void openGroup()
Definition IWORKRecorder.cpp:447
libetonyek::IWORKRecorder::collectStylesheet
void collectStylesheet(const IWORKStylesheetPtr_t &stylesheet)
Definition IWORKRecorder.cpp:411
libetonyek::IWORKRecorder::collectStyle
void collectStyle(const IWORKStylePtr_t &style)
Definition IWORKRecorder.cpp:371
libetonyek::IWORKRecorder::endAttachment
void endAttachment()
Definition IWORKRecorder.cpp:432
libetonyek::IWORKRecorder::closeGroup
void closeGroup()
Definition IWORKRecorder.cpp:452
libetonyek::IWORKRecorder::endGroup
void endGroup()
Definition IWORKRecorder.cpp:462
libetonyek::IWORKRecorder::m_impl
std::shared_ptr< Impl > m_impl
Definition IWORKRecorder.h:80
libetonyek::IWORKTable
Definition IWORKTable.h:32
libetonyek::IWORKText
Definition IWORKText.h:34
libetonyek::IWORKToken::line
@ line
Definition IWORKToken.h:303
libetonyek::IWORKToken::stylesheet
@ stylesheet
Definition IWORKToken.h:424
libetonyek::IWORKToken::text
@ text
Definition IWORKToken.h:472
libetonyek::IWORKToken::content
@ content
Definition IWORKToken.h:167
libetonyek::IWORKToken::image
@ image
Definition IWORKToken.h:264
libetonyek::IWORKToken::path
@ path
Definition IWORKToken.h:365
libetonyek::IWORKToken::locked
@ locked
Definition IWORKToken.h:577
libetonyek::IWORKToken::style
@ style
Definition IWORKToken.h:421
libetonyek::IWORKToken::geometry
@ geometry
Definition IWORKToken.h:236
libetonyek::KEY1Token::table
@ table
Definition KEY1Token.h:198
libetonyek::PAG1Token::order
@ order
Definition PAG1Token.h:43
libetonyek
Definition IWORKBezierElement.cpp:21
libetonyek::IWORKStylesheetPtr_t
std::shared_ptr< IWORKStylesheet > IWORKStylesheetPtr_t
Definition IWORKStylesheet.h:20
libetonyek::IWORKMediaContentPtr_t
std::shared_ptr< IWORKMediaContent > IWORKMediaContentPtr_t
Definition IWORKTypes_fwd.h:58
libetonyek::IWORKPathPtr_t
std::shared_ptr< IWORKPath > IWORKPathPtr_t
Definition IWORKPath_fwd.h:22
libetonyek::IWORKGeometryPtr_t
std::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition IWORKTypes_fwd.h:45
libetonyek::IWORKLinePtr_t
std::shared_ptr< IWORKLine > IWORKLinePtr_t
Definition IWORKTypes_fwd.h:49
libetonyek::IWORKStylePtr_t
std::shared_ptr< IWORKStyle > IWORKStylePtr_t
Definition IWORKStyle_fwd.h:23
libetonyek::IWORKRecorder::Impl
Definition IWORKRecorder.cpp:348
libetonyek::IWORKSize
Definition IWORKTypes.h:45