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

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

Issue 1239313005: Merge to XFA - else after returns. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years, 5 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
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/fpdfxfa/fpdfxfa_doc.h" 8 #include "../include/fpdfxfa/fpdfxfa_doc.h"
9 #include "../include/fpdfxfa/fpdfxfa_util.h" 9 #include "../include/fpdfxfa/fpdfxfa_util.h"
10 #include "../include/fsdk_mgr.h" 10 #include "../include/fsdk_mgr.h"
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 302
303 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag) 303 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag)
304 { 304 {
305 ASSERT(pAnnot != NULL); 305 ASSERT(pAnnot != NULL);
306 306
307 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) 307 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
308 { 308 {
309 if (pAnnotHandler->OnSetFocus(pAnnot, nFlag)) 309 if (pAnnotHandler->OnSetFocus(pAnnot, nFlag))
310 { 310 {
311 CPDFSDK_PageView* pPage = pAnnot->GetPageView(); 311 CPDFSDK_PageView* pPage = pAnnot->GetPageView();
312 ASSERT(pPage != NULL);
313
314 pPage->GetSDKDocument(); 312 pPage->GetSDKDocument();
315 // pDocument->SetTopmostAnnot(pAnnot);
316
317 return TRUE; 313 return TRUE;
318 } 314 }
319 else
320 {
321 return FALSE;
322 }
323 } 315 }
324
325 return FALSE; 316 return FALSE;
326 } 317 }
327 318
328 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKillFocus(CPDFSDK_Annot* pAnnot , FX_DWORD nFlag) 319 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnKillFocus(CPDFSDK_Annot* pAnnot , FX_DWORD nFlag)
329 { 320 {
330 ASSERT(pAnnot != NULL); 321 ASSERT(pAnnot);
331
332 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) 322 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
333 { 323 return pAnnotHandler->OnKillFocus(pAnnot, nFlag);
334 if (pAnnotHandler->OnKillFocus(pAnnot, nFlag))
335 {
336 return TRUE;
337 }
338 else
339 return FALSE;
340 }
341 324
342 return FALSE; 325 return FALSE;
343 } 326 }
344 327
345 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnChangeFocus(CPDFSDK_Annot* pSetAnnot,CP DFSDK_Annot* pKillAnnot) 328 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnChangeFocus(CPDFSDK_Annot* pSetAnnot,CP DFSDK_Annot* pKillAnnot)
346 { 329 {
347 FX_BOOL bXFA = (pSetAnnot && pSetAnnot->GetXFAWidget()) || 330 FX_BOOL bXFA = (pSetAnnot && pSetAnnot->GetXFAWidget()) ||
348 (pKillAnnot && pKillAnnot->GetXFAWidget()); 331 (pKillAnnot && pKillAnnot->GetXFAWidget());
349 332
350 if (bXFA) 333 if (bXFA)
351 { 334 {
352 if (IPDFSDK_AnnotHandler* pXFAAnnotHandler = GetAnnotHandler(FSDK_XFAWID GET_TYPENAME)) 335 if (IPDFSDK_AnnotHandler* pXFAAnnotHandler = GetAnnotHandler(FSDK_XFAWID GET_TYPENAME))
353 return pXFAAnnotHandler->OnXFAChangedFocus(pKillAnnot, pSetAnnot); 336 return pXFAAnnotHandler->OnXFAChangedFocus(pKillAnnot, pSetAnnot);
354 } 337 }
355 338
356 return TRUE; 339 return TRUE;
357 } 340 }
358 341
359 CPDF_Rect CPDFSDK_AnnotHandlerMgr::Annot_OnGetViewBBox(CPDFSDK_PageView *pPage View, CPDFSDK_Annot* pAnnot) 342 CPDF_Rect CPDFSDK_AnnotHandlerMgr::Annot_OnGetViewBBox(CPDFSDK_PageView *pPage View, CPDFSDK_Annot* pAnnot)
360 { 343 {
361 ASSERT(pAnnot); 344 ASSERT(pAnnot);
362 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) 345 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
363 {
364 return pAnnotHandler->GetViewBBox(pPageView, pAnnot); 346 return pAnnotHandler->GetViewBBox(pPageView, pAnnot);
365 } 347
366 return pAnnot->GetRect(); 348 return pAnnot->GetRect();
367 } 349 }
368 350
369 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnHitTest(CPDFSDK_PageView *pPageView, CP DFSDK_Annot* pAnnot, const CPDF_Point& point) 351 FX_BOOL CPDFSDK_AnnotHandlerMgr::Annot_OnHitTest(CPDFSDK_PageView *pPageView, CP DFSDK_Annot* pAnnot, const CPDF_Point& point)
370 { 352 {
371 ASSERT(pAnnot); 353 ASSERT(pAnnot);
372 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) 354 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot))
373 { 355 {
374 if(pAnnotHandler->CanAnswer(pAnnot)) 356 if (pAnnotHandler->CanAnswer(pAnnot))
375 return pAnnotHandler->HitTest(pPageView, pAnnot, point); 357 return pAnnotHandler->HitTest(pPageView, pAnnot, point);
376 } 358 }
377 return FALSE; 359 return FALSE;
378 } 360 }
379 361
380 CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::GetNextAnnot(CPDFSDK_Annot* pSDKAnnot,F X_BOOL bNext) 362 CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::GetNextAnnot(CPDFSDK_Annot* pSDKAnnot,F X_BOOL bNext)
381 { 363 {
382 CPDFSDK_PageView* pPageView = pSDKAnnot->GetPageView(); 364 CPDFSDK_PageView* pPageView = pSDKAnnot->GetPageView();
383 CPDFXFA_Page* pPage = pPageView->GetPDFXFAPage(); 365 CPDFXFA_Page* pPage = pPageView->GetPDFXFAPage();
384 if (pPage == NULL) 366 if (pPage == NULL)
(...skipping 15 matching lines...) Expand all
400 hNextFocus = bNext?pWidgetIterator->MoveToNext():pWidgetIterator->MoveToPrev ious(); 382 hNextFocus = bNext?pWidgetIterator->MoveToNext():pWidgetIterator->MoveToPrev ious();
401 if (hNextFocus == NULL && pSDKAnnot != NULL) 383 if (hNextFocus == NULL && pSDKAnnot != NULL)
402 hNextFocus = pWidgetIterator->MoveToFirst(); 384 hNextFocus = pWidgetIterator->MoveToFirst();
403 385
404 pWidgetIterator->Release(); 386 pWidgetIterator->Release();
405 return pPageView->GetAnnotByXFAWidget(hNextFocus); 387 return pPageView->GetAnnotByXFAWidget(hNextFocus);
406 } 388 }
407 389
408 FX_BOOL CPDFSDK_BFAnnotHandler::CanAnswer(CPDFSDK_Annot* pAnnot) 390 FX_BOOL CPDFSDK_BFAnnotHandler::CanAnswer(CPDFSDK_Annot* pAnnot)
409 { 391 {
410 ASSERT(pAnnot);
411 ASSERT(pAnnot->GetType() == "Widget"); 392 ASSERT(pAnnot->GetType() == "Widget");
412 CFX_ByteString sSubType = pAnnot->GetSubType(); 393 if (pAnnot->GetSubType() == BFFT_SIGNATURE)
394 return FALSE;
413 395
414 if (sSubType == BFFT_SIGNATURE) 396 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
415 { 397 if (!pWidget->IsVisible())
416 } 398 return FALSE;
417 else
418 {
419 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
420 if (!pWidget->IsVisible()) return FALSE;
421 399
422 int nFieldFlags = pWidget->GetFieldFlags(); 400 int nFieldFlags = pWidget->GetFieldFlags();
423 if ((nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY) return FAL SE; 401 if ((nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY)
424 if (pWidget->GetFieldType() == FIELDTYPE_PUSHBUTTON) 402 return FALSE;
425 return TRUE;
426 else
427 {
428 CPDF_Page* pPage = pWidget->GetPDFPage();
429 ASSERT(pPage != NULL);
430 403
431 CPDF_Document* pDocument = pPage->m_pDocument; 404 if (pWidget->GetFieldType() == FIELDTYPE_PUSHBUTTON)
432 ASSERT(pDocument != NULL); 405 return TRUE;
433 406
434 FX_DWORD dwPermissions = pDocument->GetUserPermissions(); 407 CPDF_Page* pPage = pWidget->GetPDFPage();
435 return (dwPermissions&FPDFPERM_FILL_FORM) || 408 CPDF_Document* pDocument = pPage->m_pDocument;
436 (dwPermissions&FPDFPERM_ANNOT_FORM) || 409 FX_DWORD dwPermissions = pDocument->GetUserPermissions();
437 (dwPermissions&FPDFPERM_ANNOT_FORM); 410 return (dwPermissions & FPDFPERM_FILL_FORM) ||
438 } 411 (dwPermissions & FPDFPERM_ANNOT_FORM);
439 }
440
441 return FALSE;
442 } 412 }
443 413
444 CPDFSDK_Annot* CPDFSDK_BFAnnotHandler::NewAnnot(CPDF_Annot* pAnnot, CPDFSDK_Page View* pPage) 414 CPDFSDK_Annot* CPDFSDK_BFAnnotHandler::NewAnnot(CPDF_Annot* pAnnot, CPDFSDK_Page View* pPage)
445 { 415 {
446 CPDFSDK_Document* pSDKDoc = m_pApp->GetSDKDocument(); 416 CPDFSDK_Document* pSDKDoc = m_pApp->GetSDKDocument();
447 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pSDKDoc->GetInterForm(); 417 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pSDKDoc->GetInterForm();
448 CPDF_FormControl* pCtrl = CPDFSDK_Widget::GetFormControl(pInterForm->GetInte rForm(), pAnnot->GetAnnotDict()); 418 CPDF_FormControl* pCtrl = CPDFSDK_Widget::GetFormControl(pInterForm->GetInte rForm(), pAnnot->GetAnnotDict());
449 if (!pCtrl) 419 if (!pCtrl)
450 return nullptr; 420 return nullptr;
451 421
(...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after
1331 arrayList[j + 1] = arrayList[j]; 1301 arrayList[j + 1] = arrayList[j];
1332 } while (--j >= 0 && pCompare(pTemp, (CPDFSDK_Annot*)arrayList[j]) < 0); 1302 } while (--j >= 0 && pCompare(pTemp, (CPDFSDK_Annot*)arrayList[j]) < 0);
1333 1303
1334 arrayList[j+1] = pTemp; 1304 arrayList[j+1] = pTemp;
1335 } 1305 }
1336 } 1306 }
1337 } 1307 }
1338 1308
1339 int LyOrderCompare(CPDFSDK_Annot* p1, CPDFSDK_Annot* p2) 1309 int LyOrderCompare(CPDFSDK_Annot* p1, CPDFSDK_Annot* p2)
1340 { 1310 {
1341 if(p1->GetLayoutOrder() < p2->GetLayoutOrder()) 1311 if (p1->GetLayoutOrder() < p2->GetLayoutOrder())
1342 return -1; 1312 return -1;
1343 else if (p1->GetLayoutOrder() == p2->GetLayoutOrder()) 1313 if (p1->GetLayoutOrder() > p2->GetLayoutOrder())
1344 return 0;
1345 else
1346 return 1; 1314 return 1;
1315 return 0;
1347 } 1316 }
1348 1317
1349 FX_BOOL CPDFSDK_AnnotIterator::InitIteratorAnnotList(CPDFSDK_PageView* pPageView ,CFX_PtrArray * pAnnotList) 1318 FX_BOOL CPDFSDK_AnnotIterator::InitIteratorAnnotList(CPDFSDK_PageView* pPageView ,CFX_PtrArray * pAnnotList)
1350 { 1319 {
1351 ASSERT(pPageView); 1320 ASSERT(pPageView);
1352 1321
1353 if(pAnnotList==NULL){ 1322 if(pAnnotList==NULL){
1354 pAnnotList=pPageView->GetAnnotList(); 1323 pAnnotList=pPageView->GetAnnotList();
1355 } 1324 }
1356 1325
(...skipping 22 matching lines...) Expand all
1379 { 1348 {
1380 m_pIteratorAnnotList.RemoveAt(i); 1349 m_pIteratorAnnotList.RemoveAt(i);
1381 m_pIteratorAnnotList.InsertAt(0, pReaderAnnot); 1350 m_pIteratorAnnotList.InsertAt(0, pReaderAnnot);
1382 break; 1351 break;
1383 } 1352 }
1384 } 1353 }
1385 } 1354 }
1386 1355
1387 return TRUE; 1356 return TRUE;
1388 } 1357 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698