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