| OLD | NEW | 
|---|
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 
| 6 | 6 | 
| 7 #include "public/fpdf_doc.h" | 7 #include "public/fpdf_doc.h" | 
| 8 | 8 | 
| 9 #include <set> | 9 #include <set> | 
| 10 | 10 | 
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 167                                                FPDF_ACTION pDict) { | 167                                                FPDF_ACTION pDict) { | 
| 168   if (!pDict) | 168   if (!pDict) | 
| 169     return nullptr; | 169     return nullptr; | 
| 170   CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document); | 170   CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document); | 
| 171   if (!pDoc) | 171   if (!pDoc) | 
| 172     return nullptr; | 172     return nullptr; | 
| 173   CPDF_Action action(ToDictionary(static_cast<CPDF_Object*>(pDict))); | 173   CPDF_Action action(ToDictionary(static_cast<CPDF_Object*>(pDict))); | 
| 174   return action.GetDest(pDoc).GetObject(); | 174   return action.GetDest(pDoc).GetObject(); | 
| 175 } | 175 } | 
| 176 | 176 | 
| 177 DLLEXPORT unsigned long STDCALL | 177 DLLEXPORT unsigned long STDCALL FPDFAction_GetFilePath(FPDF_ACTION pDict, | 
| 178 FPDFAction_GetFilePath(FPDF_ACTION pDict, void* buffer, unsigned long buflen) { | 178                                                        void* buffer, | 
|  | 179                                                        unsigned long buflen) { | 
| 179   unsigned long type = FPDFAction_GetType(pDict); | 180   unsigned long type = FPDFAction_GetType(pDict); | 
| 180   if (type != PDFACTION_REMOTEGOTO && type != PDFACTION_LAUNCH) | 181   if (type != PDFACTION_REMOTEGOTO && type != PDFACTION_LAUNCH) | 
| 181     return 0; | 182     return 0; | 
| 182 | 183 | 
| 183   CPDF_Action action(ToDictionary(static_cast<CPDF_Object*>(pDict))); | 184   CPDF_Action action(ToDictionary(static_cast<CPDF_Object*>(pDict))); | 
| 184   CFX_ByteString path = action.GetFilePath().UTF8Encode(); | 185   CFX_ByteString path = action.GetFilePath().UTF8Encode(); | 
| 185   unsigned long len = path.GetLength() + 1; | 186   unsigned long len = path.GetLength() + 1; | 
| 186   if (buffer && buflen >= len) | 187   if (buffer && buflen >= len) | 
| 187     FXSYS_memcpy(buffer, path.c_str(), len); | 188     FXSYS_memcpy(buffer, path.c_str(), len); | 
| 188   return len; | 189   return len; | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
| 209                                                       FPDF_DEST pDict) { | 210                                                       FPDF_DEST pDict) { | 
| 210   if (!pDict) | 211   if (!pDict) | 
| 211     return 0; | 212     return 0; | 
| 212   CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document); | 213   CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document); | 
| 213   if (!pDoc) | 214   if (!pDoc) | 
| 214     return 0; | 215     return 0; | 
| 215   CPDF_Dest dest(static_cast<CPDF_Array*>(pDict)); | 216   CPDF_Dest dest(static_cast<CPDF_Array*>(pDict)); | 
| 216   return dest.GetPageIndex(pDoc); | 217   return dest.GetPageIndex(pDoc); | 
| 217 } | 218 } | 
| 218 | 219 | 
| 219 DLLEXPORT FPDF_LINK STDCALL | 220 DLLEXPORT FPDF_LINK STDCALL FPDFLink_GetLinkAtPoint(FPDF_PAGE page, | 
| 220 FPDFLink_GetLinkAtPoint(FPDF_PAGE page, double x, double y) { | 221                                                     double x, | 
|  | 222                                                     double y) { | 
| 221   CPDF_Page* pPage = CPDFPageFromFPDFPage(page); | 223   CPDF_Page* pPage = CPDFPageFromFPDFPage(page); | 
| 222   if (!pPage) | 224   if (!pPage) | 
| 223     return nullptr; | 225     return nullptr; | 
| 224 | 226 | 
| 225   CPDF_LinkList* pLinkList = GetLinkList(pPage); | 227   CPDF_LinkList* pLinkList = GetLinkList(pPage); | 
| 226   if (!pLinkList) | 228   if (!pLinkList) | 
| 227     return nullptr; | 229     return nullptr; | 
| 228 | 230 | 
| 229   return pLinkList->GetLinkAtPoint(pPage, (FX_FLOAT)x, (FX_FLOAT)y, nullptr) | 231   return pLinkList->GetLinkAtPoint(pPage, (FX_FLOAT)x, (FX_FLOAT)y, nullptr) | 
| 230       .GetDict(); | 232       .GetDict(); | 
| 231 } | 233 } | 
| 232 | 234 | 
| 233 DLLEXPORT int STDCALL | 235 DLLEXPORT int STDCALL FPDFLink_GetLinkZOrderAtPoint(FPDF_PAGE page, | 
| 234 FPDFLink_GetLinkZOrderAtPoint(FPDF_PAGE page, double x, double y) { | 236                                                     double x, | 
|  | 237                                                     double y) { | 
| 235   CPDF_Page* pPage = CPDFPageFromFPDFPage(page); | 238   CPDF_Page* pPage = CPDFPageFromFPDFPage(page); | 
| 236   if (!pPage) | 239   if (!pPage) | 
| 237     return -1; | 240     return -1; | 
| 238 | 241 | 
| 239   CPDF_LinkList* pLinkList = GetLinkList(pPage); | 242   CPDF_LinkList* pLinkList = GetLinkList(pPage); | 
| 240   if (!pLinkList) | 243   if (!pLinkList) | 
| 241     return -1; | 244     return -1; | 
| 242 | 245 | 
| 243   int z_order = -1; | 246   int z_order = -1; | 
| 244   pLinkList->GetLinkAtPoint(pPage, (FX_FLOAT)x, (FX_FLOAT)y, &z_order); | 247   pLinkList->GetLinkAtPoint(pPage, (FX_FLOAT)x, (FX_FLOAT)y, &z_order); | 
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 360     return 0; | 363     return 0; | 
| 361   CFX_WideString text = pInfo->GetUnicodeTextBy(tag); | 364   CFX_WideString text = pInfo->GetUnicodeTextBy(tag); | 
| 362   // Use UTF-16LE encoding | 365   // Use UTF-16LE encoding | 
| 363   CFX_ByteString encodedText = text.UTF16LE_Encode(); | 366   CFX_ByteString encodedText = text.UTF16LE_Encode(); | 
| 364   unsigned long len = encodedText.GetLength(); | 367   unsigned long len = encodedText.GetLength(); | 
| 365   if (buffer && buflen >= len) { | 368   if (buffer && buflen >= len) { | 
| 366     FXSYS_memcpy(buffer, encodedText.c_str(), len); | 369     FXSYS_memcpy(buffer, encodedText.c_str(), len); | 
| 367   } | 370   } | 
| 368   return len; | 371   return len; | 
| 369 } | 372 } | 
| OLD | NEW | 
|---|