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