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

Side by Side Diff: fpdfsdk/cpdfsdk_interform.cpp

Issue 2453683011: Remove FX_BOOL from fpdfsdk. (Closed)
Patch Set: Regenerate patch after rebase. Created 4 years, 1 month 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/cpdfsdk_interform.h ('k') | fpdfsdk/cpdfsdk_pageview.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 PDFium Authors. All rights reserved. 1 // Copyright 2016 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "fpdfsdk/cpdfsdk_interform.h" 7 #include "fpdfsdk/cpdfsdk_interform.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 #include "xfa/fxfa/cxfa_eventparam.h" 42 #include "xfa/fxfa/cxfa_eventparam.h"
43 #include "xfa/fxfa/xfa_ffdocview.h" 43 #include "xfa/fxfa/xfa_ffdocview.h"
44 #include "xfa/fxfa/xfa_ffwidget.h" 44 #include "xfa/fxfa/xfa_ffwidget.h"
45 #include "xfa/fxfa/xfa_ffwidgethandler.h" 45 #include "xfa/fxfa/xfa_ffwidgethandler.h"
46 #endif // PDF_ENABLE_XFA 46 #endif // PDF_ENABLE_XFA
47 47
48 CPDFSDK_InterForm::CPDFSDK_InterForm(CPDFSDK_FormFillEnvironment* pFormFillEnv) 48 CPDFSDK_InterForm::CPDFSDK_InterForm(CPDFSDK_FormFillEnvironment* pFormFillEnv)
49 : m_pFormFillEnv(pFormFillEnv), 49 : m_pFormFillEnv(pFormFillEnv),
50 m_pInterForm(new CPDF_InterForm(m_pFormFillEnv->GetPDFDocument())), 50 m_pInterForm(new CPDF_InterForm(m_pFormFillEnv->GetPDFDocument())),
51 #ifdef PDF_ENABLE_XFA 51 #ifdef PDF_ENABLE_XFA
52 m_bXfaCalculate(TRUE), 52 m_bXfaCalculate(true),
53 m_bXfaValidationsEnabled(TRUE), 53 m_bXfaValidationsEnabled(true),
54 #endif // PDF_ENABLE_XFA 54 #endif // PDF_ENABLE_XFA
55 m_bCalculate(TRUE), 55 m_bCalculate(true),
56 m_bBusy(FALSE), 56 m_bBusy(false),
57 m_iHighlightAlpha(0) { 57 m_iHighlightAlpha(0) {
58 m_pInterForm->SetFormNotify(this); 58 m_pInterForm->SetFormNotify(this);
59 for (int i = 0; i < kNumFieldTypes; ++i) 59 for (int i = 0; i < kNumFieldTypes; ++i)
60 m_bNeedHightlight[i] = FALSE; 60 m_bNeedHightlight[i] = false;
61 } 61 }
62 62
63 CPDFSDK_InterForm::~CPDFSDK_InterForm() { 63 CPDFSDK_InterForm::~CPDFSDK_InterForm() {
64 m_Map.clear(); 64 m_Map.clear();
65 #ifdef PDF_ENABLE_XFA 65 #ifdef PDF_ENABLE_XFA
66 m_XFAMap.clear(); 66 m_XFAMap.clear();
67 #endif // PDF_ENABLE_XFA 67 #endif // PDF_ENABLE_XFA
68 } 68 }
69 69
70 FX_BOOL CPDFSDK_InterForm::HighlightWidgets() { 70 bool CPDFSDK_InterForm::HighlightWidgets() {
71 return FALSE; 71 return false;
72 } 72 }
73 73
74 CPDFSDK_Widget* CPDFSDK_InterForm::GetSibling(CPDFSDK_Widget* pWidget, 74 CPDFSDK_Widget* CPDFSDK_InterForm::GetSibling(CPDFSDK_Widget* pWidget,
75 FX_BOOL bNext) const { 75 bool bNext) const {
76 std::unique_ptr<CBA_AnnotIterator> pIterator(new CBA_AnnotIterator( 76 std::unique_ptr<CBA_AnnotIterator> pIterator(new CBA_AnnotIterator(
77 pWidget->GetPageView(), CPDF_Annot::Subtype::WIDGET)); 77 pWidget->GetPageView(), CPDF_Annot::Subtype::WIDGET));
78 78
79 if (bNext) 79 if (bNext)
80 return static_cast<CPDFSDK_Widget*>(pIterator->GetNextAnnot(pWidget)); 80 return static_cast<CPDFSDK_Widget*>(pIterator->GetNextAnnot(pWidget));
81 81
82 return static_cast<CPDFSDK_Widget*>(pIterator->GetPrevAnnot(pWidget)); 82 return static_cast<CPDFSDK_Widget*>(pIterator->GetPrevAnnot(pWidget));
83 } 83 }
84 84
85 CPDFSDK_Widget* CPDFSDK_InterForm::GetWidget(CPDF_FormControl* pControl, 85 CPDFSDK_Widget* CPDFSDK_InterForm::GetWidget(CPDF_FormControl* pControl,
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 162
163 void CPDFSDK_InterForm::AddMap(CPDF_FormControl* pControl, 163 void CPDFSDK_InterForm::AddMap(CPDF_FormControl* pControl,
164 CPDFSDK_Widget* pWidget) { 164 CPDFSDK_Widget* pWidget) {
165 m_Map[pControl] = pWidget; 165 m_Map[pControl] = pWidget;
166 } 166 }
167 167
168 void CPDFSDK_InterForm::RemoveMap(CPDF_FormControl* pControl) { 168 void CPDFSDK_InterForm::RemoveMap(CPDF_FormControl* pControl) {
169 m_Map.erase(pControl); 169 m_Map.erase(pControl);
170 } 170 }
171 171
172 void CPDFSDK_InterForm::EnableCalculate(FX_BOOL bEnabled) { 172 void CPDFSDK_InterForm::EnableCalculate(bool bEnabled) {
173 m_bCalculate = bEnabled; 173 m_bCalculate = bEnabled;
174 } 174 }
175 175
176 FX_BOOL CPDFSDK_InterForm::IsCalculateEnabled() const { 176 bool CPDFSDK_InterForm::IsCalculateEnabled() const {
177 return m_bCalculate; 177 return m_bCalculate;
178 } 178 }
179 179
180 #ifdef PDF_ENABLE_XFA 180 #ifdef PDF_ENABLE_XFA
181 void CPDFSDK_InterForm::AddXFAMap(CXFA_FFWidget* hWidget, 181 void CPDFSDK_InterForm::AddXFAMap(CXFA_FFWidget* hWidget,
182 CPDFSDK_XFAWidget* pWidget) { 182 CPDFSDK_XFAWidget* pWidget) {
183 ASSERT(hWidget); 183 ASSERT(hWidget);
184 m_XFAMap[hWidget] = pWidget; 184 m_XFAMap[hWidget] = pWidget;
185 } 185 }
186 186
187 void CPDFSDK_InterForm::RemoveXFAMap(CXFA_FFWidget* hWidget) { 187 void CPDFSDK_InterForm::RemoveXFAMap(CXFA_FFWidget* hWidget) {
188 ASSERT(hWidget); 188 ASSERT(hWidget);
189 m_XFAMap.erase(hWidget); 189 m_XFAMap.erase(hWidget);
190 } 190 }
191 191
192 CPDFSDK_XFAWidget* CPDFSDK_InterForm::GetXFAWidget(CXFA_FFWidget* hWidget) { 192 CPDFSDK_XFAWidget* CPDFSDK_InterForm::GetXFAWidget(CXFA_FFWidget* hWidget) {
193 ASSERT(hWidget); 193 ASSERT(hWidget);
194 auto it = m_XFAMap.find(hWidget); 194 auto it = m_XFAMap.find(hWidget);
195 return it != m_XFAMap.end() ? it->second : nullptr; 195 return it != m_XFAMap.end() ? it->second : nullptr;
196 } 196 }
197 197
198 void CPDFSDK_InterForm::XfaEnableCalculate(FX_BOOL bEnabled) { 198 void CPDFSDK_InterForm::XfaEnableCalculate(bool bEnabled) {
199 m_bXfaCalculate = bEnabled; 199 m_bXfaCalculate = bEnabled;
200 } 200 }
201 FX_BOOL CPDFSDK_InterForm::IsXfaCalculateEnabled() const { 201 bool CPDFSDK_InterForm::IsXfaCalculateEnabled() const {
202 return m_bXfaCalculate; 202 return m_bXfaCalculate;
203 } 203 }
204 204
205 FX_BOOL CPDFSDK_InterForm::IsXfaValidationsEnabled() { 205 bool CPDFSDK_InterForm::IsXfaValidationsEnabled() {
206 return m_bXfaValidationsEnabled; 206 return m_bXfaValidationsEnabled;
207 } 207 }
208 void CPDFSDK_InterForm::XfaSetValidationsEnabled(FX_BOOL bEnabled) { 208 void CPDFSDK_InterForm::XfaSetValidationsEnabled(bool bEnabled) {
209 m_bXfaValidationsEnabled = bEnabled; 209 m_bXfaValidationsEnabled = bEnabled;
210 } 210 }
211 211
212 void CPDFSDK_InterForm::SynchronizeField(CPDF_FormField* pFormField, 212 void CPDFSDK_InterForm::SynchronizeField(CPDF_FormField* pFormField,
213 FX_BOOL bSynchronizeElse) { 213 bool bSynchronizeElse) {
214 for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) { 214 for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
215 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i); 215 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
216 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl, false)) 216 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl, false))
217 pWidget->Synchronize(bSynchronizeElse); 217 pWidget->Synchronize(bSynchronizeElse);
218 } 218 }
219 } 219 }
220 #endif // PDF_ENABLE_XFA 220 #endif // PDF_ENABLE_XFA
221 221
222 void CPDFSDK_InterForm::OnCalculate(CPDF_FormField* pFormField) { 222 void CPDFSDK_InterForm::OnCalculate(CPDF_FormField* pFormField) {
223 if (!m_pFormFillEnv->IsJSInitiated()) 223 if (!m_pFormFillEnv->IsJSInitiated())
224 return; 224 return;
225 225
226 if (m_bBusy) 226 if (m_bBusy)
227 return; 227 return;
228 228
229 m_bBusy = TRUE; 229 m_bBusy = true;
230 230
231 if (!IsCalculateEnabled()) { 231 if (!IsCalculateEnabled()) {
232 m_bBusy = FALSE; 232 m_bBusy = false;
233 return; 233 return;
234 } 234 }
235 235
236 IJS_Runtime* pRuntime = m_pFormFillEnv->GetJSRuntime(); 236 IJS_Runtime* pRuntime = m_pFormFillEnv->GetJSRuntime();
237 int nSize = m_pInterForm->CountFieldsInCalculationOrder(); 237 int nSize = m_pInterForm->CountFieldsInCalculationOrder();
238 for (int i = 0; i < nSize; i++) { 238 for (int i = 0; i < nSize; i++) {
239 CPDF_FormField* pField = m_pInterForm->GetFieldInCalculationOrder(i); 239 CPDF_FormField* pField = m_pInterForm->GetFieldInCalculationOrder(i);
240 if (!pField) 240 if (!pField)
241 continue; 241 continue;
242 242
243 int nType = pField->GetFieldType(); 243 int nType = pField->GetFieldType();
244 if (nType != FIELDTYPE_COMBOBOX && nType != FIELDTYPE_TEXTFIELD) 244 if (nType != FIELDTYPE_COMBOBOX && nType != FIELDTYPE_TEXTFIELD)
245 continue; 245 continue;
246 246
247 CPDF_AAction aAction = pField->GetAdditionalAction(); 247 CPDF_AAction aAction = pField->GetAdditionalAction();
248 if (!aAction.GetDict() || !aAction.ActionExist(CPDF_AAction::Calculate)) 248 if (!aAction.GetDict() || !aAction.ActionExist(CPDF_AAction::Calculate))
249 continue; 249 continue;
250 250
251 CPDF_Action action = aAction.GetAction(CPDF_AAction::Calculate); 251 CPDF_Action action = aAction.GetAction(CPDF_AAction::Calculate);
252 if (!action.GetDict()) 252 if (!action.GetDict())
253 continue; 253 continue;
254 254
255 CFX_WideString csJS = action.GetJavaScript(); 255 CFX_WideString csJS = action.GetJavaScript();
256 if (csJS.IsEmpty()) 256 if (csJS.IsEmpty())
257 continue; 257 continue;
258 258
259 IJS_Context* pContext = pRuntime->NewContext(); 259 IJS_Context* pContext = pRuntime->NewContext();
260 CFX_WideString sOldValue = pField->GetValue(); 260 CFX_WideString sOldValue = pField->GetValue();
261 CFX_WideString sValue = sOldValue; 261 CFX_WideString sValue = sOldValue;
262 FX_BOOL bRC = TRUE; 262 bool bRC = true;
263 pContext->OnField_Calculate(pFormField, pField, sValue, bRC); 263 pContext->OnField_Calculate(pFormField, pField, sValue, bRC);
264 264
265 CFX_WideString sInfo; 265 CFX_WideString sInfo;
266 FX_BOOL bRet = pContext->RunScript(csJS, &sInfo); 266 bool bRet = pContext->RunScript(csJS, &sInfo);
267 pRuntime->ReleaseContext(pContext); 267 pRuntime->ReleaseContext(pContext);
268 268
269 if (bRet && bRC && sValue.Compare(sOldValue) != 0) 269 if (bRet && bRC && sValue.Compare(sOldValue) != 0)
270 pField->SetValue(sValue, TRUE); 270 pField->SetValue(sValue, true);
271 } 271 }
272 272
273 m_bBusy = FALSE; 273 m_bBusy = false;
274 } 274 }
275 275
276 CFX_WideString CPDFSDK_InterForm::OnFormat(CPDF_FormField* pFormField, 276 CFX_WideString CPDFSDK_InterForm::OnFormat(CPDF_FormField* pFormField,
277 FX_BOOL& bFormatted) { 277 bool& bFormatted) {
278 CFX_WideString sValue = pFormField->GetValue(); 278 CFX_WideString sValue = pFormField->GetValue();
279 if (!m_pFormFillEnv->IsJSInitiated()) { 279 if (!m_pFormFillEnv->IsJSInitiated()) {
280 bFormatted = FALSE; 280 bFormatted = false;
281 return sValue; 281 return sValue;
282 } 282 }
283 283
284 IJS_Runtime* pRuntime = m_pFormFillEnv->GetJSRuntime(); 284 IJS_Runtime* pRuntime = m_pFormFillEnv->GetJSRuntime();
285 if (pFormField->GetFieldType() == FIELDTYPE_COMBOBOX && 285 if (pFormField->GetFieldType() == FIELDTYPE_COMBOBOX &&
286 pFormField->CountSelectedItems() > 0) { 286 pFormField->CountSelectedItems() > 0) {
287 int index = pFormField->GetSelectedIndex(0); 287 int index = pFormField->GetSelectedIndex(0);
288 if (index >= 0) 288 if (index >= 0)
289 sValue = pFormField->GetOptionLabel(index); 289 sValue = pFormField->GetOptionLabel(index);
290 } 290 }
291 291
292 bFormatted = FALSE; 292 bFormatted = false;
293 293
294 CPDF_AAction aAction = pFormField->GetAdditionalAction(); 294 CPDF_AAction aAction = pFormField->GetAdditionalAction();
295 if (aAction.GetDict() && aAction.ActionExist(CPDF_AAction::Format)) { 295 if (aAction.GetDict() && aAction.ActionExist(CPDF_AAction::Format)) {
296 CPDF_Action action = aAction.GetAction(CPDF_AAction::Format); 296 CPDF_Action action = aAction.GetAction(CPDF_AAction::Format);
297 if (action.GetDict()) { 297 if (action.GetDict()) {
298 CFX_WideString script = action.GetJavaScript(); 298 CFX_WideString script = action.GetJavaScript();
299 if (!script.IsEmpty()) { 299 if (!script.IsEmpty()) {
300 CFX_WideString Value = sValue; 300 CFX_WideString Value = sValue;
301 301
302 IJS_Context* pContext = pRuntime->NewContext(); 302 IJS_Context* pContext = pRuntime->NewContext();
303 pContext->OnField_Format(pFormField, Value, TRUE); 303 pContext->OnField_Format(pFormField, Value, true);
304 CFX_WideString sInfo; 304 CFX_WideString sInfo;
305 FX_BOOL bRet = pContext->RunScript(script, &sInfo); 305 bool bRet = pContext->RunScript(script, &sInfo);
306 pRuntime->ReleaseContext(pContext); 306 pRuntime->ReleaseContext(pContext);
307 307
308 if (bRet) { 308 if (bRet) {
309 sValue = Value; 309 sValue = Value;
310 bFormatted = TRUE; 310 bFormatted = true;
311 } 311 }
312 } 312 }
313 } 313 }
314 } 314 }
315 315
316 return sValue; 316 return sValue;
317 } 317 }
318 318
319 void CPDFSDK_InterForm::ResetFieldAppearance(CPDF_FormField* pFormField, 319 void CPDFSDK_InterForm::ResetFieldAppearance(CPDF_FormField* pFormField,
320 const CFX_WideString* sValue, 320 const CFX_WideString* sValue,
321 FX_BOOL bValueChanged) { 321 bool bValueChanged) {
322 for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) { 322 for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
323 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i); 323 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
324 ASSERT(pFormCtrl); 324 ASSERT(pFormCtrl);
325 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl, false)) 325 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl, false))
326 pWidget->ResetAppearance(sValue, bValueChanged); 326 pWidget->ResetAppearance(sValue, bValueChanged);
327 } 327 }
328 } 328 }
329 329
330 void CPDFSDK_InterForm::UpdateField(CPDF_FormField* pFormField) { 330 void CPDFSDK_InterForm::UpdateField(CPDF_FormField* pFormField) {
331 for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) { 331 for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
332 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i); 332 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
333 ASSERT(pFormCtrl); 333 ASSERT(pFormCtrl);
334 334
335 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl, false)) { 335 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl, false)) {
336 UnderlyingPageType* pPage = pWidget->GetUnderlyingPage(); 336 UnderlyingPageType* pPage = pWidget->GetUnderlyingPage();
337 CPDFSDK_PageView* pPageView = m_pFormFillEnv->GetPageView(pPage, false); 337 CPDFSDK_PageView* pPageView = m_pFormFillEnv->GetPageView(pPage, false);
338 FX_RECT rcBBox = m_pFormFillEnv->GetInteractiveFormFiller()->GetViewBBox( 338 FX_RECT rcBBox = m_pFormFillEnv->GetInteractiveFormFiller()->GetViewBBox(
339 pPageView, pWidget); 339 pPageView, pWidget);
340 340
341 m_pFormFillEnv->Invalidate(pPage, rcBBox.left, rcBBox.top, rcBBox.right, 341 m_pFormFillEnv->Invalidate(pPage, rcBBox.left, rcBBox.top, rcBBox.right,
342 rcBBox.bottom); 342 rcBBox.bottom);
343 } 343 }
344 } 344 }
345 } 345 }
346 346
347 FX_BOOL CPDFSDK_InterForm::OnKeyStrokeCommit(CPDF_FormField* pFormField, 347 bool CPDFSDK_InterForm::OnKeyStrokeCommit(CPDF_FormField* pFormField,
348 const CFX_WideString& csValue) { 348 const CFX_WideString& csValue) {
349 CPDF_AAction aAction = pFormField->GetAdditionalAction(); 349 CPDF_AAction aAction = pFormField->GetAdditionalAction();
350 if (!aAction.GetDict() || !aAction.ActionExist(CPDF_AAction::KeyStroke)) 350 if (!aAction.GetDict() || !aAction.ActionExist(CPDF_AAction::KeyStroke))
351 return TRUE; 351 return true;
352 352
353 CPDF_Action action = aAction.GetAction(CPDF_AAction::KeyStroke); 353 CPDF_Action action = aAction.GetAction(CPDF_AAction::KeyStroke);
354 if (!action.GetDict()) 354 if (!action.GetDict())
355 return TRUE; 355 return true;
356 356
357 CPDFSDK_ActionHandler* pActionHandler = m_pFormFillEnv->GetActionHander(); 357 CPDFSDK_ActionHandler* pActionHandler = m_pFormFillEnv->GetActionHander();
358 PDFSDK_FieldAction fa; 358 PDFSDK_FieldAction fa;
359 fa.bModifier = m_pFormFillEnv->IsCTRLKeyDown(0); 359 fa.bModifier = m_pFormFillEnv->IsCTRLKeyDown(0);
360 fa.bShift = m_pFormFillEnv->IsSHIFTKeyDown(0); 360 fa.bShift = m_pFormFillEnv->IsSHIFTKeyDown(0);
361 fa.sValue = csValue; 361 fa.sValue = csValue;
362 pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::KeyStroke, 362 pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::KeyStroke,
363 m_pFormFillEnv, pFormField, fa); 363 m_pFormFillEnv, pFormField, fa);
364 return fa.bRC; 364 return fa.bRC;
365 } 365 }
366 366
367 FX_BOOL CPDFSDK_InterForm::OnValidate(CPDF_FormField* pFormField, 367 bool CPDFSDK_InterForm::OnValidate(CPDF_FormField* pFormField,
368 const CFX_WideString& csValue) { 368 const CFX_WideString& csValue) {
369 CPDF_AAction aAction = pFormField->GetAdditionalAction(); 369 CPDF_AAction aAction = pFormField->GetAdditionalAction();
370 if (!aAction.GetDict() || !aAction.ActionExist(CPDF_AAction::Validate)) 370 if (!aAction.GetDict() || !aAction.ActionExist(CPDF_AAction::Validate))
371 return TRUE; 371 return true;
372 372
373 CPDF_Action action = aAction.GetAction(CPDF_AAction::Validate); 373 CPDF_Action action = aAction.GetAction(CPDF_AAction::Validate);
374 if (!action.GetDict()) 374 if (!action.GetDict())
375 return TRUE; 375 return true;
376 376
377 CPDFSDK_ActionHandler* pActionHandler = m_pFormFillEnv->GetActionHander(); 377 CPDFSDK_ActionHandler* pActionHandler = m_pFormFillEnv->GetActionHander();
378 PDFSDK_FieldAction fa; 378 PDFSDK_FieldAction fa;
379 fa.bModifier = m_pFormFillEnv->IsCTRLKeyDown(0); 379 fa.bModifier = m_pFormFillEnv->IsCTRLKeyDown(0);
380 fa.bShift = m_pFormFillEnv->IsSHIFTKeyDown(0); 380 fa.bShift = m_pFormFillEnv->IsSHIFTKeyDown(0);
381 fa.sValue = csValue; 381 fa.sValue = csValue;
382 pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::Validate, 382 pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::Validate,
383 m_pFormFillEnv, pFormField, fa); 383 m_pFormFillEnv, pFormField, fa);
384 return fa.bRC; 384 return fa.bRC;
385 } 385 }
386 386
387 FX_BOOL CPDFSDK_InterForm::DoAction_Hide(const CPDF_Action& action) { 387 bool CPDFSDK_InterForm::DoAction_Hide(const CPDF_Action& action) {
388 ASSERT(action.GetDict()); 388 ASSERT(action.GetDict());
389 389
390 CPDF_ActionFields af(&action); 390 CPDF_ActionFields af(&action);
391 std::vector<CPDF_Object*> fieldObjects = af.GetAllFields(); 391 std::vector<CPDF_Object*> fieldObjects = af.GetAllFields();
392 std::vector<CPDF_FormField*> fields = GetFieldFromObjects(fieldObjects); 392 std::vector<CPDF_FormField*> fields = GetFieldFromObjects(fieldObjects);
393 393
394 bool bHide = action.GetHideStatus(); 394 bool bHide = action.GetHideStatus();
395 FX_BOOL bChanged = FALSE; 395 bool bChanged = false;
396 396
397 for (CPDF_FormField* pField : fields) { 397 for (CPDF_FormField* pField : fields) {
398 for (int i = 0, sz = pField->CountControls(); i < sz; ++i) { 398 for (int i = 0, sz = pField->CountControls(); i < sz; ++i) {
399 CPDF_FormControl* pControl = pField->GetControl(i); 399 CPDF_FormControl* pControl = pField->GetControl(i);
400 ASSERT(pControl); 400 ASSERT(pControl);
401 401
402 if (CPDFSDK_Widget* pWidget = GetWidget(pControl, false)) { 402 if (CPDFSDK_Widget* pWidget = GetWidget(pControl, false)) {
403 uint32_t nFlags = pWidget->GetFlags(); 403 uint32_t nFlags = pWidget->GetFlags();
404 nFlags &= ~ANNOTFLAG_INVISIBLE; 404 nFlags &= ~ANNOTFLAG_INVISIBLE;
405 nFlags &= ~ANNOTFLAG_NOVIEW; 405 nFlags &= ~ANNOTFLAG_NOVIEW;
406 if (bHide) 406 if (bHide)
407 nFlags |= ANNOTFLAG_HIDDEN; 407 nFlags |= ANNOTFLAG_HIDDEN;
408 else 408 else
409 nFlags &= ~ANNOTFLAG_HIDDEN; 409 nFlags &= ~ANNOTFLAG_HIDDEN;
410 pWidget->SetFlags(nFlags); 410 pWidget->SetFlags(nFlags);
411 pWidget->GetPageView()->UpdateView(pWidget); 411 pWidget->GetPageView()->UpdateView(pWidget);
412 bChanged = TRUE; 412 bChanged = true;
413 } 413 }
414 } 414 }
415 } 415 }
416 416
417 return bChanged; 417 return bChanged;
418 } 418 }
419 419
420 FX_BOOL CPDFSDK_InterForm::DoAction_SubmitForm(const CPDF_Action& action) { 420 bool CPDFSDK_InterForm::DoAction_SubmitForm(const CPDF_Action& action) {
421 CFX_WideString sDestination = action.GetFilePath(); 421 CFX_WideString sDestination = action.GetFilePath();
422 if (sDestination.IsEmpty()) 422 if (sDestination.IsEmpty())
423 return FALSE; 423 return false;
424 424
425 CPDF_Dictionary* pActionDict = action.GetDict(); 425 CPDF_Dictionary* pActionDict = action.GetDict();
426 if (pActionDict->KeyExist("Fields")) { 426 if (pActionDict->KeyExist("Fields")) {
427 CPDF_ActionFields af(&action); 427 CPDF_ActionFields af(&action);
428 uint32_t dwFlags = action.GetFlags(); 428 uint32_t dwFlags = action.GetFlags();
429 std::vector<CPDF_Object*> fieldObjects = af.GetAllFields(); 429 std::vector<CPDF_Object*> fieldObjects = af.GetAllFields();
430 std::vector<CPDF_FormField*> fields = GetFieldFromObjects(fieldObjects); 430 std::vector<CPDF_FormField*> fields = GetFieldFromObjects(fieldObjects);
431 if (!fields.empty()) { 431 if (!fields.empty()) {
432 bool bIncludeOrExclude = !(dwFlags & 0x01); 432 bool bIncludeOrExclude = !(dwFlags & 0x01);
433 if (m_pInterForm->CheckRequiredFields(&fields, bIncludeOrExclude)) 433 if (m_pInterForm->CheckRequiredFields(&fields, bIncludeOrExclude))
434 return FALSE; 434 return false;
435 435
436 return SubmitFields(sDestination, fields, bIncludeOrExclude, false); 436 return SubmitFields(sDestination, fields, bIncludeOrExclude, false);
437 } 437 }
438 } 438 }
439 if (m_pInterForm->CheckRequiredFields(nullptr, true)) 439 if (m_pInterForm->CheckRequiredFields(nullptr, true))
440 return FALSE; 440 return false;
441 441
442 return SubmitForm(sDestination, FALSE); 442 return SubmitForm(sDestination, false);
443 } 443 }
444 444
445 FX_BOOL CPDFSDK_InterForm::SubmitFields( 445 bool CPDFSDK_InterForm::SubmitFields(const CFX_WideString& csDestination,
446 const CFX_WideString& csDestination, 446 const std::vector<CPDF_FormField*>& fields,
447 const std::vector<CPDF_FormField*>& fields, 447 bool bIncludeOrExclude,
448 bool bIncludeOrExclude, 448 bool bUrlEncoded) {
449 bool bUrlEncoded) {
450 CFX_ByteTextBuf textBuf; 449 CFX_ByteTextBuf textBuf;
451 ExportFieldsToFDFTextBuf(fields, bIncludeOrExclude, textBuf); 450 ExportFieldsToFDFTextBuf(fields, bIncludeOrExclude, textBuf);
452 451
453 uint8_t* pBuffer = textBuf.GetBuffer(); 452 uint8_t* pBuffer = textBuf.GetBuffer();
454 FX_STRSIZE nBufSize = textBuf.GetLength(); 453 FX_STRSIZE nBufSize = textBuf.GetLength();
455 454
456 if (bUrlEncoded && !FDFToURLEncodedData(pBuffer, nBufSize)) 455 if (bUrlEncoded && !FDFToURLEncodedData(pBuffer, nBufSize))
457 return FALSE; 456 return false;
458 457
459 m_pFormFillEnv->JS_docSubmitForm(pBuffer, nBufSize, csDestination.c_str()); 458 m_pFormFillEnv->JS_docSubmitForm(pBuffer, nBufSize, csDestination.c_str());
460 return TRUE; 459 return true;
461 } 460 }
462 461
463 FX_BOOL CPDFSDK_InterForm::FDFToURLEncodedData(CFX_WideString csFDFFile, 462 bool CPDFSDK_InterForm::FDFToURLEncodedData(CFX_WideString csFDFFile,
464 CFX_WideString csTxtFile) { 463 CFX_WideString csTxtFile) {
465 return TRUE; 464 return true;
466 } 465 }
467 466
468 FX_BOOL CPDFSDK_InterForm::FDFToURLEncodedData(uint8_t*& pBuf, 467 bool CPDFSDK_InterForm::FDFToURLEncodedData(uint8_t*& pBuf,
469 FX_STRSIZE& nBufSize) { 468 FX_STRSIZE& nBufSize) {
470 CFDF_Document* pFDF = CFDF_Document::ParseMemory(pBuf, nBufSize); 469 CFDF_Document* pFDF = CFDF_Document::ParseMemory(pBuf, nBufSize);
471 if (!pFDF) 470 if (!pFDF)
472 return TRUE; 471 return true;
473 472
474 CPDF_Dictionary* pMainDict = pFDF->GetRoot()->GetDictFor("FDF"); 473 CPDF_Dictionary* pMainDict = pFDF->GetRoot()->GetDictFor("FDF");
475 if (!pMainDict) 474 if (!pMainDict)
476 return FALSE; 475 return false;
477 476
478 CPDF_Array* pFields = pMainDict->GetArrayFor("Fields"); 477 CPDF_Array* pFields = pMainDict->GetArrayFor("Fields");
479 if (!pFields) 478 if (!pFields)
480 return FALSE; 479 return false;
481 480
482 CFX_ByteTextBuf fdfEncodedData; 481 CFX_ByteTextBuf fdfEncodedData;
483 for (uint32_t i = 0; i < pFields->GetCount(); i++) { 482 for (uint32_t i = 0; i < pFields->GetCount(); i++) {
484 CPDF_Dictionary* pField = pFields->GetDictAt(i); 483 CPDF_Dictionary* pField = pFields->GetDictAt(i);
485 if (!pField) 484 if (!pField)
486 continue; 485 continue;
487 CFX_WideString name; 486 CFX_WideString name;
488 name = pField->GetUnicodeTextFor("T"); 487 name = pField->GetUnicodeTextFor("T");
489 CFX_ByteString name_b = CFX_ByteString::FromUnicode(name); 488 CFX_ByteString name_b = CFX_ByteString::FromUnicode(name);
490 CFX_ByteString csBValue = pField->GetStringFor("V"); 489 CFX_ByteString csBValue = pField->GetStringFor("V");
491 CFX_WideString csWValue = PDF_DecodeText(csBValue); 490 CFX_WideString csWValue = PDF_DecodeText(csBValue);
492 CFX_ByteString csValue_b = CFX_ByteString::FromUnicode(csWValue); 491 CFX_ByteString csValue_b = CFX_ByteString::FromUnicode(csWValue);
493 492
494 fdfEncodedData << name_b.GetBuffer(name_b.GetLength()); 493 fdfEncodedData << name_b.GetBuffer(name_b.GetLength());
495 name_b.ReleaseBuffer(); 494 name_b.ReleaseBuffer();
496 fdfEncodedData << "="; 495 fdfEncodedData << "=";
497 fdfEncodedData << csValue_b.GetBuffer(csValue_b.GetLength()); 496 fdfEncodedData << csValue_b.GetBuffer(csValue_b.GetLength());
498 csValue_b.ReleaseBuffer(); 497 csValue_b.ReleaseBuffer();
499 if (i != pFields->GetCount() - 1) 498 if (i != pFields->GetCount() - 1)
500 fdfEncodedData << "&"; 499 fdfEncodedData << "&";
501 } 500 }
502 501
503 nBufSize = fdfEncodedData.GetLength(); 502 nBufSize = fdfEncodedData.GetLength();
504 pBuf = FX_Alloc(uint8_t, nBufSize); 503 pBuf = FX_Alloc(uint8_t, nBufSize);
505 FXSYS_memcpy(pBuf, fdfEncodedData.GetBuffer(), nBufSize); 504 FXSYS_memcpy(pBuf, fdfEncodedData.GetBuffer(), nBufSize);
506 return TRUE; 505 return true;
507 } 506 }
508 507
509 FX_BOOL CPDFSDK_InterForm::ExportFieldsToFDFTextBuf( 508 bool CPDFSDK_InterForm::ExportFieldsToFDFTextBuf(
510 const std::vector<CPDF_FormField*>& fields, 509 const std::vector<CPDF_FormField*>& fields,
511 bool bIncludeOrExclude, 510 bool bIncludeOrExclude,
512 CFX_ByteTextBuf& textBuf) { 511 CFX_ByteTextBuf& textBuf) {
513 std::unique_ptr<CFDF_Document> pFDF( 512 std::unique_ptr<CFDF_Document> pFDF(
514 m_pInterForm->ExportToFDF(m_pFormFillEnv->JS_docGetFilePath().AsStringC(), 513 m_pInterForm->ExportToFDF(m_pFormFillEnv->JS_docGetFilePath().AsStringC(),
515 fields, bIncludeOrExclude, false)); 514 fields, bIncludeOrExclude, false));
516 return pFDF ? pFDF->WriteBuf(textBuf) : FALSE; 515 return pFDF ? pFDF->WriteBuf(textBuf) : false;
517 } 516 }
518 517
519 CFX_WideString CPDFSDK_InterForm::GetTemporaryFileName( 518 CFX_WideString CPDFSDK_InterForm::GetTemporaryFileName(
520 const CFX_WideString& sFileExt) { 519 const CFX_WideString& sFileExt) {
521 return L""; 520 return L"";
522 } 521 }
523 522
524 FX_BOOL CPDFSDK_InterForm::SubmitForm(const CFX_WideString& sDestination, 523 bool CPDFSDK_InterForm::SubmitForm(const CFX_WideString& sDestination,
525 FX_BOOL bUrlEncoded) { 524 bool bUrlEncoded) {
526 if (sDestination.IsEmpty()) 525 if (sDestination.IsEmpty())
527 return FALSE; 526 return false;
528 527
529 if (!m_pFormFillEnv || !m_pInterForm) 528 if (!m_pFormFillEnv || !m_pInterForm)
530 return FALSE; 529 return false;
531 530
532 CFX_WideString wsPDFFilePath = m_pFormFillEnv->JS_docGetFilePath(); 531 CFX_WideString wsPDFFilePath = m_pFormFillEnv->JS_docGetFilePath();
533 CFDF_Document* pFDFDoc = 532 CFDF_Document* pFDFDoc =
534 m_pInterForm->ExportToFDF(wsPDFFilePath.AsStringC(), false); 533 m_pInterForm->ExportToFDF(wsPDFFilePath.AsStringC(), false);
535 if (!pFDFDoc) 534 if (!pFDFDoc)
536 return FALSE; 535 return false;
537 536
538 CFX_ByteTextBuf FdfBuffer; 537 CFX_ByteTextBuf FdfBuffer;
539 FX_BOOL bRet = pFDFDoc->WriteBuf(FdfBuffer); 538 bool bRet = pFDFDoc->WriteBuf(FdfBuffer);
540 delete pFDFDoc; 539 delete pFDFDoc;
541 if (!bRet) 540 if (!bRet)
542 return FALSE; 541 return false;
543 542
544 uint8_t* pBuffer = FdfBuffer.GetBuffer(); 543 uint8_t* pBuffer = FdfBuffer.GetBuffer();
545 FX_STRSIZE nBufSize = FdfBuffer.GetLength(); 544 FX_STRSIZE nBufSize = FdfBuffer.GetLength();
546 545
547 if (bUrlEncoded && !FDFToURLEncodedData(pBuffer, nBufSize)) 546 if (bUrlEncoded && !FDFToURLEncodedData(pBuffer, nBufSize))
548 return FALSE; 547 return false;
549 548
550 m_pFormFillEnv->JS_docSubmitForm(pBuffer, nBufSize, sDestination.c_str()); 549 m_pFormFillEnv->JS_docSubmitForm(pBuffer, nBufSize, sDestination.c_str());
551 550
552 if (bUrlEncoded) 551 if (bUrlEncoded)
553 FX_Free(pBuffer); 552 FX_Free(pBuffer);
554 553
555 return TRUE; 554 return true;
556 } 555 }
557 556
558 FX_BOOL CPDFSDK_InterForm::ExportFormToFDFTextBuf(CFX_ByteTextBuf& textBuf) { 557 bool CPDFSDK_InterForm::ExportFormToFDFTextBuf(CFX_ByteTextBuf& textBuf) {
559 CFDF_Document* pFDF = m_pInterForm->ExportToFDF( 558 CFDF_Document* pFDF = m_pInterForm->ExportToFDF(
560 m_pFormFillEnv->JS_docGetFilePath().AsStringC(), false); 559 m_pFormFillEnv->JS_docGetFilePath().AsStringC(), false);
561 if (!pFDF) 560 if (!pFDF)
562 return FALSE; 561 return false;
563 562
564 FX_BOOL bRet = pFDF->WriteBuf(textBuf); 563 bool bRet = pFDF->WriteBuf(textBuf);
565 delete pFDF; 564 delete pFDF;
566 565
567 return bRet; 566 return bRet;
568 } 567 }
569 568
570 FX_BOOL CPDFSDK_InterForm::DoAction_ResetForm(const CPDF_Action& action) { 569 bool CPDFSDK_InterForm::DoAction_ResetForm(const CPDF_Action& action) {
571 ASSERT(action.GetDict()); 570 ASSERT(action.GetDict());
572 571
573 CPDF_Dictionary* pActionDict = action.GetDict(); 572 CPDF_Dictionary* pActionDict = action.GetDict();
574 if (!pActionDict->KeyExist("Fields")) 573 if (!pActionDict->KeyExist("Fields"))
575 return m_pInterForm->ResetForm(true); 574 return m_pInterForm->ResetForm(true);
576 575
577 CPDF_ActionFields af(&action); 576 CPDF_ActionFields af(&action);
578 uint32_t dwFlags = action.GetFlags(); 577 uint32_t dwFlags = action.GetFlags();
579 578
580 std::vector<CPDF_Object*> fieldObjects = af.GetAllFields(); 579 std::vector<CPDF_Object*> fieldObjects = af.GetAllFields();
581 std::vector<CPDF_FormField*> fields = GetFieldFromObjects(fieldObjects); 580 std::vector<CPDF_FormField*> fields = GetFieldFromObjects(fieldObjects);
582 return m_pInterForm->ResetForm(fields, !(dwFlags & 0x01), true); 581 return m_pInterForm->ResetForm(fields, !(dwFlags & 0x01), true);
583 } 582 }
584 583
585 FX_BOOL CPDFSDK_InterForm::DoAction_ImportData(const CPDF_Action& action) { 584 bool CPDFSDK_InterForm::DoAction_ImportData(const CPDF_Action& action) {
586 return FALSE; 585 return false;
587 } 586 }
588 587
589 std::vector<CPDF_FormField*> CPDFSDK_InterForm::GetFieldFromObjects( 588 std::vector<CPDF_FormField*> CPDFSDK_InterForm::GetFieldFromObjects(
590 const std::vector<CPDF_Object*>& objects) const { 589 const std::vector<CPDF_Object*>& objects) const {
591 std::vector<CPDF_FormField*> fields; 590 std::vector<CPDF_FormField*> fields;
592 for (CPDF_Object* pObject : objects) { 591 for (CPDF_Object* pObject : objects) {
593 if (pObject && pObject->IsString()) { 592 if (pObject && pObject->IsString()) {
594 CFX_WideString csName = pObject->GetUnicodeText(); 593 CFX_WideString csName = pObject->GetUnicodeText();
595 CPDF_FormField* pField = m_pInterForm->GetField(0, csName); 594 CPDF_FormField* pField = m_pInterForm->GetField(0, csName);
596 if (pField) 595 if (pField)
(...skipping 13 matching lines...) Expand all
610 return -1; 609 return -1;
611 610
612 if (!OnValidate(pField, csValue)) 611 if (!OnValidate(pField, csValue))
613 return -1; 612 return -1;
614 613
615 return 1; 614 return 1;
616 } 615 }
617 616
618 void CPDFSDK_InterForm::AfterValueChange(CPDF_FormField* pField) { 617 void CPDFSDK_InterForm::AfterValueChange(CPDF_FormField* pField) {
619 #ifdef PDF_ENABLE_XFA 618 #ifdef PDF_ENABLE_XFA
620 SynchronizeField(pField, FALSE); 619 SynchronizeField(pField, false);
621 #endif // PDF_ENABLE_XFA 620 #endif // PDF_ENABLE_XFA
622 int nType = pField->GetFieldType(); 621 int nType = pField->GetFieldType();
623 if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD) { 622 if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD) {
624 OnCalculate(pField); 623 OnCalculate(pField);
625 FX_BOOL bFormatted = FALSE; 624 bool bFormatted = false;
626 CFX_WideString sValue = OnFormat(pField, bFormatted); 625 CFX_WideString sValue = OnFormat(pField, bFormatted);
627 ResetFieldAppearance(pField, bFormatted ? &sValue : nullptr, TRUE); 626 ResetFieldAppearance(pField, bFormatted ? &sValue : nullptr, true);
628 UpdateField(pField); 627 UpdateField(pField);
629 } 628 }
630 } 629 }
631 630
632 int CPDFSDK_InterForm::BeforeSelectionChange(CPDF_FormField* pField, 631 int CPDFSDK_InterForm::BeforeSelectionChange(CPDF_FormField* pField,
633 const CFX_WideString& csValue) { 632 const CFX_WideString& csValue) {
634 if (pField->GetFieldType() != FIELDTYPE_LISTBOX) 633 if (pField->GetFieldType() != FIELDTYPE_LISTBOX)
635 return 0; 634 return 0;
636 635
637 if (!OnKeyStrokeCommit(pField, csValue)) 636 if (!OnKeyStrokeCommit(pField, csValue))
638 return -1; 637 return -1;
639 638
640 if (!OnValidate(pField, csValue)) 639 if (!OnValidate(pField, csValue))
641 return -1; 640 return -1;
642 641
643 return 1; 642 return 1;
644 } 643 }
645 644
646 void CPDFSDK_InterForm::AfterSelectionChange(CPDF_FormField* pField) { 645 void CPDFSDK_InterForm::AfterSelectionChange(CPDF_FormField* pField) {
647 if (pField->GetFieldType() != FIELDTYPE_LISTBOX) 646 if (pField->GetFieldType() != FIELDTYPE_LISTBOX)
648 return; 647 return;
649 648
650 OnCalculate(pField); 649 OnCalculate(pField);
651 ResetFieldAppearance(pField, nullptr, TRUE); 650 ResetFieldAppearance(pField, nullptr, true);
652 UpdateField(pField); 651 UpdateField(pField);
653 } 652 }
654 653
655 void CPDFSDK_InterForm::AfterCheckedStatusChange(CPDF_FormField* pField) { 654 void CPDFSDK_InterForm::AfterCheckedStatusChange(CPDF_FormField* pField) {
656 int nType = pField->GetFieldType(); 655 int nType = pField->GetFieldType();
657 if (nType != FIELDTYPE_CHECKBOX && nType != FIELDTYPE_RADIOBUTTON) 656 if (nType != FIELDTYPE_CHECKBOX && nType != FIELDTYPE_RADIOBUTTON)
658 return; 657 return;
659 658
660 OnCalculate(pField); 659 OnCalculate(pField);
661 UpdateField(pField); 660 UpdateField(pField);
662 } 661 }
663 662
664 int CPDFSDK_InterForm::BeforeFormReset(CPDF_InterForm* pForm) { 663 int CPDFSDK_InterForm::BeforeFormReset(CPDF_InterForm* pForm) {
665 return 0; 664 return 0;
666 } 665 }
667 666
668 void CPDFSDK_InterForm::AfterFormReset(CPDF_InterForm* pForm) { 667 void CPDFSDK_InterForm::AfterFormReset(CPDF_InterForm* pForm) {
669 OnCalculate(nullptr); 668 OnCalculate(nullptr);
670 } 669 }
671 670
672 int CPDFSDK_InterForm::BeforeFormImportData(CPDF_InterForm* pForm) { 671 int CPDFSDK_InterForm::BeforeFormImportData(CPDF_InterForm* pForm) {
673 return 0; 672 return 0;
674 } 673 }
675 674
676 void CPDFSDK_InterForm::AfterFormImportData(CPDF_InterForm* pForm) { 675 void CPDFSDK_InterForm::AfterFormImportData(CPDF_InterForm* pForm) {
677 OnCalculate(nullptr); 676 OnCalculate(nullptr);
678 } 677 }
679 678
680 FX_BOOL CPDFSDK_InterForm::IsNeedHighLight(int nFieldType) { 679 bool CPDFSDK_InterForm::IsNeedHighLight(int nFieldType) {
681 if (nFieldType < 1 || nFieldType > kNumFieldTypes) 680 if (nFieldType < 1 || nFieldType > kNumFieldTypes)
682 return FALSE; 681 return false;
683 return m_bNeedHightlight[nFieldType - 1]; 682 return m_bNeedHightlight[nFieldType - 1];
684 } 683 }
685 684
686 void CPDFSDK_InterForm::RemoveAllHighLight() { 685 void CPDFSDK_InterForm::RemoveAllHighLight() {
687 for (int i = 0; i < kNumFieldTypes; ++i) 686 for (int i = 0; i < kNumFieldTypes; ++i)
688 m_bNeedHightlight[i] = FALSE; 687 m_bNeedHightlight[i] = false;
689 } 688 }
690 689
691 void CPDFSDK_InterForm::SetHighlightColor(FX_COLORREF clr, int nFieldType) { 690 void CPDFSDK_InterForm::SetHighlightColor(FX_COLORREF clr, int nFieldType) {
692 if (nFieldType < 0 || nFieldType > kNumFieldTypes) 691 if (nFieldType < 0 || nFieldType > kNumFieldTypes)
693 return; 692 return;
694 switch (nFieldType) { 693 switch (nFieldType) {
695 case 0: { 694 case 0: {
696 for (int i = 0; i < kNumFieldTypes; ++i) { 695 for (int i = 0; i < kNumFieldTypes; ++i) {
697 m_aHighlightColor[i] = clr; 696 m_aHighlightColor[i] = clr;
698 m_bNeedHightlight[i] = TRUE; 697 m_bNeedHightlight[i] = true;
699 } 698 }
700 break; 699 break;
701 } 700 }
702 default: { 701 default: {
703 m_aHighlightColor[nFieldType - 1] = clr; 702 m_aHighlightColor[nFieldType - 1] = clr;
704 m_bNeedHightlight[nFieldType - 1] = TRUE; 703 m_bNeedHightlight[nFieldType - 1] = true;
705 break; 704 break;
706 } 705 }
707 } 706 }
708 } 707 }
709 708
710 FX_COLORREF CPDFSDK_InterForm::GetHighlightColor(int nFieldType) { 709 FX_COLORREF CPDFSDK_InterForm::GetHighlightColor(int nFieldType) {
711 if (nFieldType < 0 || nFieldType > kNumFieldTypes) 710 if (nFieldType < 0 || nFieldType > kNumFieldTypes)
712 return FXSYS_RGB(255, 255, 255); 711 return FXSYS_RGB(255, 255, 255);
713 if (nFieldType == 0) 712 if (nFieldType == 0)
714 return m_aHighlightColor[0]; 713 return m_aHighlightColor[0];
715 return m_aHighlightColor[nFieldType - 1]; 714 return m_aHighlightColor[nFieldType - 1];
716 } 715 }
OLDNEW
« no previous file with comments | « fpdfsdk/cpdfsdk_interform.h ('k') | fpdfsdk/cpdfsdk_pageview.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698