| 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 "../include/fsdk_define.h" | 7 #include "../include/fsdk_define.h" |
| 8 #include "../include/fpdfxfa/fpdfxfa_doc.h" | 8 #include "../include/fpdfxfa/fpdfxfa_doc.h" |
| 9 #include "../include/fsdk_mgr.h" | 9 #include "../include/fsdk_mgr.h" |
| 10 #include "../include/fsdk_baseannot.h" | 10 #include "../include/fsdk_baseannot.h" |
| 11 | 11 |
| 12 //--------------------------------------------------------------------------- | |
| 13 // CPDFSDK_DateTime | |
| 14 //--------------------------------------------------------------------------- | |
| 15 int _gAfxGetTimeZoneInSeconds(FX_CHAR tzhour, uint8_t tzminute) { | 12 int _gAfxGetTimeZoneInSeconds(FX_CHAR tzhour, uint8_t tzminute) { |
| 16 return (int)tzhour * 3600 + (int)tzminute * (tzhour >= 0 ? 60 : -60); | 13 return (int)tzhour * 3600 + (int)tzminute * (tzhour >= 0 ? 60 : -60); |
| 17 } | 14 } |
| 18 | 15 |
| 19 FX_BOOL _gAfxIsLeapYear(int16_t year) { | 16 FX_BOOL _gAfxIsLeapYear(int16_t year) { |
| 20 return ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))); | 17 return ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))); |
| 21 } | 18 } |
| 22 | 19 |
| 23 FX_WORD _gAfxGetYearDays(int16_t year) { | 20 FX_WORD _gAfxGetYearDays(int16_t year) { |
| 24 return (_gAfxIsLeapYear(year) == TRUE ? 366 : 365); | 21 return (_gAfxIsLeapYear(year) == TRUE ? 366 : 365); |
| (...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 496 dt.hour %= 24; | 493 dt.hour %= 24; |
| 497 n %= 3600; | 494 n %= 3600; |
| 498 dt.minute = (uint8_t)(n / 60); | 495 dt.minute = (uint8_t)(n / 60); |
| 499 dt.second = (uint8_t)(n % 60); | 496 dt.second = (uint8_t)(n % 60); |
| 500 if (days != 0) | 497 if (days != 0) |
| 501 AddDays(days); | 498 AddDays(days); |
| 502 | 499 |
| 503 return *this; | 500 return *this; |
| 504 } | 501 } |
| 505 | 502 |
| 506 //--------------------------------------------------------------------------- | |
| 507 // CPDFSDK_Annot | |
| 508 //--------------------------------------------------------------------------- | |
| 509 CPDFSDK_Annot::CPDFSDK_Annot(CPDFSDK_PageView* pPageView) | 503 CPDFSDK_Annot::CPDFSDK_Annot(CPDFSDK_PageView* pPageView) |
| 510 : m_pPageView(pPageView), m_bSelected(FALSE), m_nTabOrder(-1) {} | 504 : m_pPageView(pPageView), m_bSelected(FALSE), m_nTabOrder(-1) { |
| 505 } |
| 511 | 506 |
| 512 // CPDFSDK_BAAnnot | |
| 513 CPDFSDK_BAAnnot::CPDFSDK_BAAnnot(CPDF_Annot* pAnnot, | 507 CPDFSDK_BAAnnot::CPDFSDK_BAAnnot(CPDF_Annot* pAnnot, |
| 514 CPDFSDK_PageView* pPageView) | 508 CPDFSDK_PageView* pPageView) |
| 515 : CPDFSDK_Annot(pPageView), m_pAnnot(pAnnot) {} | 509 : CPDFSDK_Annot(pPageView), m_pAnnot(pAnnot) { |
| 516 | |
| 517 CPDFSDK_BAAnnot::~CPDFSDK_BAAnnot() { | |
| 518 m_pAnnot = NULL; | |
| 519 } | 510 } |
| 520 | 511 |
| 521 CPDF_Annot* CPDFSDK_BAAnnot::GetPDFAnnot() const { | 512 CPDF_Annot* CPDFSDK_BAAnnot::GetPDFAnnot() const { |
| 522 return m_pAnnot; | 513 return m_pAnnot; |
| 523 } | 514 } |
| 524 | 515 |
| 525 FX_BOOL CPDFSDK_Annot::IsSelected() { | 516 FX_BOOL CPDFSDK_Annot::IsSelected() { |
| 526 return m_bSelected; | 517 return m_bSelected; |
| 527 } | 518 } |
| 528 | 519 |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 860 const CPDF_Matrix& matrix, | 851 const CPDF_Matrix& matrix, |
| 861 const CFX_ByteString& sContents, | 852 const CFX_ByteString& sContents, |
| 862 const CFX_ByteString& sAPState) { | 853 const CFX_ByteString& sAPState) { |
| 863 CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDict("AP"); | 854 CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDict("AP"); |
| 864 | 855 |
| 865 if (!pAPDict) { | 856 if (!pAPDict) { |
| 866 pAPDict = new CPDF_Dictionary; | 857 pAPDict = new CPDF_Dictionary; |
| 867 m_pAnnot->GetAnnotDict()->SetAt("AP", pAPDict); | 858 m_pAnnot->GetAnnotDict()->SetAt("AP", pAPDict); |
| 868 } | 859 } |
| 869 | 860 |
| 870 CPDF_Stream* pStream = NULL; | 861 CPDF_Stream* pStream = nullptr; |
| 871 CPDF_Dictionary* pParentDict = NULL; | 862 CPDF_Dictionary* pParentDict = nullptr; |
| 872 | 863 |
| 873 if (sAPState.IsEmpty()) { | 864 if (sAPState.IsEmpty()) { |
| 874 pParentDict = pAPDict; | 865 pParentDict = pAPDict; |
| 875 pStream = pAPDict->GetStream(sAPType); | 866 pStream = pAPDict->GetStream(sAPType); |
| 876 } else { | 867 } else { |
| 877 CPDF_Dictionary* pAPTypeDict = pAPDict->GetDict(sAPType); | 868 CPDF_Dictionary* pAPTypeDict = pAPDict->GetDict(sAPType); |
| 878 if (!pAPTypeDict) { | 869 if (!pAPTypeDict) { |
| 879 pAPTypeDict = new CPDF_Dictionary; | 870 pAPTypeDict = new CPDF_Dictionary; |
| 880 pAPDict->SetAt(sAPType, pAPTypeDict); | 871 pAPDict->SetAt(sAPType, pAPTypeDict); |
| 881 } | 872 } |
| 882 | 873 |
| 883 pParentDict = pAPTypeDict; | 874 pParentDict = pAPTypeDict; |
| 884 pStream = pAPTypeDict->GetStream(sAPState); | 875 pStream = pAPTypeDict->GetStream(sAPState); |
| 885 } | 876 } |
| 886 | 877 |
| 887 if (!pStream) { | 878 if (!pStream) { |
| 888 ASSERT(m_pPageView != NULL); | 879 pStream = new CPDF_Stream(nullptr, 0, nullptr); |
| 880 |
| 889 CPDF_Document* pDoc = m_pPageView->GetPDFDocument(); | 881 CPDF_Document* pDoc = m_pPageView->GetPDFDocument(); |
| 890 ASSERT(pDoc != NULL); | |
| 891 | |
| 892 pStream = new CPDF_Stream(NULL, 0, NULL); | |
| 893 int32_t objnum = pDoc->AddIndirectObject(pStream); | 882 int32_t objnum = pDoc->AddIndirectObject(pStream); |
| 894 // pAPDict->SetAtReference(sAPType, pDoc, objnum); | 883 // pAPDict->SetAtReference(sAPType, pDoc, objnum); |
| 895 ASSERT(pParentDict != NULL); | 884 ASSERT(pParentDict != NULL); |
| 896 pParentDict->SetAtReference(sAPType, pDoc, objnum); | 885 pParentDict->SetAtReference(sAPType, pDoc, objnum); |
| 897 } | 886 } |
| 898 | 887 |
| 899 CPDF_Dictionary* pStreamDict = pStream->GetDict(); | 888 CPDF_Dictionary* pStreamDict = pStream->GetDict(); |
| 900 | |
| 901 if (!pStreamDict) { | 889 if (!pStreamDict) { |
| 902 pStreamDict = new CPDF_Dictionary; | 890 pStreamDict = new CPDF_Dictionary; |
| 903 pStreamDict->SetAtName("Type", "XObject"); | 891 pStreamDict->SetAtName("Type", "XObject"); |
| 904 pStreamDict->SetAtName("Subtype", "Form"); | 892 pStreamDict->SetAtName("Subtype", "Form"); |
| 905 pStreamDict->SetAtInteger("FormType", 1); | 893 pStreamDict->SetAtInteger("FormType", 1); |
| 906 pStream->InitStream(NULL, 0, pStreamDict); | 894 pStream->InitStream(nullptr, 0, pStreamDict); |
| 907 } | 895 } |
| 908 | 896 |
| 909 if (pStreamDict) { | 897 if (pStreamDict) { |
| 910 pStreamDict->SetAtMatrix("Matrix", matrix); | 898 pStreamDict->SetAtMatrix("Matrix", matrix); |
| 911 pStreamDict->SetAtRect("BBox", rcBBox); | 899 pStreamDict->SetAtRect("BBox", rcBBox); |
| 912 } | 900 } |
| 913 | 901 |
| 914 pStream->SetData((uint8_t*)sContents.c_str(), sContents.GetLength(), FALSE, | 902 pStream->SetData((uint8_t*)sContents.c_str(), sContents.GetLength(), FALSE, |
| 915 FALSE); | 903 FALSE); |
| 916 } | 904 } |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1001 if (m_pPageView) | 989 if (m_pPageView) |
| 1002 return m_pPageView->GetPDFPage(); | 990 return m_pPageView->GetPDFPage(); |
| 1003 return NULL; | 991 return NULL; |
| 1004 } | 992 } |
| 1005 | 993 |
| 1006 CPDFXFA_Page* CPDFSDK_Annot::GetPDFXFAPage() { | 994 CPDFXFA_Page* CPDFSDK_Annot::GetPDFXFAPage() { |
| 1007 if (m_pPageView) | 995 if (m_pPageView) |
| 1008 return m_pPageView->GetPDFXFAPage(); | 996 return m_pPageView->GetPDFXFAPage(); |
| 1009 return NULL; | 997 return NULL; |
| 1010 } | 998 } |
| OLD | NEW |