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 834 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
845 CPDFSDK_PageView* pPageView) { | 845 CPDFSDK_PageView* pPageView) { |
846 int nFieldType = GetFieldType(); | 846 int nFieldType = GetFieldType(); |
847 if (!m_pInterForm->IsNeedHighLight(nFieldType)) | 847 if (!m_pInterForm->IsNeedHighLight(nFieldType)) |
848 return; | 848 return; |
849 | 849 |
850 CFX_FloatRect rc = GetRect(); | 850 CFX_FloatRect rc = GetRect(); |
851 FX_COLORREF color = m_pInterForm->GetHighlightColor(nFieldType); | 851 FX_COLORREF color = m_pInterForm->GetHighlightColor(nFieldType); |
852 uint8_t alpha = m_pInterForm->GetHighlightAlpha(); | 852 uint8_t alpha = m_pInterForm->GetHighlightAlpha(); |
853 | 853 |
854 CFX_FloatRect rcDevice; | 854 CFX_FloatRect rcDevice; |
855 ASSERT(m_pInterForm->GetDocument()); | 855 CPDFSDK_FormFillEnvironment* pEnv = m_pInterForm->GetFormFillEnv(); |
856 CPDFSDK_FormFillEnvironment* pEnv = m_pInterForm->GetDocument()->GetEnv(); | |
857 if (!pEnv) | 856 if (!pEnv) |
858 return; | 857 return; |
| 858 |
859 CFX_Matrix page2device; | 859 CFX_Matrix page2device; |
860 pPageView->GetCurrentMatrix(page2device); | 860 pPageView->GetCurrentMatrix(page2device); |
861 page2device.Transform(((FX_FLOAT)rc.left), ((FX_FLOAT)rc.bottom), | 861 page2device.Transform(((FX_FLOAT)rc.left), ((FX_FLOAT)rc.bottom), |
862 rcDevice.left, rcDevice.bottom); | 862 rcDevice.left, rcDevice.bottom); |
863 page2device.Transform(((FX_FLOAT)rc.right), ((FX_FLOAT)rc.top), | 863 page2device.Transform(((FX_FLOAT)rc.right), ((FX_FLOAT)rc.top), |
864 rcDevice.right, rcDevice.top); | 864 rcDevice.right, rcDevice.top); |
865 | 865 |
866 rcDevice.Normalize(); | 866 rcDevice.Normalize(); |
867 | 867 |
868 FX_ARGB argb = ArgbEncode((int)alpha, color); | 868 FX_ARGB argb = ArgbEncode((int)alpha, color); |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
992 | 992 |
993 if (pDownIcon) { | 993 if (pDownIcon) { |
994 if (CPDF_Dictionary* pImageDict = pDownIcon->GetDict()) { | 994 if (CPDF_Dictionary* pImageDict = pDownIcon->GetDict()) { |
995 if (pImageDict->GetStringFor("Name").IsEmpty()) | 995 if (pImageDict->GetStringFor("Name").IsEmpty()) |
996 pImageDict->SetStringFor("Name", "ImgC"); | 996 pImageDict->SetStringFor("Name", "ImgC"); |
997 } | 997 } |
998 } | 998 } |
999 | 999 |
1000 CPDF_IconFit iconFit = pControl->GetIconFit(); | 1000 CPDF_IconFit iconFit = pControl->GetIconFit(); |
1001 | 1001 |
1002 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument(); | 1002 CBA_FontMap font_map(this, m_pInterForm->GetFormFillEnv()->GetSysHandler()); |
1003 CPDFSDK_FormFillEnvironment* pEnv = pDoc->GetEnv(); | |
1004 | |
1005 CBA_FontMap font_map(this, pEnv->GetSysHandler()); | |
1006 font_map.SetAPType("N"); | 1003 font_map.SetAPType("N"); |
1007 | 1004 |
1008 CFX_ByteString csAP = | 1005 CFX_ByteString csAP = |
1009 CPWL_Utils::GetRectFillAppStream(rcWindow, crBackground) + | 1006 CPWL_Utils::GetRectFillAppStream(rcWindow, crBackground) + |
1010 CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder, | 1007 CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder, |
1011 crLeftTop, crRightBottom, nBorderStyle, | 1008 crLeftTop, crRightBottom, nBorderStyle, |
1012 dsBorder) + | 1009 dsBorder) + |
1013 CPWL_Utils::GetPushButtonAppStream( | 1010 CPWL_Utils::GetPushButtonAppStream( |
1014 iconFit.GetFittingBounds() ? rcWindow : rcClient, &font_map, | 1011 iconFit.GetFittingBounds() ? rcWindow : rcClient, &font_map, |
1015 pNormalIcon, iconFit, csNormalCaption, crText, fFontSize, nLayout); | 1012 pNormalIcon, iconFit, csNormalCaption, crText, fFontSize, nLayout); |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1370 CFX_ByteTextBuf sBody, sLines; | 1367 CFX_ByteTextBuf sBody, sLines; |
1371 | 1368 |
1372 CFX_FloatRect rcClient = GetClientRect(); | 1369 CFX_FloatRect rcClient = GetClientRect(); |
1373 CFX_FloatRect rcButton = rcClient; | 1370 CFX_FloatRect rcButton = rcClient; |
1374 rcButton.left = rcButton.right - 13; | 1371 rcButton.left = rcButton.right - 13; |
1375 rcButton.Normalize(); | 1372 rcButton.Normalize(); |
1376 | 1373 |
1377 std::unique_ptr<CFX_Edit> pEdit(new CFX_Edit); | 1374 std::unique_ptr<CFX_Edit> pEdit(new CFX_Edit); |
1378 pEdit->EnableRefresh(FALSE); | 1375 pEdit->EnableRefresh(FALSE); |
1379 | 1376 |
1380 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument(); | 1377 CBA_FontMap font_map(this, m_pInterForm->GetFormFillEnv()->GetSysHandler()); |
1381 CPDFSDK_FormFillEnvironment* pEnv = pDoc->GetEnv(); | |
1382 CBA_FontMap font_map(this, pEnv->GetSysHandler()); | |
1383 pEdit->SetFontMap(&font_map); | 1378 pEdit->SetFontMap(&font_map); |
1384 | 1379 |
1385 CFX_FloatRect rcEdit = rcClient; | 1380 CFX_FloatRect rcEdit = rcClient; |
1386 rcEdit.right = rcButton.left; | 1381 rcEdit.right = rcButton.left; |
1387 rcEdit.Normalize(); | 1382 rcEdit.Normalize(); |
1388 | 1383 |
1389 pEdit->SetPlateRect(rcEdit); | 1384 pEdit->SetPlateRect(rcEdit); |
1390 pEdit->SetAlignmentV(1, TRUE); | 1385 pEdit->SetAlignmentV(1, TRUE); |
1391 | 1386 |
1392 FX_FLOAT fFontSize = GetFontSize(); | 1387 FX_FLOAT fFontSize = GetFontSize(); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1436 | 1431 |
1437 void CPDFSDK_Widget::ResetAppearance_ListBox() { | 1432 void CPDFSDK_Widget::ResetAppearance_ListBox() { |
1438 CPDF_FormControl* pControl = GetFormControl(); | 1433 CPDF_FormControl* pControl = GetFormControl(); |
1439 CPDF_FormField* pField = pControl->GetField(); | 1434 CPDF_FormField* pField = pControl->GetField(); |
1440 CFX_FloatRect rcClient = GetClientRect(); | 1435 CFX_FloatRect rcClient = GetClientRect(); |
1441 CFX_ByteTextBuf sBody, sLines; | 1436 CFX_ByteTextBuf sBody, sLines; |
1442 | 1437 |
1443 std::unique_ptr<CFX_Edit> pEdit(new CFX_Edit); | 1438 std::unique_ptr<CFX_Edit> pEdit(new CFX_Edit); |
1444 pEdit->EnableRefresh(FALSE); | 1439 pEdit->EnableRefresh(FALSE); |
1445 | 1440 |
1446 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument(); | 1441 CBA_FontMap font_map(this, m_pInterForm->GetFormFillEnv()->GetSysHandler()); |
1447 CPDFSDK_FormFillEnvironment* pEnv = pDoc->GetEnv(); | |
1448 | |
1449 CBA_FontMap font_map(this, pEnv->GetSysHandler()); | |
1450 pEdit->SetFontMap(&font_map); | 1442 pEdit->SetFontMap(&font_map); |
1451 | 1443 |
1452 pEdit->SetPlateRect(CFX_FloatRect(rcClient.left, 0.0f, rcClient.right, 0.0f)); | 1444 pEdit->SetPlateRect(CFX_FloatRect(rcClient.left, 0.0f, rcClient.right, 0.0f)); |
1453 | 1445 |
1454 FX_FLOAT fFontSize = GetFontSize(); | 1446 FX_FLOAT fFontSize = GetFontSize(); |
1455 | 1447 |
1456 pEdit->SetFontSize(IsFloatZero(fFontSize) ? 12.0f : fFontSize); | 1448 pEdit->SetFontSize(IsFloatZero(fFontSize) ? 12.0f : fFontSize); |
1457 | 1449 |
1458 pEdit->Initialize(); | 1450 pEdit->Initialize(); |
1459 | 1451 |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1523 } | 1515 } |
1524 | 1516 |
1525 void CPDFSDK_Widget::ResetAppearance_TextField(const CFX_WideString* sValue) { | 1517 void CPDFSDK_Widget::ResetAppearance_TextField(const CFX_WideString* sValue) { |
1526 CPDF_FormControl* pControl = GetFormControl(); | 1518 CPDF_FormControl* pControl = GetFormControl(); |
1527 CPDF_FormField* pField = pControl->GetField(); | 1519 CPDF_FormField* pField = pControl->GetField(); |
1528 CFX_ByteTextBuf sBody, sLines; | 1520 CFX_ByteTextBuf sBody, sLines; |
1529 | 1521 |
1530 std::unique_ptr<CFX_Edit> pEdit(new CFX_Edit); | 1522 std::unique_ptr<CFX_Edit> pEdit(new CFX_Edit); |
1531 pEdit->EnableRefresh(FALSE); | 1523 pEdit->EnableRefresh(FALSE); |
1532 | 1524 |
1533 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument(); | 1525 CBA_FontMap font_map(this, m_pInterForm->GetFormFillEnv()->GetSysHandler()); |
1534 CPDFSDK_FormFillEnvironment* pEnv = pDoc->GetEnv(); | |
1535 | |
1536 CBA_FontMap font_map(this, pEnv->GetSysHandler()); | |
1537 pEdit->SetFontMap(&font_map); | 1526 pEdit->SetFontMap(&font_map); |
1538 | 1527 |
1539 CFX_FloatRect rcClient = GetClientRect(); | 1528 CFX_FloatRect rcClient = GetClientRect(); |
1540 pEdit->SetPlateRect(rcClient); | 1529 pEdit->SetPlateRect(rcClient); |
1541 pEdit->SetAlignmentH(pControl->GetControlAlignment(), TRUE); | 1530 pEdit->SetAlignmentH(pControl->GetControlAlignment(), TRUE); |
1542 | 1531 |
1543 uint32_t dwFieldFlags = pField->GetFieldFlags(); | 1532 uint32_t dwFieldFlags = pField->GetFieldFlags(); |
1544 FX_BOOL bMultiLine = (dwFieldFlags >> 12) & 1; | 1533 FX_BOOL bMultiLine = (dwFieldFlags >> 12) & 1; |
1545 | 1534 |
1546 if (bMultiLine) { | 1535 if (bMultiLine) { |
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1947 return FALSE; | 1936 return FALSE; |
1948 | 1937 |
1949 if (!IsVisible()) | 1938 if (!IsVisible()) |
1950 return FALSE; | 1939 return FALSE; |
1951 | 1940 |
1952 if ((GetFieldFlags() & FIELDFLAG_READONLY) == FIELDFLAG_READONLY) | 1941 if ((GetFieldFlags() & FIELDFLAG_READONLY) == FIELDFLAG_READONLY) |
1953 return FALSE; | 1942 return FALSE; |
1954 | 1943 |
1955 return TRUE; | 1944 return TRUE; |
1956 } | 1945 } |
OLD | NEW |