QXP4Header.h
Go to the documentation of this file.
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: */