• 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 
40   explicit CPDF_Action(CPDF_Dictionary* pDict);
41   CPDF_Action(const CPDF_Action& that);
42   ~CPDF_Action();
43 
GetDict()44   CPDF_Dictionary* GetDict() const { return m_pDict.Get(); }
45   ActionType GetType() const;
46   CPDF_Dest GetDest(CPDF_Document* pDoc) const;
47   WideString GetFilePath() const;
48   ByteString GetURI(const CPDF_Document* pDoc) const;
GetHideStatus()49   bool GetHideStatus() const { return m_pDict->GetBooleanFor("H", true); }
GetNamedAction()50   ByteString GetNamedAction() const { return m_pDict->GetStringFor("N"); }
GetFlags()51   uint32_t GetFlags() const { return m_pDict->GetIntegerFor("Flags"); }
52   WideString GetJavaScript() const;
53   size_t GetSubActionsCount() const;
54   CPDF_Action GetSubAction(size_t iIndex) const;
55 
56  private:
57   UnownedPtr<CPDF_Dictionary> const m_pDict;
58 };
59 
60 #endif  // CORE_FPDFDOC_CPDF_ACTION_H_
61