OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" | 7 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" |
8 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" | 8 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" |
9 #include "core/include/fpdfdoc/fpdf_doc.h" | 9 #include "core/include/fpdfdoc/fpdf_doc.h" |
10 | 10 |
11 static int32_t FPDFDOC_OCG_FindGroup(const CPDF_Object* pObject, | 11 static int32_t FPDFDOC_OCG_FindGroup(const CPDF_Object* pObject, |
12 const CPDF_Dictionary* pGroupDict) { | 12 const CPDF_Dictionary* pGroupDict) { |
13 if (!pObject || !pGroupDict) | 13 if (!pObject || !pGroupDict) |
14 return -1; | 14 return -1; |
15 | 15 |
16 if (const CPDF_Array* pArray = pObject->AsArray()) { | 16 if (const CPDF_Array* pArray = pObject->AsArray()) { |
17 FX_DWORD dwCount = pArray->GetCount(); | 17 uint32_t dwCount = pArray->GetCount(); |
18 for (FX_DWORD i = 0; i < dwCount; i++) { | 18 for (uint32_t i = 0; i < dwCount; i++) { |
19 if (pArray->GetDictAt(i) == pGroupDict) | 19 if (pArray->GetDictAt(i) == pGroupDict) |
20 return i; | 20 return i; |
21 } | 21 } |
22 return -1; | 22 return -1; |
23 } | 23 } |
24 return pObject->GetDict() == pGroupDict ? 0 : -1; | 24 return pObject->GetDict() == pGroupDict ? 0 : -1; |
25 } | 25 } |
26 static FX_BOOL FPDFDOC_OCG_HasIntent(const CPDF_Dictionary* pDict, | 26 static FX_BOOL FPDFDOC_OCG_HasIntent(const CPDF_Dictionary* pDict, |
27 const CFX_ByteStringC& csElement, | 27 const CFX_ByteStringC& csElement, |
28 const CFX_ByteStringC& csDef = "") { | 28 const CFX_ByteStringC& csDef = "") { |
29 CPDF_Object* pIntent = pDict->GetElementValue("Intent"); | 29 CPDF_Object* pIntent = pDict->GetElementValue("Intent"); |
30 if (!pIntent) { | 30 if (!pIntent) { |
31 return csElement == csDef; | 31 return csElement == csDef; |
32 } | 32 } |
33 CFX_ByteString bsIntent; | 33 CFX_ByteString bsIntent; |
34 if (CPDF_Array* pArray = pIntent->AsArray()) { | 34 if (CPDF_Array* pArray = pIntent->AsArray()) { |
35 FX_DWORD dwCount = pArray->GetCount(); | 35 uint32_t dwCount = pArray->GetCount(); |
36 for (FX_DWORD i = 0; i < dwCount; i++) { | 36 for (uint32_t i = 0; i < dwCount; i++) { |
37 bsIntent = pArray->GetStringAt(i); | 37 bsIntent = pArray->GetStringAt(i); |
38 if (bsIntent == "All" || bsIntent == csElement) | 38 if (bsIntent == "All" || bsIntent == csElement) |
39 return TRUE; | 39 return TRUE; |
40 } | 40 } |
41 return FALSE; | 41 return FALSE; |
42 } | 42 } |
43 bsIntent = pIntent->GetString(); | 43 bsIntent = pIntent->GetString(); |
44 return bsIntent == "All" || bsIntent == csElement; | 44 return bsIntent == "All" || bsIntent == csElement; |
45 } | 45 } |
46 static CPDF_Dictionary* FPDFDOC_OCG_GetConfig(CPDF_Document* pDoc, | 46 static CPDF_Dictionary* FPDFDOC_OCG_GetConfig(CPDF_Document* pDoc, |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 } | 275 } |
276 CFX_ByteString csType = pOCGDict->GetStringBy("Type", "OCG"); | 276 CFX_ByteString csType = pOCGDict->GetStringBy("Type", "OCG"); |
277 if (csType == "OCG") { | 277 if (csType == "OCG") { |
278 return GetOCGVisible(pOCGDict); | 278 return GetOCGVisible(pOCGDict); |
279 } | 279 } |
280 return LoadOCMDState(pOCGDict, FALSE); | 280 return LoadOCMDState(pOCGDict, FALSE); |
281 } | 281 } |
282 void CPDF_OCContext::ResetOCContext() { | 282 void CPDF_OCContext::ResetOCContext() { |
283 m_OCGStates.clear(); | 283 m_OCGStates.clear(); |
284 } | 284 } |
OLD | NEW |