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 "fpdfsdk/include/cpdfsdk_widgethandler.h" | 7 #include "fpdfsdk/include/cpdfsdk_widgethandler.h" |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <vector> | 10 #include <vector> |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 if (m_pFormFiller) | 103 if (m_pFormFiller) |
104 m_pFormFiller->OnDraw(pPageView, pAnnot, pDevice, pUser2Device); | 104 m_pFormFiller->OnDraw(pPageView, pAnnot, pDevice, pUser2Device); |
105 } | 105 } |
106 } | 106 } |
107 | 107 |
108 void CPDFSDK_WidgetHandler::OnDelete(CPDFSDK_Annot* pAnnot) {} | 108 void CPDFSDK_WidgetHandler::OnDelete(CPDFSDK_Annot* pAnnot) {} |
109 | 109 |
110 void CPDFSDK_WidgetHandler::OnRelease(CPDFSDK_Annot* pAnnot) {} | 110 void CPDFSDK_WidgetHandler::OnRelease(CPDFSDK_Annot* pAnnot) {} |
111 | 111 |
112 void CPDFSDK_WidgetHandler::OnMouseEnter(CPDFSDK_PageView* pPageView, | 112 void CPDFSDK_WidgetHandler::OnMouseEnter(CPDFSDK_PageView* pPageView, |
113 CPDFSDK_Annot* pAnnot, | 113 CPDFSDK_Annot::ObservedPtr* pAnnot, |
114 uint32_t nFlag) { | 114 uint32_t nFlag) { |
115 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 115 if (!(*pAnnot)->IsSignatureWidget() && m_pFormFiller) |
116 m_pFormFiller->OnMouseEnter(pPageView, pAnnot, nFlag); | 116 m_pFormFiller->OnMouseEnter(pPageView, pAnnot, nFlag); |
117 } | 117 } |
118 | 118 |
119 void CPDFSDK_WidgetHandler::OnMouseExit(CPDFSDK_PageView* pPageView, | 119 void CPDFSDK_WidgetHandler::OnMouseExit(CPDFSDK_PageView* pPageView, |
120 CPDFSDK_Annot* pAnnot, | 120 CPDFSDK_Annot::ObservedPtr* pAnnot, |
121 uint32_t nFlag) { | 121 uint32_t nFlag) { |
122 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 122 if (!(*pAnnot)->IsSignatureWidget() && m_pFormFiller) |
123 m_pFormFiller->OnMouseExit(pPageView, pAnnot, nFlag); | 123 m_pFormFiller->OnMouseExit(pPageView, pAnnot, nFlag); |
124 } | 124 } |
125 | 125 |
126 FX_BOOL CPDFSDK_WidgetHandler::OnLButtonDown(CPDFSDK_PageView* pPageView, | 126 FX_BOOL CPDFSDK_WidgetHandler::OnLButtonDown(CPDFSDK_PageView* pPageView, |
127 CPDFSDK_Annot* pAnnot, | 127 CPDFSDK_Annot::ObservedPtr* pAnnot, |
128 uint32_t nFlags, | 128 uint32_t nFlags, |
129 const CFX_FloatPoint& point) { | 129 const CFX_FloatPoint& point) { |
130 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 130 if (!(*pAnnot)->IsSignatureWidget() && m_pFormFiller) |
131 return m_pFormFiller->OnLButtonDown(pPageView, pAnnot, nFlags, point); | 131 return m_pFormFiller->OnLButtonDown(pPageView, pAnnot, nFlags, point); |
132 | 132 |
133 return FALSE; | 133 return FALSE; |
134 } | 134 } |
135 | 135 |
136 FX_BOOL CPDFSDK_WidgetHandler::OnLButtonUp(CPDFSDK_PageView* pPageView, | 136 FX_BOOL CPDFSDK_WidgetHandler::OnLButtonUp(CPDFSDK_PageView* pPageView, |
137 CPDFSDK_Annot* pAnnot, | 137 CPDFSDK_Annot::ObservedPtr* pAnnot, |
138 uint32_t nFlags, | 138 uint32_t nFlags, |
139 const CFX_FloatPoint& point) { | 139 const CFX_FloatPoint& point) { |
140 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 140 if (!(*pAnnot)->IsSignatureWidget() && m_pFormFiller) |
141 return m_pFormFiller->OnLButtonUp(pPageView, pAnnot, nFlags, point); | 141 return m_pFormFiller->OnLButtonUp(pPageView, pAnnot, nFlags, point); |
142 | 142 |
143 return FALSE; | 143 return FALSE; |
144 } | 144 } |
145 | 145 |
146 FX_BOOL CPDFSDK_WidgetHandler::OnLButtonDblClk(CPDFSDK_PageView* pPageView, | 146 FX_BOOL CPDFSDK_WidgetHandler::OnLButtonDblClk( |
147 CPDFSDK_Annot* pAnnot, | 147 CPDFSDK_PageView* pPageView, |
148 uint32_t nFlags, | 148 CPDFSDK_Annot::ObservedPtr* pAnnot, |
149 const CFX_FloatPoint& point) { | 149 uint32_t nFlags, |
150 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 150 const CFX_FloatPoint& point) { |
| 151 if (!(*pAnnot)->IsSignatureWidget() && m_pFormFiller) |
151 return m_pFormFiller->OnLButtonDblClk(pPageView, pAnnot, nFlags, point); | 152 return m_pFormFiller->OnLButtonDblClk(pPageView, pAnnot, nFlags, point); |
152 | 153 |
153 return FALSE; | 154 return FALSE; |
154 } | 155 } |
155 | 156 |
156 FX_BOOL CPDFSDK_WidgetHandler::OnMouseMove(CPDFSDK_PageView* pPageView, | 157 FX_BOOL CPDFSDK_WidgetHandler::OnMouseMove(CPDFSDK_PageView* pPageView, |
157 CPDFSDK_Annot* pAnnot, | 158 CPDFSDK_Annot::ObservedPtr* pAnnot, |
158 uint32_t nFlags, | 159 uint32_t nFlags, |
159 const CFX_FloatPoint& point) { | 160 const CFX_FloatPoint& point) { |
160 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 161 if (!(*pAnnot)->IsSignatureWidget() && m_pFormFiller) |
161 return m_pFormFiller->OnMouseMove(pPageView, pAnnot, nFlags, point); | 162 return m_pFormFiller->OnMouseMove(pPageView, pAnnot, nFlags, point); |
162 | 163 |
163 return FALSE; | 164 return FALSE; |
164 } | 165 } |
165 | 166 |
166 FX_BOOL CPDFSDK_WidgetHandler::OnMouseWheel(CPDFSDK_PageView* pPageView, | 167 FX_BOOL CPDFSDK_WidgetHandler::OnMouseWheel(CPDFSDK_PageView* pPageView, |
167 CPDFSDK_Annot* pAnnot, | 168 CPDFSDK_Annot::ObservedPtr* pAnnot, |
168 uint32_t nFlags, | 169 uint32_t nFlags, |
169 short zDelta, | 170 short zDelta, |
170 const CFX_FloatPoint& point) { | 171 const CFX_FloatPoint& point) { |
171 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 172 if (!(*pAnnot)->IsSignatureWidget() && m_pFormFiller) |
172 return m_pFormFiller->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta, | 173 return m_pFormFiller->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta, |
173 point); | 174 point); |
174 | 175 |
175 return FALSE; | 176 return FALSE; |
176 } | 177 } |
177 | 178 |
178 FX_BOOL CPDFSDK_WidgetHandler::OnRButtonDown(CPDFSDK_PageView* pPageView, | 179 FX_BOOL CPDFSDK_WidgetHandler::OnRButtonDown(CPDFSDK_PageView* pPageView, |
179 CPDFSDK_Annot* pAnnot, | 180 CPDFSDK_Annot::ObservedPtr* pAnnot, |
180 uint32_t nFlags, | 181 uint32_t nFlags, |
181 const CFX_FloatPoint& point) { | 182 const CFX_FloatPoint& point) { |
182 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 183 if (!(*pAnnot)->IsSignatureWidget() && m_pFormFiller) |
183 return m_pFormFiller->OnRButtonDown(pPageView, pAnnot, nFlags, point); | 184 return m_pFormFiller->OnRButtonDown(pPageView, pAnnot, nFlags, point); |
184 | 185 |
185 return FALSE; | 186 return FALSE; |
186 } | 187 } |
187 | 188 |
188 FX_BOOL CPDFSDK_WidgetHandler::OnRButtonUp(CPDFSDK_PageView* pPageView, | 189 FX_BOOL CPDFSDK_WidgetHandler::OnRButtonUp(CPDFSDK_PageView* pPageView, |
189 CPDFSDK_Annot* pAnnot, | 190 CPDFSDK_Annot::ObservedPtr* pAnnot, |
190 uint32_t nFlags, | 191 uint32_t nFlags, |
191 const CFX_FloatPoint& point) { | 192 const CFX_FloatPoint& point) { |
192 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 193 if (!(*pAnnot)->IsSignatureWidget() && m_pFormFiller) |
193 return m_pFormFiller->OnRButtonUp(pPageView, pAnnot, nFlags, point); | 194 return m_pFormFiller->OnRButtonUp(pPageView, pAnnot, nFlags, point); |
194 | 195 |
195 return FALSE; | 196 return FALSE; |
196 } | 197 } |
197 | 198 |
198 FX_BOOL CPDFSDK_WidgetHandler::OnRButtonDblClk(CPDFSDK_PageView* pPageView, | 199 FX_BOOL CPDFSDK_WidgetHandler::OnRButtonDblClk( |
199 CPDFSDK_Annot* pAnnot, | 200 CPDFSDK_PageView* pPageView, |
200 uint32_t nFlags, | 201 CPDFSDK_Annot::ObservedPtr* pAnnot, |
201 const CFX_FloatPoint& point) { | 202 uint32_t nFlags, |
| 203 const CFX_FloatPoint& point) { |
202 return FALSE; | 204 return FALSE; |
203 } | 205 } |
204 | 206 |
205 FX_BOOL CPDFSDK_WidgetHandler::OnChar(CPDFSDK_Annot* pAnnot, | 207 FX_BOOL CPDFSDK_WidgetHandler::OnChar(CPDFSDK_Annot* pAnnot, |
206 uint32_t nChar, | 208 uint32_t nChar, |
207 uint32_t nFlags) { | 209 uint32_t nFlags) { |
208 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 210 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) |
209 return m_pFormFiller->OnChar(pAnnot, nChar, nFlags); | 211 return m_pFormFiller->OnChar(pAnnot, nChar, nFlags); |
210 | 212 |
211 return FALSE; | 213 return FALSE; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); | 255 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); |
254 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { | 256 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { |
255 if (!pWidget->IsAppearanceValid() && !pWidget->GetValue().IsEmpty()) | 257 if (!pWidget->IsAppearanceValid() && !pWidget->GetValue().IsEmpty()) |
256 pWidget->ResetAppearance(FALSE); | 258 pWidget->ResetAppearance(FALSE); |
257 } | 259 } |
258 #endif // PDF_ENABLE_XFA | 260 #endif // PDF_ENABLE_XFA |
259 if (m_pFormFiller) | 261 if (m_pFormFiller) |
260 m_pFormFiller->OnLoad(pAnnot); | 262 m_pFormFiller->OnLoad(pAnnot); |
261 } | 263 } |
262 | 264 |
263 FX_BOOL CPDFSDK_WidgetHandler::OnSetFocus(CPDFSDK_Annot* pAnnot, | 265 FX_BOOL CPDFSDK_WidgetHandler::OnSetFocus(CPDFSDK_Annot::ObservedPtr* pAnnot, |
264 uint32_t nFlag) { | 266 uint32_t nFlag) { |
265 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 267 if (!(*pAnnot)->IsSignatureWidget() && m_pFormFiller) |
266 return m_pFormFiller->OnSetFocus(pAnnot, nFlag); | 268 return m_pFormFiller->OnSetFocus(pAnnot, nFlag); |
267 | 269 |
268 return TRUE; | 270 return TRUE; |
269 } | 271 } |
270 | 272 |
271 FX_BOOL CPDFSDK_WidgetHandler::OnKillFocus(CPDFSDK_Annot* pAnnot, | 273 FX_BOOL CPDFSDK_WidgetHandler::OnKillFocus(CPDFSDK_Annot::ObservedPtr* pAnnot, |
272 uint32_t nFlag) { | 274 uint32_t nFlag) { |
273 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 275 if (!(*pAnnot)->IsSignatureWidget() && m_pFormFiller) |
274 return m_pFormFiller->OnKillFocus(pAnnot, nFlag); | 276 return m_pFormFiller->OnKillFocus(pAnnot, nFlag); |
275 | 277 |
276 return TRUE; | 278 return TRUE; |
277 } | 279 } |
278 | 280 |
279 #ifdef PDF_ENABLE_XFA | 281 #ifdef PDF_ENABLE_XFA |
280 FX_BOOL CPDFSDK_WidgetHandler::OnXFAChangedFocus(CPDFSDK_Annot* pOldAnnot, | 282 FX_BOOL CPDFSDK_WidgetHandler::OnXFAChangedFocus( |
281 CPDFSDK_Annot* pNewAnnot) { | 283 CPDFSDK_Annot::ObservedPtr* pOldAnnot, |
| 284 CPDFSDK_Annot::ObservedPtr* pNewAnnot) { |
282 return TRUE; | 285 return TRUE; |
283 } | 286 } |
284 #endif // PDF_ENABLE_XFA | 287 #endif // PDF_ENABLE_XFA |
285 | 288 |
286 CFX_FloatRect CPDFSDK_WidgetHandler::GetViewBBox(CPDFSDK_PageView* pPageView, | 289 CFX_FloatRect CPDFSDK_WidgetHandler::GetViewBBox(CPDFSDK_PageView* pPageView, |
287 CPDFSDK_Annot* pAnnot) { | 290 CPDFSDK_Annot* pAnnot) { |
288 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) | 291 if (!pAnnot->IsSignatureWidget() && m_pFormFiller) |
289 return CFX_FloatRect(m_pFormFiller->GetViewBBox(pPageView, pAnnot)); | 292 return CFX_FloatRect(m_pFormFiller->GetViewBBox(pPageView, pAnnot)); |
290 | 293 |
291 return CFX_FloatRect(0, 0, 0, 0); | 294 return CFX_FloatRect(0, 0, 0, 0); |
292 } | 295 } |
293 | 296 |
294 FX_BOOL CPDFSDK_WidgetHandler::HitTest(CPDFSDK_PageView* pPageView, | 297 FX_BOOL CPDFSDK_WidgetHandler::HitTest(CPDFSDK_PageView* pPageView, |
295 CPDFSDK_Annot* pAnnot, | 298 CPDFSDK_Annot* pAnnot, |
296 const CFX_FloatPoint& point) { | 299 const CFX_FloatPoint& point) { |
297 ASSERT(pPageView); | 300 ASSERT(pPageView); |
298 ASSERT(pAnnot); | 301 ASSERT(pAnnot); |
299 | 302 |
300 CFX_FloatRect rect = GetViewBBox(pPageView, pAnnot); | 303 CFX_FloatRect rect = GetViewBBox(pPageView, pAnnot); |
301 return rect.Contains(point.x, point.y); | 304 return rect.Contains(point.x, point.y); |
302 } | 305 } |
OLD | NEW |