00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 00002 /* 00003 * This file is part of the libetonyek project. 00004 * 00005 * This Source Code Form is subject to the terms of the Mozilla Public 00006 * License, v. 2.0. If a copy of the MPL was not distributed with this 00007 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 00008 */ 00009 00010 #ifndef PAGTYPES_H_INCLUDED 00011 #define PAGTYPES_H_INCLUDED 00012 00013 #include <deque> 00014 #include <string> 00015 00016 #include <boost/optional.hpp> 00017 #include <boost/unordered_map.hpp> 00018 00019 #include "IWORKOutputElements.h" 00020 #include "IWORKTypes_fwd.h" 00021 #include "PAGEnum.h" 00022 00023 namespace libetonyek 00024 { 00025 00026 struct PAGPublicationInfo 00027 { 00028 PAGPublicationInfo(); 00029 00030 boost::optional<std::string> m_creationDate; 00031 boost::optional<double> m_footnoteGap; 00032 PAGFootnoteKind m_footnoteKind; 00033 }; 00034 00035 struct PAGPageMaster 00036 { 00037 PAGPageMaster(); 00038 00039 std::string m_header; 00040 std::string m_footer; 00041 }; 00042 00043 struct PAGFootnoteState 00044 { 00045 PAGFootnoteState(); 00046 00047 bool m_firstTextAfterMark; 00048 bool m_pending; 00049 std::string m_mark; 00050 00051 std::deque<IWORKOutputElements> m_footnotes; 00052 std::deque<IWORKOutputElements>::const_iterator m_nextFootnote; 00053 }; 00054 00055 struct PAGAttachment 00056 { 00057 PAGAttachment(); 00058 PAGAttachment(IWORKOutputID_t id, bool block); 00059 00060 IWORKOutputID_t m_id; 00061 bool m_block; 00062 }; 00063 00064 typedef boost::unordered_map<ID_t, PAGAttachment> PAGAttachmentMap_t; 00065 00066 } 00067 00068 #endif // PAGTYPES_H_INCLUDED 00069 00070 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */