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