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 QXP33HEADER_H_INCLUDED 00011 #define QXP33HEADER_H_INCLUDED 00012 00013 #include "libqxp_utils.h" 00014 #include "QXP3HeaderBase.h" 00015 #include "QXPTypes.h" 00016 00017 namespace libqxp 00018 { 00019 00020 class QXP33Header : public QXP3HeaderBase, public std::enable_shared_from_this<QXP33Header> 00021 { 00022 public: 00023 explicit QXP33Header(const boost::optional<QXPDocument::Type> &fileType = boost::none); 00024 00025 bool load(const std::shared_ptr<librevenge::RVNGInputStream> &input) override; 00026 00027 QXPDocument::Type getType() const override; 00028 00029 std::unique_ptr<QXPParser> createParser(const std::shared_ptr<librevenge::RVNGInputStream> &input, librevenge::RVNGDrawingInterface *painter) override; 00030 00031 uint16_t pagesCount() const; 00032 uint16_t masterPagesCount() const; 00033 uint16_t seed() const; 00034 uint16_t increment() const; 00035 const QXPDocumentProperties &documentProperties() const; 00036 00037 private: 00038 uint16_t m_pagesCount; 00039 uint16_t m_masterPagesCount; 00040 uint16_t m_seed; 00041 uint16_t m_increment; 00042 QXPDocumentProperties m_documentProperties; 00043 }; 00044 00045 } 00046 00047 #endif // QXP33HEADER_H_INCLUDED 00048 00049 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */