Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: fpdfsdk/src/fpdfdoc.cpp

Issue 1411623002: Merge to XFA: Introduce CPDFPageFromFPFDPage() (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Stray file. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « fpdfsdk/src/fpdf_transformpage.cpp ('k') | fpdfsdk/src/fpdfeditimg.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "../include/fsdk_define.h" 8 #include "../include/fsdk_define.h"
9 #include "../include/fpdfxfa/fpdfxfa_doc.h" 9 #include "../include/fpdfxfa/fpdfxfa_doc.h"
10 #include "../include/fpdfxfa/fpdfxfa_page.h" 10 #include "../include/fpdfxfa/fpdfxfa_page.h"
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 return 0; 196 return 0;
197 CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document); 197 CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document);
198 if (!pDoc) 198 if (!pDoc)
199 return 0; 199 return 0;
200 CPDF_Dest dest((CPDF_Array*)pDict); 200 CPDF_Dest dest((CPDF_Array*)pDict);
201 return dest.GetPageIndex(pDoc); 201 return dest.GetPageIndex(pDoc);
202 } 202 }
203 203
204 DLLEXPORT FPDF_LINK STDCALL 204 DLLEXPORT FPDF_LINK STDCALL
205 FPDFLink_GetLinkAtPoint(FPDF_PAGE page, double x, double y) { 205 FPDFLink_GetLinkAtPoint(FPDF_PAGE page, double x, double y) {
206 CPDFXFA_Page* pXFAPage = (CPDFXFA_Page*)page; 206 CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
207 CPDF_Page* pPage = pXFAPage->GetPDFPage();
208 if (!pPage) 207 if (!pPage)
209 return nullptr; 208 return nullptr;
210 209
211 CPDF_LinkList* pLinkList = GetLinkList(pPage); 210 CPDF_LinkList* pLinkList = GetLinkList(pPage);
212 if (!pLinkList) 211 if (!pLinkList)
213 return nullptr; 212 return nullptr;
214 213
215 return pLinkList->GetLinkAtPoint(pPage, (FX_FLOAT)x, (FX_FLOAT)y, nullptr) 214 return pLinkList->GetLinkAtPoint(pPage, (FX_FLOAT)x, (FX_FLOAT)y, nullptr)
216 .GetDict(); 215 .GetDict();
217 } 216 }
218 217
219 DLLEXPORT int STDCALL 218 DLLEXPORT int STDCALL
220 FPDFLink_GetLinkZOrderAtPoint(FPDF_PAGE page, double x, double y) { 219 FPDFLink_GetLinkZOrderAtPoint(FPDF_PAGE page, double x, double y) {
221 CPDFXFA_Page* pXFAPage = (CPDFXFA_Page*)page; 220 CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
222 CPDF_Page* pPage = pXFAPage->GetPDFPage();
223 if (!pPage) 221 if (!pPage)
224 return -1; 222 return -1;
225 223
226 CPDF_LinkList* pLinkList = GetLinkList(pPage); 224 CPDF_LinkList* pLinkList = GetLinkList(pPage);
227 if (!pLinkList) 225 if (!pLinkList)
228 return -1; 226 return -1;
229 227
230 int z_order = -1; 228 int z_order = -1;
231 pLinkList->GetLinkAtPoint(pPage, (FX_FLOAT)x, (FX_FLOAT)y, &z_order); 229 pLinkList->GetLinkAtPoint(pPage, (FX_FLOAT)x, (FX_FLOAT)y, &z_order);
232 return z_order; 230 return z_order;
(...skipping 21 matching lines...) Expand all
254 if (!pDict) 252 if (!pDict)
255 return nullptr; 253 return nullptr;
256 254
257 CPDF_Link link((CPDF_Dictionary*)pDict); 255 CPDF_Link link((CPDF_Dictionary*)pDict);
258 return link.GetAction().GetDict(); 256 return link.GetAction().GetDict();
259 } 257 }
260 258
261 DLLEXPORT FPDF_BOOL STDCALL FPDFLink_Enumerate(FPDF_PAGE page, 259 DLLEXPORT FPDF_BOOL STDCALL FPDFLink_Enumerate(FPDF_PAGE page,
262 int* startPos, 260 int* startPos,
263 FPDF_LINK* linkAnnot) { 261 FPDF_LINK* linkAnnot) {
264 if (!page || !startPos || !linkAnnot) 262 if (!startPos || !linkAnnot)
265 return FALSE; 263 return FALSE;
266 CPDF_Page* pPage = ((CPDFXFA_Page*)page)->GetPDFPage(); 264 CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
267 if (!pPage->m_pFormDict) 265 if (!pPage || !pPage->m_pFormDict)
268 return FALSE; 266 return FALSE;
269 CPDF_Array* pAnnots = pPage->m_pFormDict->GetArray("Annots"); 267 CPDF_Array* pAnnots = pPage->m_pFormDict->GetArray("Annots");
270 if (!pAnnots) 268 if (!pAnnots)
271 return FALSE; 269 return FALSE;
272 for (int i = *startPos; i < (int)pAnnots->GetCount(); i++) { 270 for (int i = *startPos; i < (int)pAnnots->GetCount(); i++) {
273 CPDF_Dictionary* pDict = (CPDF_Dictionary*)pAnnots->GetElementValue(i); 271 CPDF_Dictionary* pDict = (CPDF_Dictionary*)pAnnots->GetElementValue(i);
274 if (!pDict || pDict->GetType() != PDFOBJ_DICTIONARY) 272 if (!pDict || pDict->GetType() != PDFOBJ_DICTIONARY)
275 continue; 273 continue;
276 if (pDict->GetString(FX_BSTRC("Subtype")).Equal(FX_BSTRC("Link"))) { 274 if (pDict->GetString(FX_BSTRC("Subtype")).Equal(FX_BSTRC("Link"))) {
277 *startPos = i + 1; 275 *startPos = i + 1;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 return 0; 341 return 0;
344 CFX_WideString text = pInfo->GetUnicodeText(tag); 342 CFX_WideString text = pInfo->GetUnicodeText(tag);
345 // Use UTF-16LE encoding 343 // Use UTF-16LE encoding
346 CFX_ByteString encodedText = text.UTF16LE_Encode(); 344 CFX_ByteString encodedText = text.UTF16LE_Encode();
347 unsigned long len = encodedText.GetLength(); 345 unsigned long len = encodedText.GetLength();
348 if (buffer && buflen >= len) { 346 if (buffer && buflen >= len) {
349 FXSYS_memcpy(buffer, encodedText.c_str(), len); 347 FXSYS_memcpy(buffer, encodedText.c_str(), len);
350 } 348 }
351 return len; 349 return len;
352 } 350 }
OLDNEW
« no previous file with comments | « fpdfsdk/src/fpdf_transformpage.cpp ('k') | fpdfsdk/src/fpdfeditimg.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698