| Index: core/fpdfapi/fpdf_page/cpdf_contentmarkdata.cpp
|
| diff --git a/core/fpdfapi/fpdf_page/cpdf_contentmarkdata.cpp b/core/fpdfapi/fpdf_page/cpdf_contentmarkdata.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..076e8ac521d706f4cd8091bca2c6a688cebcd895
|
| --- /dev/null
|
| +++ b/core/fpdfapi/fpdf_page/cpdf_contentmarkdata.cpp
|
| @@ -0,0 +1,51 @@
|
| +// Copyright 2016 PDFium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
| +
|
| +#include "core/fpdfapi/fpdf_page/cpdf_contentmarkdata.h"
|
| +
|
| +#include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h"
|
| +#include "third_party/base/stl_util.h"
|
| +
|
| +CPDF_ContentMarkData::CPDF_ContentMarkData(const CPDF_ContentMarkData& src)
|
| + : m_Marks(src.m_Marks) {}
|
| +
|
| +int CPDF_ContentMarkData::CountItems() const {
|
| + return pdfium::CollectionSize<int>(m_Marks);
|
| +}
|
| +
|
| +int CPDF_ContentMarkData::GetMCID() const {
|
| + for (const auto& mark : m_Marks) {
|
| + CPDF_ContentMarkItem::ParamType type = mark.GetParamType();
|
| + if (type == CPDF_ContentMarkItem::PropertiesDict ||
|
| + type == CPDF_ContentMarkItem::DirectDict) {
|
| + CPDF_Dictionary* pDict = mark.GetParam();
|
| + if (pDict->KeyExist("MCID"))
|
| + return pDict->GetIntegerBy("MCID");
|
| + }
|
| + }
|
| + return -1;
|
| +}
|
| +
|
| +void CPDF_ContentMarkData::AddMark(const CFX_ByteString& name,
|
| + CPDF_Dictionary* pDict,
|
| + FX_BOOL bDirect) {
|
| + CPDF_ContentMarkItem item;
|
| + item.SetName(name);
|
| + if (pDict) {
|
| + if (bDirect) {
|
| + item.SetParam(CPDF_ContentMarkItem::DirectDict,
|
| + ToDictionary(pDict->Clone()));
|
| + } else {
|
| + item.SetParam(CPDF_ContentMarkItem::PropertiesDict, pDict);
|
| + }
|
| + }
|
| + m_Marks.push_back(item);
|
| +}
|
| +
|
| +void CPDF_ContentMarkData::DeleteLastMark() {
|
| + if (!m_Marks.empty())
|
| + m_Marks.pop_back();
|
| +}
|
|
|