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