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

Side by Side Diff: fpdfsdk/cpdfsdk_widget.cpp

Issue 2469813004: Rename CPDFXFA_Document to CPDFXFA_Context (Closed)
Patch Set: Merge to master 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_pageview.cpp ('k') | fpdfsdk/cpdfsdk_widgethandler.cpp » ('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_widget.h" 7 #include "fpdfsdk/cpdfsdk_widget.h"
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 12 matching lines...) Expand all
23 #include "fpdfsdk/cpdfsdk_interform.h" 23 #include "fpdfsdk/cpdfsdk_interform.h"
24 #include "fpdfsdk/cpdfsdk_pageview.h" 24 #include "fpdfsdk/cpdfsdk_pageview.h"
25 #include "fpdfsdk/formfiller/cba_fontmap.h" 25 #include "fpdfsdk/formfiller/cba_fontmap.h"
26 #include "fpdfsdk/fsdk_actionhandler.h" 26 #include "fpdfsdk/fsdk_actionhandler.h"
27 #include "fpdfsdk/fsdk_define.h" 27 #include "fpdfsdk/fsdk_define.h"
28 #include "fpdfsdk/fxedit/fxet_edit.h" 28 #include "fpdfsdk/fxedit/fxet_edit.h"
29 #include "fpdfsdk/pdfwindow/PWL_Edit.h" 29 #include "fpdfsdk/pdfwindow/PWL_Edit.h"
30 #include "fpdfsdk/pdfwindow/PWL_Utils.h" 30 #include "fpdfsdk/pdfwindow/PWL_Utils.h"
31 31
32 #ifdef PDF_ENABLE_XFA 32 #ifdef PDF_ENABLE_XFA
33 #include "fpdfsdk/fpdfxfa/cpdfxfa_document.h" 33 #include "fpdfsdk/fpdfxfa/cpdfxfa_context.h"
34 #include "xfa/fxfa/cxfa_eventparam.h" 34 #include "xfa/fxfa/cxfa_eventparam.h"
35 #include "xfa/fxfa/fxfa_widget.h" 35 #include "xfa/fxfa/fxfa_widget.h"
36 #include "xfa/fxfa/xfa_ffdocview.h" 36 #include "xfa/fxfa/xfa_ffdocview.h"
37 #include "xfa/fxfa/xfa_ffwidget.h" 37 #include "xfa/fxfa/xfa_ffwidget.h"
38 #include "xfa/fxfa/xfa_ffwidgethandler.h" 38 #include "xfa/fxfa/xfa_ffwidgethandler.h"
39 #endif // PDF_ENABLE_XFA 39 #endif // PDF_ENABLE_XFA
40 40
41 namespace { 41 namespace {
42 42
43 // Convert a FX_ARGB to a FX_COLORREF. 43 // Convert a FX_ARGB to a FX_COLORREF.
(...skipping 17 matching lines...) Expand all
61 m_hMixXFAWidget(nullptr), 61 m_hMixXFAWidget(nullptr),
62 m_pWidgetHandler(nullptr) 62 m_pWidgetHandler(nullptr)
63 #endif // PDF_ENABLE_XFA 63 #endif // PDF_ENABLE_XFA
64 { 64 {
65 } 65 }
66 66
67 CPDFSDK_Widget::~CPDFSDK_Widget() {} 67 CPDFSDK_Widget::~CPDFSDK_Widget() {}
68 68
69 #ifdef PDF_ENABLE_XFA 69 #ifdef PDF_ENABLE_XFA
70 CXFA_FFWidget* CPDFSDK_Widget::GetMixXFAWidget() const { 70 CXFA_FFWidget* CPDFSDK_Widget::GetMixXFAWidget() const {
71 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); 71 CPDFXFA_Context* pContext = m_pPageView->GetFormFillEnv()->GetXFAContext();
72 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { 72 if (pContext->GetDocType() == DOCTYPE_STATIC_XFA) {
73 if (!m_hMixXFAWidget) { 73 if (!m_hMixXFAWidget) {
74 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) { 74 if (CXFA_FFDocView* pDocView = pContext->GetXFADocView()) {
75 CFX_WideString sName; 75 CFX_WideString sName;
76 if (GetFieldType() == FIELDTYPE_RADIOBUTTON) { 76 if (GetFieldType() == FIELDTYPE_RADIOBUTTON) {
77 sName = GetAnnotName(); 77 sName = GetAnnotName();
78 if (sName.IsEmpty()) 78 if (sName.IsEmpty())
79 sName = GetName(); 79 sName = GetName();
80 } else { 80 } else {
81 sName = GetName(); 81 sName = GetName();
82 } 82 }
83 83
84 if (!sName.IsEmpty()) 84 if (!sName.IsEmpty())
85 m_hMixXFAWidget = pDocView->GetWidgetByName(sName, nullptr); 85 m_hMixXFAWidget = pDocView->GetWidgetByName(sName, nullptr);
86 } 86 }
87 } 87 }
88 return m_hMixXFAWidget; 88 return m_hMixXFAWidget;
89 } 89 }
90 90
91 return nullptr; 91 return nullptr;
92 } 92 }
93 93
94 CXFA_FFWidget* CPDFSDK_Widget::GetGroupMixXFAWidget() { 94 CXFA_FFWidget* CPDFSDK_Widget::GetGroupMixXFAWidget() {
95 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); 95 CPDFXFA_Context* pContext = m_pPageView->GetFormFillEnv()->GetXFAContext();
96 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { 96 if (pContext->GetDocType() == DOCTYPE_STATIC_XFA) {
97 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) { 97 if (CXFA_FFDocView* pDocView = pContext->GetXFADocView()) {
98 CFX_WideString sName = GetName(); 98 CFX_WideString sName = GetName();
99 if (!sName.IsEmpty()) 99 if (!sName.IsEmpty())
100 return pDocView->GetWidgetByName(sName, nullptr); 100 return pDocView->GetWidgetByName(sName, nullptr);
101 } 101 }
102 } 102 }
103 103
104 return nullptr; 104 return nullptr;
105 } 105 }
106 106
107 CXFA_FFWidgetHandler* CPDFSDK_Widget::GetXFAWidgetHandler() const { 107 CXFA_FFWidgetHandler* CPDFSDK_Widget::GetXFAWidgetHandler() const {
108 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); 108 CPDFXFA_Context* pContext = m_pPageView->GetFormFillEnv()->GetXFAContext();
109 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { 109 if (pContext->GetDocType() == DOCTYPE_STATIC_XFA) {
110 if (!m_pWidgetHandler) { 110 if (!m_pWidgetHandler) {
111 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) 111 if (CXFA_FFDocView* pDocView = pContext->GetXFADocView())
112 m_pWidgetHandler = pDocView->GetWidgetHandler(); 112 m_pWidgetHandler = pDocView->GetWidgetHandler();
113 } 113 }
114 return m_pWidgetHandler; 114 return m_pWidgetHandler;
115 } 115 }
116 116
117 return nullptr; 117 return nullptr;
118 } 118 }
119 119
120 static XFA_EVENTTYPE GetXFAEventType(PDFSDK_XFAAActionType eXFAAAT) { 120 static XFA_EVENTTYPE GetXFAEventType(PDFSDK_XFAAActionType eXFAAAT) {
121 XFA_EVENTTYPE eEventType = XFA_EVENT_Unknown; 121 XFA_EVENTTYPE eEventType = XFA_EVENT_Unknown;
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 } 212 }
213 } 213 }
214 214
215 pAcc = hWidget->GetDataAcc(); 215 pAcc = hWidget->GetDataAcc();
216 return pXFAWidgetHandler->HasEvent(pAcc, eEventType); 216 return pXFAWidgetHandler->HasEvent(pAcc, eEventType);
217 } 217 }
218 218
219 FX_BOOL CPDFSDK_Widget::OnXFAAAction(PDFSDK_XFAAActionType eXFAAAT, 219 FX_BOOL CPDFSDK_Widget::OnXFAAAction(PDFSDK_XFAAActionType eXFAAAT,
220 PDFSDK_FieldAction& data, 220 PDFSDK_FieldAction& data,
221 CPDFSDK_PageView* pPageView) { 221 CPDFSDK_PageView* pPageView) {
222 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); 222 CPDFXFA_Context* pContext = m_pPageView->GetFormFillEnv()->GetXFAContext();
223 223
224 CXFA_FFWidget* hWidget = GetMixXFAWidget(); 224 CXFA_FFWidget* hWidget = GetMixXFAWidget();
225 if (!hWidget) 225 if (!hWidget)
226 return FALSE; 226 return FALSE;
227 227
228 XFA_EVENTTYPE eEventType = GetXFAEventType(eXFAAAT); 228 XFA_EVENTTYPE eEventType = GetXFAEventType(eXFAAAT);
229 if (eEventType == XFA_EVENT_Unknown) 229 if (eEventType == XFA_EVENT_Unknown)
230 return FALSE; 230 return FALSE;
231 231
232 CXFA_FFWidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler(); 232 CXFA_FFWidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler();
(...skipping 26 matching lines...) Expand all
259 if (pXFAWidgetHandler->ProcessEvent(pAcc, &param) != 259 if (pXFAWidgetHandler->ProcessEvent(pAcc, &param) !=
260 XFA_EVENTERROR_Success) { 260 XFA_EVENTERROR_Success) {
261 return FALSE; 261 return FALSE;
262 } 262 }
263 } 263 }
264 } 264 }
265 CXFA_WidgetAcc* pAcc = hWidget->GetDataAcc(); 265 CXFA_WidgetAcc* pAcc = hWidget->GetDataAcc();
266 param.m_pTarget = pAcc; 266 param.m_pTarget = pAcc;
267 int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, &param); 267 int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, &param);
268 268
269 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) 269 if (CXFA_FFDocView* pDocView = pContext->GetXFADocView())
270 pDocView->UpdateDocView(); 270 pDocView->UpdateDocView();
271 271
272 return nRet == XFA_EVENTERROR_Success; 272 return nRet == XFA_EVENTERROR_Success;
273 } 273 }
274 274
275 void CPDFSDK_Widget::Synchronize(FX_BOOL bSynchronizeElse) { 275 void CPDFSDK_Widget::Synchronize(FX_BOOL bSynchronizeElse) {
276 CXFA_FFWidget* hWidget = GetMixXFAWidget(); 276 CXFA_FFWidget* hWidget = GetMixXFAWidget();
277 if (!hWidget) 277 if (!hWidget)
278 return; 278 return;
279 279
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 pWidgetAcc->SetValue(pFormField->GetValue(), XFA_VALUEPICTURE_Edit); 315 pWidgetAcc->SetValue(pFormField->GetValue(), XFA_VALUEPICTURE_Edit);
316 break; 316 break;
317 } 317 }
318 } 318 }
319 319
320 if (bSynchronizeElse) 320 if (bSynchronizeElse)
321 pWidgetAcc->ProcessValueChanged(); 321 pWidgetAcc->ProcessValueChanged();
322 } 322 }
323 323
324 void CPDFSDK_Widget::SynchronizeXFAValue() { 324 void CPDFSDK_Widget::SynchronizeXFAValue() {
325 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); 325 CPDFXFA_Context* pContext = m_pPageView->GetFormFillEnv()->GetXFAContext();
326 CXFA_FFDocView* pXFADocView = pDoc->GetXFADocView(); 326 CXFA_FFDocView* pXFADocView = pContext->GetXFADocView();
327 if (!pXFADocView) 327 if (!pXFADocView)
328 return; 328 return;
329 329
330 if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) { 330 if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) {
331 if (GetXFAWidgetHandler()) { 331 if (GetXFAWidgetHandler()) {
332 CPDFSDK_Widget::SynchronizeXFAValue(pXFADocView, hWidget, GetFormField(), 332 CPDFSDK_Widget::SynchronizeXFAValue(pXFADocView, hWidget, GetFormField(),
333 GetFormControl()); 333 GetFormControl());
334 } 334 }
335 } 335 }
336 } 336 }
337 337
338 void CPDFSDK_Widget::SynchronizeXFAItems() { 338 void CPDFSDK_Widget::SynchronizeXFAItems() {
339 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); 339 CPDFXFA_Context* pContext = m_pPageView->GetFormFillEnv()->GetXFAContext();
340 CXFA_FFDocView* pXFADocView = pDoc->GetXFADocView(); 340 CXFA_FFDocView* pXFADocView = pContext->GetXFADocView();
341 if (!pXFADocView) 341 if (!pXFADocView)
342 return; 342 return;
343 343
344 if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) { 344 if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) {
345 if (GetXFAWidgetHandler()) 345 if (GetXFAWidgetHandler())
346 SynchronizeXFAItems(pXFADocView, hWidget, GetFormField(), nullptr); 346 SynchronizeXFAItems(pXFADocView, hWidget, GetFormField(), nullptr);
347 } 347 }
348 } 348 }
349 349
350 void CPDFSDK_Widget::SynchronizeXFAValue(CXFA_FFDocView* pXFADocView, 350 void CPDFSDK_Widget::SynchronizeXFAValue(CXFA_FFDocView* pXFADocView,
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 return TRUE; 495 return TRUE;
496 } 496 }
497 497
498 int CPDFSDK_Widget::GetFieldType() const { 498 int CPDFSDK_Widget::GetFieldType() const {
499 CPDF_FormField* pField = GetFormField(); 499 CPDF_FormField* pField = GetFormField();
500 return pField ? pField->GetFieldType() : FIELDTYPE_UNKNOWN; 500 return pField ? pField->GetFieldType() : FIELDTYPE_UNKNOWN;
501 } 501 }
502 502
503 FX_BOOL CPDFSDK_Widget::IsAppearanceValid() { 503 FX_BOOL CPDFSDK_Widget::IsAppearanceValid() {
504 #ifdef PDF_ENABLE_XFA 504 #ifdef PDF_ENABLE_XFA
505 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); 505 CPDFXFA_Context* pContext = m_pPageView->GetFormFillEnv()->GetXFAContext();
506 int nDocType = pDoc->GetDocType(); 506 int nDocType = pContext->GetDocType();
507 if (nDocType != DOCTYPE_PDF && nDocType != DOCTYPE_STATIC_XFA) 507 if (nDocType != DOCTYPE_PDF && nDocType != DOCTYPE_STATIC_XFA)
508 return TRUE; 508 return TRUE;
509 #endif // PDF_ENABLE_XFA 509 #endif // PDF_ENABLE_XFA
510 return CPDFSDK_BAAnnot::IsAppearanceValid(); 510 return CPDFSDK_BAAnnot::IsAppearanceValid();
511 } 511 }
512 512
513 int CPDFSDK_Widget::GetLayoutOrder() const { 513 int CPDFSDK_Widget::GetLayoutOrder() const {
514 return 2; 514 return 2;
515 } 515 }
516 516
(...skipping 1302 matching lines...) Expand 10 before | Expand all | Expand 10 after
1819 if (CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDictFor("AP")) 1819 if (CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDictFor("AP"))
1820 pAPDict->RemoveFor(sAPType); 1820 pAPDict->RemoveFor(sAPType);
1821 } 1821 }
1822 1822
1823 FX_BOOL CPDFSDK_Widget::OnAAction(CPDF_AAction::AActionType type, 1823 FX_BOOL CPDFSDK_Widget::OnAAction(CPDF_AAction::AActionType type,
1824 PDFSDK_FieldAction& data, 1824 PDFSDK_FieldAction& data,
1825 CPDFSDK_PageView* pPageView) { 1825 CPDFSDK_PageView* pPageView) {
1826 CPDFSDK_FormFillEnvironment* pFormFillEnv = pPageView->GetFormFillEnv(); 1826 CPDFSDK_FormFillEnvironment* pFormFillEnv = pPageView->GetFormFillEnv();
1827 1827
1828 #ifdef PDF_ENABLE_XFA 1828 #ifdef PDF_ENABLE_XFA
1829 CPDFXFA_Document* pDoc = pFormFillEnv->GetXFADocument(); 1829 CPDFXFA_Context* pContext = pFormFillEnv->GetXFAContext();
1830 if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) { 1830 if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) {
1831 XFA_EVENTTYPE eEventType = GetXFAEventType(type, data.bWillCommit); 1831 XFA_EVENTTYPE eEventType = GetXFAEventType(type, data.bWillCommit);
1832 1832
1833 if (eEventType != XFA_EVENT_Unknown) { 1833 if (eEventType != XFA_EVENT_Unknown) {
1834 if (CXFA_FFWidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler()) { 1834 if (CXFA_FFWidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler()) {
1835 CXFA_EventParam param; 1835 CXFA_EventParam param;
1836 param.m_eType = eEventType; 1836 param.m_eType = eEventType;
1837 param.m_wsChange = data.sChange; 1837 param.m_wsChange = data.sChange;
1838 param.m_iCommitKey = data.nCommitKey; 1838 param.m_iCommitKey = data.nCommitKey;
1839 param.m_bShift = data.bShift; 1839 param.m_bShift = data.bShift;
1840 param.m_iSelStart = data.nSelStart; 1840 param.m_iSelStart = data.nSelStart;
1841 param.m_iSelEnd = data.nSelEnd; 1841 param.m_iSelEnd = data.nSelEnd;
1842 param.m_wsFullText = data.sValue; 1842 param.m_wsFullText = data.sValue;
1843 param.m_bKeyDown = data.bKeyDown; 1843 param.m_bKeyDown = data.bKeyDown;
1844 param.m_bModifier = data.bModifier; 1844 param.m_bModifier = data.bModifier;
1845 param.m_wsNewText = data.sValue; 1845 param.m_wsNewText = data.sValue;
1846 if (data.nSelEnd > data.nSelStart) 1846 if (data.nSelEnd > data.nSelStart)
1847 param.m_wsNewText.Delete(data.nSelStart, 1847 param.m_wsNewText.Delete(data.nSelStart,
1848 data.nSelEnd - data.nSelStart); 1848 data.nSelEnd - data.nSelStart);
1849 for (int i = data.sChange.GetLength() - 1; i >= 0; i--) 1849 for (int i = data.sChange.GetLength() - 1; i >= 0; i--)
1850 param.m_wsNewText.Insert(data.nSelStart, data.sChange[i]); 1850 param.m_wsNewText.Insert(data.nSelStart, data.sChange[i]);
1851 param.m_wsPrevText = data.sValue; 1851 param.m_wsPrevText = data.sValue;
1852 1852
1853 CXFA_WidgetAcc* pAcc = hWidget->GetDataAcc(); 1853 CXFA_WidgetAcc* pAcc = hWidget->GetDataAcc();
1854 param.m_pTarget = pAcc; 1854 param.m_pTarget = pAcc;
1855 int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, &param); 1855 int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, &param);
1856 1856
1857 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) 1857 if (CXFA_FFDocView* pDocView = pContext->GetXFADocView())
1858 pDocView->UpdateDocView(); 1858 pDocView->UpdateDocView();
1859 1859
1860 if (nRet == XFA_EVENTERROR_Success) 1860 if (nRet == XFA_EVENTERROR_Success)
1861 return TRUE; 1861 return TRUE;
1862 } 1862 }
1863 } 1863 }
1864 } 1864 }
1865 #endif // PDF_ENABLE_XFA 1865 #endif // PDF_ENABLE_XFA
1866 1866
1867 CPDF_Action action = GetAAction(type); 1867 CPDF_Action action = GetAAction(type);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1923 return FALSE; 1923 return FALSE;
1924 1924
1925 if (!IsVisible()) 1925 if (!IsVisible())
1926 return FALSE; 1926 return FALSE;
1927 1927
1928 if ((GetFieldFlags() & FIELDFLAG_READONLY) == FIELDFLAG_READONLY) 1928 if ((GetFieldFlags() & FIELDFLAG_READONLY) == FIELDFLAG_READONLY)
1929 return FALSE; 1929 return FALSE;
1930 1930
1931 return TRUE; 1931 return TRUE;
1932 } 1932 }
OLDNEW
« no previous file with comments | « fpdfsdk/cpdfsdk_pageview.cpp ('k') | fpdfsdk/cpdfsdk_widgethandler.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698