summaryrefslogtreecommitdiff
path: root/core/include/fpdfdoc/fpdf_tagged.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/include/fpdfdoc/fpdf_tagged.h')
-rw-r--r--core/include/fpdfdoc/fpdf_tagged.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/core/include/fpdfdoc/fpdf_tagged.h b/core/include/fpdfdoc/fpdf_tagged.h
new file mode 100644
index 0000000000..a44c26311b
--- /dev/null
+++ b/core/include/fpdfdoc/fpdf_tagged.h
@@ -0,0 +1,99 @@
+// Copyright 2014 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
+
+#ifndef _FPDF_TAGGED_H_
+#define _FPDF_TAGGED_H_
+class CPDF_StructTree;
+class CPDF_StructElement;
+struct CPDF_StructKid;
+class CPDF_Document;
+class CPDF_Page;
+class IPDF_ReflowEngine;
+class IPDF_ReflowedPage;
+class CPDF_StructTree : public CFX_Object
+{
+public:
+
+ static CPDF_StructTree* LoadDoc(const CPDF_Document* pDoc);
+
+ static CPDF_StructTree* LoadPage(const CPDF_Document* pDoc, const CPDF_Dictionary* pPageDict);
+
+ virtual ~CPDF_StructTree() {}
+
+ virtual int CountTopElements() const = 0;
+
+ virtual CPDF_StructElement* GetTopElement(int i) const = 0;
+};
+struct CPDF_StructKid {
+ enum {
+ Invalid,
+ Element,
+ PageContent,
+ StreamContent,
+ Object
+ } m_Type;
+
+ union {
+ struct {
+
+ CPDF_StructElement* m_pElement;
+
+ CPDF_Dictionary* m_pDict;
+ } m_Element;
+ struct {
+
+ FX_DWORD m_PageObjNum;
+
+ FX_DWORD m_ContentId;
+ } m_PageContent;
+ struct {
+
+ FX_DWORD m_PageObjNum;
+
+ FX_DWORD m_ContentId;
+
+ FX_DWORD m_RefObjNum;
+ } m_StreamContent;
+ struct {
+
+ FX_DWORD m_PageObjNum;
+
+ FX_DWORD m_RefObjNum;
+ } m_Object;
+ };
+};
+class CPDF_StructElement : public CFX_Object
+{
+public:
+
+ virtual CPDF_StructTree* GetTree() const = 0;
+
+ virtual const CFX_ByteString& GetType() const = 0;
+
+ virtual CPDF_StructElement* GetParent() const = 0;
+
+ virtual CPDF_Dictionary * GetDict() const = 0;
+
+ virtual int CountKids() const = 0;
+
+ virtual const CPDF_StructKid& GetKid(int index) const = 0;
+
+ virtual CFX_PtrArray* GetObjectArray() = 0;
+
+ virtual CPDF_Object* GetAttr(FX_BSTR owner, FX_BSTR name, FX_BOOL bInheritable = FALSE, FX_FLOAT fLevel = 0.0F) = 0;
+
+
+
+ virtual CFX_ByteString GetName(FX_BSTR owner, FX_BSTR name, FX_BSTR default_value, FX_BOOL bInheritable = FALSE, int subindex = -1) = 0;
+
+ virtual FX_ARGB GetColor(FX_BSTR owner, FX_BSTR name, FX_ARGB default_value, FX_BOOL bInheritable = FALSE, int subindex = -1) = 0;
+
+ virtual FX_FLOAT GetNumber(FX_BSTR owner, FX_BSTR name, FX_FLOAT default_value, FX_BOOL bInheritable = FALSE, int subindex = -1) = 0;
+
+ virtual int GetInteger(FX_BSTR owner, FX_BSTR name, int default_value, FX_BOOL bInheritable = FALSE, int subindex = -1) = 0;
+
+};
+#endif