| 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 <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "fpdfsdk/include/fsdk_mgr.h" | 9 #include "fpdfsdk/include/fsdk_mgr.h" |
| 10 | 10 |
| 11 #include "fpdfsdk/include/formfiller/FFL_FormFiller.h" | 11 #include "fpdfsdk/include/formfiller/FFL_FormFiller.h" |
| 12 #include "fpdfsdk/include/fsdk_define.h" | 12 #include "fpdfsdk/include/fsdk_define.h" |
| 13 #include "fpdfsdk/include/javascript/IJavaScript.h" | 13 #include "fpdfsdk/include/javascript/IJavaScript.h" |
| 14 #include "public/fpdf_ext.h" | 14 #include "public/fpdf_ext.h" |
| 15 #include "third_party/base/nonstd_unique_ptr.h" | 15 #include "third_party/base/nonstd_unique_ptr.h" |
| 16 #include "third_party/base/stl_util.h" |
| 16 | 17 |
| 17 #if _FX_OS_ == _FX_ANDROID_ | 18 #if _FX_OS_ == _FX_ANDROID_ |
| 18 #include "time.h" | 19 #include "time.h" |
| 19 #else | 20 #else |
| 20 #include <ctime> | 21 #include <ctime> |
| 21 #endif | 22 #endif |
| 22 | 23 |
| 23 class CFX_SystemHandler : public IFX_SystemHandler { | 24 class CFX_SystemHandler : public IFX_SystemHandler { |
| 24 public: | 25 public: |
| 25 explicit CFX_SystemHandler(CPDFDoc_Environment* pEnv) | 26 explicit CFX_SystemHandler(CPDFDoc_Environment* pEnv) |
| (...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 return pSDKAnnot; | 683 return pSDKAnnot; |
| 683 } | 684 } |
| 684 } | 685 } |
| 685 | 686 |
| 686 return nullptr; | 687 return nullptr; |
| 687 } | 688 } |
| 688 | 689 |
| 689 void CPDFSDK_PageView::KillFocusAnnotIfNeeded() { | 690 void CPDFSDK_PageView::KillFocusAnnotIfNeeded() { |
| 690 // if there is a focused annot on the page, we should kill the focus first. | 691 // if there is a focused annot on the page, we should kill the focus first. |
| 691 if (CPDFSDK_Annot* focusedAnnot = m_pSDKDoc->GetFocusAnnot()) { | 692 if (CPDFSDK_Annot* focusedAnnot = m_pSDKDoc->GetFocusAnnot()) { |
| 692 auto it = | 693 if (pdfium::ContainsValue(m_fxAnnotArray, focusedAnnot)) |
| 693 std::find(m_fxAnnotArray.begin(), m_fxAnnotArray.end(), focusedAnnot); | |
| 694 if (it != m_fxAnnotArray.end()) | |
| 695 KillFocusAnnot(); | 694 KillFocusAnnot(); |
| 696 } | 695 } |
| 697 } | 696 } |
| 698 | 697 |
| 699 FX_BOOL CPDFSDK_PageView::Annot_HasAppearance(CPDF_Annot* pAnnot) { | 698 FX_BOOL CPDFSDK_PageView::Annot_HasAppearance(CPDF_Annot* pAnnot) { |
| 700 CPDF_Dictionary* pAnnotDic = pAnnot->GetAnnotDict(); | 699 CPDF_Dictionary* pAnnotDic = pAnnot->GetAnnotDict(); |
| 701 if (pAnnotDic) | 700 if (pAnnotDic) |
| 702 return pAnnotDic->KeyExist("AS"); | 701 return pAnnotDic->KeyExist("AS"); |
| 703 return FALSE; | 702 return FALSE; |
| 704 } | 703 } |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 904 } | 903 } |
| 905 } | 904 } |
| 906 return -1; | 905 return -1; |
| 907 } | 906 } |
| 908 | 907 |
| 909 bool CPDFSDK_PageView::IsValidAnnot(const CPDF_Annot* p) const { | 908 bool CPDFSDK_PageView::IsValidAnnot(const CPDF_Annot* p) const { |
| 910 if (!p) | 909 if (!p) |
| 911 return false; | 910 return false; |
| 912 | 911 |
| 913 const auto& annots = m_pAnnotList->All(); | 912 const auto& annots = m_pAnnotList->All(); |
| 914 return std::find(annots.begin(), annots.end(), p) != annots.end(); | 913 return pdfium::ContainsValue(annots, p); |
| 915 } | 914 } |
| 916 | 915 |
| 917 CPDFSDK_Annot* CPDFSDK_PageView::GetFocusAnnot() { | 916 CPDFSDK_Annot* CPDFSDK_PageView::GetFocusAnnot() { |
| 918 CPDFSDK_Annot* pFocusAnnot = m_pSDKDoc->GetFocusAnnot(); | 917 CPDFSDK_Annot* pFocusAnnot = m_pSDKDoc->GetFocusAnnot(); |
| 919 if (!pFocusAnnot) | 918 if (!pFocusAnnot) |
| 920 return nullptr; | 919 return nullptr; |
| 921 | 920 |
| 922 for (CPDFSDK_Annot* pAnnot : m_fxAnnotArray) { | 921 for (CPDFSDK_Annot* pAnnot : m_fxAnnotArray) { |
| 923 if (pAnnot == pFocusAnnot) | 922 if (pAnnot == pFocusAnnot) |
| 924 return pAnnot; | 923 return pAnnot; |
| 925 } | 924 } |
| 926 return nullptr; | 925 return nullptr; |
| 927 } | 926 } |
| OLD | NEW |