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   explicit CPDF_Action(CPDF_Dictionary* pDict);
     41   CPDF_Action(const CPDF_Action& that);
     42   ~CPDF_Action();
     43 
     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;
     49   bool GetHideStatus() const { return m_pDict->GetBooleanFor("H", true); }
     50   ByteString GetNamedAction() const { return m_pDict->GetStringFor("N"); }
     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