OLD | NEW |
1 // Copyright 2016 PDFium Authors. All rights reserved. | 1 // Copyright 2016 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 <vector> | 7 #include <vector> |
8 | 8 |
9 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h" | 9 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h" |
10 #include "core/fpdfapi/fpdf_font/include/cpdf_fontencoding.h" | 10 #include "core/fpdfapi/fpdf_font/include/cpdf_fontencoding.h" |
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
421 | 421 |
422 const CFX_WideString& GetShortName() const { return m_ShortName; } | 422 const CFX_WideString& GetShortName() const { return m_ShortName; } |
423 | 423 |
424 private: | 424 private: |
425 CPDF_FormField* GetFieldInternal(size_t* pFieldsToGo) { | 425 CPDF_FormField* GetFieldInternal(size_t* pFieldsToGo) { |
426 if (m_pField) { | 426 if (m_pField) { |
427 if (*pFieldsToGo == 0) | 427 if (*pFieldsToGo == 0) |
428 return m_pField; | 428 return m_pField; |
429 | 429 |
430 --*pFieldsToGo; | 430 --*pFieldsToGo; |
431 return nullptr; | |
432 } | 431 } |
433 for (size_t i = 0; i < GetChildrenCount(); ++i) { | 432 for (size_t i = 0; i < GetChildrenCount(); ++i) { |
434 CPDF_FormField* pField = GetChildAt(i)->GetFieldInternal(pFieldsToGo); | 433 CPDF_FormField* pField = GetChildAt(i)->GetFieldInternal(pFieldsToGo); |
435 if (pField) | 434 if (pField) |
436 return pField; | 435 return pField; |
437 } | 436 } |
438 return nullptr; | 437 return nullptr; |
439 } | 438 } |
440 | 439 |
441 size_t CountFieldsInternal(int nLevel) const { | 440 size_t CountFieldsInternal(int nLevel) const { |
442 if (nLevel > nMaxRecursion) | 441 if (nLevel > nMaxRecursion) |
443 return 0; | 442 return 0; |
444 if (m_pField) | |
445 return 1; | |
446 | 443 |
447 size_t count = 0; | 444 size_t count = 0; |
| 445 if (m_pField) |
| 446 ++count; |
| 447 |
448 for (size_t i = 0; i < GetChildrenCount(); ++i) | 448 for (size_t i = 0; i < GetChildrenCount(); ++i) |
449 count += GetChildAt(i)->CountFieldsInternal(nLevel + 1); | 449 count += GetChildAt(i)->CountFieldsInternal(nLevel + 1); |
450 return count; | 450 return count; |
451 } | 451 } |
452 | 452 |
453 std::vector<Node*> m_Children; | 453 std::vector<Node*> m_Children; |
454 CFX_WideString m_ShortName; | 454 CFX_WideString m_ShortName; |
455 CPDF_FormField* m_pField; | 455 CPDF_FormField* m_pField; |
456 }; | 456 }; |
457 | 457 |
(...skipping 853 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1311 else if (iType == FIELDTYPE_LISTBOX) | 1311 else if (iType == FIELDTYPE_LISTBOX) |
1312 m_pFormNotify->AfterSelectionChange(pField); | 1312 m_pFormNotify->AfterSelectionChange(pField); |
1313 else if (iType == FIELDTYPE_COMBOBOX || iType == FIELDTYPE_TEXTFIELD) | 1313 else if (iType == FIELDTYPE_COMBOBOX || iType == FIELDTYPE_TEXTFIELD) |
1314 m_pFormNotify->AfterValueChange(pField); | 1314 m_pFormNotify->AfterValueChange(pField); |
1315 } | 1315 } |
1316 } | 1316 } |
1317 | 1317 |
1318 void CPDF_InterForm::SetFormNotify(IPDF_FormNotify* pNotify) { | 1318 void CPDF_InterForm::SetFormNotify(IPDF_FormNotify* pNotify) { |
1319 m_pFormNotify = pNotify; | 1319 m_pFormNotify = pNotify; |
1320 } | 1320 } |
OLD | NEW |