Index: core/fpdfdoc/include/cpdf_occontext.h |
diff --git a/core/fpdfdoc/include/cpdf_occontext.h b/core/fpdfdoc/include/cpdf_occontext.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..38e81705e50c8dae85f3db8a3bd36eefff21495c |
--- /dev/null |
+++ b/core/fpdfdoc/include/cpdf_occontext.h |
@@ -0,0 +1,42 @@ |
+// Copyright 2016 PDFium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
+ |
+#ifndef CORE_FPDFDOC_INCLUDE_CPDF_OCCONTEXT_H_ |
+#define CORE_FPDFDOC_INCLUDE_CPDF_OCCONTEXT_H_ |
+ |
+#include <unordered_map> |
+ |
+#include "core/fxcrt/include/fx_string.h" |
+ |
+class CPDF_Array; |
+class CPDF_Dictionary; |
+class CPDF_Document; |
+class CPDF_PageObject; |
+ |
+class CPDF_OCContext { |
+ public: |
+ enum UsageType { View = 0, Design, Print, Export }; |
+ |
+ CPDF_OCContext(CPDF_Document* pDoc, UsageType eUsageType); |
+ ~CPDF_OCContext(); |
+ |
+ bool CheckOCGVisible(const CPDF_Dictionary* pOCGDict); |
+ bool CheckObjectVisible(const CPDF_PageObject* pObj); |
+ |
+ private: |
+ bool LoadOCGStateFromConfig(const CFX_ByteString& csConfig, |
+ const CPDF_Dictionary* pOCGDict) const; |
+ bool LoadOCGState(const CPDF_Dictionary* pOCGDict) const; |
+ bool GetOCGVisible(const CPDF_Dictionary* pOCGDict); |
+ bool GetOCGVE(CPDF_Array* pExpression, int nLevel); |
+ bool LoadOCMDState(const CPDF_Dictionary* pOCMDDict); |
+ |
+ CPDF_Document* const m_pDocument; |
+ const UsageType m_eUsageType; |
+ std::unordered_map<const CPDF_Dictionary*, bool> m_OCGStates; |
+}; |
+ |
+#endif // CORE_FPDFDOC_INCLUDE_CPDF_OCCONTEXT_H_ |