diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/include/fpdfdoc/fpdf_doc.h | 46 | ||||
-rw-r--r-- | core/src/fpdfdoc/doc_bookmark.cpp | 43 |
2 files changed, 35 insertions, 54 deletions
diff --git a/core/include/fpdfdoc/fpdf_doc.h b/core/include/fpdfdoc/fpdf_doc.h index e4cf777c1f..60f41a5554 100644 --- a/core/include/fpdfdoc/fpdf_doc.h +++ b/core/include/fpdfdoc/fpdf_doc.h @@ -76,26 +76,15 @@ protected: class CPDF_BookmarkTree : public CFX_Object { public: + CPDF_BookmarkTree(CPDF_Document* pDoc) : m_pDocument(pDoc) {} - CPDF_BookmarkTree(CPDF_Document* pDoc) - { - m_pDocument = pDoc; - } -public: - - - - CPDF_Bookmark GetFirstChild(CPDF_Bookmark parent); + CPDF_Bookmark GetFirstChild(const CPDF_Bookmark& parent) const; - CPDF_Bookmark GetNextSibling(CPDF_Bookmark bookmark); + CPDF_Bookmark GetNextSibling(const CPDF_Bookmark& bookmark) const; + CPDF_Document* GetDocument() const { return m_pDocument; } - CPDF_Document* GetDocument() const - { - return m_pDocument; - } protected: - CPDF_Document* m_pDocument; }; #define PDFBOOKMARK_ITALIC 1 @@ -104,31 +93,23 @@ class CPDF_Bookmark : public CFX_Object { public: - CPDF_Bookmark(CPDF_Dictionary* pDict = NULL) - { - m_pDict = pDict; - } - - operator CPDF_Dictionary*() const - { - return m_pDict; - } - - + CPDF_Bookmark() : m_pDict(NULL) {} - FX_DWORD GetColorRef(); + explicit CPDF_Bookmark(CPDF_Dictionary* pDict) : m_pDict(pDict) {} - FX_DWORD GetFontStyle(); + CPDF_Dictionary* GetDict() const { return m_pDict; } - CFX_WideString GetTitle(); + operator bool() const { return m_pDict != NULL; } + FX_DWORD GetColorRef() const; + FX_DWORD GetFontStyle() const; + CFX_WideString GetTitle() const; - CPDF_Dest GetDest(CPDF_Document* pDocument); - - CPDF_Action GetAction(); + CPDF_Dest GetDest(CPDF_Document* pDocument) const; + CPDF_Action GetAction() const; CPDF_Dictionary* m_pDict; }; @@ -139,7 +120,6 @@ public: #define PDFZOOM_FITRECT 5 #define PDFZOOM_FITBBOX 6 #define PDFZOOM_FITBHORZ 7 - #define PDFZOOM_FITBVERT 8 class CPDF_Dest : public CFX_Object { diff --git a/core/src/fpdfdoc/doc_bookmark.cpp b/core/src/fpdfdoc/doc_bookmark.cpp index 0ae649ecdd..e7b383eced 100644 --- a/core/src/fpdfdoc/doc_bookmark.cpp +++ b/core/src/fpdfdoc/doc_bookmark.cpp @@ -5,32 +5,32 @@ // 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) +CPDF_Bookmark CPDF_BookmarkTree::GetFirstChild(const CPDF_Bookmark& parent) const { - if (Parent.m_pDict == NULL) { + if (!parent.m_pDict) { CPDF_Dictionary* pRoot = m_pDocument->GetRoot()->GetDict("Outlines"); - if (pRoot == NULL) { - return NULL; + if (!pRoot) { + return CPDF_Bookmark(); } - return pRoot->GetDict("First"); + return CPDF_Bookmark(pRoot->GetDict("First")); } - return Parent.m_pDict->GetDict("First"); + return CPDF_Bookmark(parent.m_pDict->GetDict("First")); } -CPDF_Bookmark CPDF_BookmarkTree::GetNextSibling(CPDF_Bookmark This) +CPDF_Bookmark CPDF_BookmarkTree::GetNextSibling(const CPDF_Bookmark& bookmark) const { - if (This.m_pDict == NULL) { - return NULL; + if (!bookmark.m_pDict) { + return CPDF_Bookmark(); } - CPDF_Dictionary *pNext = This.m_pDict->GetDict("Next"); - return pNext == This.m_pDict ? NULL : pNext; + CPDF_Dictionary *pNext = bookmark.m_pDict->GetDict("Next"); + return pNext == bookmark.m_pDict ? CPDF_Bookmark() : CPDF_Bookmark(pNext); } -FX_DWORD CPDF_Bookmark::GetColorRef() +FX_DWORD CPDF_Bookmark::GetColorRef() const { if (!m_pDict) { return 0; } CPDF_Array* pColor = m_pDict->GetArray("C"); - if (pColor == NULL) { + if (!pColor) { return FXSYS_RGB(0, 0, 0); } int r = FXSYS_round(pColor->GetNumber(0) * 255); @@ -38,39 +38,40 @@ FX_DWORD CPDF_Bookmark::GetColorRef() int b = FXSYS_round(pColor->GetNumber(2) * 255); return FXSYS_RGB(r, g, b); } -FX_DWORD CPDF_Bookmark::GetFontStyle() +FX_DWORD CPDF_Bookmark::GetFontStyle() const { if (!m_pDict) { return 0; } return m_pDict->GetInteger("F"); } -CFX_WideString CPDF_Bookmark::GetTitle() +CFX_WideString CPDF_Bookmark::GetTitle() const { if (!m_pDict) { return CFX_WideString(); } CPDF_String* pString = (CPDF_String*)m_pDict->GetElementValue("Title"); - if (pString == NULL || pString->GetType() != PDFOBJ_STRING) { + if (!pString || 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 ++) + int len = title.GetLength(); + for (int 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) +CPDF_Dest CPDF_Bookmark::GetDest(CPDF_Document* pDocument) const { if (!m_pDict) { return NULL; } CPDF_Object* pDest = m_pDict->GetElementValue("Dest"); - if (pDest == NULL) { + if (!pDest) { return NULL; } if (pDest->GetType() == PDFOBJ_STRING || pDest->GetType() == PDFOBJ_NAME) { @@ -82,7 +83,7 @@ CPDF_Dest CPDF_Bookmark::GetDest(CPDF_Document* pDocument) } return NULL; } -CPDF_Action CPDF_Bookmark::GetAction() +CPDF_Action CPDF_Bookmark::GetAction() const { if (!m_pDict) { return NULL; |