1 /*
2  * Copyright (C) 2009, Pino Toscano <pino@kde.org>
3  * Copyright (C) 2018, 2020, Albert Astals Cid <aacid@kde.org>
4  * Copyright (C) 2020, Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2, or (at your option)
9  * any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
19  */
20 
21 #ifndef POPPLER_PAGE_PRIVATE_H
22 #define POPPLER_PAGE_PRIVATE_H
23 
24 #include "poppler-page.h"
25 
26 class Page;
27 
28 namespace poppler {
29 
30 class document_private;
31 class page_transition;
32 class font_info;
33 
34 class page_private
35 {
36 public:
37     page_private(document_private *doc, int index);
38     ~page_private();
39 
40     page_private(const page_private &) = delete;
41     page_private &operator=(const page_private &) = delete;
42 
43     document_private *doc;
44     Page *page;
45     int index;
46     page_transition *transition;
47 
get(const poppler::page * p)48     static inline page_private *get(const poppler::page *p) { return const_cast<poppler::page *>(p)->d; }
49 
50     std::vector<font_info> font_info_cache;
51     bool font_info_cache_initialized;
52     void init_font_info_cache();
53 };
54 
55 }
56 
57 #endif
58