Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: fpdfsdk/src/fsdk_annothandler.cpp

Issue 1408513002: Revert "Remove IPDFSDK_AnnotHandler interface." (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « fpdfsdk/include/fsdk_annothandler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "../include/fsdk_define.h" 7 #include "../include/fsdk_define.h"
8 #include "../include/fsdk_mgr.h" 8 #include "../include/fsdk_mgr.h"
9 #include "../include/formfiller/FFL_FormFiller.h" 9 #include "../include/formfiller/FFL_FormFiller.h"
10 #include "../include/fsdk_annothandler.h" 10 #include "../include/fsdk_annothandler.h"
11 11
12 CPDFSDK_AnnotHandlerMgr::CPDFSDK_AnnotHandlerMgr(CPDFDoc_Environment* pApp) { 12 CPDFSDK_AnnotHandlerMgr::CPDFSDK_AnnotHandlerMgr(CPDFDoc_Environment* pApp) {
13 m_pApp = pApp; 13 m_pApp = pApp;
14 14
15 CPDFSDK_AnnotHandler* pHandler = new CPDFSDK_AnnotHandler(m_pApp); 15 CPDFSDK_BFAnnotHandler* pHandler = new CPDFSDK_BFAnnotHandler(m_pApp);
16 pHandler->SetFormFiller(m_pApp->GetIFormFiller()); 16 pHandler->SetFormFiller(m_pApp->GetIFormFiller());
17 RegisterAnnotHandler(pHandler); 17 RegisterAnnotHandler(pHandler);
18 } 18 }
19 19
20 CPDFSDK_AnnotHandlerMgr::~CPDFSDK_AnnotHandlerMgr() { 20 CPDFSDK_AnnotHandlerMgr::~CPDFSDK_AnnotHandlerMgr() {
21 for (int i = 0; i < m_Handlers.GetSize(); i++) { 21 for (int i = 0; i < m_Handlers.GetSize(); i++) {
22 CPDFSDK_AnnotHandler* pHandler = m_Handlers.GetAt(i); 22 IPDFSDK_AnnotHandler* pHandler = m_Handlers.GetAt(i);
23 delete pHandler; 23 delete pHandler;
24 } 24 }
25 m_Handlers.RemoveAll(); 25 m_Handlers.RemoveAll();
26 m_mapType2Handler.clear(); 26 m_mapType2Handler.clear();
27 } 27 }
28 28
29 void CPDFSDK_AnnotHandlerMgr::RegisterAnnotHandler( 29 void CPDFSDK_AnnotHandlerMgr::RegisterAnnotHandler(
30 CPDFSDK_AnnotHandler* pAnnotHandler) { 30 IPDFSDK_AnnotHandler* pAnnotHandler) {
31 ASSERT(!GetAnnotHandler(pAnnotHandler->GetType())); 31 ASSERT(!GetAnnotHandler(pAnnotHandler->GetType()));
32 32
33 m_Handlers.Add(pAnnotHandler); 33 m_Handlers.Add(pAnnotHandler);
34 m_mapType2Handler[pAnnotHandler->GetType()] = pAnnotHandler; 34 m_mapType2Handler[pAnnotHandler->GetType()] = pAnnotHandler;
35 } 35 }
36 36
37 void CPDFSDK_AnnotHandlerMgr::UnRegisterAnnotHandler( 37 void CPDFSDK_AnnotHandlerMgr::UnRegisterAnnotHandler(
38 CPDFSDK_AnnotHandler* pAnnotHandler) { 38 IPDFSDK_AnnotHandler* pAnnotHandler) {
39 m_mapType2Handler.erase(pAnnotHandler->GetType()); 39 m_mapType2Handler.erase(pAnnotHandler->GetType());
40 for (int i = 0, sz = m_Handlers.GetSize(); i < sz; i++) { 40 for (int i = 0, sz = m_Handlers.GetSize(); i < sz; i++) {
41 if (m_Handlers.GetAt(i) == pAnnotHandler) { 41 if (m_Handlers.GetAt(i) == pAnnotHandler) {
42 m_Handlers.RemoveAt(i); 42 m_Handlers.RemoveAt(i);
43 break; 43 break;
44 } 44 }
45 } 45 }
46 } 46 }
47 47
48 CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::NewAnnot(CPDF_Annot* pAnnot, 48 CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::NewAnnot(CPDF_Annot* pAnnot,
49 CPDFSDK_PageView* pPageView) { 49 CPDFSDK_PageView* pPageView) {
50 ASSERT(pAnnot != NULL); 50 ASSERT(pAnnot != NULL);
51 ASSERT(pPageView != NULL); 51 ASSERT(pPageView != NULL);
52 52
53 if (CPDFSDK_AnnotHandler* pAnnotHandler = 53 if (IPDFSDK_AnnotHandler* pAnnotHandler =
54 GetAnnotHandler(pAnnot->GetSubType())) { 54 GetAnnotHandler(pAnnot->GetSubType())) {
55 return pAnnotHandler->NewAnnot(pAnnot, pPageView); 55 return pAnnotHandler->NewAnnot(pAnnot, pPageView);
56 } 56 }
57 57
58 return new CPDFSDK_Annot(pAnnot, pPageView); 58 return new CPDFSDK_Annot(pAnnot, pPageView);
59 } 59 }
60 60
61 void CPDFSDK_AnnotHandlerMgr::ReleaseAnnot(CPDFSDK_Annot* pAnnot) { 61 void CPDFSDK_AnnotHandlerMgr::ReleaseAnnot(CPDFSDK_Annot* pAnnot) {
62 ASSERT(pAnnot != NULL); 62 ASSERT(pAnnot != NULL);
63 63
64 pAnnot->GetPDFPage(); 64 pAnnot->GetPDFPage();
65 65
66 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 66 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
67 pAnnotHandler->OnRelease(pAnnot); 67 pAnnotHandler->OnRelease(pAnnot);
68 pAnnotHandler->ReleaseAnnot(pAnnot); 68 pAnnotHandler->ReleaseAnnot(pAnnot);
69 } else { 69 } else {
70 delete (CPDFSDK_Annot*)pAnnot; 70 delete (CPDFSDK_Annot*)pAnnot;
71 } 71 }
72 } 72 }
73 73
74 void CPDFSDK_AnnotHandlerMgr::Annot_OnCreate(CPDFSDK_Annot* pAnnot) { 74 void CPDFSDK_AnnotHandlerMgr::Annot_OnCreate(CPDFSDK_Annot* pAnnot) {
75 ASSERT(pAnnot != NULL); 75 ASSERT(pAnnot != NULL);
76 76
77 CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot(); 77 CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot();
78 78
79 CPDFSDK_DateTime curTime; 79 CPDFSDK_DateTime curTime;
80 pPDFAnnot->GetAnnotDict()->SetAtString("M", curTime.ToPDFDateTimeString()); 80 pPDFAnnot->GetAnnotDict()->SetAtString("M", curTime.ToPDFDateTimeString());
81 pPDFAnnot->GetAnnotDict()->SetAtNumber("F", 0); 81 pPDFAnnot->GetAnnotDict()->SetAtNumber("F", 0);
82 82
83 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 83 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
84 pAnnotHandler->OnCreate(pAnnot); 84 pAnnotHandler->OnCreate(pAnnot);
85 } 85 }
86 } 86 }
87 87
88 void CPDFSDK_AnnotHandlerMgr::Annot_OnLoad(CPDFSDK_Annot* pAnnot) { 88 void CPDFSDK_AnnotHandlerMgr::Annot_OnLoad(CPDFSDK_Annot* pAnnot) {
89 ASSERT(pAnnot != NULL); 89 ASSERT(pAnnot != NULL);
90 90
91 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 91 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
92 pAnnotHandler->OnLoad(pAnnot); 92 pAnnotHandler->OnLoad(pAnnot);
93 } 93 }
94 } 94 }
95 95
96 CPDFSDK_AnnotHandler* CPDFSDK_AnnotHandlerMgr::GetAnnotHandler( 96 IPDFSDK_AnnotHandler* CPDFSDK_AnnotHandlerMgr::GetAnnotHandler(
97 CPDFSDK_Annot* pAnnot) const { 97 CPDFSDK_Annot* pAnnot) const {
98 ASSERT(pAnnot != NULL); 98 ASSERT(pAnnot != NULL);
99 99
100 CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot(); 100 CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot();
101 ASSERT(pPDFAnnot != NULL); 101 ASSERT(pPDFAnnot != NULL);
102 102
103 return GetAnnotHandler(pPDFAnnot->GetSubType()); 103 return GetAnnotHandler(pPDFAnnot->GetSubType());
104 } 104 }
105 105
106 CPDFSDK_AnnotHandler* CPDFSDK_AnnotHandlerMgr::GetAnnotHandler( 106 IPDFSDK_AnnotHandler* CPDFSDK_AnnotHandlerMgr::GetAnnotHandler(
107 const CFX_ByteString& sType) const { 107 const CFX_ByteString& sType) const {
108 auto it = m_mapType2Handler.find(sType); 108 auto it = m_mapType2Handler.find(sType);
109 return it != m_mapType2Handler.end() ? it->second : nullptr; 109 return it != m_mapType2Handler.end() ? it->second : nullptr;
110 } 110 }
111 111
112 void CPDFSDK_AnnotHandlerMgr::Annot_OnDraw(CPDFSDK_PageView* pPageView, 112 void CPDFSDK_AnnotHandlerMgr::Annot_OnDraw(CPDFSDK_PageView* pPageView,
113 CPDFSDK_Annot* pAnnot, 113 CPDFSDK_Annot* pAnnot,
114 CFX_RenderDevice* pDevice, 114 CFX_RenderDevice* pDevice,
115 CPDF_Matrix* pUser2Device, 115 CPDF_Matrix* pUser2Device,
116 FX_DWORD dwFlags) { 116 FX_DWORD dwFlags) {
117 ASSERT(pAnnot != NULL); 117 ASSERT(pAnnot != NULL);
118 118
119 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 119 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
120 pAnnotHandler->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags); 120 pAnnotHandler->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
121 } else { 121 } else {
122 pAnnot->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL); 122 pAnnot->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
123 } 123 }
124 } 124 }
125 125
126 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonDown( 126 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonDown(
127 CPDFSDK_PageView* pPageView, 127 CPDFSDK_PageView* pPageView,
128 CPDFSDK_Annot* pAnnot, 128 CPDFSDK_Annot* pAnnot,
129 FX_DWORD nFlags, 129 FX_DWORD nFlags,
130 const CPDF_Point& point) { 130 const CPDF_Point& point) {
131 ASSERT(pAnnot != NULL); 131 ASSERT(pAnnot != NULL);
132 132
133 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 133 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
134 return pAnnotHandler->OnLButtonDown(pPageView, pAnnot, nFlags, point); 134 return pAnnotHandler->OnLButtonDown(pPageView, pAnnot, nFlags, point);
135 } 135 }
136 return FALSE; 136 return FALSE;
137 } 137 }
138 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonUp(CPDFSDK_PageView* pPageView, 138 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonUp(CPDFSDK_PageView* pPageView,
139 CPDFSDK_Annot* pAnnot, 139 CPDFSDK_Annot* pAnnot,
140 FX_DWORD nFlags, 140 FX_DWORD nFlags,
141 const CPDF_Point& point) { 141 const CPDF_Point& point) {
142 ASSERT(pAnnot != NULL); 142 ASSERT(pAnnot != NULL);
143 143
144 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 144 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
145 return pAnnotHandler->OnLButtonUp(pPageView, pAnnot, nFlags, point); 145 return pAnnotHandler->OnLButtonUp(pPageView, pAnnot, nFlags, point);
146 } 146 }
147 return FALSE; 147 return FALSE;
148 } 148 }
149 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonDblClk( 149 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnLButtonDblClk(
150 CPDFSDK_PageView* pPageView, 150 CPDFSDK_PageView* pPageView,
151 CPDFSDK_Annot* pAnnot, 151 CPDFSDK_Annot* pAnnot,
152 FX_DWORD nFlags, 152 FX_DWORD nFlags,
153 const CPDF_Point& point) { 153 const CPDF_Point& point) {
154 ASSERT(pAnnot != NULL); 154 ASSERT(pAnnot != NULL);
155 155
156 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 156 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
157 return pAnnotHandler->OnLButtonDblClk(pPageView, pAnnot, nFlags, point); 157 return pAnnotHandler->OnLButtonDblClk(pPageView, pAnnot, nFlags, point);
158 } 158 }
159 return FALSE; 159 return FALSE;
160 } 160 }
161 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnMouseMove(CPDFSDK_PageView* pPageView, 161 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnMouseMove(CPDFSDK_PageView* pPageView,
162 CPDFSDK_Annot* pAnnot, 162 CPDFSDK_Annot* pAnnot,
163 FX_DWORD nFlags, 163 FX_DWORD nFlags,
164 const CPDF_Point& point) { 164 const CPDF_Point& point) {
165 ASSERT(pAnnot != NULL); 165 ASSERT(pAnnot != NULL);
166 166
167 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 167 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
168 return pAnnotHandler->OnMouseMove(pPageView, pAnnot, nFlags, point); 168 return pAnnotHandler->OnMouseMove(pPageView, pAnnot, nFlags, point);
169 } 169 }
170 return FALSE; 170 return FALSE;
171 } 171 }
172 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnMouseWheel(CPDFSDK_PageView* pPageView, 172 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnMouseWheel(CPDFSDK_PageView* pPageView,
173 CPDFSDK_Annot* pAnnot, 173 CPDFSDK_Annot* pAnnot,
174 FX_DWORD nFlags, 174 FX_DWORD nFlags,
175 short zDelta, 175 short zDelta,
176 const CPDF_Point& point) { 176 const CPDF_Point& point) {
177 ASSERT(pAnnot != NULL); 177 ASSERT(pAnnot != NULL);
178 178
179 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 179 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
180 return pAnnotHandler->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta, 180 return pAnnotHandler->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta,
181 point); 181 point);
182 } 182 }
183 return FALSE; 183 return FALSE;
184 } 184 }
185 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnRButtonDown( 185 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnRButtonDown(
186 CPDFSDK_PageView* pPageView, 186 CPDFSDK_PageView* pPageView,
187 CPDFSDK_Annot* pAnnot, 187 CPDFSDK_Annot* pAnnot,
188 FX_DWORD nFlags, 188 FX_DWORD nFlags,
189 const CPDF_Point& point) { 189 const CPDF_Point& point) {
190 ASSERT(pAnnot != NULL); 190 ASSERT(pAnnot != NULL);
191 191
192 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 192 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
193 return pAnnotHandler->OnRButtonDown(pPageView, pAnnot, nFlags, point); 193 return pAnnotHandler->OnRButtonDown(pPageView, pAnnot, nFlags, point);
194 } 194 }
195 return FALSE; 195 return FALSE;
196 } 196 }
197 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnRButtonUp(CPDFSDK_PageView* pPageView, 197 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnRButtonUp(CPDFSDK_PageView* pPageView,
198 CPDFSDK_Annot* pAnnot, 198 CPDFSDK_Annot* pAnnot,
199 FX_DWORD nFlags, 199 FX_DWORD nFlags,
200 const CPDF_Point& point) { 200 const CPDF_Point& point) {
201 ASSERT(pAnnot != NULL); 201 ASSERT(pAnnot != NULL);
202 202
203 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 203 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
204 return pAnnotHandler->OnRButtonUp(pPageView, pAnnot, nFlags, point); 204 return pAnnotHandler->OnRButtonUp(pPageView, pAnnot, nFlags, point);
205 } 205 }
206 return FALSE; 206 return FALSE;
207 } 207 }
208 208
209 void CPDFSDK_AnnotHandlerMgr::Annot_OnMouseEnter(CPDFSDK_PageView* pPageView, 209 void CPDFSDK_AnnotHandlerMgr::Annot_OnMouseEnter(CPDFSDK_PageView* pPageView,
210 CPDFSDK_Annot* pAnnot, 210 CPDFSDK_Annot* pAnnot,
211 FX_DWORD nFlag) { 211 FX_DWORD nFlag) {
212 ASSERT(pAnnot != NULL); 212 ASSERT(pAnnot != NULL);
213 213
214 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 214 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
215 pAnnotHandler->OnMouseEnter(pPageView, pAnnot, nFlag); 215 pAnnotHandler->OnMouseEnter(pPageView, pAnnot, nFlag);
216 } 216 }
217 return; 217 return;
218 } 218 }
219 219
220 void CPDFSDK_AnnotHandlerMgr::Annot_OnMouseExit(CPDFSDK_PageView* pPageView, 220 void CPDFSDK_AnnotHandlerMgr::Annot_OnMouseExit(CPDFSDK_PageView* pPageView,
221 CPDFSDK_Annot* pAnnot, 221 CPDFSDK_Annot* pAnnot,
222 FX_DWORD nFlag) { 222 FX_DWORD nFlag) {
223 ASSERT(pAnnot != NULL); 223 ASSERT(pAnnot != NULL);
224 224
225 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 225 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
226 pAnnotHandler->OnMouseExit(pPageView, pAnnot, nFlag); 226 pAnnotHandler->OnMouseExit(pPageView, pAnnot, nFlag);
227 } 227 }
228 return; 228 return;
229 } 229 }
230 230
231 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnChar(CPDFSDK_Annot* pAnnot, 231 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnChar(CPDFSDK_Annot* pAnnot,
232 FX_DWORD nChar, 232 FX_DWORD nChar,
233 FX_DWORD nFlags) { 233 FX_DWORD nFlags) {
234 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 234 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
235 return pAnnotHandler->OnChar(pAnnot, nChar, nFlags); 235 return pAnnotHandler->OnChar(pAnnot, nChar, nFlags);
236 } 236 }
237 return FALSE; 237 return FALSE;
238 } 238 }
239 239
240 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKeyDown(CPDFSDK_Annot* pAnnot, 240 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKeyDown(CPDFSDK_Annot* pAnnot,
241 int nKeyCode, 241 int nKeyCode,
242 int nFlag) { 242 int nFlag) {
243 if (!m_pApp->FFI_IsCTRLKeyDown(nFlag) && !m_pApp->FFI_IsALTKeyDown(nFlag)) { 243 if (!m_pApp->FFI_IsCTRLKeyDown(nFlag) && !m_pApp->FFI_IsALTKeyDown(nFlag)) {
244 CPDFSDK_PageView* pPage = pAnnot->GetPageView(); 244 CPDFSDK_PageView* pPage = pAnnot->GetPageView();
245 CPDFSDK_Annot* pFocusAnnot = pPage->GetFocusAnnot(); 245 CPDFSDK_Annot* pFocusAnnot = pPage->GetFocusAnnot();
246 if (pFocusAnnot && (nKeyCode == FWL_VKEY_Tab)) { 246 if (pFocusAnnot && (nKeyCode == FWL_VKEY_Tab)) {
247 CPDFSDK_Annot* pNext = 247 CPDFSDK_Annot* pNext =
248 GetNextAnnot(pFocusAnnot, !m_pApp->FFI_IsSHIFTKeyDown(nFlag)); 248 GetNextAnnot(pFocusAnnot, !m_pApp->FFI_IsSHIFTKeyDown(nFlag));
249 249
250 if (pNext && pNext != pFocusAnnot) { 250 if (pNext && pNext != pFocusAnnot) {
251 CPDFSDK_Document* pDocument = pPage->GetSDKDocument(); 251 CPDFSDK_Document* pDocument = pPage->GetSDKDocument();
252 pDocument->SetFocusAnnot(pNext); 252 pDocument->SetFocusAnnot(pNext);
253 return TRUE; 253 return TRUE;
254 } 254 }
255 } 255 }
256 } 256 }
257 257
258 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 258 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
259 return pAnnotHandler->OnKeyDown(pAnnot, nKeyCode, nFlag); 259 return pAnnotHandler->OnKeyDown(pAnnot, nKeyCode, nFlag);
260 } 260 }
261 return FALSE; 261 return FALSE;
262 } 262 }
263 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKeyUp(CPDFSDK_Annot* pAnnot, 263 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKeyUp(CPDFSDK_Annot* pAnnot,
264 int nKeyCode, 264 int nKeyCode,
265 int nFlag) { 265 int nFlag) {
266 return FALSE; 266 return FALSE;
267 } 267 }
268 268
269 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus(CPDFSDK_Annot* pAnnot, 269 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus(CPDFSDK_Annot* pAnnot,
270 FX_DWORD nFlag) { 270 FX_DWORD nFlag) {
271 ASSERT(pAnnot != NULL); 271 ASSERT(pAnnot != NULL);
272 272
273 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 273 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
274 if (pAnnotHandler->OnSetFocus(pAnnot, nFlag)) { 274 if (pAnnotHandler->OnSetFocus(pAnnot, nFlag)) {
275 CPDFSDK_PageView* pPage = pAnnot->GetPageView(); 275 CPDFSDK_PageView* pPage = pAnnot->GetPageView();
276 pPage->GetSDKDocument(); 276 pPage->GetSDKDocument();
277 return TRUE; 277 return TRUE;
278 } 278 }
279 } 279 }
280 return FALSE; 280 return FALSE;
281 } 281 }
282 282
283 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKillFocus(CPDFSDK_Annot* pAnnot, 283 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKillFocus(CPDFSDK_Annot* pAnnot,
284 FX_DWORD nFlag) { 284 FX_DWORD nFlag) {
285 ASSERT(pAnnot); 285 ASSERT(pAnnot);
286 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) 286 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
287 return pAnnotHandler->OnKillFocus(pAnnot, nFlag); 287 return pAnnotHandler->OnKillFocus(pAnnot, nFlag);
288 288
289 return FALSE; 289 return FALSE;
290 } 290 }
291 291
292 CPDF_Rect CPDFSDK_AnnotHandlerMgr::Annot_OnGetViewBBox( 292 CPDF_Rect CPDFSDK_AnnotHandlerMgr::Annot_OnGetViewBBox(
293 CPDFSDK_PageView* pPageView, 293 CPDFSDK_PageView* pPageView,
294 CPDFSDK_Annot* pAnnot) { 294 CPDFSDK_Annot* pAnnot) {
295 ASSERT(pAnnot); 295 ASSERT(pAnnot);
296 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) 296 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
297 return pAnnotHandler->GetViewBBox(pPageView, pAnnot); 297 return pAnnotHandler->GetViewBBox(pPageView, pAnnot);
298 298
299 return pAnnot->GetRect(); 299 return pAnnot->GetRect();
300 } 300 }
301 301
302 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnHitTest(CPDFSDK_PageView* pPageView, 302 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnHitTest(CPDFSDK_PageView* pPageView,
303 CPDFSDK_Annot* pAnnot, 303 CPDFSDK_Annot* pAnnot,
304 const CPDF_Point& point) { 304 const CPDF_Point& point) {
305 ASSERT(pAnnot); 305 ASSERT(pAnnot);
306 if (CPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { 306 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) {
307 if (pAnnotHandler->CanAnswer(pAnnot)) 307 if (pAnnotHandler->CanAnswer(pAnnot))
308 return pAnnotHandler->HitTest(pPageView, pAnnot, point); 308 return pAnnotHandler->HitTest(pPageView, pAnnot, point);
309 } 309 }
310 return FALSE; 310 return FALSE;
311 } 311 }
312 312
313 CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::GetNextAnnot(CPDFSDK_Annot* pSDKAnnot, 313 CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::GetNextAnnot(CPDFSDK_Annot* pSDKAnnot,
314 FX_BOOL bNext) { 314 FX_BOOL bNext) {
315 CBA_AnnotIterator ai(pSDKAnnot->GetPageView(), "Widget", ""); 315 CBA_AnnotIterator ai(pSDKAnnot->GetPageView(), "Widget", "");
316 return bNext ? ai.GetNextAnnot(pSDKAnnot) : ai.GetPrevAnnot(pSDKAnnot); 316 return bNext ? ai.GetNextAnnot(pSDKAnnot) : ai.GetPrevAnnot(pSDKAnnot);
317 } 317 }
318 318
319 FX_BOOL CPDFSDK_AnnotHandler::CanAnswer(CPDFSDK_Annot* pAnnot) { 319 FX_BOOL CPDFSDK_BFAnnotHandler::CanAnswer(CPDFSDK_Annot* pAnnot) {
320 ASSERT(pAnnot->GetType() == "Widget"); 320 ASSERT(pAnnot->GetType() == "Widget");
321 if (pAnnot->GetSubType() == BFFT_SIGNATURE) 321 if (pAnnot->GetSubType() == BFFT_SIGNATURE)
322 return FALSE; 322 return FALSE;
323 323
324 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot; 324 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
325 if (!pWidget->IsVisible()) 325 if (!pWidget->IsVisible())
326 return FALSE; 326 return FALSE;
327 327
328 int nFieldFlags = pWidget->GetFieldFlags(); 328 int nFieldFlags = pWidget->GetFieldFlags();
329 if ((nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY) 329 if ((nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY)
330 return FALSE; 330 return FALSE;
331 331
332 if (pWidget->GetFieldType() == FIELDTYPE_PUSHBUTTON) 332 if (pWidget->GetFieldType() == FIELDTYPE_PUSHBUTTON)
333 return TRUE; 333 return TRUE;
334 334
335 CPDF_Page* pPage = pWidget->GetPDFPage(); 335 CPDF_Page* pPage = pWidget->GetPDFPage();
336 CPDF_Document* pDocument = pPage->m_pDocument; 336 CPDF_Document* pDocument = pPage->m_pDocument;
337 FX_DWORD dwPermissions = pDocument->GetUserPermissions(); 337 FX_DWORD dwPermissions = pDocument->GetUserPermissions();
338 return (dwPermissions & FPDFPERM_FILL_FORM) || 338 return (dwPermissions & FPDFPERM_FILL_FORM) ||
339 (dwPermissions & FPDFPERM_ANNOT_FORM); 339 (dwPermissions & FPDFPERM_ANNOT_FORM);
340 } 340 }
341 341
342 CPDFSDK_Annot* CPDFSDK_AnnotHandler::NewAnnot(CPDF_Annot* pAnnot, 342 CPDFSDK_Annot* CPDFSDK_BFAnnotHandler::NewAnnot(CPDF_Annot* pAnnot,
343 CPDFSDK_PageView* pPage) { 343 CPDFSDK_PageView* pPage) {
344 CPDFSDK_Document* pSDKDoc = m_pApp->GetSDKDocument(); 344 CPDFSDK_Document* pSDKDoc = m_pApp->GetSDKDocument();
345 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pSDKDoc->GetInterForm(); 345 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pSDKDoc->GetInterForm();
346 CPDF_FormControl* pCtrl = CPDFSDK_Widget::GetFormControl( 346 CPDF_FormControl* pCtrl = CPDFSDK_Widget::GetFormControl(
347 pInterForm->GetInterForm(), pAnnot->GetAnnotDict()); 347 pInterForm->GetInterForm(), pAnnot->GetAnnotDict());
348 if (!pCtrl) 348 if (!pCtrl)
349 return nullptr; 349 return nullptr;
350 350
351 CPDFSDK_Widget* pWidget = new CPDFSDK_Widget(pAnnot, pPage, pInterForm); 351 CPDFSDK_Widget* pWidget = new CPDFSDK_Widget(pAnnot, pPage, pInterForm);
352 pInterForm->AddMap(pCtrl, pWidget); 352 pInterForm->AddMap(pCtrl, pWidget);
353 CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm(); 353 CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm();
354 if (pPDFInterForm && pPDFInterForm->NeedConstructAP()) 354 if (pPDFInterForm && pPDFInterForm->NeedConstructAP())
355 pWidget->ResetAppearance(nullptr, FALSE); 355 pWidget->ResetAppearance(nullptr, FALSE);
356 356
357 return pWidget; 357 return pWidget;
358 } 358 }
359 359
360 void CPDFSDK_AnnotHandler::ReleaseAnnot(CPDFSDK_Annot* pAnnot) { 360 void CPDFSDK_BFAnnotHandler::ReleaseAnnot(CPDFSDK_Annot* pAnnot) {
361 ASSERT(pAnnot != NULL); 361 ASSERT(pAnnot != NULL);
362 362
363 if (m_pFormFiller) 363 if (m_pFormFiller)
364 m_pFormFiller->OnDelete(pAnnot); 364 m_pFormFiller->OnDelete(pAnnot);
365 365
366 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot; 366 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
367 CPDFSDK_InterForm* pInterForm = pWidget->GetInterForm(); 367 CPDFSDK_InterForm* pInterForm = pWidget->GetInterForm();
368 ASSERT(pInterForm != NULL); 368 ASSERT(pInterForm != NULL);
369 369
370 CPDF_FormControl* pCtrol = pWidget->GetFormControl(); 370 CPDF_FormControl* pCtrol = pWidget->GetFormControl();
371 pInterForm->RemoveMap(pCtrol); 371 pInterForm->RemoveMap(pCtrol);
372 372
373 delete pWidget; 373 delete pWidget;
374 } 374 }
375 375
376 void CPDFSDK_AnnotHandler::OnDraw(CPDFSDK_PageView* pPageView, 376 void CPDFSDK_BFAnnotHandler::OnDraw(CPDFSDK_PageView* pPageView,
377 CPDFSDK_Annot* pAnnot, 377 CPDFSDK_Annot* pAnnot,
378 CFX_RenderDevice* pDevice, 378 CFX_RenderDevice* pDevice,
379 CPDF_Matrix* pUser2Device, 379 CPDF_Matrix* pUser2Device,
380 FX_DWORD dwFlags) { 380 FX_DWORD dwFlags) {
381 ASSERT(pAnnot != NULL); 381 ASSERT(pAnnot != NULL);
382 CFX_ByteString sSubType = pAnnot->GetSubType(); 382 CFX_ByteString sSubType = pAnnot->GetSubType();
383 383
384 if (sSubType == BFFT_SIGNATURE) { 384 if (sSubType == BFFT_SIGNATURE) {
385 pAnnot->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL); 385 pAnnot->DrawAppearance(pDevice, pUser2Device, CPDF_Annot::Normal, NULL);
386 } else { 386 } else {
387 if (m_pFormFiller) { 387 if (m_pFormFiller) {
388 m_pFormFiller->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags); 388 m_pFormFiller->OnDraw(pPageView, pAnnot, pDevice, pUser2Device, dwFlags);
389 } 389 }
390 } 390 }
391 } 391 }
392 392
393 void CPDFSDK_AnnotHandler::OnMouseEnter(CPDFSDK_PageView* pPageView, 393 void CPDFSDK_BFAnnotHandler::OnMouseEnter(CPDFSDK_PageView* pPageView,
394 CPDFSDK_Annot* pAnnot, 394 CPDFSDK_Annot* pAnnot,
395 FX_DWORD nFlag) { 395 FX_DWORD nFlag) {
396 ASSERT(pAnnot != NULL); 396 ASSERT(pAnnot != NULL);
397 CFX_ByteString sSubType = pAnnot->GetSubType(); 397 CFX_ByteString sSubType = pAnnot->GetSubType();
398 398
399 if (sSubType == BFFT_SIGNATURE) { 399 if (sSubType == BFFT_SIGNATURE) {
400 } else { 400 } else {
401 if (m_pFormFiller) 401 if (m_pFormFiller)
402 m_pFormFiller->OnMouseEnter(pPageView, pAnnot, nFlag); 402 m_pFormFiller->OnMouseEnter(pPageView, pAnnot, nFlag);
403 } 403 }
404 } 404 }
405 void CPDFSDK_AnnotHandler::OnMouseExit(CPDFSDK_PageView* pPageView, 405 void CPDFSDK_BFAnnotHandler::OnMouseExit(CPDFSDK_PageView* pPageView,
406 CPDFSDK_Annot* pAnnot, 406 CPDFSDK_Annot* pAnnot,
407 FX_DWORD nFlag) { 407 FX_DWORD nFlag) {
408 ASSERT(pAnnot != NULL); 408 ASSERT(pAnnot != NULL);
409 CFX_ByteString sSubType = pAnnot->GetSubType(); 409 CFX_ByteString sSubType = pAnnot->GetSubType();
410 410
411 if (sSubType == BFFT_SIGNATURE) { 411 if (sSubType == BFFT_SIGNATURE) {
412 } else { 412 } else {
413 if (m_pFormFiller) 413 if (m_pFormFiller)
414 m_pFormFiller->OnMouseExit(pPageView, pAnnot, nFlag); 414 m_pFormFiller->OnMouseExit(pPageView, pAnnot, nFlag);
415 } 415 }
416 } 416 }
417 FX_BOOL CPDFSDK_AnnotHandler::OnLButtonDown(CPDFSDK_PageView* pPageView, 417 FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonDown(CPDFSDK_PageView* pPageView,
418 CPDFSDK_Annot* pAnnot, 418 CPDFSDK_Annot* pAnnot,
419 FX_DWORD nFlags, 419 FX_DWORD nFlags,
420 const CPDF_Point& point) { 420 const CPDF_Point& point) {
421 ASSERT(pAnnot != NULL); 421 ASSERT(pAnnot != NULL);
422 CFX_ByteString sSubType = pAnnot->GetSubType(); 422 CFX_ByteString sSubType = pAnnot->GetSubType();
423 423
424 if (sSubType == BFFT_SIGNATURE) { 424 if (sSubType == BFFT_SIGNATURE) {
425 } else { 425 } else {
426 if (m_pFormFiller) 426 if (m_pFormFiller)
427 return m_pFormFiller->OnLButtonDown(pPageView, pAnnot, nFlags, point); 427 return m_pFormFiller->OnLButtonDown(pPageView, pAnnot, nFlags, point);
428 } 428 }
429 429
430 return FALSE; 430 return FALSE;
431 } 431 }
432 432
433 FX_BOOL CPDFSDK_AnnotHandler::OnLButtonUp(CPDFSDK_PageView* pPageView, 433 FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonUp(CPDFSDK_PageView* pPageView,
434 CPDFSDK_Annot* pAnnot, 434 CPDFSDK_Annot* pAnnot,
435 FX_DWORD nFlags, 435 FX_DWORD nFlags,
436 const CPDF_Point& point) { 436 const CPDF_Point& point) {
437 ASSERT(pAnnot != NULL); 437 ASSERT(pAnnot != NULL);
438 CFX_ByteString sSubType = pAnnot->GetSubType(); 438 CFX_ByteString sSubType = pAnnot->GetSubType();
439 439
440 if (sSubType == BFFT_SIGNATURE) { 440 if (sSubType == BFFT_SIGNATURE) {
441 } else { 441 } else {
442 if (m_pFormFiller) 442 if (m_pFormFiller)
443 return m_pFormFiller->OnLButtonUp(pPageView, pAnnot, nFlags, point); 443 return m_pFormFiller->OnLButtonUp(pPageView, pAnnot, nFlags, point);
444 } 444 }
445 445
446 return FALSE; 446 return FALSE;
447 } 447 }
448 448
449 FX_BOOL CPDFSDK_AnnotHandler::OnLButtonDblClk(CPDFSDK_PageView* pPageView, 449 FX_BOOL CPDFSDK_BFAnnotHandler::OnLButtonDblClk(CPDFSDK_PageView* pPageView,
450 CPDFSDK_Annot* pAnnot, 450 CPDFSDK_Annot* pAnnot,
451 FX_DWORD nFlags, 451 FX_DWORD nFlags,
452 const CPDF_Point& point) { 452 const CPDF_Point& point) {
453 ASSERT(pAnnot != NULL); 453 ASSERT(pAnnot != NULL);
454 CFX_ByteString sSubType = pAnnot->GetSubType(); 454 CFX_ByteString sSubType = pAnnot->GetSubType();
455 455
456 if (sSubType == BFFT_SIGNATURE) { 456 if (sSubType == BFFT_SIGNATURE) {
457 } else { 457 } else {
458 if (m_pFormFiller) 458 if (m_pFormFiller)
459 return m_pFormFiller->OnLButtonDblClk(pPageView, pAnnot, nFlags, point); 459 return m_pFormFiller->OnLButtonDblClk(pPageView, pAnnot, nFlags, point);
460 } 460 }
461 461
462 return FALSE; 462 return FALSE;
463 } 463 }
464 464
465 FX_BOOL CPDFSDK_AnnotHandler::OnMouseMove(CPDFSDK_PageView* pPageView, 465 FX_BOOL CPDFSDK_BFAnnotHandler::OnMouseMove(CPDFSDK_PageView* pPageView,
466 CPDFSDK_Annot* pAnnot, 466 CPDFSDK_Annot* pAnnot,
467 FX_DWORD nFlags, 467 FX_DWORD nFlags,
468 const CPDF_Point& point) { 468 const CPDF_Point& point) {
469 ASSERT(pAnnot != NULL); 469 ASSERT(pAnnot != NULL);
470 CFX_ByteString sSubType = pAnnot->GetSubType(); 470 CFX_ByteString sSubType = pAnnot->GetSubType();
471 471
472 if (sSubType == BFFT_SIGNATURE) { 472 if (sSubType == BFFT_SIGNATURE) {
473 } else { 473 } else {
474 if (m_pFormFiller) 474 if (m_pFormFiller)
475 return m_pFormFiller->OnMouseMove(pPageView, pAnnot, nFlags, point); 475 return m_pFormFiller->OnMouseMove(pPageView, pAnnot, nFlags, point);
476 } 476 }
477 477
478 return FALSE; 478 return FALSE;
479 } 479 }
480 480
481 FX_BOOL CPDFSDK_AnnotHandler::OnMouseWheel(CPDFSDK_PageView* pPageView, 481 FX_BOOL CPDFSDK_BFAnnotHandler::OnMouseWheel(CPDFSDK_PageView* pPageView,
482 CPDFSDK_Annot* pAnnot, 482 CPDFSDK_Annot* pAnnot,
483 FX_DWORD nFlags, 483 FX_DWORD nFlags,
484 short zDelta, 484 short zDelta,
485 const CPDF_Point& point) { 485 const CPDF_Point& point) {
486 ASSERT(pAnnot != NULL); 486 ASSERT(pAnnot != NULL);
487 CFX_ByteString sSubType = pAnnot->GetSubType(); 487 CFX_ByteString sSubType = pAnnot->GetSubType();
488 488
489 if (sSubType == BFFT_SIGNATURE) { 489 if (sSubType == BFFT_SIGNATURE) {
490 } else { 490 } else {
491 if (m_pFormFiller) 491 if (m_pFormFiller)
492 return m_pFormFiller->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta, 492 return m_pFormFiller->OnMouseWheel(pPageView, pAnnot, nFlags, zDelta,
493 point); 493 point);
494 } 494 }
495 495
496 return FALSE; 496 return FALSE;
497 } 497 }
498 498
499 FX_BOOL CPDFSDK_AnnotHandler::OnRButtonDown(CPDFSDK_PageView* pPageView, 499 FX_BOOL CPDFSDK_BFAnnotHandler::OnRButtonDown(CPDFSDK_PageView* pPageView,
500 CPDFSDK_Annot* pAnnot, 500 CPDFSDK_Annot* pAnnot,
501 FX_DWORD nFlags, 501 FX_DWORD nFlags,
502 const CPDF_Point& point) { 502 const CPDF_Point& point) {
503 ASSERT(pAnnot != NULL); 503 ASSERT(pAnnot != NULL);
504 CFX_ByteString sSubType = pAnnot->GetSubType(); 504 CFX_ByteString sSubType = pAnnot->GetSubType();
505 505
506 if (sSubType == BFFT_SIGNATURE) { 506 if (sSubType == BFFT_SIGNATURE) {
507 } else { 507 } else {
508 if (m_pFormFiller) 508 if (m_pFormFiller)
509 return m_pFormFiller->OnRButtonDown(pPageView, pAnnot, nFlags, point); 509 return m_pFormFiller->OnRButtonDown(pPageView, pAnnot, nFlags, point);
510 } 510 }
511 511
512 return FALSE; 512 return FALSE;
513 } 513 }
514 FX_BOOL CPDFSDK_AnnotHandler::OnRButtonUp(CPDFSDK_PageView* pPageView, 514 FX_BOOL CPDFSDK_BFAnnotHandler::OnRButtonUp(CPDFSDK_PageView* pPageView,
515 CPDFSDK_Annot* pAnnot, 515 CPDFSDK_Annot* pAnnot,
516 FX_DWORD nFlags, 516 FX_DWORD nFlags,
517 const CPDF_Point& point) { 517 const CPDF_Point& point) {
518 ASSERT(pAnnot != NULL); 518 ASSERT(pAnnot != NULL);
519 CFX_ByteString sSubType = pAnnot->GetSubType(); 519 CFX_ByteString sSubType = pAnnot->GetSubType();
520 520
521 if (sSubType == BFFT_SIGNATURE) { 521 if (sSubType == BFFT_SIGNATURE) {
522 } else { 522 } else {
523 if (m_pFormFiller) 523 if (m_pFormFiller)
524 return m_pFormFiller->OnRButtonUp(pPageView, pAnnot, nFlags, point); 524 return m_pFormFiller->OnRButtonUp(pPageView, pAnnot, nFlags, point);
525 } 525 }
526 526
527 return FALSE; 527 return FALSE;
528 } 528 }
529 529
530 FX_BOOL CPDFSDK_AnnotHandler::OnChar(CPDFSDK_Annot* pAnnot, 530 FX_BOOL CPDFSDK_BFAnnotHandler::OnChar(CPDFSDK_Annot* pAnnot,
531 FX_DWORD nChar, 531 FX_DWORD nChar,
532 FX_DWORD nFlags) { 532 FX_DWORD nFlags) {
533 ASSERT(pAnnot != NULL); 533 ASSERT(pAnnot != NULL);
534 CFX_ByteString sSubType = pAnnot->GetSubType(); 534 CFX_ByteString sSubType = pAnnot->GetSubType();
535 535
536 if (sSubType == BFFT_SIGNATURE) { 536 if (sSubType == BFFT_SIGNATURE) {
537 } else { 537 } else {
538 if (m_pFormFiller) 538 if (m_pFormFiller)
539 return m_pFormFiller->OnChar(pAnnot, nChar, nFlags); 539 return m_pFormFiller->OnChar(pAnnot, nChar, nFlags);
540 } 540 }
541 541
542 return FALSE; 542 return FALSE;
543 } 543 }
544 544
545 FX_BOOL CPDFSDK_AnnotHandler::OnKeyDown(CPDFSDK_Annot* pAnnot, 545 FX_BOOL CPDFSDK_BFAnnotHandler::OnKeyDown(CPDFSDK_Annot* pAnnot,
546 int nKeyCode, 546 int nKeyCode,
547 int nFlag) { 547 int nFlag) {
548 ASSERT(pAnnot != NULL); 548 ASSERT(pAnnot != NULL);
549 CFX_ByteString sSubType = pAnnot->GetSubType(); 549 CFX_ByteString sSubType = pAnnot->GetSubType();
550 550
551 if (sSubType == BFFT_SIGNATURE) { 551 if (sSubType == BFFT_SIGNATURE) {
552 } else { 552 } else {
553 if (m_pFormFiller) 553 if (m_pFormFiller)
554 return m_pFormFiller->OnKeyDown(pAnnot, nKeyCode, nFlag); 554 return m_pFormFiller->OnKeyDown(pAnnot, nKeyCode, nFlag);
555 } 555 }
556 556
557 return FALSE; 557 return FALSE;
558 } 558 }
559 559
560 FX_BOOL CPDFSDK_AnnotHandler::OnKeyUp(CPDFSDK_Annot* pAnnot, 560 FX_BOOL CPDFSDK_BFAnnotHandler::OnKeyUp(CPDFSDK_Annot* pAnnot,
561 int nKeyCode, 561 int nKeyCode,
562 int nFlag) { 562 int nFlag) {
563 return FALSE; 563 return FALSE;
564 } 564 }
565 void CPDFSDK_AnnotHandler::OnCreate(CPDFSDK_Annot* pAnnot) { 565 void CPDFSDK_BFAnnotHandler::OnCreate(CPDFSDK_Annot* pAnnot) {
566 ASSERT(pAnnot != NULL); 566 ASSERT(pAnnot != NULL);
567 CFX_ByteString sSubType = pAnnot->GetSubType(); 567 CFX_ByteString sSubType = pAnnot->GetSubType();
568 568
569 if (sSubType == BFFT_SIGNATURE) { 569 if (sSubType == BFFT_SIGNATURE) {
570 } else { 570 } else {
571 if (m_pFormFiller) 571 if (m_pFormFiller)
572 m_pFormFiller->OnCreate(pAnnot); 572 m_pFormFiller->OnCreate(pAnnot);
573 } 573 }
574 } 574 }
575 575
576 void CPDFSDK_AnnotHandler::OnLoad(CPDFSDK_Annot* pAnnot) { 576 void CPDFSDK_BFAnnotHandler::OnLoad(CPDFSDK_Annot* pAnnot) {
577 ASSERT(pAnnot != NULL); 577 ASSERT(pAnnot != NULL);
578 578
579 CFX_ByteString sSubType = pAnnot->GetSubType(); 579 CFX_ByteString sSubType = pAnnot->GetSubType();
580 580
581 if (sSubType == BFFT_SIGNATURE) { 581 if (sSubType == BFFT_SIGNATURE) {
582 } else { 582 } else {
583 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot; 583 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
584 if (!pWidget->IsAppearanceValid()) 584 if (!pWidget->IsAppearanceValid())
585 pWidget->ResetAppearance(NULL, FALSE); 585 pWidget->ResetAppearance(NULL, FALSE);
586 586
587 int nFieldType = pWidget->GetFieldType(); 587 int nFieldType = pWidget->GetFieldType();
588 if (nFieldType == FIELDTYPE_TEXTFIELD || nFieldType == FIELDTYPE_COMBOBOX) { 588 if (nFieldType == FIELDTYPE_TEXTFIELD || nFieldType == FIELDTYPE_COMBOBOX) {
589 FX_BOOL bFormated = FALSE; 589 FX_BOOL bFormated = FALSE;
590 CFX_WideString sValue = pWidget->OnFormat(bFormated); 590 CFX_WideString sValue = pWidget->OnFormat(bFormated);
591 if (bFormated && nFieldType == FIELDTYPE_COMBOBOX) { 591 if (bFormated && nFieldType == FIELDTYPE_COMBOBOX) {
592 pWidget->ResetAppearance(sValue.c_str(), FALSE); 592 pWidget->ResetAppearance(sValue.c_str(), FALSE);
593 } 593 }
594 } 594 }
595 595
596 if (m_pFormFiller) 596 if (m_pFormFiller)
597 m_pFormFiller->OnLoad(pAnnot); 597 m_pFormFiller->OnLoad(pAnnot);
598 } 598 }
599 } 599 }
600 600
601 FX_BOOL CPDFSDK_AnnotHandler::OnSetFocus(CPDFSDK_Annot* pAnnot, 601 FX_BOOL CPDFSDK_BFAnnotHandler::OnSetFocus(CPDFSDK_Annot* pAnnot,
602 FX_DWORD nFlag) { 602 FX_DWORD nFlag) {
603 ASSERT(pAnnot != NULL); 603 ASSERT(pAnnot != NULL);
604 CFX_ByteString sSubType = pAnnot->GetSubType(); 604 CFX_ByteString sSubType = pAnnot->GetSubType();
605 605
606 if (sSubType == BFFT_SIGNATURE) { 606 if (sSubType == BFFT_SIGNATURE) {
607 } else { 607 } else {
608 if (m_pFormFiller) 608 if (m_pFormFiller)
609 return m_pFormFiller->OnSetFocus(pAnnot, nFlag); 609 return m_pFormFiller->OnSetFocus(pAnnot, nFlag);
610 } 610 }
611 611
612 return TRUE; 612 return TRUE;
613 } 613 }
614 FX_BOOL CPDFSDK_AnnotHandler::OnKillFocus(CPDFSDK_Annot* pAnnot, 614 FX_BOOL CPDFSDK_BFAnnotHandler::OnKillFocus(CPDFSDK_Annot* pAnnot,
615 FX_DWORD nFlag) { 615 FX_DWORD nFlag) {
616 ASSERT(pAnnot != NULL); 616 ASSERT(pAnnot != NULL);
617 CFX_ByteString sSubType = pAnnot->GetSubType(); 617 CFX_ByteString sSubType = pAnnot->GetSubType();
618 618
619 if (sSubType == BFFT_SIGNATURE) { 619 if (sSubType == BFFT_SIGNATURE) {
620 } else { 620 } else {
621 if (m_pFormFiller) 621 if (m_pFormFiller)
622 return m_pFormFiller->OnKillFocus(pAnnot, nFlag); 622 return m_pFormFiller->OnKillFocus(pAnnot, nFlag);
623 } 623 }
624 624
625 return TRUE; 625 return TRUE;
626 } 626 }
627 627
628 CPDF_Rect CPDFSDK_AnnotHandler::GetViewBBox(CPDFSDK_PageView* pPageView, 628 CPDF_Rect CPDFSDK_BFAnnotHandler::GetViewBBox(CPDFSDK_PageView* pPageView,
629 CPDFSDK_Annot* pAnnot) { 629 CPDFSDK_Annot* pAnnot) {
630 ASSERT(pAnnot != NULL); 630 ASSERT(pAnnot != NULL);
631 CFX_ByteString sSubType = pAnnot->GetSubType(); 631 CFX_ByteString sSubType = pAnnot->GetSubType();
632 632
633 if (sSubType == BFFT_SIGNATURE) { 633 if (sSubType == BFFT_SIGNATURE) {
634 } else { 634 } else {
635 if (m_pFormFiller) 635 if (m_pFormFiller)
636 return m_pFormFiller->GetViewBBox(pPageView, pAnnot); 636 return m_pFormFiller->GetViewBBox(pPageView, pAnnot);
637 } 637 }
638 638
639 return CPDF_Rect(0, 0, 0, 0); 639 return CPDF_Rect(0, 0, 0, 0);
640 } 640 }
641 641
642 FX_BOOL CPDFSDK_AnnotHandler::HitTest(CPDFSDK_PageView* pPageView, 642 FX_BOOL CPDFSDK_BFAnnotHandler::HitTest(CPDFSDK_PageView* pPageView,
643 CPDFSDK_Annot* pAnnot, 643 CPDFSDK_Annot* pAnnot,
644 const CPDF_Point& point) { 644 const CPDF_Point& point) {
645 ASSERT(pPageView); 645 ASSERT(pPageView);
646 ASSERT(pAnnot); 646 ASSERT(pAnnot);
647 647
648 CPDF_Rect rect = GetViewBBox(pPageView, pAnnot); 648 CPDF_Rect rect = GetViewBBox(pPageView, pAnnot);
649 return rect.Contains(point.x, point.y); 649 return rect.Contains(point.x, point.y);
650 } 650 }
651 651
652 // CReader_AnnotIteratorEx 652 // CReader_AnnotIteratorEx
653 653
654 CPDFSDK_AnnotIterator::CPDFSDK_AnnotIterator(CPDFSDK_PageView* pPageView, 654 CPDFSDK_AnnotIterator::CPDFSDK_AnnotIterator(CPDFSDK_PageView* pPageView,
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 if (pReaderAnnot == pTopMostAnnot) { 803 if (pReaderAnnot == pTopMostAnnot) {
804 m_pIteratorAnnotList.RemoveAt(i); 804 m_pIteratorAnnotList.RemoveAt(i);
805 m_pIteratorAnnotList.InsertAt(0, pReaderAnnot); 805 m_pIteratorAnnotList.InsertAt(0, pReaderAnnot);
806 break; 806 break;
807 } 807 }
808 } 808 }
809 } 809 }
810 810
811 return TRUE; 811 return TRUE;
812 } 812 }
OLDNEW
« no previous file with comments | « fpdfsdk/include/fsdk_annothandler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698