Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(69)

Side by Side Diff: fpdfsdk/cpdfsdk_document.h

Issue 2410893002: Merge CPDFSDK_Document into CPDFSDK_FormFillEnvironment (Closed)
Patch Set: Rebase to master Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7 #ifndef FPDFSDK_CPDFSDK_DOCUMENT_H_
8 #define FPDFSDK_CPDFSDK_DOCUMENT_H_
9
10 #include <map>
11 #include <memory>
12
13 #include "core/fpdfapi/parser/cpdf_document.h"
14 #include "core/fxcrt/cfx_observable.h"
15 #include "fpdfsdk/cpdfsdk_annot.h"
16 #include "fpdfsdk/fsdk_define.h"
17 #include "public/fpdf_formfill.h"
18
19 class CPDFSDK_FormFillEnvironment;
20 class CPDFSDK_InterForm;
21 class CPDFSDK_PageView;
22 class IJS_Runtime;
23
24 class CPDFSDK_Document : public CFX_Observable<CPDFSDK_Document> {
25 public:
26 CPDFSDK_Document(UnderlyingDocumentType* pDoc,
27 CPDFSDK_FormFillEnvironment* pEnv);
28 ~CPDFSDK_Document();
29
30 CPDFSDK_InterForm* GetInterForm();
31
32 // Gets the document object for the next layer down; for master this is
33 // a CPDF_Document, but for XFA it is a CPDFXFA_Document.
34 UnderlyingDocumentType* GetUnderlyingDocument() const {
35 #ifdef PDF_ENABLE_XFA
36 return GetXFADocument();
37 #else // PDF_ENABLE_XFA
38 return GetPDFDocument();
39 #endif // PDF_ENABLE_XFA
40 }
41
42 // Gets the CPDF_Document, either directly in master, or from the
43 // CPDFXFA_Document for XFA.
44 CPDF_Document* GetPDFDocument() const {
45 #ifdef PDF_ENABLE_XFA
46 return m_pDoc ? m_pDoc->GetPDFDoc() : nullptr;
47 #else // PDF_ENABLE_XFA
48 return m_pDoc;
49 #endif // PDF_ENABLE_XFA
50 }
51
52 #ifdef PDF_ENABLE_XFA
53 // Gets the XFA document directly (XFA-only).
54 CPDFXFA_Document* GetXFADocument() const { return m_pDoc; }
55 void ResetXFADocument() { m_pDoc = nullptr; }
56
57 int GetPageViewCount() const { return m_pageMap.size(); }
58 #endif // PDF_ENABLE_XFA
59
60 CPDFSDK_PageView* GetPageView(UnderlyingPageType* pPage, bool ReNew);
61 CPDFSDK_PageView* GetPageView(int nIndex);
62 CPDFSDK_PageView* GetCurrentView();
63 void RemovePageView(UnderlyingPageType* pPage);
64 void UpdateAllViews(CPDFSDK_PageView* pSender, CPDFSDK_Annot* pAnnot);
65
66 IJS_Runtime* GetJsRuntime();
67
68 CPDFSDK_Annot* GetFocusAnnot() { return m_pFocusAnnot.Get(); }
69 FX_BOOL SetFocusAnnot(CPDFSDK_Annot::ObservedPtr* pAnnot);
70 FX_BOOL KillFocusAnnot(uint32_t nFlag);
71 void ClearAllFocusedAnnots();
72
73 FX_BOOL ExtractPages(const std::vector<uint16_t>& arrExtraPages,
74 CPDF_Document* pDstDoc);
75 FX_BOOL InsertPages(int nInsertAt,
76 const CPDF_Document* pSrcDoc,
77 const std::vector<uint16_t>& arrSrcPages);
78 FX_BOOL ReplacePages(int nPage,
79 const CPDF_Document* pSrcDoc,
80 const std::vector<uint16_t>& arrSrcPages);
81
82 void OnCloseDocument();
83
84 int GetPageCount() { return m_pDoc->GetPageCount(); }
85 FX_BOOL GetPermissions(int nFlag);
86 FX_BOOL GetChangeMark() { return m_bChangeMask; }
87 void SetChangeMark() { m_bChangeMask = TRUE; }
88 void ClearChangeMark() { m_bChangeMask = FALSE; }
89 CFX_WideString GetPath();
90 UnderlyingPageType* GetPage(int nIndex);
91 CPDFSDK_FormFillEnvironment* GetEnv() { return m_pEnv; }
92 void ProcJavascriptFun();
93 FX_BOOL ProcOpenAction();
94
95 private:
96 std::map<UnderlyingPageType*, CPDFSDK_PageView*> m_pageMap;
97 UnderlyingDocumentType* m_pDoc;
98 std::unique_ptr<CPDFSDK_InterForm> m_pInterForm;
99 CPDFSDK_Annot::ObservedPtr m_pFocusAnnot;
100 CPDFSDK_FormFillEnvironment* m_pEnv;
101 FX_BOOL m_bChangeMask;
102 FX_BOOL m_bBeingDestroyed;
103 };
104
105 #endif // FPDFSDK_CPDFSDK_DOCUMENT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698