summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/cpdf_contentmarkitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/page/cpdf_contentmarkitem.cpp')
-rw-r--r--core/fpdfapi/page/cpdf_contentmarkitem.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/core/fpdfapi/page/cpdf_contentmarkitem.cpp b/core/fpdfapi/page/cpdf_contentmarkitem.cpp
new file mode 100644
index 0000000000..90e36d1215
--- /dev/null
+++ b/core/fpdfapi/page/cpdf_contentmarkitem.cpp
@@ -0,0 +1,50 @@
+// 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/page/cpdf_contentmarkitem.h"
+
+#include "core/fpdfapi/fpdf_parser/cpdf_dictionary.h"
+
+CPDF_ContentMarkItem::CPDF_ContentMarkItem()
+ : m_ParamType(None), m_pPropertiesDict(nullptr) {}
+
+CPDF_ContentMarkItem::CPDF_ContentMarkItem(const CPDF_ContentMarkItem& that)
+ : m_MarkName(that.m_MarkName),
+ m_ParamType(that.m_ParamType),
+ m_pPropertiesDict(that.m_pPropertiesDict) {
+ if (that.m_pDirectDict)
+ m_pDirectDict.reset(that.m_pDirectDict->Clone()->AsDictionary());
+}
+
+CPDF_ContentMarkItem::~CPDF_ContentMarkItem() {}
+
+CPDF_Dictionary* CPDF_ContentMarkItem::GetParam() const {
+ switch (m_ParamType) {
+ case PropertiesDict:
+ return m_pPropertiesDict;
+ case DirectDict:
+ return m_pDirectDict.get();
+ case None:
+ default:
+ return nullptr;
+ }
+}
+
+FX_BOOL CPDF_ContentMarkItem::HasMCID() const {
+ CPDF_Dictionary* pDict = GetParam();
+ return pDict && pDict->KeyExist("MCID");
+}
+
+void CPDF_ContentMarkItem::SetDirectDict(
+ std::unique_ptr<CPDF_Dictionary, ReleaseDeleter<CPDF_Dictionary>> pDict) {
+ m_ParamType = DirectDict;
+ m_pDirectDict = std::move(pDict);
+}
+
+void CPDF_ContentMarkItem::SetPropertiesDict(CPDF_Dictionary* pDict) {
+ m_ParamType = PropertiesDict;
+ m_pPropertiesDict = pDict;
+}