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 #include "core/fpdfdoc/cpdf_link.h"
      8 
      9 #include "core/fpdfapi/parser/cpdf_array.h"
     10 #include "core/fpdfdoc/cpdf_nametree.h"
     11 
     12 CFX_FloatRect CPDF_Link::GetRect() {
     13   return m_pDict->GetRectFor("Rect");
     14 }
     15 
     16 CPDF_Dest CPDF_Link::GetDest(CPDF_Document* pDoc) {
     17   CPDF_Object* pDest = m_pDict->GetDirectObjectFor("Dest");
     18   if (!pDest)
     19     return CPDF_Dest();
     20 
     21   if (pDest->IsString() || pDest->IsName()) {
     22     CPDF_NameTree name_tree(pDoc, "Dests");
     23     return CPDF_Dest(name_tree.LookupNamedDest(pDoc, pDest->GetString()));
     24   }
     25   if (CPDF_Array* pArray = pDest->AsArray())
     26     return CPDF_Dest(pArray);
     27   return CPDF_Dest();
     28 }
     29 
     30 CPDF_Action CPDF_Link::GetAction() {
     31   return CPDF_Action(m_pDict->GetDictFor("A"));
     32 }
     33