| 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 "../../include/fpdfdoc/fpdf_doc.h" | 7 #include "../../include/fpdfdoc/fpdf_doc.h" |
| 8 CPDF_FormControl::CPDF_FormControl(CPDF_FormField* pField, | 8 CPDF_FormControl::CPDF_FormControl(CPDF_FormField* pField, |
| 9 CPDF_Dictionary* pWidgetDict) { | 9 CPDF_Dictionary* pWidgetDict) { |
| 10 m_pField = pField; | 10 m_pField = pField; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 return; | 54 return; |
| 55 } | 55 } |
| 56 FX_POSITION pos1 = pAP->GetStartPos(); | 56 FX_POSITION pos1 = pAP->GetStartPos(); |
| 57 while (pos1) { | 57 while (pos1) { |
| 58 CFX_ByteString csKey1; | 58 CFX_ByteString csKey1; |
| 59 CPDF_Object* pObj1 = pAP->GetNextElement(pos1, csKey1); | 59 CPDF_Object* pObj1 = pAP->GetNextElement(pos1, csKey1); |
| 60 if (pObj1 == NULL) { | 60 if (pObj1 == NULL) { |
| 61 continue; | 61 continue; |
| 62 } | 62 } |
| 63 CPDF_Object* pObjDirect1 = pObj1->GetDirect(); | 63 CPDF_Object* pObjDirect1 = pObj1->GetDirect(); |
| 64 if (pObjDirect1->GetType() != PDFOBJ_DICTIONARY) { | 64 CPDF_Dictionary* pSubDict = pObjDirect1->AsDictionary(); |
| 65 if (!pSubDict) |
| 65 continue; | 66 continue; |
| 66 } | 67 |
| 67 CPDF_Dictionary* pSubDict = (CPDF_Dictionary*)pObjDirect1; | |
| 68 FX_POSITION pos2 = pSubDict->GetStartPos(); | 68 FX_POSITION pos2 = pSubDict->GetStartPos(); |
| 69 while (pos2) { | 69 while (pos2) { |
| 70 CFX_ByteString csKey2; | 70 CFX_ByteString csKey2; |
| 71 CPDF_Object* pObj2 = pSubDict->GetNextElement(pos2, csKey2); | 71 CPDF_Object* pObj2 = pSubDict->GetNextElement(pos2, csKey2); |
| 72 if (pObj2 == NULL) { | 72 if (pObj2 == NULL) { |
| 73 continue; | 73 continue; |
| 74 } | 74 } |
| 75 if (csKey2 != "Off") { | 75 if (csKey2 != "Off") { |
| 76 pSubDict->ReplaceKey(csKey2, csValue); | 76 pSubDict->ReplaceKey(csKey2, csValue); |
| 77 break; | 77 break; |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 | 280 |
| 281 CPDF_Font* CPDF_FormControl::GetDefaultControlFont() { | 281 CPDF_Font* CPDF_FormControl::GetDefaultControlFont() { |
| 282 CPDF_DefaultAppearance cDA = GetDefaultAppearance(); | 282 CPDF_DefaultAppearance cDA = GetDefaultAppearance(); |
| 283 CFX_ByteString csFontNameTag; | 283 CFX_ByteString csFontNameTag; |
| 284 FX_FLOAT fFontSize; | 284 FX_FLOAT fFontSize; |
| 285 cDA.GetFont(csFontNameTag, fFontSize); | 285 cDA.GetFont(csFontNameTag, fFontSize); |
| 286 if (csFontNameTag.IsEmpty()) | 286 if (csFontNameTag.IsEmpty()) |
| 287 return nullptr; | 287 return nullptr; |
| 288 | 288 |
| 289 CPDF_Object* pObj = FPDF_GetFieldAttr(m_pWidgetDict, "DR"); | 289 CPDF_Object* pObj = FPDF_GetFieldAttr(m_pWidgetDict, "DR"); |
| 290 if (pObj && pObj->GetType() == PDFOBJ_DICTIONARY) { | 290 if (CPDF_Dictionary* pDict = ToDictionary(pObj)) { |
| 291 CPDF_Dictionary* pFonts = ((CPDF_Dictionary*)pObj)->GetDict("Font"); | 291 CPDF_Dictionary* pFonts = pDict->GetDict("Font"); |
| 292 if (pFonts) { | 292 if (pFonts) { |
| 293 CPDF_Dictionary* pElement = pFonts->GetDict(csFontNameTag); | 293 CPDF_Dictionary* pElement = pFonts->GetDict(csFontNameTag); |
| 294 if (pElement) { | 294 if (pElement) { |
| 295 CPDF_Font* pFont = m_pField->m_pForm->m_pDocument->LoadFont(pElement); | 295 CPDF_Font* pFont = m_pField->m_pForm->m_pDocument->LoadFont(pElement); |
| 296 if (pFont) { | 296 if (pFont) { |
| 297 return pFont; | 297 return pFont; |
| 298 } | 298 } |
| 299 } | 299 } |
| 300 } | 300 } |
| 301 } | 301 } |
| 302 if (CPDF_Font* pFormFont = m_pField->m_pForm->GetFormFont(csFontNameTag)) | 302 if (CPDF_Font* pFormFont = m_pField->m_pForm->GetFormFont(csFontNameTag)) |
| 303 return pFormFont; | 303 return pFormFont; |
| 304 | 304 |
| 305 CPDF_Dictionary* pPageDict = m_pWidgetDict->GetDict("P"); | 305 CPDF_Dictionary* pPageDict = m_pWidgetDict->GetDict("P"); |
| 306 pObj = FPDF_GetFieldAttr(pPageDict, "Resources"); | 306 pObj = FPDF_GetFieldAttr(pPageDict, "Resources"); |
| 307 if (pObj && pObj->GetType() == PDFOBJ_DICTIONARY) { | 307 if (CPDF_Dictionary* pDict = ToDictionary(pObj)) { |
| 308 CPDF_Dictionary* pFonts = ((CPDF_Dictionary*)pObj)->GetDict("Font"); | 308 CPDF_Dictionary* pFonts = pDict->GetDict("Font"); |
| 309 if (pFonts) { | 309 if (pFonts) { |
| 310 CPDF_Dictionary* pElement = pFonts->GetDict(csFontNameTag); | 310 CPDF_Dictionary* pElement = pFonts->GetDict(csFontNameTag); |
| 311 if (pElement) { | 311 if (pElement) { |
| 312 CPDF_Font* pFont = m_pField->m_pForm->m_pDocument->LoadFont(pElement); | 312 CPDF_Font* pFont = m_pField->m_pForm->m_pDocument->LoadFont(pElement); |
| 313 if (pFont) { | 313 if (pFont) { |
| 314 return pFont; | 314 return pFont; |
| 315 } | 315 } |
| 316 } | 316 } |
| 317 } | 317 } |
| 318 } | 318 } |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 return NULL; | 439 return NULL; |
| 440 } | 440 } |
| 441 return m_pDict->GetDict(FX_BSTRC("IF")); | 441 return m_pDict->GetDict(FX_BSTRC("IF")); |
| 442 } | 442 } |
| 443 int CPDF_ApSettings::GetTextPosition() { | 443 int CPDF_ApSettings::GetTextPosition() { |
| 444 if (m_pDict == NULL) { | 444 if (m_pDict == NULL) { |
| 445 return TEXTPOS_CAPTION; | 445 return TEXTPOS_CAPTION; |
| 446 } | 446 } |
| 447 return m_pDict->GetInteger(FX_BSTRC("TP"), TEXTPOS_CAPTION); | 447 return m_pDict->GetInteger(FX_BSTRC("TP"), TEXTPOS_CAPTION); |
| 448 } | 448 } |
| OLD | NEW |