14d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Copyright 2016 PDFium Authors. All rights reserved.
24d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be
34d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// found in the LICENSE file.
44d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
54d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
64d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
74d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/cpdfsdk_baannothandler.h"
84d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
94d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include <memory>
104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include <vector>
114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fpdfapi/page/cpdf_page.h"
134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fpdfapi/parser/cpdf_document.h"
144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fpdfdoc/cpdf_interform.h"
154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/cpdfsdk_annot.h"
164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/cpdfsdk_baannot.h"
174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/cpdfsdk_pageview.h"
184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/formfiller/cffl_formfiller.h"
194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#ifdef PDF_ENABLE_XFA
214d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/fpdfxfa/cpdfxfa_context.h"
224d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif  // PDF_ENABLE_XFA
234d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
244d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannnamespace {
254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
264d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannvoid UpdateAnnotRects(CPDFSDK_PageView* pPageView, CPDFSDK_BAAnnot* pBAAnnot) {
274d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  std::vector<CFX_FloatRect> rects;
284d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  rects.push_back(pBAAnnot->GetRect());
294d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  if (CPDF_Annot* pPopupAnnot = pBAAnnot->GetPDFPopupAnnot())
304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    rects.push_back(pPopupAnnot->GetRect());
314d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
324d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  // Make the rects round up to avoid https://crbug.com/662804
334d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  for (CFX_FloatRect& rect : rects)
344d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    rect.Inflate(1, 1);
354d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
364d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  pPageView->UpdateRects(rects);
374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}  // namespace
404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. MoltmannCPDFSDK_BAAnnotHandler::CPDFSDK_BAAnnotHandler() {}
424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. MoltmannCPDFSDK_BAAnnotHandler::~CPDFSDK_BAAnnotHandler() {}
444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::CanAnswer(CPDFSDK_Annot* pAnnot) {
464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. MoltmannCPDFSDK_Annot* CPDFSDK_BAAnnotHandler::NewAnnot(CPDF_Annot* pAnnot,
504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                                CPDFSDK_PageView* pPage) {
514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return new CPDFSDK_BAAnnot(pAnnot, pPage);
524d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
534d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
544d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#ifdef PDF_ENABLE_XFA
554d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. MoltmannCPDFSDK_Annot* CPDFSDK_BAAnnotHandler::NewAnnot(CXFA_FFWidget* hWidget,
564d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                                CPDFSDK_PageView* pPage) {
574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return nullptr;
584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif  // PDF_ENABLE_XFA
604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannvoid CPDFSDK_BAAnnotHandler::ReleaseAnnot(CPDFSDK_Annot* pAnnot) {
624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  delete pAnnot;
634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
644d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannvoid CPDFSDK_BAAnnotHandler::OnDraw(CPDFSDK_PageView* pPageView,
664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                    CPDFSDK_Annot* pAnnot,
674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                    CFX_RenderDevice* pDevice,
684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                    CFX_Matrix* pUser2Device,
694d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                    bool bDrawAnnots) {
704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#ifdef PDF_ENABLE_XFA
714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  if (pAnnot->IsXFAField())
724d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    return;
734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif  // PDF_ENABLE_XFA
744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  if (bDrawAnnots && pAnnot->GetAnnotSubtype() == CPDF_Annot::Subtype::POPUP) {
754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    static_cast<CPDFSDK_BAAnnot*>(pAnnot)->DrawAppearance(
764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann        pDevice, pUser2Device, CPDF_Annot::Normal, nullptr);
774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  }
784d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannvoid CPDFSDK_BAAnnotHandler::OnMouseEnter(CPDFSDK_PageView* pPageView,
814d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                          CPDFSDK_Annot::ObservedPtr* pAnnot,
824d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                          uint32_t nFlag) {
834d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  CPDFSDK_BAAnnot* pBAAnnot = static_cast<CPDFSDK_BAAnnot*>(pAnnot->Get());
844d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  pBAAnnot->SetOpenState(true);
854d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  UpdateAnnotRects(pPageView, pBAAnnot);
864d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
874d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
884d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannvoid CPDFSDK_BAAnnotHandler::OnMouseExit(CPDFSDK_PageView* pPageView,
894d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                         CPDFSDK_Annot::ObservedPtr* pAnnot,
904d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                         uint32_t nFlag) {
914d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  CPDFSDK_BAAnnot* pBAAnnot = static_cast<CPDFSDK_BAAnnot*>(pAnnot->Get());
924d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  pBAAnnot->SetOpenState(false);
934d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  UpdateAnnotRects(pPageView, pBAAnnot);
944d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnLButtonDown(CPDFSDK_PageView* pPageView,
974d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                           CPDFSDK_Annot::ObservedPtr* pAnnot,
984d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                           uint32_t nFlags,
995ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann                                           const CFX_PointF& point) {
1004d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1014d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1024d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1034d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnLButtonUp(CPDFSDK_PageView* pPageView,
1044d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                         CPDFSDK_Annot::ObservedPtr* pAnnot,
1054d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                         uint32_t nFlags,
1065ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann                                         const CFX_PointF& point) {
1074d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1084d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1094d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnLButtonDblClk(CPDFSDK_PageView* pPageView,
1114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                             CPDFSDK_Annot::ObservedPtr* pAnnot,
1124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                             uint32_t nFlags,
1135ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann                                             const CFX_PointF& point) {
1144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnMouseMove(CPDFSDK_PageView* pPageView,
1184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                         CPDFSDK_Annot::ObservedPtr* pAnnot,
1194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                         uint32_t nFlags,
1205ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann                                         const CFX_PointF& point) {
1214d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1224d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1234d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1244d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnMouseWheel(CPDFSDK_PageView* pPageView,
1254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                          CPDFSDK_Annot::ObservedPtr* pAnnot,
1264d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                          uint32_t nFlags,
1274d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                          short zDelta,
1285ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann                                          const CFX_PointF& point) {
1294d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1314d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1324d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnRButtonDown(CPDFSDK_PageView* pPageView,
1334d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                           CPDFSDK_Annot::ObservedPtr* pAnnot,
1344d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                           uint32_t nFlags,
1355ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann                                           const CFX_PointF& point) {
1364d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnRButtonUp(CPDFSDK_PageView* pPageView,
1404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                         CPDFSDK_Annot::ObservedPtr* pAnnot,
1414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                         uint32_t nFlags,
1425ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann                                         const CFX_PointF& point) {
1434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnRButtonDblClk(CPDFSDK_PageView* pPageView,
1474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                             CPDFSDK_Annot::ObservedPtr* pAnnot,
1484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                             uint32_t nFlags,
1495ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann                                             const CFX_PointF& point) {
1504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1524d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1534d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnChar(CPDFSDK_Annot* pAnnot,
1544d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                    uint32_t nChar,
1554d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                    uint32_t nFlags) {
1564d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnKeyDown(CPDFSDK_Annot* pAnnot,
1604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                       int nKeyCode,
1614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                       int nFlag) {
1624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1644d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnKeyUp(CPDFSDK_Annot* pAnnot,
1664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                     int nKeyCode,
1674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                     int nFlag) {
1684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1694d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannvoid CPDFSDK_BAAnnotHandler::OnLoad(CPDFSDK_Annot* pAnnot) {}
1724d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnSetFocus(CPDFSDK_Annot::ObservedPtr* pAnnot,
1744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                        uint32_t nFlag) {
1754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1784d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnKillFocus(CPDFSDK_Annot::ObservedPtr* pAnnot,
1794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                         uint32_t nFlag) {
1804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return false;
1814d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1824d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1834d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#ifdef PDF_ENABLE_XFA
1844d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::OnXFAChangedFocus(
1854d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    CPDFSDK_Annot::ObservedPtr* pOldAnnot,
1864d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann    CPDFSDK_Annot::ObservedPtr* pNewAnnot) {
1874d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return true;
1884d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1894d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif  // PDF_ENABLE_XFA
1904d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1914d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. MoltmannCFX_FloatRect CPDFSDK_BAAnnotHandler::GetViewBBox(CPDFSDK_PageView* pPageView,
1924d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                                  CPDFSDK_Annot* pAnnot) {
1934d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  return pAnnot->GetRect();
1944d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
1954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann
1964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannbool CPDFSDK_BAAnnotHandler::HitTest(CPDFSDK_PageView* pPageView,
1974d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann                                     CPDFSDK_Annot* pAnnot,
1985ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann                                     const CFX_PointF& point) {
1994d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  ASSERT(pPageView);
2004d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann  ASSERT(pAnnot);
2015ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann  return GetViewBBox(pPageView, pAnnot).Contains(point);
2024d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}
203