1 /*
2  * Copyright (C) 2019, Masamichi Hosoda <trueroad@trueroad.jp>
3  * Copyright (C) 2019, 2021, Albert Astals Cid <aacid@kde.org>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2, or (at your option)
8  * any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
18  */
19 
20 #ifndef POPPLER_DESTINATION_H
21 #define POPPLER_DESTINATION_H
22 
23 #include "poppler-global.h"
24 
25 namespace poppler {
26 class destination_private;
27 
28 class POPPLER_CPP_EXPORT destination : public poppler::noncopyable
29 {
30 public:
31     enum type_enum
32     {
33         unknown,
34         xyz,
35         fit,
36         fit_h,
37         fit_v,
38         fit_r,
39         fit_b,
40         fit_b_h,
41         fit_b_v
42     };
43 
44     ~destination();
45     destination(destination &&other) noexcept;
46 
47     type_enum type() const;
48     int page_number() const;
49     double left() const;
50     double bottom() const;
51     double right() const;
52     double top() const;
53     double zoom() const;
54     bool is_change_left() const;
55     bool is_change_top() const;
56     bool is_change_zoom() const;
57 
58     destination &operator=(destination &&other) noexcept;
59 
60 private:
61     explicit destination(destination_private *dd);
62 
63     destination_private *d;
64     friend class document;
65 };
66 
67 }
68 
69 #endif
70