| OLD | NEW |
| 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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 m_hMixXFAWidget(nullptr), | 62 m_hMixXFAWidget(nullptr), |
| 63 m_pWidgetHandler(nullptr) | 63 m_pWidgetHandler(nullptr) |
| 64 #endif // PDF_ENABLE_XFA | 64 #endif // PDF_ENABLE_XFA |
| 65 { | 65 { |
| 66 } | 66 } |
| 67 | 67 |
| 68 CPDFSDK_Widget::~CPDFSDK_Widget() {} | 68 CPDFSDK_Widget::~CPDFSDK_Widget() {} |
| 69 | 69 |
| 70 #ifdef PDF_ENABLE_XFA | 70 #ifdef PDF_ENABLE_XFA |
| 71 CXFA_FFWidget* CPDFSDK_Widget::GetMixXFAWidget() const { | 71 CXFA_FFWidget* CPDFSDK_Widget::GetMixXFAWidget() const { |
| 72 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); | 72 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); |
| 73 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); | |
| 74 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { | 73 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { |
| 75 if (!m_hMixXFAWidget) { | 74 if (!m_hMixXFAWidget) { |
| 76 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) { | 75 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) { |
| 77 CFX_WideString sName; | 76 CFX_WideString sName; |
| 78 if (GetFieldType() == FIELDTYPE_RADIOBUTTON) { | 77 if (GetFieldType() == FIELDTYPE_RADIOBUTTON) { |
| 79 sName = GetAnnotName(); | 78 sName = GetAnnotName(); |
| 80 if (sName.IsEmpty()) | 79 if (sName.IsEmpty()) |
| 81 sName = GetName(); | 80 sName = GetName(); |
| 82 } else { | 81 } else { |
| 83 sName = GetName(); | 82 sName = GetName(); |
| 84 } | 83 } |
| 85 | 84 |
| 86 if (!sName.IsEmpty()) | 85 if (!sName.IsEmpty()) |
| 87 m_hMixXFAWidget = pDocView->GetWidgetByName(sName, nullptr); | 86 m_hMixXFAWidget = pDocView->GetWidgetByName(sName, nullptr); |
| 88 } | 87 } |
| 89 } | 88 } |
| 90 return m_hMixXFAWidget; | 89 return m_hMixXFAWidget; |
| 91 } | 90 } |
| 92 | 91 |
| 93 return nullptr; | 92 return nullptr; |
| 94 } | 93 } |
| 95 | 94 |
| 96 CXFA_FFWidget* CPDFSDK_Widget::GetGroupMixXFAWidget() { | 95 CXFA_FFWidget* CPDFSDK_Widget::GetGroupMixXFAWidget() { |
| 97 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); | 96 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); |
| 98 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); | |
| 99 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { | 97 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { |
| 100 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) { | 98 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) { |
| 101 CFX_WideString sName = GetName(); | 99 CFX_WideString sName = GetName(); |
| 102 if (!sName.IsEmpty()) | 100 if (!sName.IsEmpty()) |
| 103 return pDocView->GetWidgetByName(sName, nullptr); | 101 return pDocView->GetWidgetByName(sName, nullptr); |
| 104 } | 102 } |
| 105 } | 103 } |
| 106 | 104 |
| 107 return nullptr; | 105 return nullptr; |
| 108 } | 106 } |
| 109 | 107 |
| 110 CXFA_FFWidgetHandler* CPDFSDK_Widget::GetXFAWidgetHandler() const { | 108 CXFA_FFWidgetHandler* CPDFSDK_Widget::GetXFAWidgetHandler() const { |
| 111 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); | 109 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); |
| 112 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); | |
| 113 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { | 110 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { |
| 114 if (!m_pWidgetHandler) { | 111 if (!m_pWidgetHandler) { |
| 115 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) | 112 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) |
| 116 m_pWidgetHandler = pDocView->GetWidgetHandler(); | 113 m_pWidgetHandler = pDocView->GetWidgetHandler(); |
| 117 } | 114 } |
| 118 return m_pWidgetHandler; | 115 return m_pWidgetHandler; |
| 119 } | 116 } |
| 120 | 117 |
| 121 return nullptr; | 118 return nullptr; |
| 122 } | 119 } |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 } | 213 } |
| 217 } | 214 } |
| 218 | 215 |
| 219 pAcc = hWidget->GetDataAcc(); | 216 pAcc = hWidget->GetDataAcc(); |
| 220 return pXFAWidgetHandler->HasEvent(pAcc, eEventType); | 217 return pXFAWidgetHandler->HasEvent(pAcc, eEventType); |
| 221 } | 218 } |
| 222 | 219 |
| 223 FX_BOOL CPDFSDK_Widget::OnXFAAAction(PDFSDK_XFAAActionType eXFAAAT, | 220 FX_BOOL CPDFSDK_Widget::OnXFAAAction(PDFSDK_XFAAActionType eXFAAAT, |
| 224 PDFSDK_FieldAction& data, | 221 PDFSDK_FieldAction& data, |
| 225 CPDFSDK_PageView* pPageView) { | 222 CPDFSDK_PageView* pPageView) { |
| 226 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); | 223 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); |
| 227 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); | |
| 228 | 224 |
| 229 CXFA_FFWidget* hWidget = GetMixXFAWidget(); | 225 CXFA_FFWidget* hWidget = GetMixXFAWidget(); |
| 230 if (!hWidget) | 226 if (!hWidget) |
| 231 return FALSE; | 227 return FALSE; |
| 232 | 228 |
| 233 XFA_EVENTTYPE eEventType = GetXFAEventType(eXFAAAT); | 229 XFA_EVENTTYPE eEventType = GetXFAEventType(eXFAAAT); |
| 234 if (eEventType == XFA_EVENT_Unknown) | 230 if (eEventType == XFA_EVENT_Unknown) |
| 235 return FALSE; | 231 return FALSE; |
| 236 | 232 |
| 237 CXFA_FFWidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler(); | 233 CXFA_FFWidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler(); |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 320 pWidgetAcc->SetValue(pFormField->GetValue(), XFA_VALUEPICTURE_Edit); | 316 pWidgetAcc->SetValue(pFormField->GetValue(), XFA_VALUEPICTURE_Edit); |
| 321 break; | 317 break; |
| 322 } | 318 } |
| 323 } | 319 } |
| 324 | 320 |
| 325 if (bSynchronizeElse) | 321 if (bSynchronizeElse) |
| 326 pWidgetAcc->ProcessValueChanged(); | 322 pWidgetAcc->ProcessValueChanged(); |
| 327 } | 323 } |
| 328 | 324 |
| 329 void CPDFSDK_Widget::SynchronizeXFAValue() { | 325 void CPDFSDK_Widget::SynchronizeXFAValue() { |
| 330 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); | 326 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); |
| 331 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); | |
| 332 CXFA_FFDocView* pXFADocView = pDoc->GetXFADocView(); | 327 CXFA_FFDocView* pXFADocView = pDoc->GetXFADocView(); |
| 333 if (!pXFADocView) | 328 if (!pXFADocView) |
| 334 return; | 329 return; |
| 335 | 330 |
| 336 if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) { | 331 if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) { |
| 337 if (GetXFAWidgetHandler()) { | 332 if (GetXFAWidgetHandler()) { |
| 338 CPDFSDK_Widget::SynchronizeXFAValue(pXFADocView, hWidget, GetFormField(), | 333 CPDFSDK_Widget::SynchronizeXFAValue(pXFADocView, hWidget, GetFormField(), |
| 339 GetFormControl()); | 334 GetFormControl()); |
| 340 } | 335 } |
| 341 } | 336 } |
| 342 } | 337 } |
| 343 | 338 |
| 344 void CPDFSDK_Widget::SynchronizeXFAItems() { | 339 void CPDFSDK_Widget::SynchronizeXFAItems() { |
| 345 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); | 340 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); |
| 346 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); | |
| 347 CXFA_FFDocView* pXFADocView = pDoc->GetXFADocView(); | 341 CXFA_FFDocView* pXFADocView = pDoc->GetXFADocView(); |
| 348 if (!pXFADocView) | 342 if (!pXFADocView) |
| 349 return; | 343 return; |
| 350 | 344 |
| 351 if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) { | 345 if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) { |
| 352 if (GetXFAWidgetHandler()) | 346 if (GetXFAWidgetHandler()) |
| 353 SynchronizeXFAItems(pXFADocView, hWidget, GetFormField(), nullptr); | 347 SynchronizeXFAItems(pXFADocView, hWidget, GetFormField(), nullptr); |
| 354 } | 348 } |
| 355 } | 349 } |
| 356 | 350 |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 502 return TRUE; | 496 return TRUE; |
| 503 } | 497 } |
| 504 | 498 |
| 505 int CPDFSDK_Widget::GetFieldType() const { | 499 int CPDFSDK_Widget::GetFieldType() const { |
| 506 CPDF_FormField* pField = GetFormField(); | 500 CPDF_FormField* pField = GetFormField(); |
| 507 return pField ? pField->GetFieldType() : FIELDTYPE_UNKNOWN; | 501 return pField ? pField->GetFieldType() : FIELDTYPE_UNKNOWN; |
| 508 } | 502 } |
| 509 | 503 |
| 510 FX_BOOL CPDFSDK_Widget::IsAppearanceValid() { | 504 FX_BOOL CPDFSDK_Widget::IsAppearanceValid() { |
| 511 #ifdef PDF_ENABLE_XFA | 505 #ifdef PDF_ENABLE_XFA |
| 512 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); | 506 CPDFXFA_Document* pDoc = m_pPageView->GetFormFillEnv()->GetXFADocument(); |
| 513 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); | |
| 514 int nDocType = pDoc->GetDocType(); | 507 int nDocType = pDoc->GetDocType(); |
| 515 if (nDocType != DOCTYPE_PDF && nDocType != DOCTYPE_STATIC_XFA) | 508 if (nDocType != DOCTYPE_PDF && nDocType != DOCTYPE_STATIC_XFA) |
| 516 return TRUE; | 509 return TRUE; |
| 517 #endif // PDF_ENABLE_XFA | 510 #endif // PDF_ENABLE_XFA |
| 518 return CPDFSDK_BAAnnot::IsAppearanceValid(); | 511 return CPDFSDK_BAAnnot::IsAppearanceValid(); |
| 519 } | 512 } |
| 520 | 513 |
| 521 int CPDFSDK_Widget::GetLayoutOrder() const { | 514 int CPDFSDK_Widget::GetLayoutOrder() const { |
| 522 return 2; | 515 return 2; |
| 523 } | 516 } |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 845 CPDFSDK_PageView* pPageView) { | 838 CPDFSDK_PageView* pPageView) { |
| 846 int nFieldType = GetFieldType(); | 839 int nFieldType = GetFieldType(); |
| 847 if (!m_pInterForm->IsNeedHighLight(nFieldType)) | 840 if (!m_pInterForm->IsNeedHighLight(nFieldType)) |
| 848 return; | 841 return; |
| 849 | 842 |
| 850 CFX_FloatRect rc = GetRect(); | 843 CFX_FloatRect rc = GetRect(); |
| 851 FX_COLORREF color = m_pInterForm->GetHighlightColor(nFieldType); | 844 FX_COLORREF color = m_pInterForm->GetHighlightColor(nFieldType); |
| 852 uint8_t alpha = m_pInterForm->GetHighlightAlpha(); | 845 uint8_t alpha = m_pInterForm->GetHighlightAlpha(); |
| 853 | 846 |
| 854 CFX_FloatRect rcDevice; | 847 CFX_FloatRect rcDevice; |
| 855 ASSERT(m_pInterForm->GetDocument()); | 848 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pInterForm->GetFormFillEnv(); |
| 856 CPDFSDK_FormFillEnvironment* pEnv = m_pInterForm->GetDocument()->GetEnv(); | 849 if (!pFormFillEnv) |
| 857 if (!pEnv) | |
| 858 return; | 850 return; |
| 859 CFX_Matrix page2device; | 851 CFX_Matrix page2device; |
| 860 pPageView->GetCurrentMatrix(page2device); | 852 pPageView->GetCurrentMatrix(page2device); |
| 861 page2device.Transform(((FX_FLOAT)rc.left), ((FX_FLOAT)rc.bottom), | 853 page2device.Transform(((FX_FLOAT)rc.left), ((FX_FLOAT)rc.bottom), |
| 862 rcDevice.left, rcDevice.bottom); | 854 rcDevice.left, rcDevice.bottom); |
| 863 page2device.Transform(((FX_FLOAT)rc.right), ((FX_FLOAT)rc.top), | 855 page2device.Transform(((FX_FLOAT)rc.right), ((FX_FLOAT)rc.top), |
| 864 rcDevice.right, rcDevice.top); | 856 rcDevice.right, rcDevice.top); |
| 865 | 857 |
| 866 rcDevice.Normalize(); | 858 rcDevice.Normalize(); |
| 867 | 859 |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 992 | 984 |
| 993 if (pDownIcon) { | 985 if (pDownIcon) { |
| 994 if (CPDF_Dictionary* pImageDict = pDownIcon->GetDict()) { | 986 if (CPDF_Dictionary* pImageDict = pDownIcon->GetDict()) { |
| 995 if (pImageDict->GetStringFor("Name").IsEmpty()) | 987 if (pImageDict->GetStringFor("Name").IsEmpty()) |
| 996 pImageDict->SetStringFor("Name", "ImgC"); | 988 pImageDict->SetStringFor("Name", "ImgC"); |
| 997 } | 989 } |
| 998 } | 990 } |
| 999 | 991 |
| 1000 CPDF_IconFit iconFit = pControl->GetIconFit(); | 992 CPDF_IconFit iconFit = pControl->GetIconFit(); |
| 1001 | 993 |
| 1002 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument(); | 994 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pInterForm->GetFormFillEnv(); |
| 1003 CPDFSDK_FormFillEnvironment* pEnv = pDoc->GetEnv(); | 995 CBA_FontMap font_map(this, pFormFillEnv->GetSysHandler()); |
| 1004 | |
| 1005 CBA_FontMap font_map(this, pEnv->GetSysHandler()); | |
| 1006 font_map.SetAPType("N"); | 996 font_map.SetAPType("N"); |
| 1007 | 997 |
| 1008 CFX_ByteString csAP = | 998 CFX_ByteString csAP = |
| 1009 CPWL_Utils::GetRectFillAppStream(rcWindow, crBackground) + | 999 CPWL_Utils::GetRectFillAppStream(rcWindow, crBackground) + |
| 1010 CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder, | 1000 CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder, |
| 1011 crLeftTop, crRightBottom, nBorderStyle, | 1001 crLeftTop, crRightBottom, nBorderStyle, |
| 1012 dsBorder) + | 1002 dsBorder) + |
| 1013 CPWL_Utils::GetPushButtonAppStream( | 1003 CPWL_Utils::GetPushButtonAppStream( |
| 1014 iconFit.GetFittingBounds() ? rcWindow : rcClient, &font_map, | 1004 iconFit.GetFittingBounds() ? rcWindow : rcClient, &font_map, |
| 1015 pNormalIcon, iconFit, csNormalCaption, crText, fFontSize, nLayout); | 1005 pNormalIcon, iconFit, csNormalCaption, crText, fFontSize, nLayout); |
| (...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1370 CFX_ByteTextBuf sBody, sLines; | 1360 CFX_ByteTextBuf sBody, sLines; |
| 1371 | 1361 |
| 1372 CFX_FloatRect rcClient = GetClientRect(); | 1362 CFX_FloatRect rcClient = GetClientRect(); |
| 1373 CFX_FloatRect rcButton = rcClient; | 1363 CFX_FloatRect rcButton = rcClient; |
| 1374 rcButton.left = rcButton.right - 13; | 1364 rcButton.left = rcButton.right - 13; |
| 1375 rcButton.Normalize(); | 1365 rcButton.Normalize(); |
| 1376 | 1366 |
| 1377 std::unique_ptr<CFX_Edit> pEdit(new CFX_Edit); | 1367 std::unique_ptr<CFX_Edit> pEdit(new CFX_Edit); |
| 1378 pEdit->EnableRefresh(FALSE); | 1368 pEdit->EnableRefresh(FALSE); |
| 1379 | 1369 |
| 1380 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument(); | 1370 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pInterForm->GetFormFillEnv(); |
| 1381 CPDFSDK_FormFillEnvironment* pEnv = pDoc->GetEnv(); | 1371 CBA_FontMap font_map(this, pFormFillEnv->GetSysHandler()); |
| 1382 CBA_FontMap font_map(this, pEnv->GetSysHandler()); | |
| 1383 pEdit->SetFontMap(&font_map); | 1372 pEdit->SetFontMap(&font_map); |
| 1384 | 1373 |
| 1385 CFX_FloatRect rcEdit = rcClient; | 1374 CFX_FloatRect rcEdit = rcClient; |
| 1386 rcEdit.right = rcButton.left; | 1375 rcEdit.right = rcButton.left; |
| 1387 rcEdit.Normalize(); | 1376 rcEdit.Normalize(); |
| 1388 | 1377 |
| 1389 pEdit->SetPlateRect(rcEdit); | 1378 pEdit->SetPlateRect(rcEdit); |
| 1390 pEdit->SetAlignmentV(1, TRUE); | 1379 pEdit->SetAlignmentV(1, TRUE); |
| 1391 | 1380 |
| 1392 FX_FLOAT fFontSize = GetFontSize(); | 1381 FX_FLOAT fFontSize = GetFontSize(); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1436 | 1425 |
| 1437 void CPDFSDK_Widget::ResetAppearance_ListBox() { | 1426 void CPDFSDK_Widget::ResetAppearance_ListBox() { |
| 1438 CPDF_FormControl* pControl = GetFormControl(); | 1427 CPDF_FormControl* pControl = GetFormControl(); |
| 1439 CPDF_FormField* pField = pControl->GetField(); | 1428 CPDF_FormField* pField = pControl->GetField(); |
| 1440 CFX_FloatRect rcClient = GetClientRect(); | 1429 CFX_FloatRect rcClient = GetClientRect(); |
| 1441 CFX_ByteTextBuf sBody, sLines; | 1430 CFX_ByteTextBuf sBody, sLines; |
| 1442 | 1431 |
| 1443 std::unique_ptr<CFX_Edit> pEdit(new CFX_Edit); | 1432 std::unique_ptr<CFX_Edit> pEdit(new CFX_Edit); |
| 1444 pEdit->EnableRefresh(FALSE); | 1433 pEdit->EnableRefresh(FALSE); |
| 1445 | 1434 |
| 1446 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument(); | 1435 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pInterForm->GetFormFillEnv(); |
| 1447 CPDFSDK_FormFillEnvironment* pEnv = pDoc->GetEnv(); | 1436 CBA_FontMap font_map(this, pFormFillEnv->GetSysHandler()); |
| 1448 | |
| 1449 CBA_FontMap font_map(this, pEnv->GetSysHandler()); | |
| 1450 pEdit->SetFontMap(&font_map); | 1437 pEdit->SetFontMap(&font_map); |
| 1451 | 1438 |
| 1452 pEdit->SetPlateRect(CFX_FloatRect(rcClient.left, 0.0f, rcClient.right, 0.0f)); | 1439 pEdit->SetPlateRect(CFX_FloatRect(rcClient.left, 0.0f, rcClient.right, 0.0f)); |
| 1453 | 1440 |
| 1454 FX_FLOAT fFontSize = GetFontSize(); | 1441 FX_FLOAT fFontSize = GetFontSize(); |
| 1455 | 1442 |
| 1456 pEdit->SetFontSize(IsFloatZero(fFontSize) ? 12.0f : fFontSize); | 1443 pEdit->SetFontSize(IsFloatZero(fFontSize) ? 12.0f : fFontSize); |
| 1457 | 1444 |
| 1458 pEdit->Initialize(); | 1445 pEdit->Initialize(); |
| 1459 | 1446 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1523 } | 1510 } |
| 1524 | 1511 |
| 1525 void CPDFSDK_Widget::ResetAppearance_TextField(const CFX_WideString* sValue) { | 1512 void CPDFSDK_Widget::ResetAppearance_TextField(const CFX_WideString* sValue) { |
| 1526 CPDF_FormControl* pControl = GetFormControl(); | 1513 CPDF_FormControl* pControl = GetFormControl(); |
| 1527 CPDF_FormField* pField = pControl->GetField(); | 1514 CPDF_FormField* pField = pControl->GetField(); |
| 1528 CFX_ByteTextBuf sBody, sLines; | 1515 CFX_ByteTextBuf sBody, sLines; |
| 1529 | 1516 |
| 1530 std::unique_ptr<CFX_Edit> pEdit(new CFX_Edit); | 1517 std::unique_ptr<CFX_Edit> pEdit(new CFX_Edit); |
| 1531 pEdit->EnableRefresh(FALSE); | 1518 pEdit->EnableRefresh(FALSE); |
| 1532 | 1519 |
| 1533 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument(); | 1520 CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pInterForm->GetFormFillEnv(); |
| 1534 CPDFSDK_FormFillEnvironment* pEnv = pDoc->GetEnv(); | 1521 CBA_FontMap font_map(this, pFormFillEnv->GetSysHandler()); |
| 1535 | |
| 1536 CBA_FontMap font_map(this, pEnv->GetSysHandler()); | |
| 1537 pEdit->SetFontMap(&font_map); | 1522 pEdit->SetFontMap(&font_map); |
| 1538 | 1523 |
| 1539 CFX_FloatRect rcClient = GetClientRect(); | 1524 CFX_FloatRect rcClient = GetClientRect(); |
| 1540 pEdit->SetPlateRect(rcClient); | 1525 pEdit->SetPlateRect(rcClient); |
| 1541 pEdit->SetAlignmentH(pControl->GetControlAlignment(), TRUE); | 1526 pEdit->SetAlignmentH(pControl->GetControlAlignment(), TRUE); |
| 1542 | 1527 |
| 1543 uint32_t dwFieldFlags = pField->GetFieldFlags(); | 1528 uint32_t dwFieldFlags = pField->GetFieldFlags(); |
| 1544 FX_BOOL bMultiLine = (dwFieldFlags >> 12) & 1; | 1529 FX_BOOL bMultiLine = (dwFieldFlags >> 12) & 1; |
| 1545 | 1530 |
| 1546 if (bMultiLine) { | 1531 if (bMultiLine) { |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1839 } | 1824 } |
| 1840 | 1825 |
| 1841 void CPDFSDK_Widget::RemoveAppearance(const CFX_ByteString& sAPType) { | 1826 void CPDFSDK_Widget::RemoveAppearance(const CFX_ByteString& sAPType) { |
| 1842 if (CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDictFor("AP")) | 1827 if (CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDictFor("AP")) |
| 1843 pAPDict->RemoveFor(sAPType); | 1828 pAPDict->RemoveFor(sAPType); |
| 1844 } | 1829 } |
| 1845 | 1830 |
| 1846 FX_BOOL CPDFSDK_Widget::OnAAction(CPDF_AAction::AActionType type, | 1831 FX_BOOL CPDFSDK_Widget::OnAAction(CPDF_AAction::AActionType type, |
| 1847 PDFSDK_FieldAction& data, | 1832 PDFSDK_FieldAction& data, |
| 1848 CPDFSDK_PageView* pPageView) { | 1833 CPDFSDK_PageView* pPageView) { |
| 1849 CPDFSDK_Document* pDocument = pPageView->GetSDKDocument(); | 1834 CPDFSDK_FormFillEnvironment* pFormFillEnv = pPageView->GetFormFillEnv(); |
| 1850 CPDFSDK_FormFillEnvironment* pEnv = pDocument->GetEnv(); | |
| 1851 | 1835 |
| 1852 #ifdef PDF_ENABLE_XFA | 1836 #ifdef PDF_ENABLE_XFA |
| 1853 CPDFXFA_Document* pDoc = pDocument->GetXFADocument(); | 1837 CPDFXFA_Document* pXFADoc = pFormFillEnv->GetXFADocument(); |
| 1854 if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) { | 1838 if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) { |
| 1855 XFA_EVENTTYPE eEventType = GetXFAEventType(type, data.bWillCommit); | 1839 XFA_EVENTTYPE eEventType = GetXFAEventType(type, data.bWillCommit); |
| 1856 | 1840 |
| 1857 if (eEventType != XFA_EVENT_Unknown) { | 1841 if (eEventType != XFA_EVENT_Unknown) { |
| 1858 if (CXFA_FFWidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler()) { | 1842 if (CXFA_FFWidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler()) { |
| 1859 CXFA_EventParam param; | 1843 CXFA_EventParam param; |
| 1860 param.m_eType = eEventType; | 1844 param.m_eType = eEventType; |
| 1861 param.m_wsChange = data.sChange; | 1845 param.m_wsChange = data.sChange; |
| 1862 param.m_iCommitKey = data.nCommitKey; | 1846 param.m_iCommitKey = data.nCommitKey; |
| 1863 param.m_bShift = data.bShift; | 1847 param.m_bShift = data.bShift; |
| 1864 param.m_iSelStart = data.nSelStart; | 1848 param.m_iSelStart = data.nSelStart; |
| 1865 param.m_iSelEnd = data.nSelEnd; | 1849 param.m_iSelEnd = data.nSelEnd; |
| 1866 param.m_wsFullText = data.sValue; | 1850 param.m_wsFullText = data.sValue; |
| 1867 param.m_bKeyDown = data.bKeyDown; | 1851 param.m_bKeyDown = data.bKeyDown; |
| 1868 param.m_bModifier = data.bModifier; | 1852 param.m_bModifier = data.bModifier; |
| 1869 param.m_wsNewText = data.sValue; | 1853 param.m_wsNewText = data.sValue; |
| 1870 if (data.nSelEnd > data.nSelStart) | 1854 if (data.nSelEnd > data.nSelStart) |
| 1871 param.m_wsNewText.Delete(data.nSelStart, | 1855 param.m_wsNewText.Delete(data.nSelStart, |
| 1872 data.nSelEnd - data.nSelStart); | 1856 data.nSelEnd - data.nSelStart); |
| 1873 for (int i = data.sChange.GetLength() - 1; i >= 0; i--) | 1857 for (int i = data.sChange.GetLength() - 1; i >= 0; i--) |
| 1874 param.m_wsNewText.Insert(data.nSelStart, data.sChange[i]); | 1858 param.m_wsNewText.Insert(data.nSelStart, data.sChange[i]); |
| 1875 param.m_wsPrevText = data.sValue; | 1859 param.m_wsPrevText = data.sValue; |
| 1876 | 1860 |
| 1877 CXFA_WidgetAcc* pAcc = hWidget->GetDataAcc(); | 1861 CXFA_WidgetAcc* pAcc = hWidget->GetDataAcc(); |
| 1878 param.m_pTarget = pAcc; | 1862 param.m_pTarget = pAcc; |
| 1879 int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, ¶m); | 1863 int32_t nRet = pXFAWidgetHandler->ProcessEvent(pAcc, ¶m); |
| 1880 | 1864 |
| 1881 if (CXFA_FFDocView* pDocView = pDoc->GetXFADocView()) | 1865 if (CXFA_FFDocView* pDocView = pXFADoc->GetXFADocView()) |
| 1882 pDocView->UpdateDocView(); | 1866 pDocView->UpdateDocView(); |
| 1883 | 1867 |
| 1884 if (nRet == XFA_EVENTERROR_Success) | 1868 if (nRet == XFA_EVENTERROR_Success) |
| 1885 return TRUE; | 1869 return TRUE; |
| 1886 } | 1870 } |
| 1887 } | 1871 } |
| 1888 } | 1872 } |
| 1889 #endif // PDF_ENABLE_XFA | 1873 #endif // PDF_ENABLE_XFA |
| 1890 | 1874 |
| 1891 CPDF_Action action = GetAAction(type); | 1875 CPDF_Action action = GetAAction(type); |
| 1892 if (action.GetDict() && action.GetType() != CPDF_Action::Unknown) { | 1876 if (action.GetDict() && action.GetType() != CPDF_Action::Unknown) { |
| 1893 CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander(); | 1877 CPDFSDK_ActionHandler* pActionHandler = pFormFillEnv->GetActionHander(); |
| 1894 return pActionHandler->DoAction_Field(action, type, pDocument, | 1878 return pActionHandler->DoAction_Field( |
| 1895 GetFormField(), data); | 1879 action, type, pFormFillEnv->GetSDKDocument(), GetFormField(), data); |
| 1896 } | 1880 } |
| 1897 return FALSE; | 1881 return FALSE; |
| 1898 } | 1882 } |
| 1899 | 1883 |
| 1900 CPDF_Action CPDFSDK_Widget::GetAAction(CPDF_AAction::AActionType eAAT) { | 1884 CPDF_Action CPDFSDK_Widget::GetAAction(CPDF_AAction::AActionType eAAT) { |
| 1901 switch (eAAT) { | 1885 switch (eAAT) { |
| 1902 case CPDF_AAction::CursorEnter: | 1886 case CPDF_AAction::CursorEnter: |
| 1903 case CPDF_AAction::CursorExit: | 1887 case CPDF_AAction::CursorExit: |
| 1904 case CPDF_AAction::ButtonDown: | 1888 case CPDF_AAction::ButtonDown: |
| 1905 case CPDF_AAction::ButtonUp: | 1889 case CPDF_AAction::ButtonUp: |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1947 return FALSE; | 1931 return FALSE; |
| 1948 | 1932 |
| 1949 if (!IsVisible()) | 1933 if (!IsVisible()) |
| 1950 return FALSE; | 1934 return FALSE; |
| 1951 | 1935 |
| 1952 if ((GetFieldFlags() & FIELDFLAG_READONLY) == FIELDFLAG_READONLY) | 1936 if ((GetFieldFlags() & FIELDFLAG_READONLY) == FIELDFLAG_READONLY) |
| 1953 return FALSE; | 1937 return FALSE; |
| 1954 | 1938 |
| 1955 return TRUE; | 1939 return TRUE; |
| 1956 } | 1940 } |
| OLD | NEW |