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/cfdf_document.h" | 7 #include "core/fpdfapi/fpdf_parser/include/cfdf_document.h" |
8 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" | 8 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" |
9 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" | 9 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" |
10 #include "core/fpdfapi/fpdf_parser/include/cpdf_number.h" | 10 #include "core/fpdfapi/fpdf_parser/include/cpdf_number.h" |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
298 } | 298 } |
299 if (!pValue) { | 299 if (!pValue) { |
300 return CFX_WideString(); | 300 return CFX_WideString(); |
301 } | 301 } |
302 } | 302 } |
303 switch (pValue->GetType()) { | 303 switch (pValue->GetType()) { |
304 case CPDF_Object::STRING: | 304 case CPDF_Object::STRING: |
305 case CPDF_Object::STREAM: | 305 case CPDF_Object::STREAM: |
306 return pValue->GetUnicodeText(); | 306 return pValue->GetUnicodeText(); |
307 case CPDF_Object::ARRAY: | 307 case CPDF_Object::ARRAY: |
308 pValue = pValue->AsArray()->GetElementValue(0); | 308 pValue = pValue->AsArray()->GetDirectObjectAt(0); |
309 if (pValue) | 309 if (pValue) |
310 return pValue->GetUnicodeText(); | 310 return pValue->GetUnicodeText(); |
311 break; | 311 break; |
312 default: | 312 default: |
313 break; | 313 break; |
314 } | 314 } |
315 return CFX_WideString(); | 315 return CFX_WideString(); |
316 } | 316 } |
317 CFX_WideString CPDF_FormField::GetValue() { | 317 CFX_WideString CPDF_FormField::GetValue() { |
318 return GetValue(FALSE); | 318 return GetValue(FALSE); |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
440 CFX_WideString sel_value; | 440 CFX_WideString sel_value; |
441 if (pValue->IsString()) { | 441 if (pValue->IsString()) { |
442 if (index != 0) | 442 if (index != 0) |
443 return -1; | 443 return -1; |
444 sel_value = pValue->GetUnicodeText(); | 444 sel_value = pValue->GetUnicodeText(); |
445 } else { | 445 } else { |
446 CPDF_Array* pArray = pValue->AsArray(); | 446 CPDF_Array* pArray = pValue->AsArray(); |
447 if (!pArray || index < 0) | 447 if (!pArray || index < 0) |
448 return -1; | 448 return -1; |
449 | 449 |
450 CPDF_Object* elementValue = pArray->GetElementValue(index); | 450 CPDF_Object* elementValue = pArray->GetDirectObjectAt(index); |
451 sel_value = | 451 sel_value = |
452 elementValue ? elementValue->GetUnicodeText() : CFX_WideString(); | 452 elementValue ? elementValue->GetUnicodeText() : CFX_WideString(); |
453 } | 453 } |
454 if (index < CountSelectedOptions()) { | 454 if (index < CountSelectedOptions()) { |
455 int iOptIndex = GetSelectedOptionIndex(index); | 455 int iOptIndex = GetSelectedOptionIndex(index); |
456 CFX_WideString csOpt = GetOptionValue(iOptIndex); | 456 CFX_WideString csOpt = GetOptionValue(iOptIndex); |
457 if (csOpt == sel_value) { | 457 if (csOpt == sel_value) { |
458 return iOptIndex; | 458 return iOptIndex; |
459 } | 459 } |
460 } | 460 } |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
531 return FALSE; | 531 return FALSE; |
532 | 532 |
533 int iPos = -1; | 533 int iPos = -1; |
534 for (int j = 0; j < CountSelectedOptions(); j++) { | 534 for (int j = 0; j < CountSelectedOptions(); j++) { |
535 if (GetSelectedOptionIndex(j) == index) { | 535 if (GetSelectedOptionIndex(j) == index) { |
536 iPos = j; | 536 iPos = j; |
537 break; | 537 break; |
538 } | 538 } |
539 } | 539 } |
540 for (uint32_t i = 0; i < pArray->GetCount(); i++) | 540 for (uint32_t i = 0; i < pArray->GetCount(); i++) |
541 if (pArray->GetElementValue(i)->GetUnicodeText() == opt_value && | 541 if (pArray->GetDirectObjectAt(i)->GetUnicodeText() == opt_value && |
542 (int)i == iPos) { | 542 (int)i == iPos) { |
543 return TRUE; | 543 return TRUE; |
544 } | 544 } |
545 return FALSE; | 545 return FALSE; |
546 } | 546 } |
547 FX_BOOL CPDF_FormField::SetItemSelection(int index, | 547 FX_BOOL CPDF_FormField::SetItemSelection(int index, |
548 FX_BOOL bSelected, | 548 FX_BOOL bSelected, |
549 FX_BOOL bNotify) { | 549 FX_BOOL bNotify) { |
550 ASSERT(GetType() == ComboBox || GetType() == ListBox); | 550 ASSERT(GetType() == ComboBox || GetType() == ListBox); |
551 if (index < 0 || index >= CountOptions()) { | 551 if (index < 0 || index >= CountOptions()) { |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
684 } | 684 } |
685 int CPDF_FormField::CountOptions() { | 685 int CPDF_FormField::CountOptions() { |
686 CPDF_Array* pArray = ToArray(FPDF_GetFieldAttr(m_pDict, "Opt")); | 686 CPDF_Array* pArray = ToArray(FPDF_GetFieldAttr(m_pDict, "Opt")); |
687 return pArray ? pArray->GetCount() : 0; | 687 return pArray ? pArray->GetCount() : 0; |
688 } | 688 } |
689 CFX_WideString CPDF_FormField::GetOptionText(int index, int sub_index) { | 689 CFX_WideString CPDF_FormField::GetOptionText(int index, int sub_index) { |
690 CPDF_Array* pArray = ToArray(FPDF_GetFieldAttr(m_pDict, "Opt")); | 690 CPDF_Array* pArray = ToArray(FPDF_GetFieldAttr(m_pDict, "Opt")); |
691 if (!pArray) | 691 if (!pArray) |
692 return CFX_WideString(); | 692 return CFX_WideString(); |
693 | 693 |
694 CPDF_Object* pOption = pArray->GetElementValue(index); | 694 CPDF_Object* pOption = pArray->GetDirectObjectAt(index); |
695 if (!pOption) | 695 if (!pOption) |
696 return CFX_WideString(); | 696 return CFX_WideString(); |
697 if (CPDF_Array* pOptionArray = pOption->AsArray()) | 697 if (CPDF_Array* pOptionArray = pOption->AsArray()) |
698 pOption = pOptionArray->GetElementValue(sub_index); | 698 pOption = pOptionArray->GetDirectObjectAt(sub_index); |
699 | 699 |
700 CPDF_String* pString = ToString(pOption); | 700 CPDF_String* pString = ToString(pOption); |
701 return pString ? pString->GetUnicodeText() : CFX_WideString(); | 701 return pString ? pString->GetUnicodeText() : CFX_WideString(); |
702 } | 702 } |
703 CFX_WideString CPDF_FormField::GetOptionLabel(int index) { | 703 CFX_WideString CPDF_FormField::GetOptionLabel(int index) { |
704 return GetOptionText(index, 1); | 704 return GetOptionText(index, 1); |
705 } | 705 } |
706 CFX_WideString CPDF_FormField::GetOptionValue(int index) { | 706 CFX_WideString CPDF_FormField::GetOptionValue(int index) { |
707 return GetOptionText(index, 0); | 707 return GetOptionText(index, 0); |
708 } | 708 } |
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1088 pFontDict = m_pForm->m_pFormDict->GetDictBy("DR") | 1088 pFontDict = m_pForm->m_pFormDict->GetDictBy("DR") |
1089 ->GetDictBy("Font") | 1089 ->GetDictBy("Font") |
1090 ->GetDictBy(font_name); | 1090 ->GetDictBy(font_name); |
1091 | 1091 |
1092 if (!pFontDict) { | 1092 if (!pFontDict) { |
1093 return; | 1093 return; |
1094 } | 1094 } |
1095 m_pFont = m_pForm->m_pDocument->LoadFont(pFontDict); | 1095 m_pFont = m_pForm->m_pDocument->LoadFont(pFontDict); |
1096 m_FontSize = FX_atof(syntax.GetWord()); | 1096 m_FontSize = FX_atof(syntax.GetWord()); |
1097 } | 1097 } |
OLD | NEW |