PAGTypes.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 PAGTYPES_H_INCLUDED
11 #define PAGTYPES_H_INCLUDED
12
13 #include <deque>
14 #include <string>
15 #include <unordered_map>
16
17 #include <boost/optional.hpp>
18
19 #include "IWORKOutputElements.h"
20 #include "IWORKTypes_fwd.h"
21 #include "PAGEnum.h"
22
23 namespace libetonyek
24 {
25
26 struct PAGPublicationInfo
27 {
28 PAGPublicationInfo();
29
30 boost::optional<std::string> m_creationDate;
31 boost::optional<double> m_footnoteGap;
32 PAGFootnoteKind m_footnoteKind;
33 };
34
35 struct PAGPageMaster
36 {
37 PAGPageMaster();
38
39 std::string m_header;
40 std::string m_footer;
41 };
42
43 struct PAGFootnoteState
44 {
45 PAGFootnoteState();
46
47 bool m_firstTextAfterMark;
48 bool m_pending;
49 std::string m_mark;
50
51 std::deque<IWORKOutputElements> m_footnotes;
52 std::deque<IWORKOutputElements>::const_iterator m_nextFootnote;
53 };
54
55 struct PAGAttachment
56 {
57 PAGAttachment();
58 PAGAttachment(IWORKOutputID_t id, bool block);
59
60 IWORKOutputID_t m_id;
61 bool m_block;
62 };
63
64 typedef std::unordered_map<ID_t, PAGAttachment> PAGAttachmentMap_t;
65
66 }
67
68 #endif // PAGTYPES_H_INCLUDED
69
70 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libetonyek::PAGPublicationInfo::PAGPublicationInfo
PAGPublicationInfo()
Definition: PAGTypes.cpp:15
libetonyek
Definition: IWORKBezierElement.cpp:18
libetonyek::PAGPageMaster
Definition: PAGTypes.h:35
libetonyek::PAGPageMaster::m_footer
std::string m_footer
Definition: PAGTypes.h:40
IWORKOutputElements.h
libetonyek::PAGPublicationInfo
Definition: PAGTypes.h:26
libetonyek::IWORKOutputID_t
unsigned IWORKOutputID_t
Definition: IWORKTypes_fwd.h:26
libetonyek::PAGPageMaster::m_header
std::string m_header
Definition: PAGTypes.h:39
libetonyek::PAGFootnoteKind
PAGFootnoteKind
Definition: PAGEnum.h:16
libetonyek::PAGPageMaster::PAGPageMaster
PAGPageMaster()
Definition: PAGTypes.cpp:22
IWORKTypes_fwd.h
libetonyek::PAGFootnoteState
Definition: PAGTypes.h:43
libetonyek::PAGAttachment::m_block
bool m_block
Definition: PAGTypes.h:61
libetonyek::PAGAttachmentMap_t
std::unordered_map< ID_t, PAGAttachment > PAGAttachmentMap_t
Definition: PAGTypes.h:64
libetonyek::PAGFootnoteState::m_mark
std::string m_mark
Definition: PAGTypes.h:49
libetonyek::PAGFootnoteState::m_nextFootnote
std::deque< IWORKOutputElements >::const_iterator m_nextFootnote
Definition: PAGTypes.h:52
libetonyek::PAGFootnoteState::m_firstTextAfterMark
bool m_firstTextAfterMark
Definition: PAGTypes.h:47
PAGEnum.h
libetonyek::IWORKToken::string
Definition: IWORKToken.h:266
libetonyek::PAGPublicationInfo::m_creationDate
boost::optional< std::string > m_creationDate
Definition: PAGTypes.h:30
libetonyek::PAGFootnoteState::PAGFootnoteState
PAGFootnoteState()
Definition: PAGTypes.cpp:28
libetonyek::PAGAttachment
Definition: PAGTypes.h:55
libetonyek::PAGPublicationInfo::m_footnoteKind
PAGFootnoteKind m_footnoteKind
Definition: PAGTypes.h:32
libetonyek::PAGAttachment::m_id
IWORKOutputID_t m_id
Definition: PAGTypes.h:60
libetonyek::PAGFootnoteState::m_pending
bool m_pending
Definition: PAGTypes.h:48
libetonyek::PAGFootnoteState::m_footnotes
std::deque< IWORKOutputElements > m_footnotes
Definition: PAGTypes.h:51
libetonyek::PAGAttachment::PAGAttachment
PAGAttachment()
Definition: PAGTypes.cpp:37
libetonyek::PAGPublicationInfo::m_footnoteGap
boost::optional< double > m_footnoteGap
Definition: PAGTypes.h:31