Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / fpdfsdk / include / fpdfxfa / fpdfxfa_page.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4  \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _FPDFXFA_PAGEVIEW_H_\r
8 #define _FPDFXFA_PAGEVIEW_H_\r
9 \r
10 class CPDFXFA_Page;\r
11 \r
12 class CPDFXFA_Page : public CFX_Object \r
13 {\r
14 public:\r
15         CPDFXFA_Page(CPDFXFA_Document* pDoc, int page_index);\r
16         ~CPDFXFA_Page();\r
17 \r
18         void            Release();\r
19         void            AddRef(){ m_iRef ++; }\r
20         FX_BOOL         LoadPage();\r
21         FX_BOOL         LoadPDFPage(CPDF_Dictionary* pageDict);\r
22         CPDFXFA_Document* GetDocument() { return m_pDocument; }\r
23         int                     GetPageIndex() { return m_iPageIndex; }\r
24         CPDF_Page*      GetPDFPage() { return m_pPDFPage; }\r
25         IXFA_PageView* GetXFAPageView() { return m_pXFAPageView; }\r
26 \r
27         FX_FLOAT        GetPageWidth();\r
28         FX_FLOAT        GetPageHeight();\r
29 \r
30         void            DeviceToPage(int start_x, int start_y, int size_x, int size_y, \r
31                                                          int rotate, int device_x, int device_y, double* page_x, double* page_y);\r
32         void            PageToDevice(int start_x, int start_y, int size_x, int size_y,\r
33                                                          int rotate, double page_x, double page_y, int* device_x, int* device_y);\r
34 \r
35         void            GetDisplayMatrix(CFX_AffineMatrix& matrix, int xPos, int yPos, \r
36                                                                  int xSize, int ySize, int iRotate) const;\r
37 \r
38 protected:\r
39         FX_BOOL         LoadPDFPage();\r
40         FX_BOOL         LoadXFAPageView();\r
41 \r
42 private:\r
43         CPDF_Page*      m_pPDFPage;\r
44         IXFA_PageView* m_pXFAPageView;\r
45         int m_iPageIndex;\r
46         CPDFXFA_Document* m_pDocument;\r
47         int m_iRef;\r
48 };\r
49 \r
50 #endif\r