| 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 "fpdfsdk/include/fsdk_mgr.h" | 7 #include "fpdfsdk/include/fsdk_mgr.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 CPDFSDK_AnnotHandlerMgr* pAnnotHandler = m_pEnv->GetAnnotHandlerMgr(); | 435 CPDFSDK_AnnotHandlerMgr* pAnnotHandler = m_pEnv->GetAnnotHandlerMgr(); |
| 436 CPDFSDK_Annot* pFocusAnnot = m_pFocusAnnot; | 436 CPDFSDK_Annot* pFocusAnnot = m_pFocusAnnot; |
| 437 m_pFocusAnnot = nullptr; | 437 m_pFocusAnnot = nullptr; |
| 438 | 438 |
| 439 #ifdef PDF_ENABLE_XFA | 439 #ifdef PDF_ENABLE_XFA |
| 440 if (!pAnnotHandler->Annot_OnChangeFocus(nullptr, pFocusAnnot)) | 440 if (!pAnnotHandler->Annot_OnChangeFocus(nullptr, pFocusAnnot)) |
| 441 return FALSE; | 441 return FALSE; |
| 442 #endif // PDF_ENABLE_XFA | 442 #endif // PDF_ENABLE_XFA |
| 443 | 443 |
| 444 if (pAnnotHandler->Annot_OnKillFocus(pFocusAnnot, nFlag)) { | 444 if (pAnnotHandler->Annot_OnKillFocus(pFocusAnnot, nFlag)) { |
| 445 if (pFocusAnnot->GetType() == "Widget") { | 445 if (pFocusAnnot->GetAnnotSubtype() == "Widget") { |
| 446 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pFocusAnnot; | 446 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pFocusAnnot; |
| 447 int nFieldType = pWidget->GetFieldType(); | 447 int nFieldType = pWidget->GetFieldType(); |
| 448 if (FIELDTYPE_TEXTFIELD == nFieldType || | 448 if (FIELDTYPE_TEXTFIELD == nFieldType || |
| 449 FIELDTYPE_COMBOBOX == nFieldType) { | 449 FIELDTYPE_COMBOBOX == nFieldType) { |
| 450 m_pEnv->FFI_OnSetFieldInputFocus(nullptr, nullptr, 0, FALSE); | 450 m_pEnv->FFI_OnSetFieldInputFocus(nullptr, nullptr, 0, FALSE); |
| 451 } | 451 } |
| 452 } | 452 } |
| 453 | 453 |
| 454 if (!m_pFocusAnnot) | 454 if (!m_pFocusAnnot) |
| 455 return TRUE; | 455 return TRUE; |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 579 CFX_FloatRect annotRect = pAnnot->GetRect(); | 579 CFX_FloatRect annotRect = pAnnot->GetRect(); |
| 580 if (annotRect.Contains(pageX, pageY)) | 580 if (annotRect.Contains(pageX, pageY)) |
| 581 return pAnnot.get(); | 581 return pAnnot.get(); |
| 582 } | 582 } |
| 583 return nullptr; | 583 return nullptr; |
| 584 } | 584 } |
| 585 | 585 |
| 586 const CPDF_Annot* CPDFSDK_PageView::GetPDFWidgetAtPoint(FX_FLOAT pageX, | 586 const CPDF_Annot* CPDFSDK_PageView::GetPDFWidgetAtPoint(FX_FLOAT pageX, |
| 587 FX_FLOAT pageY) { | 587 FX_FLOAT pageY) { |
| 588 for (const auto& pAnnot : m_pAnnotList->All()) { | 588 for (const auto& pAnnot : m_pAnnotList->All()) { |
| 589 if (pAnnot->GetSubType() == "Widget") { | 589 if (pAnnot->GetSubtype() == "Widget") { |
| 590 CFX_FloatRect annotRect = pAnnot->GetRect(); | 590 CFX_FloatRect annotRect = pAnnot->GetRect(); |
| 591 if (annotRect.Contains(pageX, pageY)) | 591 if (annotRect.Contains(pageX, pageY)) |
| 592 return pAnnot.get(); | 592 return pAnnot.get(); |
| 593 } | 593 } |
| 594 } | 594 } |
| 595 return nullptr; | 595 return nullptr; |
| 596 } | 596 } |
| 597 | 597 |
| 598 CPDFSDK_Annot* CPDFSDK_PageView::GetFXAnnotAtPoint(FX_FLOAT pageX, | 598 CPDFSDK_Annot* CPDFSDK_PageView::GetFXAnnotAtPoint(FX_FLOAT pageX, |
| 599 FX_FLOAT pageY) { | 599 FX_FLOAT pageY) { |
| 600 CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); | 600 CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); |
| 601 CPDFSDK_AnnotHandlerMgr* pAnnotMgr = pEnv->GetAnnotHandlerMgr(); | 601 CPDFSDK_AnnotHandlerMgr* pAnnotMgr = pEnv->GetAnnotHandlerMgr(); |
| 602 CPDFSDK_AnnotIterator annotIterator(this, false); | 602 CPDFSDK_AnnotIterator annotIterator(this, false); |
| 603 while (CPDFSDK_Annot* pSDKAnnot = annotIterator.Next()) { | 603 while (CPDFSDK_Annot* pSDKAnnot = annotIterator.Next()) { |
| 604 CFX_FloatRect rc = pAnnotMgr->Annot_OnGetViewBBox(this, pSDKAnnot); | 604 CFX_FloatRect rc = pAnnotMgr->Annot_OnGetViewBBox(this, pSDKAnnot); |
| 605 if (rc.Contains(pageX, pageY)) | 605 if (rc.Contains(pageX, pageY)) |
| 606 return pSDKAnnot; | 606 return pSDKAnnot; |
| 607 } | 607 } |
| 608 | 608 |
| 609 return nullptr; | 609 return nullptr; |
| 610 } | 610 } |
| 611 | 611 |
| 612 CPDFSDK_Annot* CPDFSDK_PageView::GetFXWidgetAtPoint(FX_FLOAT pageX, | 612 CPDFSDK_Annot* CPDFSDK_PageView::GetFXWidgetAtPoint(FX_FLOAT pageX, |
| 613 FX_FLOAT pageY) { | 613 FX_FLOAT pageY) { |
| 614 CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); | 614 CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); |
| 615 CPDFSDK_AnnotHandlerMgr* pAnnotMgr = pEnv->GetAnnotHandlerMgr(); | 615 CPDFSDK_AnnotHandlerMgr* pAnnotMgr = pEnv->GetAnnotHandlerMgr(); |
| 616 CPDFSDK_AnnotIterator annotIterator(this, false); | 616 CPDFSDK_AnnotIterator annotIterator(this, false); |
| 617 while (CPDFSDK_Annot* pSDKAnnot = annotIterator.Next()) { | 617 while (CPDFSDK_Annot* pSDKAnnot = annotIterator.Next()) { |
| 618 bool bHitTest = pSDKAnnot->GetType() == "Widget"; | 618 bool bHitTest = pSDKAnnot->GetAnnotSubtype() == "Widget"; |
| 619 #ifdef PDF_ENABLE_XFA | 619 #ifdef PDF_ENABLE_XFA |
| 620 bHitTest = bHitTest || pSDKAnnot->GetType() == FSDK_XFAWIDGET_TYPENAME; | 620 bHitTest = |
| 621 bHitTest || pSDKAnnot->GetAnnotSubtype() == FSDK_XFAWIDGET_TYPENAME; |
| 621 #endif // PDF_ENABLE_XFA | 622 #endif // PDF_ENABLE_XFA |
| 622 if (bHitTest) { | 623 if (bHitTest) { |
| 623 pAnnotMgr->Annot_OnGetViewBBox(this, pSDKAnnot); | 624 pAnnotMgr->Annot_OnGetViewBBox(this, pSDKAnnot); |
| 624 CFX_FloatPoint point(pageX, pageY); | 625 CFX_FloatPoint point(pageX, pageY); |
| 625 if (pAnnotMgr->Annot_OnHitTest(this, pSDKAnnot, point)) | 626 if (pAnnotMgr->Annot_OnHitTest(this, pSDKAnnot, point)) |
| 626 return pSDKAnnot; | 627 return pSDKAnnot; |
| 627 } | 628 } |
| 628 } | 629 } |
| 629 | 630 |
| 630 return nullptr; | 631 return nullptr; |
| (...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1019 return pAnnot; | 1020 return pAnnot; |
| 1020 } | 1021 } |
| 1021 return nullptr; | 1022 return nullptr; |
| 1022 } | 1023 } |
| 1023 | 1024 |
| 1024 int CPDFSDK_PageView::GetPageIndexForStaticPDF() const { | 1025 int CPDFSDK_PageView::GetPageIndexForStaticPDF() const { |
| 1025 CPDF_Dictionary* pDict = GetPDFPage()->m_pFormDict; | 1026 CPDF_Dictionary* pDict = GetPDFPage()->m_pFormDict; |
| 1026 CPDF_Document* pDoc = m_pSDKDoc->GetPDFDocument(); | 1027 CPDF_Document* pDoc = m_pSDKDoc->GetPDFDocument(); |
| 1027 return (pDoc && pDict) ? pDoc->GetPageIndex(pDict->GetObjNum()) : -1; | 1028 return (pDoc && pDict) ? pDoc->GetPageIndex(pDict->GetObjNum()) : -1; |
| 1028 } | 1029 } |
| OLD | NEW |