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 "../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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 ASSERT(pPageView != NULL); | 67 ASSERT(pPageView != NULL); |
68 | 68 |
69 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot->GetSub
Type())) | 69 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot->GetSub
Type())) |
70 { | 70 { |
71 return pAnnotHandler->NewAnnot(pAnnot, pPageView); | 71 return pAnnotHandler->NewAnnot(pAnnot, pPageView); |
72 } | 72 } |
73 | 73 |
74 return new CPDFSDK_BAAnnot(pAnnot, pPageView); | 74 return new CPDFSDK_BAAnnot(pAnnot, pPageView); |
75 } | 75 } |
76 | 76 |
77 CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::NewAnnot(XFA_HWIDGET pAnnot, CPDFSDK_Pag
eView* pPageView) | 77 CPDFSDK_Annot* CPDFSDK_AnnotHandlerMgr::NewAnnot(IXFA_Widget* pAnnot, CPDFSDK_Pa
geView* pPageView) |
78 { | 78 { |
79 ASSERT(pAnnot != NULL); | 79 ASSERT(pAnnot != NULL); |
80 ASSERT(pPageView != NULL); | 80 ASSERT(pPageView != NULL); |
81 | 81 |
82 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(FSDK_XFAWIDGET
_TYPENAME)) | 82 if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(FSDK_XFAWIDGET
_TYPENAME)) |
83 { | 83 { |
84 return pAnnotHandler->NewAnnot(pAnnot, pPageView); | 84 return pAnnotHandler->NewAnnot(pAnnot, pPageView); |
85 } | 85 } |
86 | 86 |
87 return NULL; | 87 return NULL; |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
391 ai.GetNextAnnot(pSDKAnnot) : | 391 ai.GetNextAnnot(pSDKAnnot) : |
392 ai.GetPrevAnnot(pSDKAnnot); | 392 ai.GetPrevAnnot(pSDKAnnot); |
393 return pNext; | 393 return pNext; |
394 } | 394 } |
395 // for xfa annots | 395 // for xfa annots |
396 IXFA_WidgetIterator* pWidgetIterator = pPage->GetXFAPageView()->CreateWi
dgetIterator(XFA_TRAVERSEWAY_Tranvalse, XFA_WIDGETFILTER_Visible | XFA_WIDGETFIL
TER_Viewable | XFA_WIDGETFILTER_Field); | 396 IXFA_WidgetIterator* pWidgetIterator = pPage->GetXFAPageView()->CreateWi
dgetIterator(XFA_TRAVERSEWAY_Tranvalse, XFA_WIDGETFILTER_Visible | XFA_WIDGETFIL
TER_Viewable | XFA_WIDGETFILTER_Field); |
397 if (pWidgetIterator == NULL) | 397 if (pWidgetIterator == NULL) |
398 return NULL; | 398 return NULL; |
399 if (pWidgetIterator->GetCurrentWidget() != pSDKAnnot->GetXFAWidget()) | 399 if (pWidgetIterator->GetCurrentWidget() != pSDKAnnot->GetXFAWidget()) |
400 pWidgetIterator->SetCurrentWidget(pSDKAnnot->GetXFAWidget()); | 400 pWidgetIterator->SetCurrentWidget(pSDKAnnot->GetXFAWidget()); |
401 » XFA_HWIDGET hNextFocus = NULL; | 401 » IXFA_Widget* hNextFocus = NULL; |
402 hNextFocus = bNext?pWidgetIterator->MoveToNext():pWidgetIterator->MoveTo
Previous(); | 402 hNextFocus = bNext?pWidgetIterator->MoveToNext():pWidgetIterator->MoveTo
Previous(); |
403 if (hNextFocus == NULL && pSDKAnnot != NULL) | 403 if (hNextFocus == NULL && pSDKAnnot != NULL) |
404 hNextFocus = pWidgetIterator->MoveToFirst(); | 404 hNextFocus = pWidgetIterator->MoveToFirst(); |
405 | 405 |
406 pWidgetIterator->Release(); | 406 pWidgetIterator->Release(); |
407 return pPageView->GetAnnotByXFAWidget(hNextFocus); | 407 return pPageView->GetAnnotByXFAWidget(hNextFocus); |
408 } | 408 } |
409 | 409 |
410 FX_BOOL CPDFSDK_BFAnnotHandler::CanAnswer(CPDFSDK_Annot* pAnnot) | 410 FX_BOOL CPDFSDK_BFAnnotHandler::CanAnswer(CPDFSDK_Annot* pAnnot) |
411 { | 411 { |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
459 pWidget = new CPDFSDK_Widget(pAnnot, pPage, pInterForm); | 459 pWidget = new CPDFSDK_Widget(pAnnot, pPage, pInterForm); |
460 pInterForm->AddMap(pCtrl, pWidget); | 460 pInterForm->AddMap(pCtrl, pWidget); |
461 CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm(); | 461 CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm(); |
462 if(pPDFInterForm && pPDFInterForm->NeedConstructAP()) | 462 if(pPDFInterForm && pPDFInterForm->NeedConstructAP()) |
463 pWidget->ResetAppearance(NULL,FALSE); | 463 pWidget->ResetAppearance(NULL,FALSE); |
464 } | 464 } |
465 | 465 |
466 return pWidget; | 466 return pWidget; |
467 } | 467 } |
468 | 468 |
469 CPDFSDK_Annot*» » CPDFSDK_BFAnnotHandler::NewAnnot(XFA_HWIDGET hWidget, CP
DFSDK_PageView* pPage) | 469 CPDFSDK_Annot*» » CPDFSDK_BFAnnotHandler::NewAnnot(IXFA_Widget* hWidget, C
PDFSDK_PageView* pPage) |
470 { | 470 { |
471 return NULL; | 471 return NULL; |
472 } | 472 } |
473 | 473 |
474 void CPDFSDK_BFAnnotHandler::ReleaseAnnot(CPDFSDK_Annot* pAnnot) | 474 void CPDFSDK_BFAnnotHandler::ReleaseAnnot(CPDFSDK_Annot* pAnnot) |
475 { | 475 { |
476 ASSERT(pAnnot != NULL); | 476 ASSERT(pAnnot != NULL); |
477 | 477 |
478 if (m_pFormFiller) | 478 if (m_pFormFiller) |
479 m_pFormFiller->OnDelete(pAnnot); | 479 m_pFormFiller->OnDelete(pAnnot); |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
830 #define FWL_WGTHITTEST_Border 17 | 830 #define FWL_WGTHITTEST_Border 17 |
831 #define FWL_WGTHITTEST_Edit 19 | 831 #define FWL_WGTHITTEST_Edit 19 |
832 #define FWL_WGTHITTEST_HyperLink 20 | 832 #define FWL_WGTHITTEST_HyperLink 20 |
833 | 833 |
834 CPDFSDK_XFAAnnotHandler::CPDFSDK_XFAAnnotHandler(CPDFDoc_Environment* pApp) : | 834 CPDFSDK_XFAAnnotHandler::CPDFSDK_XFAAnnotHandler(CPDFDoc_Environment* pApp) : |
835 m_pApp(pApp) | 835 m_pApp(pApp) |
836 { | 836 { |
837 | 837 |
838 } | 838 } |
839 | 839 |
840 CPDFSDK_Annot* CPDFSDK_XFAAnnotHandler::NewAnnot(XFA_HWIDGET pAnnot, CPDFSDK_Pag
eView* pPage) | 840 CPDFSDK_Annot* CPDFSDK_XFAAnnotHandler::NewAnnot(IXFA_Widget* pAnnot, CPDFSDK_Pa
geView* pPage) |
841 { | 841 { |
842 ASSERT(pPage != NULL); | 842 ASSERT(pPage != NULL); |
843 ASSERT(pAnnot != NULL); | 843 ASSERT(pAnnot != NULL); |
844 | 844 |
845 CPDFSDK_Document* pSDKDoc = m_pApp->GetCurrentDoc(); | 845 CPDFSDK_Document* pSDKDoc = m_pApp->GetCurrentDoc(); |
846 ASSERT(pSDKDoc); | 846 ASSERT(pSDKDoc); |
847 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pSDKDoc->GetInterFor
m(); | 847 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pSDKDoc->GetInterFor
m(); |
848 ASSERT(pInterForm != NULL); | 848 ASSERT(pInterForm != NULL); |
849 | 849 |
850 CPDFSDK_XFAWidget* pWidget = NULL; | 850 CPDFSDK_XFAWidget* pWidget = NULL; |
(...skipping 21 matching lines...) Expand all Loading... |
872 | 872 |
873 IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot); | 873 IXFA_WidgetHandler* pWidgetHandler = GetXFAWidgetHandler(pAnnot); |
874 ASSERT(pWidgetHandler != NULL); | 874 ASSERT(pWidgetHandler != NULL); |
875 | 875 |
876 CFX_Graphics gs; | 876 CFX_Graphics gs; |
877 gs.Create(pDevice); | 877 gs.Create(pDevice); |
878 | 878 |
879 CFX_Matrix mt; | 879 CFX_Matrix mt; |
880 mt = *(CFX_Matrix*)pUser2Device; | 880 mt = *(CFX_Matrix*)pUser2Device; |
881 | 881 |
882 » XFA_HWIDGET hWidget = pAnnot->GetXFAWidget(); | 882 » IXFA_Widget* hWidget = pAnnot->GetXFAWidget(); |
883 ASSERT(hWidget != NULL); | 883 ASSERT(hWidget != NULL); |
884 | 884 |
885 FX_BOOL bIsHighlight = FALSE; | 885 FX_BOOL bIsHighlight = FALSE; |
886 if (pSDKDoc->GetFocusAnnot() != pAnnot) | 886 if (pSDKDoc->GetFocusAnnot() != pAnnot) |
887 bIsHighlight = TRUE; | 887 bIsHighlight = TRUE; |
888 | 888 |
889 pWidgetHandler->RenderWidget(pAnnot->GetXFAWidget(), &gs, &mt, bIsHighli
ght); | 889 pWidgetHandler->RenderWidget(pAnnot->GetXFAWidget(), &gs, &mt, bIsHighli
ght); |
890 | 890 |
891 // to do highlight and shadow | 891 // to do highlight and shadow |
892 | 892 |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1142 { | 1142 { |
1143 IXFA_WidgetHandler* pWidgetHandler = NULL; | 1143 IXFA_WidgetHandler* pWidgetHandler = NULL; |
1144 | 1144 |
1145 if (pOldAnnot) | 1145 if (pOldAnnot) |
1146 pWidgetHandler = GetXFAWidgetHandler(pOldAnnot); | 1146 pWidgetHandler = GetXFAWidgetHandler(pOldAnnot); |
1147 else if (pNewAnnot) | 1147 else if (pNewAnnot) |
1148 pWidgetHandler = GetXFAWidgetHandler(pNewAnnot); | 1148 pWidgetHandler = GetXFAWidgetHandler(pNewAnnot); |
1149 | 1149 |
1150 if (pWidgetHandler) | 1150 if (pWidgetHandler) |
1151 { | 1151 { |
1152 » » FX_BOOL bRet = TRUE; /*pWidgetHandler->OnFocusChange(pNewAnnot ?
pNewAnnot->GetXFAWidget() : NULL, | 1152 » » FX_BOOL bRet = TRUE; |
1153 » » » pOldAnnot ? pOldAnnot->GetXFAWidget() : NULL); */ | 1153 » » IXFA_Widget* hWidget = pNewAnnot ? pNewAnnot->GetXFAWidget() : N
ULL; |
1154 | |
1155 » » XFA_HWIDGET hWidget = pNewAnnot ? pNewAnnot->GetXFAWidget() : NU
LL; | |
1156 if (hWidget) | 1154 if (hWidget) |
1157 { | 1155 { |
1158 IXFA_PageView* pXFAPageView = pWidgetHandler->GetPageVie
w(hWidget); | 1156 IXFA_PageView* pXFAPageView = pWidgetHandler->GetPageVie
w(hWidget); |
1159 if (pXFAPageView) | 1157 if (pXFAPageView) |
1160 { | 1158 { |
1161 bRet = pXFAPageView->GetDocView()->SetFocus(hWid
get); | 1159 bRet = pXFAPageView->GetDocView()->SetFocus(hWid
get); |
1162 if (pXFAPageView->GetDocView()->GetFocusWidget()
== hWidget) | 1160 if (pXFAPageView->GetDocView()->GetFocusWidget()
== hWidget) |
1163 bRet = TRUE; | 1161 bRet = TRUE; |
1164 } | 1162 } |
1165 } | 1163 } |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1404 m_pIteratorAnnotList.RemoveAt(i); | 1402 m_pIteratorAnnotList.RemoveAt(i); |
1405 m_pIteratorAnnotList.InsertAt(0, pReaderAnnot); | 1403 m_pIteratorAnnotList.InsertAt(0, pReaderAnnot); |
1406 break; | 1404 break; |
1407 } | 1405 } |
1408 } | 1406 } |
1409 } | 1407 } |
1410 | 1408 |
1411 return TRUE; | 1409 return TRUE; |
1412 } | 1410 } |
1413 | 1411 |
OLD | NEW |