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 "core/fpdfapi/fpdf_page/include/cpdf_form.h" | 7 #include "core/fpdfapi/fpdf_page/include/cpdf_form.h" |
8 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h" | 8 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h" |
9 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" | 9 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" |
10 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" | 10 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 | 36 |
37 uint32_t dwObjNum = pDict->GetObjNum(); | 37 uint32_t dwObjNum = pDict->GetObjNum(); |
38 if (dwObjNum == 0) { | 38 if (dwObjNum == 0) { |
39 dwObjNum = m_pDocument->AddIndirectObject(pDict); | 39 dwObjNum = m_pDocument->AddIndirectObject(pDict); |
40 CPDF_Reference* pAction = new CPDF_Reference(m_pDocument, dwObjNum); | 40 CPDF_Reference* pAction = new CPDF_Reference(m_pDocument, dwObjNum); |
41 pAnnots->InsertAt(i, pAction); | 41 pAnnots->InsertAt(i, pAction); |
42 pAnnots->RemoveAt(i + 1); | 42 pAnnots->RemoveAt(i + 1); |
43 pDict = pAnnots->GetDictAt(i); | 43 pDict = pAnnots->GetDictAt(i); |
44 } | 44 } |
45 m_AnnotList.push_back(new CPDF_Annot(pDict, this)); | 45 m_AnnotList.push_back(new CPDF_Annot(pDict, this)); |
46 if (bRegenerateAP && pDict->GetConstStringBy("Subtype") == "Widget" && | 46 if (bRegenerateAP && pDict->GetStringBy("Subtype") == "Widget" && |
47 CPDF_InterForm::UpdatingAPEnabled()) { | 47 CPDF_InterForm::UpdatingAPEnabled()) { |
48 FPDF_GenerateAP(m_pDocument, pDict); | 48 FPDF_GenerateAP(m_pDocument, pDict); |
49 } | 49 } |
50 } | 50 } |
51 } | 51 } |
52 | 52 |
53 CPDF_AnnotList::~CPDF_AnnotList() { | 53 CPDF_AnnotList::~CPDF_AnnotList() { |
54 for (CPDF_Annot* annot : m_AnnotList) | 54 for (CPDF_Annot* annot : m_AnnotList) |
55 delete annot; | 55 delete annot; |
56 } | 56 } |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 } | 120 } |
121 if (dwAnnotFlags & 0x02) { | 121 if (dwAnnotFlags & 0x02) { |
122 DisplayPass(pPage, pDevice, pContext, bPrinting, pUser2Device, TRUE, | 122 DisplayPass(pPage, pDevice, pContext, bPrinting, pUser2Device, TRUE, |
123 pOptions, pClipRect); | 123 pOptions, pClipRect); |
124 } | 124 } |
125 } | 125 } |
126 | 126 |
127 CPDF_Annot::CPDF_Annot(CPDF_Dictionary* pDict, CPDF_AnnotList* pList) | 127 CPDF_Annot::CPDF_Annot(CPDF_Dictionary* pDict, CPDF_AnnotList* pList) |
128 : m_pAnnotDict(pDict), | 128 : m_pAnnotDict(pDict), |
129 m_pList(pList), | 129 m_pList(pList), |
130 m_sSubtype(m_pAnnotDict->GetConstStringBy("Subtype")) {} | 130 m_sSubtype(m_pAnnotDict->GetStringBy("Subtype")) {} |
| 131 |
131 CPDF_Annot::~CPDF_Annot() { | 132 CPDF_Annot::~CPDF_Annot() { |
132 ClearCachedAP(); | 133 ClearCachedAP(); |
133 } | 134 } |
| 135 |
134 void CPDF_Annot::ClearCachedAP() { | 136 void CPDF_Annot::ClearCachedAP() { |
135 for (const auto& pair : m_APMap) { | 137 for (const auto& pair : m_APMap) { |
136 delete pair.second; | 138 delete pair.second; |
137 } | 139 } |
138 m_APMap.clear(); | 140 m_APMap.clear(); |
139 } | 141 } |
140 CFX_ByteString CPDF_Annot::GetSubType() const { | 142 CFX_ByteString CPDF_Annot::GetSubType() const { |
141 return m_sSubtype; | 143 return m_sSubtype; |
142 } | 144 } |
143 | 145 |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 CFX_PathData path; | 349 CFX_PathData path; |
348 width /= 2; | 350 width /= 2; |
349 path.AppendRect(rect.left + width, rect.bottom + width, rect.right - width, | 351 path.AppendRect(rect.left + width, rect.bottom + width, rect.right - width, |
350 rect.top - width); | 352 rect.top - width); |
351 int fill_type = 0; | 353 int fill_type = 0; |
352 if (pOptions && (pOptions->m_Flags & RENDER_NOPATHSMOOTH)) { | 354 if (pOptions && (pOptions->m_Flags & RENDER_NOPATHSMOOTH)) { |
353 fill_type |= FXFILL_NOPATHSMOOTH; | 355 fill_type |= FXFILL_NOPATHSMOOTH; |
354 } | 356 } |
355 pDevice->DrawPath(&path, pUser2Device, &graph_state, argb, argb, fill_type); | 357 pDevice->DrawPath(&path, pUser2Device, &graph_state, argb, argb, fill_type); |
356 } | 358 } |
OLD | NEW |