• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #ifndef CORE_FPDFDOC_CPDF_ACTION_H_
8 #define CORE_FPDFDOC_CPDF_ACTION_H_
9 
10 #include "core/fpdfapi/parser/cpdf_dictionary.h"
11 #include "core/fpdfdoc/cpdf_dest.h"
12 #include "core/fxcrt/fx_string.h"
13 
14 class CPDF_Document;
15 
16 class CPDF_Action {
17  public:
18   enum ActionType {
19     Unknown = 0,
20     GoTo,
21     GoToR,
22     GoToE,
23     Launch,
24     Thread,
25     URI,
26     Sound,
27     Movie,
28     Hide,
29     Named,
30     SubmitForm,
31     ResetForm,
32     ImportData,
33     JavaScript,
34     SetOCGState,
35     Rendition,
36     Trans,
37     GoTo3DView
38   };
39 
CPDF_Action()40   CPDF_Action() : m_pDict(nullptr) {}
CPDF_Action(CPDF_Dictionary * pDict)41   explicit CPDF_Action(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
42 
GetDict()43   CPDF_Dictionary* GetDict() const { return m_pDict; }
44   ActionType GetType() const;
45   CPDF_Dest GetDest(CPDF_Document* pDoc) const;
46   CFX_WideString GetFilePath() const;
47   CFX_ByteString GetURI(CPDF_Document* pDoc) const;
GetHideStatus()48   bool GetHideStatus() const { return m_pDict->GetBooleanFor("H", true); }
GetNamedAction()49   CFX_ByteString GetNamedAction() const { return m_pDict->GetStringFor("N"); }
GetFlags()50   uint32_t GetFlags() const { return m_pDict->GetIntegerFor("Flags"); }
51   CFX_WideString GetJavaScript() const;
52   size_t GetSubActionsCount() const;
53   CPDF_Action GetSubAction(size_t iIndex) const;
54 
55  private:
56   CPDF_Dictionary* const m_pDict;
57 };
58 
59 #endif  // CORE_FPDFDOC_CPDF_ACTION_H_
60