Make conversion between CPDF_Action and its dictionary explicit.
[pdfium.git] / core / include / fpdfdoc / fpdf_doc.h
index cbb0fd4..dbcc7f4 100644 (file)
@@ -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(const CPDF_Bookmark& parent) const;
 
-    CPDF_Bookmark              GetFirstChild(CPDF_Bookmark parent);
+    CPDF_Bookmark              GetNextSibling(const CPDF_Bookmark& bookmark) const;
 
-    CPDF_Bookmark              GetNextSibling(CPDF_Bookmark bookmark);
+    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) {}
 
+    explicit CPDF_Bookmark(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
 
-    FX_DWORD                   GetColorRef();
+    CPDF_Dictionary* GetDict() const { return m_pDict; }
 
-    FX_DWORD                   GetFontStyle();
+    operator bool() const { return m_pDict != NULL; }
 
-    CFX_WideString             GetTitle();
+    FX_DWORD                   GetColorRef() const;
 
+    FX_DWORD                   GetFontStyle() const;
 
+    CFX_WideString             GetTitle() const;
 
+    CPDF_Dest                  GetDest(CPDF_Document* pDocument) const;
 
-    CPDF_Dest                  GetDest(CPDF_Document* pDocument);
-
-    CPDF_Action                        GetAction();
-
+    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
 {
@@ -284,17 +264,6 @@ public:
 class CPDF_Action : public CFX_Object
 {
 public:
-
-    CPDF_Action(CPDF_Dictionary* pDict = NULL)
-    {
-        m_pDict = pDict;
-    }
-
-    operator CPDF_Dictionary* () const
-    {
-        return m_pDict;
-    }
-
     enum ActionType {
         Unknown = 0,
         GoTo,
@@ -317,6 +286,13 @@ public:
         GoTo3DView
     };
 
+    CPDF_Action() : m_pDict(nullptr) { }
+    explicit CPDF_Action(CPDF_Dictionary* pDict) : m_pDict(pDict) { }
+
+    operator bool () const { return m_pDict != NULL; }
+
+    CPDF_Dictionary* GetDict() const { return m_pDict; }
+
     CFX_ByteString             GetTypeName() const
     {
         return m_pDict->GetString("S");
@@ -442,7 +418,7 @@ public:
 
     CPDF_Action                        GetSubAction(FX_DWORD iIndex) const;
 
-
+protected:
     CPDF_Dictionary*   m_pDict;
 };
 class CPDF_AAction : public CFX_Object
@@ -1657,6 +1633,11 @@ public:
 
     FX_BOOL PrintScaling() const;
 
+    FX_INT32 NumCopies() const;
+
+    CPDF_Array* PrintPageRange() const;
+
+    CFX_ByteString Duplex() const;
 
 protected:
     CPDF_Document*     m_pDoc;