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