Home | History | Annotate | Download | only in fpdfdoc
      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   CPDF_Action() : m_pDict(nullptr) {}
     41   explicit CPDF_Action(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
     42 
     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;
     48   bool GetHideStatus() const { return m_pDict->GetBooleanFor("H", true); }
     49   CFX_ByteString GetNamedAction() const { return m_pDict->GetStringFor("N"); }
     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