diff options
Diffstat (limited to 'core/src/fpdfdoc/doc_bookmark.cpp')
-rw-r--r-- | core/src/fpdfdoc/doc_bookmark.cpp | 182 |
1 files changed, 91 insertions, 91 deletions
diff --git a/core/src/fpdfdoc/doc_bookmark.cpp b/core/src/fpdfdoc/doc_bookmark.cpp index 6cc954bd69..0ae649ecdd 100644 --- a/core/src/fpdfdoc/doc_bookmark.cpp +++ b/core/src/fpdfdoc/doc_bookmark.cpp @@ -1,91 +1,91 @@ -// 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
-
-#include "../../include/fpdfdoc/fpdf_doc.h"
-CPDF_Bookmark CPDF_BookmarkTree::GetFirstChild(CPDF_Bookmark Parent)
-{
- if (Parent.m_pDict == NULL) {
- CPDF_Dictionary* pRoot = m_pDocument->GetRoot()->GetDict("Outlines");
- if (pRoot == NULL) {
- return NULL;
- }
- return pRoot->GetDict("First");
- }
- return Parent.m_pDict->GetDict("First");
-}
-CPDF_Bookmark CPDF_BookmarkTree::GetNextSibling(CPDF_Bookmark This)
-{
- if (This.m_pDict == NULL) {
- return NULL;
- }
- CPDF_Dictionary *pNext = This.m_pDict->GetDict("Next");
- return pNext == This.m_pDict ? NULL : pNext;
-}
-FX_DWORD CPDF_Bookmark::GetColorRef()
-{
- if (!m_pDict) {
- return 0;
- }
- CPDF_Array* pColor = m_pDict->GetArray("C");
- if (pColor == NULL) {
- return FXSYS_RGB(0, 0, 0);
- }
- int r = FXSYS_round(pColor->GetNumber(0) * 255);
- int g = FXSYS_round(pColor->GetNumber(1) * 255);
- int b = FXSYS_round(pColor->GetNumber(2) * 255);
- return FXSYS_RGB(r, g, b);
-}
-FX_DWORD CPDF_Bookmark::GetFontStyle()
-{
- if (!m_pDict) {
- return 0;
- }
- return m_pDict->GetInteger("F");
-}
-CFX_WideString CPDF_Bookmark::GetTitle()
-{
- if (!m_pDict) {
- return CFX_WideString();
- }
- CPDF_String* pString = (CPDF_String*)m_pDict->GetElementValue("Title");
- if (pString == NULL || pString->GetType() != PDFOBJ_STRING) {
- return CFX_WideString();
- }
- CFX_WideString title = pString->GetUnicodeText();
- FX_LPWSTR buf = title.LockBuffer();
- int len = title.GetLength(), i;
- for (i = 0; i < len; i ++)
- if (buf[i] < 0x20) {
- buf[i] = 0x20;
- }
- title.ReleaseBuffer(len);
- return title;
-}
-CPDF_Dest CPDF_Bookmark::GetDest(CPDF_Document* pDocument)
-{
- if (!m_pDict) {
- return NULL;
- }
- CPDF_Object* pDest = m_pDict->GetElementValue("Dest");
- if (pDest == NULL) {
- return NULL;
- }
- if (pDest->GetType() == PDFOBJ_STRING || pDest->GetType() == PDFOBJ_NAME) {
- CPDF_NameTree name_tree(pDocument, FX_BSTRC("Dests"));
- CFX_ByteStringC name = pDest->GetString();
- return name_tree.LookupNamedDest(pDocument, name);
- } else if (pDest->GetType() == PDFOBJ_ARRAY) {
- return (CPDF_Array*)pDest;
- }
- return NULL;
-}
-CPDF_Action CPDF_Bookmark::GetAction()
-{
- if (!m_pDict) {
- return NULL;
- }
- return m_pDict->GetDict("A");
-}
+// 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 + +#include "../../include/fpdfdoc/fpdf_doc.h" +CPDF_Bookmark CPDF_BookmarkTree::GetFirstChild(CPDF_Bookmark Parent) +{ + if (Parent.m_pDict == NULL) { + CPDF_Dictionary* pRoot = m_pDocument->GetRoot()->GetDict("Outlines"); + if (pRoot == NULL) { + return NULL; + } + return pRoot->GetDict("First"); + } + return Parent.m_pDict->GetDict("First"); +} +CPDF_Bookmark CPDF_BookmarkTree::GetNextSibling(CPDF_Bookmark This) +{ + if (This.m_pDict == NULL) { + return NULL; + } + CPDF_Dictionary *pNext = This.m_pDict->GetDict("Next"); + return pNext == This.m_pDict ? NULL : pNext; +} +FX_DWORD CPDF_Bookmark::GetColorRef() +{ + if (!m_pDict) { + return 0; + } + CPDF_Array* pColor = m_pDict->GetArray("C"); + if (pColor == NULL) { + return FXSYS_RGB(0, 0, 0); + } + int r = FXSYS_round(pColor->GetNumber(0) * 255); + int g = FXSYS_round(pColor->GetNumber(1) * 255); + int b = FXSYS_round(pColor->GetNumber(2) * 255); + return FXSYS_RGB(r, g, b); +} +FX_DWORD CPDF_Bookmark::GetFontStyle() +{ + if (!m_pDict) { + return 0; + } + return m_pDict->GetInteger("F"); +} +CFX_WideString CPDF_Bookmark::GetTitle() +{ + if (!m_pDict) { + return CFX_WideString(); + } + CPDF_String* pString = (CPDF_String*)m_pDict->GetElementValue("Title"); + if (pString == NULL || pString->GetType() != PDFOBJ_STRING) { + return CFX_WideString(); + } + CFX_WideString title = pString->GetUnicodeText(); + FX_LPWSTR buf = title.LockBuffer(); + int len = title.GetLength(), i; + for (i = 0; i < len; i ++) + if (buf[i] < 0x20) { + buf[i] = 0x20; + } + title.ReleaseBuffer(len); + return title; +} +CPDF_Dest CPDF_Bookmark::GetDest(CPDF_Document* pDocument) +{ + if (!m_pDict) { + return NULL; + } + CPDF_Object* pDest = m_pDict->GetElementValue("Dest"); + if (pDest == NULL) { + return NULL; + } + if (pDest->GetType() == PDFOBJ_STRING || pDest->GetType() == PDFOBJ_NAME) { + CPDF_NameTree name_tree(pDocument, FX_BSTRC("Dests")); + CFX_ByteStringC name = pDest->GetString(); + return name_tree.LookupNamedDest(pDocument, name); + } else if (pDest->GetType() == PDFOBJ_ARRAY) { + return (CPDF_Array*)pDest; + } + return NULL; +} +CPDF_Action CPDF_Bookmark::GetAction() +{ + if (!m_pDict) { + return NULL; + } + return m_pDict->GetDict("A"); +} |