| 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 "../../public/fpdf_edit.h" | 7 #include "../../public/fpdf_edit.h" |
| 8 #include "../../public/fpdf_formfill.h" | 8 #include "../../public/fpdf_formfill.h" |
| 9 #include "../include/fsdk_define.h" | 9 #include "../include/fsdk_define.h" |
| 10 #include "../include/fpdfxfa/fpdfxfa_doc.h" | 10 #include "../include/fpdfxfa/fpdfxfa_doc.h" |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 | 100 |
| 101 int rotate = 0; | 101 int rotate = 0; |
| 102 if (pDict != NULL) { | 102 if (pDict != NULL) { |
| 103 if (pDict->KeyExist("Rotate")) | 103 if (pDict->KeyExist("Rotate")) |
| 104 rotate = pDict->GetElement("Rotate")->GetDirect() | 104 rotate = pDict->GetElement("Rotate")->GetDirect() |
| 105 ? pDict->GetElement("Rotate")->GetDirect()->GetInteger() / 90 | 105 ? pDict->GetElement("Rotate")->GetDirect()->GetInteger() / 90 |
| 106 : 0; | 106 : 0; |
| 107 else { | 107 else { |
| 108 if (pDict->KeyExist("Parent")) { | 108 if (pDict->KeyExist("Parent")) { |
| 109 CPDF_Dictionary* pPages = | 109 CPDF_Dictionary* pPages = |
| 110 (CPDF_Dictionary*)pDict->GetElement("Parent")->GetDirect(); | 110 ToDictionary(pDict->GetElement("Parent")->GetDirect()); |
| 111 while (pPages) { | 111 while (pPages) { |
| 112 if (pPages->KeyExist("Rotate")) { | 112 if (pPages->KeyExist("Rotate")) { |
| 113 rotate = | 113 rotate = |
| 114 pPages->GetElement("Rotate")->GetDirect() | 114 pPages->GetElement("Rotate")->GetDirect() |
| 115 ? pPages->GetElement("Rotate")->GetDirect()->GetInteger() / | 115 ? pPages->GetElement("Rotate")->GetDirect()->GetInteger() / |
| 116 90 | 116 90 |
| 117 : 0; | 117 : 0; |
| 118 break; | 118 break; |
| 119 } else if (pPages->KeyExist("Parent")) | 119 } else if (pPages->KeyExist("Parent")) |
| 120 pPages = | 120 pPages = ToDictionary(pPages->GetElement("Parent")->GetDirect()); |
| 121 (CPDF_Dictionary*)pPages->GetElement("Parent")->GetDirect(); | |
| 122 else | 121 else |
| 123 break; | 122 break; |
| 124 } | 123 } |
| 125 } | 124 } |
| 126 } | 125 } |
| 127 } else { | 126 } else { |
| 128 return -1; | 127 return -1; |
| 129 } | 128 } |
| 130 | 129 |
| 131 return rotate; | 130 return rotate; |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 return FALSE; | 209 return FALSE; |
| 211 CPDF_PageObject* pPageObj = (CPDF_PageObject*)pageObject; | 210 CPDF_PageObject* pPageObj = (CPDF_PageObject*)pageObject; |
| 212 | 211 |
| 213 const CPDF_GeneralStateData* pGeneralState = pPageObj->m_GeneralState; | 212 const CPDF_GeneralStateData* pGeneralState = pPageObj->m_GeneralState; |
| 214 int blend_type = | 213 int blend_type = |
| 215 pGeneralState ? pGeneralState->m_BlendType : FXDIB_BLEND_NORMAL; | 214 pGeneralState ? pGeneralState->m_BlendType : FXDIB_BLEND_NORMAL; |
| 216 if (blend_type != FXDIB_BLEND_NORMAL) | 215 if (blend_type != FXDIB_BLEND_NORMAL) |
| 217 return TRUE; | 216 return TRUE; |
| 218 | 217 |
| 219 CPDF_Dictionary* pSMaskDict = | 218 CPDF_Dictionary* pSMaskDict = |
| 220 pGeneralState ? (CPDF_Dictionary*)pGeneralState->m_pSoftMask : NULL; | 219 pGeneralState ? ToDictionary(pGeneralState->m_pSoftMask) : NULL; |
| 221 if (pSMaskDict) | 220 if (pSMaskDict) |
| 222 return TRUE; | 221 return TRUE; |
| 223 | 222 |
| 224 if (pGeneralState && pGeneralState->m_FillAlpha != 1.0f) | 223 if (pGeneralState && pGeneralState->m_FillAlpha != 1.0f) |
| 225 return TRUE; | 224 return TRUE; |
| 226 | 225 |
| 227 if (pPageObj->m_Type == PDFPAGE_PATH) { | 226 if (pPageObj->m_Type == PDFPAGE_PATH) { |
| 228 if (pGeneralState && pGeneralState->m_StrokeAlpha != 1.0f) | 227 if (pGeneralState && pGeneralState->m_StrokeAlpha != 1.0f) |
| 229 return TRUE; | 228 return TRUE; |
| 230 } | 229 } |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 !pPage->m_pFormDict->GetElement("Type")->GetDirect() || | 310 !pPage->m_pFormDict->GetElement("Type")->GetDirect() || |
| 312 pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare( | 311 pPage->m_pFormDict->GetElement("Type")->GetDirect()->GetString().Compare( |
| 313 "Page")) { | 312 "Page")) { |
| 314 return; | 313 return; |
| 315 } | 314 } |
| 316 CPDF_Dictionary* pDict = pPage->m_pFormDict; | 315 CPDF_Dictionary* pDict = pPage->m_pFormDict; |
| 317 rotate %= 4; | 316 rotate %= 4; |
| 318 | 317 |
| 319 pDict->SetAt("Rotate", new CPDF_Number(rotate * 90)); | 318 pDict->SetAt("Rotate", new CPDF_Number(rotate * 90)); |
| 320 } | 319 } |
| OLD | NEW |