| 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 |