1 /*
2  * Xournal++
3  *
4  * Paper background type
5  *
6  * @author Xournal++ Team
7  * https://github.com/xournalpp/xournalpp
8  *
9  * @license GNU GPLv2 or later
10  */
11 
12 #pragma once
13 
14 #include <string>
15 #include <vector>
16 
17 #include "XournalType.h"
18 
19 enum class PageTypeFormat { Plain, Ruled, Lined, Staves, Graph, Dotted, IsoDotted, IsoGraph, Pdf, Image, Copy };
20 
21 class PageType {
22 public:
23     PageType();
24     explicit PageType(PageTypeFormat format);
25     PageType(const PageType& other);
26     ~PageType();
27 
28 private:
29 public:
30     /**
31      * Compare Operator
32      */
33     bool operator==(const PageType& other) const;
34 
35     /**
36      * PDF background
37      */
38     bool isPdfPage() const;
39 
40     /**
41      * Image Background
42      */
43     bool isImagePage() const;
44 
45     /**
46      * Special background
47      */
48     bool isSpecial() const;
49 
50 public:
51     /**
52      * Base format
53      */
54     PageTypeFormat format;
55 
56     /**
57      * Arguments for the format
58      */
59     string config;
60 };
61