1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* 3 * This file is part of the libqxp 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 QXP4HEADER_H_INCLUDED 11 #define QXP4HEADER_H_INCLUDED 12 13 #include <string> 14 15 #include "libqxp_utils.h" 16 #include "QXP3HeaderBase.h" 17 #include "QXPTypes.h" 18 19 namespace libqxp 20 { 21 22 class QXP4Header : public QXP3HeaderBase, public std::enable_shared_from_this<QXP4Header> 23 { 24 public: 25 explicit QXP4Header(const boost::optional<QXPDocument::Type> &fileType = boost::none); 26 27 bool load(const std::shared_ptr<librevenge::RVNGInputStream> &input) override; 28 29 QXPDocument::Type getType() const override; 30 31 std::unique_ptr<QXPParser> createParser(const std::shared_ptr<librevenge::RVNGInputStream> &input, librevenge::RVNGDrawingInterface *painter) override; 32 33 uint16_t pagesCount() const; 34 uint16_t masterPagesCount() const; 35 uint16_t seed() const; 36 uint16_t increment() const; 37 const QXPDocumentProperties &documentProperties() const; 38 39 private: 40 std::string m_type; 41 uint16_t m_pagesCount; 42 uint16_t m_masterPagesCount; 43 uint16_t m_seed; 44 uint16_t m_increment; 45 QXPDocumentProperties m_documentProperties; 46 }; 47 48 } 49 50 #endif // QXP4HEADER_H_INCLUDED 51 52 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */ 53