| 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 "fpdfsdk/include/fsdk_baseform.h" | 7 #include "fpdfsdk/include/fsdk_baseform.h" |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 1533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1544 } | 1544 } |
| 1545 | 1545 |
| 1546 void CPDFSDK_InterForm::EnableCalculate(FX_BOOL bEnabled) { | 1546 void CPDFSDK_InterForm::EnableCalculate(FX_BOOL bEnabled) { |
| 1547 m_bCalculate = bEnabled; | 1547 m_bCalculate = bEnabled; |
| 1548 } | 1548 } |
| 1549 | 1549 |
| 1550 FX_BOOL CPDFSDK_InterForm::IsCalculateEnabled() const { | 1550 FX_BOOL CPDFSDK_InterForm::IsCalculateEnabled() const { |
| 1551 return m_bCalculate; | 1551 return m_bCalculate; |
| 1552 } | 1552 } |
| 1553 | 1553 |
| 1554 #ifdef _WIN32 | |
| 1555 CPDF_Stream* CPDFSDK_InterForm::LoadImageFromFile(const CFX_WideString& sFile) { | |
| 1556 CPDF_Document* pDocument = m_pDocument->GetPDFDocument(); | |
| 1557 CPDF_Stream* pRetStream = NULL; | |
| 1558 | |
| 1559 if (CFX_DIBitmap* pBmp = CFX_WindowsDIB::LoadFromFile(sFile.c_str())) { | |
| 1560 int nWidth = pBmp->GetWidth(); | |
| 1561 int nHeight = pBmp->GetHeight(); | |
| 1562 | |
| 1563 CPDF_Image Image(pDocument); | |
| 1564 Image.SetImage(pBmp, FALSE); | |
| 1565 CPDF_Stream* pImageStream = Image.GetStream(); | |
| 1566 if (pImageStream) { | |
| 1567 if (pImageStream->GetObjNum() == 0) | |
| 1568 pDocument->AddIndirectObject(pImageStream); | |
| 1569 | |
| 1570 CPDF_Dictionary* pStreamDict = new CPDF_Dictionary(); | |
| 1571 pStreamDict->SetAtName("Subtype", "Form"); | |
| 1572 pStreamDict->SetAtName("Name", "IMG"); | |
| 1573 CPDF_Array* pMatrix = new CPDF_Array(); | |
| 1574 pStreamDict->SetAt("Matrix", pMatrix); | |
| 1575 pMatrix->AddInteger(1); | |
| 1576 pMatrix->AddInteger(0); | |
| 1577 pMatrix->AddInteger(0); | |
| 1578 pMatrix->AddInteger(1); | |
| 1579 pMatrix->AddInteger(-nWidth / 2); | |
| 1580 pMatrix->AddInteger(-nHeight / 2); | |
| 1581 CPDF_Dictionary* pResource = new CPDF_Dictionary(); | |
| 1582 pStreamDict->SetAt("Resources", pResource); | |
| 1583 CPDF_Dictionary* pXObject = new CPDF_Dictionary(); | |
| 1584 pResource->SetAt("XObject", pXObject); | |
| 1585 pXObject->SetAtReference("Img", pDocument, pImageStream); | |
| 1586 CPDF_Array* pProcSet = new CPDF_Array(); | |
| 1587 pResource->SetAt("ProcSet", pProcSet); | |
| 1588 pProcSet->AddName("PDF"); | |
| 1589 pProcSet->AddName("ImageC"); | |
| 1590 pStreamDict->SetAtName("Type", "XObject"); | |
| 1591 CPDF_Array* pBBox = new CPDF_Array(); | |
| 1592 pStreamDict->SetAt("BBox", pBBox); | |
| 1593 pBBox->AddInteger(0); | |
| 1594 pBBox->AddInteger(0); | |
| 1595 pBBox->AddInteger(nWidth); | |
| 1596 pBBox->AddInteger(nHeight); | |
| 1597 pStreamDict->SetAtInteger("FormType", 1); | |
| 1598 | |
| 1599 pRetStream = new CPDF_Stream(NULL, 0, NULL); | |
| 1600 CFX_ByteString csStream; | |
| 1601 csStream.Format("q\n%d 0 0 %d 0 0 cm\n/Img Do\nQ", nWidth, nHeight); | |
| 1602 pRetStream->InitStream((uint8_t*)csStream.c_str(), csStream.GetLength(), | |
| 1603 pStreamDict); | |
| 1604 pDocument->AddIndirectObject(pRetStream); | |
| 1605 } | |
| 1606 | |
| 1607 delete pBmp; | |
| 1608 } | |
| 1609 | |
| 1610 return pRetStream; | |
| 1611 } | |
| 1612 #endif | |
| 1613 | |
| 1614 void CPDFSDK_InterForm::OnCalculate(CPDF_FormField* pFormField) { | 1554 void CPDFSDK_InterForm::OnCalculate(CPDF_FormField* pFormField) { |
| 1615 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); | 1555 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); |
| 1616 ASSERT(pEnv); | 1556 ASSERT(pEnv); |
| 1617 if (!pEnv->IsJSInitiated()) | 1557 if (!pEnv->IsJSInitiated()) |
| 1618 return; | 1558 return; |
| 1619 | 1559 |
| 1620 if (m_bBusy) | 1560 if (m_bBusy) |
| 1621 return; | 1561 return; |
| 1622 | 1562 |
| 1623 m_bBusy = TRUE; | 1563 m_bBusy = TRUE; |
| (...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2352 break; | 2292 break; |
| 2353 } | 2293 } |
| 2354 } | 2294 } |
| 2355 } | 2295 } |
| 2356 | 2296 |
| 2357 CPDF_Rect CBA_AnnotIterator::GetAnnotRect(CPDFSDK_Annot* pAnnot) { | 2297 CPDF_Rect CBA_AnnotIterator::GetAnnotRect(CPDFSDK_Annot* pAnnot) { |
| 2358 CPDF_Rect rcAnnot; | 2298 CPDF_Rect rcAnnot; |
| 2359 pAnnot->GetPDFAnnot()->GetRect(rcAnnot); | 2299 pAnnot->GetPDFAnnot()->GetRect(rcAnnot); |
| 2360 return rcAnnot; | 2300 return rcAnnot; |
| 2361 } | 2301 } |
| OLD | NEW |