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/formfiller/FFL_FormFiller.h" | 9 #include "fpdfsdk/include/formfiller/FFL_FormFiller.h" |
10 #include "fpdfsdk/include/fsdk_annothandler.h" | 10 #include "fpdfsdk/include/fsdk_annothandler.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 for (int i = 0, sz = m_Handlers.GetSize(); i < sz; i++) { | 42 for (int i = 0, sz = m_Handlers.GetSize(); i < sz; i++) { |
43 if (m_Handlers.GetAt(i) == pAnnotHandler) { | 43 if (m_Handlers.GetAt(i) == pAnnotHandler) { |
44 m_Handlers.RemoveAt(i); | 44 m_Handlers.RemoveAt(i); |
45 break; | 45 break; |
46 } | 46 } |
47 } | 47 } |
48 } | 48 } |
49 | 49 |
50 CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::NewAnnot(CPDF_Annot* pAnnot, | 50 CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::NewAnnot(CPDF_Annot* pAnnot, |
51 CPDFSDK_PageView* pPageView) { | 51 CPDFSDK_PageView* pPageView) { |
52 ASSERT(pAnnot != NULL); | 52 ASSERT(pPageView); |
53 ASSERT(pPageView != NULL); | |
54 | 53 |
55 if (IPDFSDK_AnnotHandler* pAnnotHandler = | 54 if (IPDFSDK_AnnotHandler* pAnnotHandler = |
56 GetAnnotHandler(pAnnot->GetSubType())) { | 55 GetAnnotHandler(pAnnot->GetSubType())) { |
57 return pAnnotHandler->NewAnnot(pAnnot, pPageView); | 56 return pAnnotHandler->NewAnnot(pAnnot, pPageView); |
58 } | 57 } |
59 | 58 |
60 return new CPDFSDK_BAAnnot(pAnnot, pPageView); | 59 return new CPDFSDK_BAAnnot(pAnnot, pPageView); |
61 } | 60 } |
62 | 61 |
63 void CPDFSDK_AnnotHandlerMgr::ReleaseAnnot(CPDFSDK_Annot* pAnnot) { | 62 void CPDFSDK_AnnotHandlerMgr::ReleaseAnnot(CPDFSDK_Annot* pAnnot) { |
64 ASSERT(pAnnot != NULL); | |
65 | |
66 pAnnot->GetPDFPage(); | 63 pAnnot->GetPDFPage(); |
67 | 64 |
68 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 65 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
69 pAnnotHandler->OnRelease(pAnnot); | 66 pAnnotHandler->OnRelease(pAnnot); |
70 pAnnotHandler->ReleaseAnnot(pAnnot); | 67 pAnnotHandler->ReleaseAnnot(pAnnot); |
71 } else { | 68 } else { |
72 delete (CPDFSDK_Annot*)pAnnot; | 69 delete (CPDFSDK_Annot*)pAnnot; |
73 } | 70 } |
74 } | 71 } |
75 | 72 |
76 void CPDFSDK_AnnotHandlerMgr::Annot_OnCreate(CPDFSDK_Annot* pAnnot) { | 73 void CPDFSDK_AnnotHandlerMgr::Annot_OnCreate(CPDFSDK_Annot* pAnnot) { |
77 ASSERT(pAnnot != NULL); | |
78 | |
79 CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot(); | 74 CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot(); |
80 | 75 |
81 CPDFSDK_DateTime curTime; | 76 CPDFSDK_DateTime curTime; |
82 pPDFAnnot->GetAnnotDict()->SetAtString("M", curTime.ToPDFDateTimeString()); | 77 pPDFAnnot->GetAnnotDict()->SetAtString("M", curTime.ToPDFDateTimeString()); |
83 pPDFAnnot->GetAnnotDict()->SetAtNumber("F", 0); | 78 pPDFAnnot->GetAnnotDict()->SetAtNumber("F", 0); |
84 | 79 |
85 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 80 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
86 pAnnotHandler->OnCreate(pAnnot); | 81 pAnnotHandler->OnCreate(pAnnot); |
87 } | 82 } |
88 } | 83 } |
89 | 84 |
90 void CPDFSDK_AnnotHandlerMgr::Annot_OnLoad(CPDFSDK_Annot* pAnnot) { | 85 void CPDFSDK_AnnotHandlerMgr::Annot_OnLoad(CPDFSDK_Annot* pAnnot) { |
91 ASSERT(pAnnot != NULL); | 86 ASSERT(pAnnot); |
92 | 87 |
93 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 88 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
94 pAnnotHandler->OnLoad(pAnnot); | 89 pAnnotHandler->OnLoad(pAnnot); |
95 } | 90 } |
96 } | 91 } |
97 | 92 |
98 IPDFSDK_AnnotHandler* CPDFSDK_AnnotHandlerMgr::GetAnnotHandler( | 93 IPDFSDK_AnnotHandler* CPDFSDK_AnnotHandlerMgr::GetAnnotHandler( |
99 CPDFSDK_Annot* pAnnot) const { | 94 CPDFSDK_Annot* pAnnot) const { |
100 ASSERT(pAnnot != NULL); | |
101 | |
102 CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot(); | 95 CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot(); |
103 if (pPDFAnnot) | 96 return pPDFAnnot ? GetAnnotHandler(pPDFAnnot->GetSubType()) : nullptr; |
104 return GetAnnotHandler(pPDFAnnot->GetSubType()); | |
105 return nullptr; | |
106 } | 97 } |
107 | 98 |
108 IPDFSDK_AnnotHandler* CPDFSDK_AnnotHandlerMgr::GetAnnotHandler( | 99 IPDFSDK_AnnotHandler* CPDFSDK_AnnotHandlerMgr::GetAnnotHandler( |
109 const CFX_ByteString& sType) const { | 100 const CFX_ByteString& sType) const { |
110 auto it = m_mapType2Handler.find(sType); | 101 auto it = m_mapType2Handler.find(sType); |
111 return it != m_mapType2Handler.end() ? it->second : nullptr; | 102 return it != m_mapType2Handler.end() ? it->second : nullptr; |
112 } | 103 } |
113 | 104 |
114 void CPDFSDK_AnnotHandlerMgr::Annot_OnDraw(CPDFSDK_PageView* pPageView, | 105 void CPDFSDK_AnnotHandlerMgr::Annot_OnDraw(CPDFSDK_PageView* pPageView, |
115 CPDFSDK_Annot* pAnnot, | 106 CPDFSDK_Annot* pAnnot, |
116 CFX_RenderDevice* pDevice, | 107 CFX_RenderDevice* pDevice, |
117 CFX_Matrix* pUser2Device, | 108 CFX_Matrix* pUser2Device, |
118 FX_DWORD dwFlags) { | 109 FX_DWORD dwFlags) { |
119 ASSERT(pAnnot); | 110 ASSERT(pAnnot); |
120 | 111 |
121 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 112 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
122 pAnnotHandler->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags); | 113 pAnnotHandler->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags); |
123 } else { | 114 } else { |
124 static_cast<CPDFSDK_BAAnnot*>(pAnnot) | 115 static_cast<CPDFSDK_BAAnnot*>(pAnnot) |
125 ->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, nullptr); | 116 ->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, nullptr); |
126 } | 117 } |
127 } | 118 } |
128 | 119 |
129 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonDown( | 120 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonDown( |
130 CPDFSDK_PageView* pPageView, | 121 CPDFSDK_PageView* pPageView, |
131 CPDFSDK_Annot* pAnnot, | 122 CPDFSDK_Annot* pAnnot, |
132 FX_DWORD nFlags, | 123 FX_DWORD nFlags, |
133 const CPDF_Point& point) { | 124 const CPDF_Point& point) { |
134 ASSERT(pAnnot != NULL); | 125 ASSERT(pAnnot); |
135 | 126 |
136 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 127 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
137 return pAnnotHandler->OnLButtonDown(pPageView, pAnnot, nFlags, point); | 128 return pAnnotHandler->OnLButtonDown(pPageView, pAnnot, nFlags, point); |
138 } | 129 } |
139 return FALSE; | 130 return FALSE; |
140 } | 131 } |
141 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonUp(CPDFSDK_PageView* pPageView, | 132 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonUp(CPDFSDK_PageView* pPageView, |
142 CPDFSDK_Annot* pAnnot, | 133 CPDFSDK_Annot* pAnnot, |
143 FX_DWORD nFlags, | 134 FX_DWORD nFlags, |
144 const CPDF_Point& point) { | 135 const CPDF_Point& point) { |
145 ASSERT(pAnnot != NULL); | 136 ASSERT(pAnnot); |
146 | 137 |
147 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 138 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
148 return pAnnotHandler->OnLButtonUp(pPageView, pAnnot, nFlags, point); | 139 return pAnnotHandler->OnLButtonUp(pPageView, pAnnot, nFlags, point); |
149 } | 140 } |
150 return FALSE; | 141 return FALSE; |
151 } | 142 } |
152 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonDblClk( | 143 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonDblClk( |
153 CPDFSDK_PageView* pPageView, | 144 CPDFSDK_PageView* pPageView, |
154 CPDFSDK_Annot* pAnnot, | 145 CPDFSDK_Annot* pAnnot, |
155 FX_DWORD nFlags, | 146 FX_DWORD nFlags, |
156 const CPDF_Point& point) { | 147 const CPDF_Point& point) { |
157 ASSERT(pAnnot != NULL); | 148 ASSERT(pAnnot); |
158 | 149 |
159 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 150 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
160 return pAnnotHandler->OnLButtonDblClk(pPageView, pAnnot, nFlags, point); | 151 return pAnnotHandler->OnLButtonDblClk(pPageView, pAnnot, nFlags, point); |
161 } | 152 } |
162 return FALSE; | 153 return FALSE; |
163 } | 154 } |
164 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnMouseMove(CPDFSDK_PageView* pPageView, | 155 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnMouseMove(CPDFSDK_PageView* pPageView, |
165 CPDFSDK_Annot* pAnnot, | 156 CPDFSDK_Annot* pAnnot, |
166 FX_DWORD nFlags, | 157 FX_DWORD nFlags, |
167 const CPDF_Point& point) { | 158 const CPDF_Point& point) { |
168 ASSERT(pAnnot != NULL); | 159 ASSERT(pAnnot); |
169 | 160 |
170 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 161 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
171 return pAnnotHandler->OnMouseMove(pPageView, pAnnot, nFlags, point); | 162 return pAnnotHandler->OnMouseMove(pPageView, pAnnot, nFlags, point); |
172 } | 163 } |
173 return FALSE; | 164 return FALSE; |
174 } | 165 } |
175 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnMouseWheel(CPDFSDK_PageView* pPageView, | 166 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnMouseWheel(CPDFSDK_PageView* pPageView, |
176 CPDFSDK_Annot* pAnnot, | 167 CPDFSDK_Annot* pAnnot, |
177 FX_DWORD nFlags, | 168 FX_DWORD nFlags, |
178 short zDelta, | 169 short zDelta, |
179 const CPDF_Point& point) { | 170 const CPDF_Point& point) { |
180 ASSERT(pAnnot != NULL); | 171 ASSERT(pAnnot); |
181 | 172 |
182 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 173 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
183 return pAnnotHandler->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta, | 174 return pAnnotHandler->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta, |
184 point); | 175 point); |
185 } | 176 } |
186 return FALSE; | 177 return FALSE; |
187 } | 178 } |
188 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnRButtonDown( | 179 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnRButtonDown( |
189 CPDFSDK_PageView* pPageView, | 180 CPDFSDK_PageView* pPageView, |
190 CPDFSDK_Annot* pAnnot, | 181 CPDFSDK_Annot* pAnnot, |
191 FX_DWORD nFlags, | 182 FX_DWORD nFlags, |
192 const CPDF_Point& point) { | 183 const CPDF_Point& point) { |
193 ASSERT(pAnnot != NULL); | 184 ASSERT(pAnnot); |
194 | 185 |
195 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 186 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
196 return pAnnotHandler->OnRButtonDown(pPageView, pAnnot, nFlags, point); | 187 return pAnnotHandler->OnRButtonDown(pPageView, pAnnot, nFlags, point); |
197 } | 188 } |
198 return FALSE; | 189 return FALSE; |
199 } | 190 } |
200 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnRButtonUp(CPDFSDK_PageView* pPageView, | 191 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnRButtonUp(CPDFSDK_PageView* pPageView, |
201 CPDFSDK_Annot* pAnnot, | 192 CPDFSDK_Annot* pAnnot, |
202 FX_DWORD nFlags, | 193 FX_DWORD nFlags, |
203 const CPDF_Point& point) { | 194 const CPDF_Point& point) { |
204 ASSERT(pAnnot != NULL); | 195 ASSERT(pAnnot); |
205 | 196 |
206 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 197 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
207 return pAnnotHandler->OnRButtonUp(pPageView, pAnnot, nFlags, point); | 198 return pAnnotHandler->OnRButtonUp(pPageView, pAnnot, nFlags, point); |
208 } | 199 } |
209 return FALSE; | 200 return FALSE; |
210 } | 201 } |
211 | 202 |
212 void CPDFSDK_AnnotHandlerMgr::Annot_OnMouseEnter(CPDFSDK_PageView* pPageView, | 203 void CPDFSDK_AnnotHandlerMgr::Annot_OnMouseEnter(CPDFSDK_PageView* pPageView, |
213 CPDFSDK_Annot* pAnnot, | 204 CPDFSDK_Annot* pAnnot, |
214 FX_DWORD nFlag) { | 205 FX_DWORD nFlag) { |
215 ASSERT(pAnnot != NULL); | 206 ASSERT(pAnnot); |
216 | 207 |
217 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 208 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
218 pAnnotHandler->OnMouseEnter(pPageView, pAnnot, nFlag); | 209 pAnnotHandler->OnMouseEnter(pPageView, pAnnot, nFlag); |
219 } | 210 } |
220 return; | 211 return; |
221 } | 212 } |
222 | 213 |
223 void CPDFSDK_AnnotHandlerMgr::Annot_OnMouseExit(CPDFSDK_PageView* pPageView, | 214 void CPDFSDK_AnnotHandlerMgr::Annot_OnMouseExit(CPDFSDK_PageView* pPageView, |
224 CPDFSDK_Annot* pAnnot, | 215 CPDFSDK_Annot* pAnnot, |
225 FX_DWORD nFlag) { | 216 FX_DWORD nFlag) { |
226 ASSERT(pAnnot != NULL); | 217 ASSERT(pAnnot); |
227 | 218 |
228 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 219 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
229 pAnnotHandler->OnMouseExit(pPageView, pAnnot, nFlag); | 220 pAnnotHandler->OnMouseExit(pPageView, pAnnot, nFlag); |
230 } | 221 } |
231 return; | 222 return; |
232 } | 223 } |
233 | 224 |
234 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnChar(CPDFSDK_Annot* pAnnot, | 225 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnChar(CPDFSDK_Annot* pAnnot, |
235 FX_DWORD nChar, | 226 FX_DWORD nChar, |
236 FX_DWORD nFlags) { | 227 FX_DWORD nFlags) { |
(...skipping 27 matching lines...) Expand all Loading... |
264 return FALSE; | 255 return FALSE; |
265 } | 256 } |
266 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKeyUp(CPDFSDK_Annot* pAnnot, | 257 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKeyUp(CPDFSDK_Annot* pAnnot, |
267 int nKeyCode, | 258 int nKeyCode, |
268 int nFlag) { | 259 int nFlag) { |
269 return FALSE; | 260 return FALSE; |
270 } | 261 } |
271 | 262 |
272 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus(CPDFSDK_Annot* pAnnot, | 263 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus(CPDFSDK_Annot* pAnnot, |
273 FX_DWORD nFlag) { | 264 FX_DWORD nFlag) { |
274 ASSERT(pAnnot != NULL); | 265 ASSERT(pAnnot); |
275 | 266 |
276 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { | 267 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { |
277 if (pAnnotHandler->OnSetFocus(pAnnot, nFlag)) { | 268 if (pAnnotHandler->OnSetFocus(pAnnot, nFlag)) { |
278 CPDFSDK_PageView* pPage = pAnnot->GetPageView(); | 269 CPDFSDK_PageView* pPage = pAnnot->GetPageView(); |
279 pPage->GetSDKDocument(); | 270 pPage->GetSDKDocument(); |
280 return TRUE; | 271 return TRUE; |
281 } | 272 } |
282 } | 273 } |
283 return FALSE; | 274 return FALSE; |
284 } | 275 } |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 CPDFSDK_Widget* pWidget = new CPDFSDK_Widget(pAnnot, pPage, pInterForm); | 345 CPDFSDK_Widget* pWidget = new CPDFSDK_Widget(pAnnot, pPage, pInterForm); |
355 pInterForm->AddMap(pCtrl, pWidget); | 346 pInterForm->AddMap(pCtrl, pWidget); |
356 CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm(); | 347 CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm(); |
357 if (pPDFInterForm && pPDFInterForm->NeedConstructAP()) | 348 if (pPDFInterForm && pPDFInterForm->NeedConstructAP()) |
358 pWidget->ResetAppearance(nullptr, FALSE); | 349 pWidget->ResetAppearance(nullptr, FALSE); |
359 | 350 |
360 return pWidget; | 351 return pWidget; |
361 } | 352 } |
362 | 353 |
363 void CPDFSDK_BFAnnotHandler::ReleaseAnnot(CPDFSDK_Annot* pAnnot) { | 354 void CPDFSDK_BFAnnotHandler::ReleaseAnnot(CPDFSDK_Annot* pAnnot) { |
364 ASSERT(pAnnot != NULL); | 355 ASSERT(pAnnot); |
365 | 356 |
366 if (m_pFormFiller) | 357 if (m_pFormFiller) |
367 m_pFormFiller->OnDelete(pAnnot); | 358 m_pFormFiller->OnDelete(pAnnot); |
368 | 359 |
369 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot; | 360 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot; |
370 CPDFSDK_InterForm* pInterForm = pWidget->GetInterForm(); | 361 CPDFSDK_InterForm* pInterForm = pWidget->GetInterForm(); |
371 ASSERT(pInterForm != NULL); | |
372 | |
373 CPDF_FormControl* pCtrol = pWidget->GetFormControl(); | 362 CPDF_FormControl* pCtrol = pWidget->GetFormControl(); |
374 pInterForm->RemoveMap(pCtrol); | 363 pInterForm->RemoveMap(pCtrol); |
375 | 364 |
376 delete pWidget; | 365 delete pWidget; |
377 } | 366 } |
378 | 367 |
379 void CPDFSDK_BFAnnotHandler::OnDraw(CPDFSDK_PageView* pPageView, | 368 void CPDFSDK_BFAnnotHandler::OnDraw(CPDFSDK_PageView* pPageView, |
380 CPDFSDK_Annot* pAnnot, | 369 CPDFSDK_Annot* pAnnot, |
381 CFX_RenderDevice* pDevice, | 370 CFX_RenderDevice* pDevice, |
382 CFX_Matrix* pUser2Device, | 371 CFX_Matrix* pUser2Device, |
383 FX_DWORD dwFlags) { | 372 FX_DWORD dwFlags) { |
384 CFX_ByteString sSubType = pAnnot->GetSubType(); | 373 CFX_ByteString sSubType = pAnnot->GetSubType(); |
385 | 374 |
386 if (sSubType == BFFT_SIGNATURE) { | 375 if (sSubType == BFFT_SIGNATURE) { |
387 static_cast<CPDFSDK_BAAnnot*>(pAnnot) | 376 static_cast<CPDFSDK_BAAnnot*>(pAnnot) |
388 ->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, nullptr); | 377 ->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, nullptr); |
389 } else { | 378 } else { |
390 if (m_pFormFiller) { | 379 if (m_pFormFiller) { |
391 m_pFormFiller->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags); | 380 m_pFormFiller->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags); |
392 } | 381 } |
393 } | 382 } |
394 } | 383 } |
395 | 384 |
396 void CPDFSDK_BFAnnotHandler::OnMouseEnter(CPDFSDK_PageView* pPageView, | 385 void CPDFSDK_BFAnnotHandler::OnMouseEnter(CPDFSDK_PageView* pPageView, |
397 CPDFSDK_Annot* pAnnot, | 386 CPDFSDK_Annot* pAnnot, |
398 FX_DWORD nFlag) { | 387 FX_DWORD nFlag) { |
399 ASSERT(pAnnot != NULL); | |
400 CFX_ByteString sSubType = pAnnot->GetSubType(); | 388 CFX_ByteString sSubType = pAnnot->GetSubType(); |
401 | 389 |
402 if (sSubType == BFFT_SIGNATURE) { | 390 if (sSubType == BFFT_SIGNATURE) { |
403 } else { | 391 } else { |
404 if (m_pFormFiller) | 392 if (m_pFormFiller) |
405 m_pFormFiller->OnMouseEnter(pPageView, pAnnot, nFlag); | 393 m_pFormFiller->OnMouseEnter(pPageView, pAnnot, nFlag); |
406 } | 394 } |
407 } | 395 } |
408 void CPDFSDK_BFAnnotHandler::OnMouseExit(CPDFSDK_PageView* pPageView, | 396 void CPDFSDK_BFAnnotHandler::OnMouseExit(CPDFSDK_PageView* pPageView, |
409 CPDFSDK_Annot* pAnnot, | 397 CPDFSDK_Annot* pAnnot, |
410 FX_DWORD nFlag) { | 398 FX_DWORD nFlag) { |
411 ASSERT(pAnnot != NULL); | |
412 CFX_ByteString sSubType = pAnnot->GetSubType(); | 399 CFX_ByteString sSubType = pAnnot->GetSubType(); |
413 | 400 |
414 if (sSubType == BFFT_SIGNATURE) { | 401 if (sSubType == BFFT_SIGNATURE) { |
415 } else { | 402 } else { |
416 if (m_pFormFiller) | 403 if (m_pFormFiller) |
417 m_pFormFiller->OnMouseExit(pPageView, pAnnot, nFlag); | 404 m_pFormFiller->OnMouseExit(pPageView, pAnnot, nFlag); |
418 } | 405 } |
419 } | 406 } |
420 FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonDown(CPDFSDK_PageView* pPageView, | 407 FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonDown(CPDFSDK_PageView* pPageView, |
421 CPDFSDK_Annot* pAnnot, | 408 CPDFSDK_Annot* pAnnot, |
422 FX_DWORD nFlags, | 409 FX_DWORD nFlags, |
423 const CPDF_Point& point) { | 410 const CPDF_Point& point) { |
424 ASSERT(pAnnot != NULL); | |
425 CFX_ByteString sSubType = pAnnot->GetSubType(); | 411 CFX_ByteString sSubType = pAnnot->GetSubType(); |
426 | 412 |
427 if (sSubType == BFFT_SIGNATURE) { | 413 if (sSubType == BFFT_SIGNATURE) { |
428 } else { | 414 } else { |
429 if (m_pFormFiller) | 415 if (m_pFormFiller) |
430 return m_pFormFiller->OnLButtonDown(pPageView, pAnnot, nFlags, point); | 416 return m_pFormFiller->OnLButtonDown(pPageView, pAnnot, nFlags, point); |
431 } | 417 } |
432 | 418 |
433 return FALSE; | 419 return FALSE; |
434 } | 420 } |
435 | 421 |
436 FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonUp(CPDFSDK_PageView* pPageView, | 422 FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonUp(CPDFSDK_PageView* pPageView, |
437 CPDFSDK_Annot* pAnnot, | 423 CPDFSDK_Annot* pAnnot, |
438 FX_DWORD nFlags, | 424 FX_DWORD nFlags, |
439 const CPDF_Point& point) { | 425 const CPDF_Point& point) { |
440 ASSERT(pAnnot != NULL); | |
441 CFX_ByteString sSubType = pAnnot->GetSubType(); | 426 CFX_ByteString sSubType = pAnnot->GetSubType(); |
442 | 427 |
443 if (sSubType == BFFT_SIGNATURE) { | 428 if (sSubType == BFFT_SIGNATURE) { |
444 } else { | 429 } else { |
445 if (m_pFormFiller) | 430 if (m_pFormFiller) |
446 return m_pFormFiller->OnLButtonUp(pPageView, pAnnot, nFlags, point); | 431 return m_pFormFiller->OnLButtonUp(pPageView, pAnnot, nFlags, point); |
447 } | 432 } |
448 | 433 |
449 return FALSE; | 434 return FALSE; |
450 } | 435 } |
451 | 436 |
452 FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonDblClk(CPDFSDK_PageView* pPageView, | 437 FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonDblClk(CPDFSDK_PageView* pPageView, |
453 CPDFSDK_Annot* pAnnot, | 438 CPDFSDK_Annot* pAnnot, |
454 FX_DWORD nFlags, | 439 FX_DWORD nFlags, |
455 const CPDF_Point& point) { | 440 const CPDF_Point& point) { |
456 ASSERT(pAnnot != NULL); | |
457 CFX_ByteString sSubType = pAnnot->GetSubType(); | 441 CFX_ByteString sSubType = pAnnot->GetSubType(); |
458 | 442 |
459 if (sSubType == BFFT_SIGNATURE) { | 443 if (sSubType == BFFT_SIGNATURE) { |
460 } else { | 444 } else { |
461 if (m_pFormFiller) | 445 if (m_pFormFiller) |
462 return m_pFormFiller->OnLButtonDblClk(pPageView, pAnnot, nFlags, point); | 446 return m_pFormFiller->OnLButtonDblClk(pPageView, pAnnot, nFlags, point); |
463 } | 447 } |
464 | 448 |
465 return FALSE; | 449 return FALSE; |
466 } | 450 } |
467 | 451 |
468 FX_BOOL CPDFSDK_BFAnnotHandler::OnMouseMove(CPDFSDK_PageView* pPageView, | 452 FX_BOOL CPDFSDK_BFAnnotHandler::OnMouseMove(CPDFSDK_PageView* pPageView, |
469 CPDFSDK_Annot* pAnnot, | 453 CPDFSDK_Annot* pAnnot, |
470 FX_DWORD nFlags, | 454 FX_DWORD nFlags, |
471 const CPDF_Point& point) { | 455 const CPDF_Point& point) { |
472 ASSERT(pAnnot != NULL); | |
473 CFX_ByteString sSubType = pAnnot->GetSubType(); | 456 CFX_ByteString sSubType = pAnnot->GetSubType(); |
474 | 457 |
475 if (sSubType == BFFT_SIGNATURE) { | 458 if (sSubType == BFFT_SIGNATURE) { |
476 } else { | 459 } else { |
477 if (m_pFormFiller) | 460 if (m_pFormFiller) |
478 return m_pFormFiller->OnMouseMove(pPageView, pAnnot, nFlags, point); | 461 return m_pFormFiller->OnMouseMove(pPageView, pAnnot, nFlags, point); |
479 } | 462 } |
480 | 463 |
481 return FALSE; | 464 return FALSE; |
482 } | 465 } |
483 | 466 |
484 FX_BOOL CPDFSDK_BFAnnotHandler::OnMouseWheel(CPDFSDK_PageView* pPageView, | 467 FX_BOOL CPDFSDK_BFAnnotHandler::OnMouseWheel(CPDFSDK_PageView* pPageView, |
485 CPDFSDK_Annot* pAnnot, | 468 CPDFSDK_Annot* pAnnot, |
486 FX_DWORD nFlags, | 469 FX_DWORD nFlags, |
487 short zDelta, | 470 short zDelta, |
488 const CPDF_Point& point) { | 471 const CPDF_Point& point) { |
489 ASSERT(pAnnot != NULL); | |
490 CFX_ByteString sSubType = pAnnot->GetSubType(); | 472 CFX_ByteString sSubType = pAnnot->GetSubType(); |
491 | 473 |
492 if (sSubType == BFFT_SIGNATURE) { | 474 if (sSubType == BFFT_SIGNATURE) { |
493 } else { | 475 } else { |
494 if (m_pFormFiller) | 476 if (m_pFormFiller) |
495 return m_pFormFiller->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta, | 477 return m_pFormFiller->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta, |
496 point); | 478 point); |
497 } | 479 } |
498 | 480 |
499 return FALSE; | 481 return FALSE; |
500 } | 482 } |
501 | 483 |
502 FX_BOOL CPDFSDK_BFAnnotHandler::OnRButtonDown(CPDFSDK_PageView* pPageView, | 484 FX_BOOL CPDFSDK_BFAnnotHandler::OnRButtonDown(CPDFSDK_PageView* pPageView, |
503 CPDFSDK_Annot* pAnnot, | 485 CPDFSDK_Annot* pAnnot, |
504 FX_DWORD nFlags, | 486 FX_DWORD nFlags, |
505 const CPDF_Point& point) { | 487 const CPDF_Point& point) { |
506 ASSERT(pAnnot != NULL); | |
507 CFX_ByteString sSubType = pAnnot->GetSubType(); | 488 CFX_ByteString sSubType = pAnnot->GetSubType(); |
508 | 489 |
509 if (sSubType == BFFT_SIGNATURE) { | 490 if (sSubType == BFFT_SIGNATURE) { |
510 } else { | 491 } else { |
511 if (m_pFormFiller) | 492 if (m_pFormFiller) |
512 return m_pFormFiller->OnRButtonDown(pPageView, pAnnot, nFlags, point); | 493 return m_pFormFiller->OnRButtonDown(pPageView, pAnnot, nFlags, point); |
513 } | 494 } |
514 | 495 |
515 return FALSE; | 496 return FALSE; |
516 } | 497 } |
517 FX_BOOL CPDFSDK_BFAnnotHandler::OnRButtonUp(CPDFSDK_PageView* pPageView, | 498 FX_BOOL CPDFSDK_BFAnnotHandler::OnRButtonUp(CPDFSDK_PageView* pPageView, |
518 CPDFSDK_Annot* pAnnot, | 499 CPDFSDK_Annot* pAnnot, |
519 FX_DWORD nFlags, | 500 FX_DWORD nFlags, |
520 const CPDF_Point& point) { | 501 const CPDF_Point& point) { |
521 ASSERT(pAnnot != NULL); | |
522 CFX_ByteString sSubType = pAnnot->GetSubType(); | 502 CFX_ByteString sSubType = pAnnot->GetSubType(); |
523 | 503 |
524 if (sSubType == BFFT_SIGNATURE) { | 504 if (sSubType == BFFT_SIGNATURE) { |
525 } else { | 505 } else { |
526 if (m_pFormFiller) | 506 if (m_pFormFiller) |
527 return m_pFormFiller->OnRButtonUp(pPageView, pAnnot, nFlags, point); | 507 return m_pFormFiller->OnRButtonUp(pPageView, pAnnot, nFlags, point); |
528 } | 508 } |
529 | 509 |
530 return FALSE; | 510 return FALSE; |
531 } | 511 } |
532 | 512 |
533 FX_BOOL CPDFSDK_BFAnnotHandler::OnChar(CPDFSDK_Annot* pAnnot, | 513 FX_BOOL CPDFSDK_BFAnnotHandler::OnChar(CPDFSDK_Annot* pAnnot, |
534 FX_DWORD nChar, | 514 FX_DWORD nChar, |
535 FX_DWORD nFlags) { | 515 FX_DWORD nFlags) { |
536 ASSERT(pAnnot != NULL); | |
537 CFX_ByteString sSubType = pAnnot->GetSubType(); | 516 CFX_ByteString sSubType = pAnnot->GetSubType(); |
538 | 517 |
539 if (sSubType == BFFT_SIGNATURE) { | 518 if (sSubType == BFFT_SIGNATURE) { |
540 } else { | 519 } else { |
541 if (m_pFormFiller) | 520 if (m_pFormFiller) |
542 return m_pFormFiller->OnChar(pAnnot, nChar, nFlags); | 521 return m_pFormFiller->OnChar(pAnnot, nChar, nFlags); |
543 } | 522 } |
544 | 523 |
545 return FALSE; | 524 return FALSE; |
546 } | 525 } |
547 | 526 |
548 FX_BOOL CPDFSDK_BFAnnotHandler::OnKeyDown(CPDFSDK_Annot* pAnnot, | 527 FX_BOOL CPDFSDK_BFAnnotHandler::OnKeyDown(CPDFSDK_Annot* pAnnot, |
549 int nKeyCode, | 528 int nKeyCode, |
550 int nFlag) { | 529 int nFlag) { |
551 ASSERT(pAnnot != NULL); | |
552 CFX_ByteString sSubType = pAnnot->GetSubType(); | 530 CFX_ByteString sSubType = pAnnot->GetSubType(); |
553 | 531 |
554 if (sSubType == BFFT_SIGNATURE) { | 532 if (sSubType == BFFT_SIGNATURE) { |
555 } else { | 533 } else { |
556 if (m_pFormFiller) | 534 if (m_pFormFiller) |
557 return m_pFormFiller->OnKeyDown(pAnnot, nKeyCode, nFlag); | 535 return m_pFormFiller->OnKeyDown(pAnnot, nKeyCode, nFlag); |
558 } | 536 } |
559 | 537 |
560 return FALSE; | 538 return FALSE; |
561 } | 539 } |
562 | 540 |
563 FX_BOOL CPDFSDK_BFAnnotHandler::OnKeyUp(CPDFSDK_Annot* pAnnot, | 541 FX_BOOL CPDFSDK_BFAnnotHandler::OnKeyUp(CPDFSDK_Annot* pAnnot, |
564 int nKeyCode, | 542 int nKeyCode, |
565 int nFlag) { | 543 int nFlag) { |
566 return FALSE; | 544 return FALSE; |
567 } | 545 } |
568 void CPDFSDK_BFAnnotHandler::OnCreate(CPDFSDK_Annot* pAnnot) { | 546 void CPDFSDK_BFAnnotHandler::OnCreate(CPDFSDK_Annot* pAnnot) { |
569 ASSERT(pAnnot != NULL); | |
570 CFX_ByteString sSubType = pAnnot->GetSubType(); | 547 CFX_ByteString sSubType = pAnnot->GetSubType(); |
571 | 548 |
572 if (sSubType == BFFT_SIGNATURE) { | 549 if (sSubType == BFFT_SIGNATURE) { |
573 } else { | 550 } else { |
574 if (m_pFormFiller) | 551 if (m_pFormFiller) |
575 m_pFormFiller->OnCreate(pAnnot); | 552 m_pFormFiller->OnCreate(pAnnot); |
576 } | 553 } |
577 } | 554 } |
578 | 555 |
579 void CPDFSDK_BFAnnotHandler::OnLoad(CPDFSDK_Annot* pAnnot) { | 556 void CPDFSDK_BFAnnotHandler::OnLoad(CPDFSDK_Annot* pAnnot) { |
(...skipping 12 matching lines...) Expand all Loading... |
592 pWidget->ResetAppearance(sValue.c_str(), FALSE); | 569 pWidget->ResetAppearance(sValue.c_str(), FALSE); |
593 } | 570 } |
594 } | 571 } |
595 | 572 |
596 if (m_pFormFiller) | 573 if (m_pFormFiller) |
597 m_pFormFiller->OnLoad(pAnnot); | 574 m_pFormFiller->OnLoad(pAnnot); |
598 } | 575 } |
599 | 576 |
600 FX_BOOL CPDFSDK_BFAnnotHandler::OnSetFocus(CPDFSDK_Annot* pAnnot, | 577 FX_BOOL CPDFSDK_BFAnnotHandler::OnSetFocus(CPDFSDK_Annot* pAnnot, |
601 FX_DWORD nFlag) { | 578 FX_DWORD nFlag) { |
602 ASSERT(pAnnot != NULL); | |
603 CFX_ByteString sSubType = pAnnot->GetSubType(); | 579 CFX_ByteString sSubType = pAnnot->GetSubType(); |
604 | 580 |
605 if (sSubType == BFFT_SIGNATURE) { | 581 if (sSubType == BFFT_SIGNATURE) { |
606 } else { | 582 } else { |
607 if (m_pFormFiller) | 583 if (m_pFormFiller) |
608 return m_pFormFiller->OnSetFocus(pAnnot, nFlag); | 584 return m_pFormFiller->OnSetFocus(pAnnot, nFlag); |
609 } | 585 } |
610 | 586 |
611 return TRUE; | 587 return TRUE; |
612 } | 588 } |
613 FX_BOOL CPDFSDK_BFAnnotHandler::OnKillFocus(CPDFSDK_Annot* pAnnot, | 589 FX_BOOL CPDFSDK_BFAnnotHandler::OnKillFocus(CPDFSDK_Annot* pAnnot, |
614 FX_DWORD nFlag) { | 590 FX_DWORD nFlag) { |
615 ASSERT(pAnnot != NULL); | |
616 CFX_ByteString sSubType = pAnnot->GetSubType(); | 591 CFX_ByteString sSubType = pAnnot->GetSubType(); |
617 | 592 |
618 if (sSubType == BFFT_SIGNATURE) { | 593 if (sSubType == BFFT_SIGNATURE) { |
619 } else { | 594 } else { |
620 if (m_pFormFiller) | 595 if (m_pFormFiller) |
621 return m_pFormFiller->OnKillFocus(pAnnot, nFlag); | 596 return m_pFormFiller->OnKillFocus(pAnnot, nFlag); |
622 } | 597 } |
623 | 598 |
624 return TRUE; | 599 return TRUE; |
625 } | 600 } |
626 | 601 |
627 CPDF_Rect CPDFSDK_BFAnnotHandler::GetViewBBox(CPDFSDK_PageView* pPageView, | 602 CPDF_Rect CPDFSDK_BFAnnotHandler::GetViewBBox(CPDFSDK_PageView* pPageView, |
628 CPDFSDK_Annot* pAnnot) { | 603 CPDFSDK_Annot* pAnnot) { |
629 ASSERT(pAnnot != NULL); | |
630 CFX_ByteString sSubType = pAnnot->GetSubType(); | 604 CFX_ByteString sSubType = pAnnot->GetSubType(); |
631 | 605 |
632 if (sSubType == BFFT_SIGNATURE) { | 606 if (sSubType == BFFT_SIGNATURE) { |
633 } else { | 607 } else { |
634 if (m_pFormFiller) | 608 if (m_pFormFiller) |
635 return m_pFormFiller->GetViewBBox(pPageView, pAnnot); | 609 return m_pFormFiller->GetViewBBox(pPageView, pAnnot); |
636 } | 610 } |
637 | 611 |
638 return CPDF_Rect(0, 0, 0, 0); | 612 return CPDF_Rect(0, 0, 0, 0); |
639 } | 613 } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
683 | 657 |
684 CPDFSDK_Annot* CPDFSDK_AnnotIterator::PrevAnnot() { | 658 CPDFSDK_Annot* CPDFSDK_AnnotIterator::PrevAnnot() { |
685 if (m_pos < m_iteratorAnnotList.size()) | 659 if (m_pos < m_iteratorAnnotList.size()) |
686 return m_iteratorAnnotList[m_iteratorAnnotList.size() - ++m_pos]; | 660 return m_iteratorAnnotList[m_iteratorAnnotList.size() - ++m_pos]; |
687 return nullptr; | 661 return nullptr; |
688 } | 662 } |
689 | 663 |
690 CPDFSDK_Annot* CPDFSDK_AnnotIterator::Next() { | 664 CPDFSDK_Annot* CPDFSDK_AnnotIterator::Next() { |
691 return m_bReverse ? PrevAnnot() : NextAnnot(); | 665 return m_bReverse ? PrevAnnot() : NextAnnot(); |
692 } | 666 } |
OLD | NEW |