00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 00002 /* 00003 * This file is part of the libqxp 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 QXP4HEADER_H_INCLUDED 00011 #define QXP4HEADER_H_INCLUDED 00012 00013 #include <string> 00014 00015 #include "libqxp_utils.h" 00016 #include "QXP3HeaderBase.h" 00017 #include "QXPTypes.h" 00018 00019 namespace libqxp 00020 { 00021 00022 class QXP4Header : public QXP3HeaderBase, public std::enable_shared_from_this<QXP4Header> 00023 { 00024 public: 00025 explicit QXP4Header(const boost::optional<QXPDocument::Type> &fileType = boost::none); 00026 00027 bool load(const std::shared_ptr<librevenge::RVNGInputStream> &input) override; 00028 00029 QXPDocument::Type getType() const override; 00030 00031 std::unique_ptr<QXPParser> createParser(const std::shared_ptr<librevenge::RVNGInputStream> &input, librevenge::RVNGDrawingInterface *painter) override; 00032 00033 uint16_t pagesCount() const; 00034 uint16_t masterPagesCount() const; 00035 uint16_t seed() const; 00036 uint16_t increment() const; 00037 const QXPDocumentProperties &documentProperties() const; 00038 00039 private: 00040 std::string m_type; 00041 uint16_t m_pagesCount; 00042 uint16_t m_masterPagesCount; 00043 uint16_t m_seed; 00044 uint16_t m_increment; 00045 QXPDocumentProperties m_documentProperties; 00046 }; 00047 00048 } 00049 00050 #endif // QXP4HEADER_H_INCLUDED 00051 00052 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */