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

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

Issue 1474663004: XFA: more underlying type changes to match master (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years 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/fpdfxfa/fpdfxfa_doc.h" 7 #include "../include/fpdfxfa/fpdfxfa_doc.h"
8 #include "../include/fpdfxfa/fpdfxfa_util.h" 8 #include "../include/fpdfxfa/fpdfxfa_util.h"
9 #include "fpdfsdk/include/formfiller/FFL_FormFiller.h" 9 #include "fpdfsdk/include/formfiller/FFL_FormFiller.h"
10 #include "fpdfsdk/include/fsdk_actionhandler.h" 10 #include "fpdfsdk/include/fsdk_actionhandler.h"
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 CPDF_FormField* pField = GetFormField(); 498 CPDF_FormField* pField = GetFormField();
499 ASSERT(pField != NULL); 499 ASSERT(pField != NULL);
500 500
501 return pField->GetFieldType(); 501 return pField->GetFieldType();
502 } 502 }
503 503
504 FX_BOOL CPDFSDK_Widget::IsAppearanceValid() { 504 FX_BOOL CPDFSDK_Widget::IsAppearanceValid() {
505 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); 505 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
506 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); 506 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument();
507 int nDocType = pDoc->GetDocType(); 507 int nDocType = pDoc->GetDocType();
508 if (nDocType == DOCTYPE_PDF || nDocType == DOCTYPE_STATIC_XFA) 508 if (nDocType != DOCTYPE_PDF && nDocType != DOCTYPE_STATIC_XFA)
509 return CPDFSDK_BAAnnot::IsAppearanceValid(); 509 return TRUE;
510 510
511 return TRUE; 511 return CPDFSDK_BAAnnot::IsAppearanceValid();
512 } 512 }
513 513
514 int CPDFSDK_Widget::GetFieldFlags() const { 514 int CPDFSDK_Widget::GetFieldFlags() const {
515 CPDF_InterForm* pPDFInterForm = m_pInterForm->GetInterForm(); 515 CPDF_InterForm* pPDFInterForm = m_pInterForm->GetInterForm();
516 ASSERT(pPDFInterForm != NULL); 516 ASSERT(pPDFInterForm != NULL);
517 517
518 CPDF_FormControl* pFormControl = 518 CPDF_FormControl* pFormControl =
519 pPDFInterForm->GetControlByDict(m_pAnnot->GetAnnotDict()); 519 pPDFInterForm->GetControlByDict(m_pAnnot->GetAnnotDict());
520 CPDF_FormField* pFormField = pFormControl->GetField(); 520 CPDF_FormField* pFormField = pFormControl->GetField();
521 return pFormField->GetFieldFlags(); 521 return pFormField->GetFieldFlags();
(...skipping 1426 matching lines...) Expand 10 before | Expand all | Expand 10 after
1948 void CPDFSDK_Widget::RemoveAppearance(const CFX_ByteString& sAPType) { 1948 void CPDFSDK_Widget::RemoveAppearance(const CFX_ByteString& sAPType) {
1949 if (CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDict("AP")) { 1949 if (CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDict("AP")) {
1950 pAPDict->RemoveAt(sAPType); 1950 pAPDict->RemoveAt(sAPType);
1951 } 1951 }
1952 } 1952 }
1953 1953
1954 FX_BOOL CPDFSDK_Widget::OnAAction(CPDF_AAction::AActionType type, 1954 FX_BOOL CPDFSDK_Widget::OnAAction(CPDF_AAction::AActionType type,
1955 PDFSDK_FieldAction& data, 1955 PDFSDK_FieldAction& data,
1956 CPDFSDK_PageView* pPageView) { 1956 CPDFSDK_PageView* pPageView) {
1957 CPDFSDK_Document* pDocument = pPageView->GetSDKDocument(); 1957 CPDFSDK_Document* pDocument = pPageView->GetSDKDocument();
1958 CPDFXFA_Document* pDoc = pDocument->GetXFADocument();
1959 CPDFDoc_Environment* pEnv = pDocument->GetEnv(); 1958 CPDFDoc_Environment* pEnv = pDocument->GetEnv();
1960 1959
1961 if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) { 1960 CPDFXFA_Document* pDoc = pDocument->GetXFADocument();
1961 if (IXFA_Widget* hWidget = GetMixXFAWidget()) {
1962 XFA_EVENTTYPE eEventType = GetXFAEventType(type, data.bWillCommit); 1962 XFA_EVENTTYPE eEventType = GetXFAEventType(type, data.bWillCommit);
1963 1963
1964 if (eEventType != XFA_EVENT_Unknown) { 1964 if (eEventType != XFA_EVENT_Unknown) {
1965 if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) { 1965 if (IXFA_WidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler()) {
1966 CXFA_EventParam param; 1966 CXFA_EventParam param;
1967 param.m_eType = eEventType; 1967 param.m_eType = eEventType;
1968 param.m_wsChange = data.sChange; 1968 param.m_wsChange = data.sChange;
1969 param.m_iCommitKey = data.nCommitKey; 1969 param.m_iCommitKey = data.nCommitKey;
1970 param.m_bShift = data.bShift; 1970 param.m_bShift = data.bShift;
1971 param.m_iSelStart = data.nSelStart; 1971 param.m_iSelStart = data.nSelStart;
1972 param.m_iSelEnd = data.nSelEnd; 1972 param.m_iSelEnd = data.nSelEnd;
1973 param.m_wsFullText = data.sValue; 1973 param.m_wsFullText = data.sValue;
1974 param.m_bKeyDown = data.bKeyDown; 1974 param.m_bKeyDown = data.bKeyDown;
1975 param.m_bModifier = data.bModifier; 1975 param.m_bModifier = data.bModifier;
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
2060 2060
2061 int nFieldFlags = GetFieldFlags(); 2061 int nFieldFlags = GetFieldFlags();
2062 if ((nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY) 2062 if ((nFieldFlags & FIELDFLAG_READONLY) == FIELDFLAG_READONLY)
2063 return FALSE; 2063 return FALSE;
2064 2064
2065 return TRUE; 2065 return TRUE;
2066 } 2066 }
2067 return FALSE; 2067 return FALSE;
2068 } 2068 }
2069 2069
2070 // CPDFSDK_XFAWidget
2071 CPDFSDK_XFAWidget::CPDFSDK_XFAWidget(IXFA_Widget* pAnnot, 2070 CPDFSDK_XFAWidget::CPDFSDK_XFAWidget(IXFA_Widget* pAnnot,
2072 CPDFSDK_PageView* pPageView, 2071 CPDFSDK_PageView* pPageView,
2073 CPDFSDK_InterForm* pInterForm) 2072 CPDFSDK_InterForm* pInterForm)
2074 : CPDFSDK_Annot(pPageView), m_pInterForm(pInterForm), m_hXFAWidget(pAnnot) { 2073 : CPDFSDK_Annot(pPageView), m_pInterForm(pInterForm), m_hXFAWidget(pAnnot) {
2075 } 2074 }
2076 2075
2077 FX_BOOL CPDFSDK_XFAWidget::IsXFAField() { 2076 FX_BOOL CPDFSDK_XFAWidget::IsXFAField() {
2078 return TRUE; 2077 return TRUE;
2079 } 2078 }
2080 2079
2081 CFX_ByteString CPDFSDK_XFAWidget::GetType() const { 2080 CFX_ByteString CPDFSDK_XFAWidget::GetType() const {
2082 return FSDK_XFAWIDGET_TYPENAME; 2081 return FSDK_XFAWIDGET_TYPENAME;
2083 } 2082 }
2084 2083
2085 CFX_FloatRect CPDFSDK_XFAWidget::GetRect() const { 2084 CFX_FloatRect CPDFSDK_XFAWidget::GetRect() const {
2086 CPDFSDK_PageView* pPageView = GetPageView(); 2085 CPDFSDK_PageView* pPageView = GetPageView();
2087 CPDFSDK_Document* pDocument = pPageView->GetSDKDocument(); 2086 CPDFSDK_Document* pDocument = pPageView->GetSDKDocument();
2088 CPDFXFA_Document* pDoc = pDocument->GetXFADocument(); 2087 CPDFXFA_Document* pDoc = pDocument->GetXFADocument();
2089 IXFA_DocView* pDocView = pDoc->GetXFADocView(); 2088 IXFA_DocView* pDocView = pDoc->GetXFADocView();
2090 IXFA_WidgetHandler* pWidgetHandler = pDocView->GetWidgetHandler(); 2089 IXFA_WidgetHandler* pWidgetHandler = pDocView->GetWidgetHandler();
2091 2090
2092 CFX_RectF rcBBox; 2091 CFX_RectF rcBBox;
2093 pWidgetHandler->GetRect(GetXFAWidget(), rcBBox); 2092 pWidgetHandler->GetRect(GetXFAWidget(), rcBBox);
2094 2093
2095 return CFX_FloatRect(rcBBox.left, rcBBox.top, rcBBox.left + rcBBox.width, 2094 return CFX_FloatRect(rcBBox.left, rcBBox.top, rcBBox.left + rcBBox.width,
2096 rcBBox.top + rcBBox.height); 2095 rcBBox.top + rcBBox.height);
2097 } 2096 }
2098 2097
2099 // CPDFSDK_InterForm
2100 CPDFSDK_InterForm::CPDFSDK_InterForm(CPDFSDK_Document* pDocument) 2098 CPDFSDK_InterForm::CPDFSDK_InterForm(CPDFSDK_Document* pDocument)
2101 : m_pDocument(pDocument), 2099 : m_pDocument(pDocument),
2102 m_pInterForm(NULL), 2100 m_pInterForm(NULL),
2103 m_bCalculate(TRUE), 2101 m_bCalculate(TRUE),
2104 m_bXfaCalculate(TRUE), 2102 m_bXfaCalculate(TRUE),
2105 m_bXfaValidationsEnabled(TRUE), 2103 m_bXfaValidationsEnabled(TRUE),
2106 m_bBusy(FALSE) { 2104 m_bBusy(FALSE) {
2107 ASSERT(m_pDocument != NULL);
2108 m_pInterForm = new CPDF_InterForm(m_pDocument->GetPDFDocument(), FALSE); 2105 m_pInterForm = new CPDF_InterForm(m_pDocument->GetPDFDocument(), FALSE);
2109 m_pInterForm->SetFormNotify(this); 2106 m_pInterForm->SetFormNotify(this);
2110 2107
2111 for (int i = 0; i < kNumFieldTypes; ++i) 2108 for (int i = 0; i < kNumFieldTypes; ++i)
2112 m_bNeedHightlight[i] = FALSE; 2109 m_bNeedHightlight[i] = FALSE;
2113 m_iHighlightAlpha = 0; 2110 m_iHighlightAlpha = 0;
2114 } 2111 }
2115 2112
2116 CPDFSDK_InterForm::~CPDFSDK_InterForm() { 2113 CPDFSDK_InterForm::~CPDFSDK_InterForm() {
2117 delete m_pInterForm; 2114 delete m_pInterForm;
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
2445 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i); 2442 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
2446 ASSERT(pFormCtrl != NULL); 2443 ASSERT(pFormCtrl != NULL);
2447 2444
2448 ASSERT(m_pInterForm != NULL); 2445 ASSERT(m_pInterForm != NULL);
2449 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl)) 2446 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl))
2450 pWidget->ResetAppearance(sValue, bValueChanged); 2447 pWidget->ResetAppearance(sValue, bValueChanged);
2451 } 2448 }
2452 } 2449 }
2453 2450
2454 void CPDFSDK_InterForm::UpdateField(CPDF_FormField* pFormField) { 2451 void CPDFSDK_InterForm::UpdateField(CPDF_FormField* pFormField) {
2455 ASSERT(pFormField != NULL);
2456
2457 for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) { 2452 for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
2458 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i); 2453 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
2459 ASSERT(pFormCtrl != NULL); 2454 ASSERT(pFormCtrl != NULL);
2460 2455
2461 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl)) { 2456 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl)) {
2462 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); 2457 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
2463 CFFL_IFormFiller* pIFormFiller = pEnv->GetIFormFiller(); 2458 CFFL_IFormFiller* pIFormFiller = pEnv->GetIFormFiller();
2464 2459 UnderlyingPageType* pPage = pWidget->GetUnderlyingPage();
2465 CPDFXFA_Page* pPage = pWidget->GetPDFXFAPage();
2466 CPDFSDK_PageView* pPageView = m_pDocument->GetPageView(pPage, FALSE); 2460 CPDFSDK_PageView* pPageView = m_pDocument->GetPageView(pPage, FALSE);
2467
2468 FX_RECT rcBBox = pIFormFiller->GetViewBBox(pPageView, pWidget); 2461 FX_RECT rcBBox = pIFormFiller->GetViewBBox(pPageView, pWidget);
2469 2462
2470 pEnv->FFI_Invalidate(pPage, rcBBox.left, rcBBox.top, rcBBox.right, 2463 pEnv->FFI_Invalidate(pPage, rcBBox.left, rcBBox.top, rcBBox.right,
2471 rcBBox.bottom); 2464 rcBBox.bottom);
2472 } 2465 }
2473 } 2466 }
2474 } 2467 }
2475 2468
2476 void CPDFSDK_InterForm::OnKeyStrokeCommit(CPDF_FormField* pFormField, 2469 void CPDFSDK_InterForm::OnKeyStrokeCommit(CPDF_FormField* pFormField,
2477 CFX_WideString& csValue, 2470 CFX_WideString& csValue,
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
3137 break; 3130 break;
3138 } 3131 }
3139 } 3132 }
3140 } 3133 }
3141 3134
3142 CPDF_Rect CBA_AnnotIterator::GetAnnotRect(CPDFSDK_Annot* pAnnot) { 3135 CPDF_Rect CBA_AnnotIterator::GetAnnotRect(CPDFSDK_Annot* pAnnot) {
3143 CPDF_Rect rcAnnot; 3136 CPDF_Rect rcAnnot;
3144 pAnnot->GetPDFAnnot()->GetRect(rcAnnot); 3137 pAnnot->GetPDFAnnot()->GetRect(rcAnnot);
3145 return rcAnnot; 3138 return rcAnnot;
3146 } 3139 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698