blob: f50bdce93bd76b008871be6d4ff23679eae1e8b0 [file] [log] [blame]
K. Moon832a6942022-10-31 20:11:31 +00001// Copyright 2016 The PDFium Authors
jaepark27362762016-08-11 13:10:39 -07002// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
dsinclair114e46a2016-09-29 17:18:21 -07007#include "fpdfsdk/cpdfsdk_annot.h"
jaepark27362762016-08-11 13:10:39 -07008
Lei Zhang91085882024-02-22 00:49:57 +00009#include "core/fxcrt/check.h"
dsinclair114e46a2016-09-29 17:18:21 -070010#include "fpdfsdk/cpdfsdk_pageview.h"
jaepark27362762016-08-11 13:10:39 -070011
jaepark27362762016-08-11 13:10:39 -070012CPDFSDK_Annot::CPDFSDK_Annot(CPDFSDK_PageView* pPageView)
Lei Zhangc2ad6282020-02-13 20:50:57 +000013 : m_pPageView(pPageView) {
Tom Sepez9c78c0d2021-01-27 20:13:14 +000014 DCHECK(m_pPageView);
Lei Zhangc2ad6282020-02-13 20:50:57 +000015}
jaepark27362762016-08-11 13:10:39 -070016
Lei Zhangc2ad6282020-02-13 20:50:57 +000017CPDFSDK_Annot::~CPDFSDK_Annot() = default;
jaepark27362762016-08-11 13:10:39 -070018
Tom Sepez522d77d2018-07-28 00:00:25 +000019CPDFSDK_BAAnnot* CPDFSDK_Annot::AsBAAnnot() {
20 return nullptr;
21}
22
Tom Sepez451ed2d2019-08-19 22:55:31 +000023CPDFXFA_Widget* CPDFSDK_Annot::AsXFAWidget() {
jaepark27362762016-08-11 13:10:39 -070024 return nullptr;
25}
jaepark27362762016-08-11 13:10:39 -070026
Lei Zhang76ef4c92022-04-08 19:03:51 +000027// static
28void CPDFSDK_Annot::OnMouseEnter(ObservedPtr<CPDFSDK_Annot>& pAnnot,
29 Mask<FWL_EVENTFLAG> nFlags) {
30 pAnnot->GetUnsafeInputHandlers()->OnMouseEnter(nFlags);
31}
32
33// static
34void CPDFSDK_Annot::OnMouseExit(ObservedPtr<CPDFSDK_Annot>& pAnnot,
35 Mask<FWL_EVENTFLAG> nFlags) {
36 pAnnot->GetUnsafeInputHandlers()->OnMouseExit(nFlags);
37}
38
39// static
40bool CPDFSDK_Annot::OnLButtonDown(ObservedPtr<CPDFSDK_Annot>& pAnnot,
41 Mask<FWL_EVENTFLAG> nFlags,
42 const CFX_PointF& point) {
43 return pAnnot->GetUnsafeInputHandlers()->OnLButtonDown(nFlags, point);
44}
45
46// static
47bool CPDFSDK_Annot::OnLButtonUp(ObservedPtr<CPDFSDK_Annot>& pAnnot,
48 Mask<FWL_EVENTFLAG> nFlags,
49 const CFX_PointF& point) {
50 return pAnnot->GetUnsafeInputHandlers()->OnLButtonUp(nFlags, point);
51}
52
53// static
54bool CPDFSDK_Annot::OnLButtonDblClk(ObservedPtr<CPDFSDK_Annot>& pAnnot,
55 Mask<FWL_EVENTFLAG> nFlags,
56 const CFX_PointF& point) {
57 return pAnnot->GetUnsafeInputHandlers()->OnLButtonDblClk(nFlags, point);
58}
59
60// static
61bool CPDFSDK_Annot::OnMouseMove(ObservedPtr<CPDFSDK_Annot>& pAnnot,
62 Mask<FWL_EVENTFLAG> nFlags,
63 const CFX_PointF& point) {
64 return pAnnot->GetUnsafeInputHandlers()->OnMouseMove(nFlags, point);
65}
66
67// static
68bool CPDFSDK_Annot::OnMouseWheel(ObservedPtr<CPDFSDK_Annot>& pAnnot,
69 Mask<FWL_EVENTFLAG> nFlags,
70 const CFX_PointF& point,
71 const CFX_Vector& delta) {
72 return pAnnot->GetUnsafeInputHandlers()->OnMouseWheel(nFlags, point, delta);
73}
74
75// static
76bool CPDFSDK_Annot::OnRButtonDown(ObservedPtr<CPDFSDK_Annot>& pAnnot,
77 Mask<FWL_EVENTFLAG> nFlags,
78 const CFX_PointF& point) {
79 return pAnnot->GetUnsafeInputHandlers()->OnRButtonDown(nFlags, point);
80}
81
82// static
83bool CPDFSDK_Annot::OnRButtonUp(ObservedPtr<CPDFSDK_Annot>& pAnnot,
84 Mask<FWL_EVENTFLAG> nFlags,
85 const CFX_PointF& point) {
86 return pAnnot->GetUnsafeInputHandlers()->OnRButtonUp(nFlags, point);
87}
88
Lei Zhang2ea512b2022-04-08 21:10:01 +000089// static
90bool CPDFSDK_Annot::OnChar(ObservedPtr<CPDFSDK_Annot>& pAnnot,
91 uint32_t nChar,
92 Mask<FWL_EVENTFLAG> nFlags) {
93 return pAnnot->GetUnsafeInputHandlers()->OnChar(nChar, nFlags);
94}
95
96// static
97bool CPDFSDK_Annot::OnKeyDown(ObservedPtr<CPDFSDK_Annot>& pAnnot,
98 FWL_VKEYCODE nKeyCode,
99 Mask<FWL_EVENTFLAG> nFlags) {
100 return pAnnot->GetUnsafeInputHandlers()->OnKeyDown(nKeyCode, nFlags);
101}
102
103// static
104bool CPDFSDK_Annot::OnSetFocus(ObservedPtr<CPDFSDK_Annot>& pAnnot,
105 Mask<FWL_EVENTFLAG> nFlags) {
106 return pAnnot->GetUnsafeInputHandlers()->OnSetFocus(nFlags);
107}
108
109// static
110bool CPDFSDK_Annot::OnKillFocus(ObservedPtr<CPDFSDK_Annot>& pAnnot,
111 Mask<FWL_EVENTFLAG> nFlags) {
112 return pAnnot->GetUnsafeInputHandlers()->OnKillFocus(nFlags);
113}
114
Tom Sepez9bf01812019-08-19 18:59:27 +0000115IPDF_Page* CPDFSDK_Annot::GetXFAPage() {
116#ifdef PDF_ENABLE_XFA
Lei Zhangc2ad6282020-02-13 20:50:57 +0000117 return m_pPageView->GetXFAPage();
118#else
Tom Sepez9bf01812019-08-19 18:59:27 +0000119 return nullptr;
Lei Zhangc2ad6282020-02-13 20:50:57 +0000120#endif
Tom Sepez9bf01812019-08-19 18:59:27 +0000121}
122
jaepark27362762016-08-11 13:10:39 -0700123int CPDFSDK_Annot::GetLayoutOrder() const {
124 return 5;
125}
126
127CPDF_Annot* CPDFSDK_Annot::GetPDFAnnot() const {
128 return nullptr;
129}
130
Tom Sepez101535f2018-06-12 13:36:05 +0000131IPDF_Page* CPDFSDK_Annot::GetPage() {
jaepark27362762016-08-11 13:10:39 -0700132#ifdef PDF_ENABLE_XFA
Tom Sepez9bf01812019-08-19 18:59:27 +0000133 IPDF_Page* pXFAPage = GetXFAPage();
Tom Sepez8e631772018-06-13 21:26:56 +0000134 if (pXFAPage)
135 return pXFAPage;
jaepark27362762016-08-11 13:10:39 -0700136#endif // PDF_ENABLE_XFA
Tom Sepez8e631772018-06-13 21:26:56 +0000137 return GetPDFPage();
jaepark27362762016-08-11 13:10:39 -0700138}
139
140CPDF_Page* CPDFSDK_Annot::GetPDFPage() {
Lei Zhangc2ad6282020-02-13 20:50:57 +0000141 return m_pPageView->GetPDFPage();
jaepark27362762016-08-11 13:10:39 -0700142}