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

Side by Side Diff: fpdfsdk/src/javascript/Document.cpp

Issue 1258093002: FX Bool considered harmful, part 3 (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 5 years, 4 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/fxedit/fxet_pageobjs.cpp ('k') | fpdfsdk/src/javascript/Field.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 "../../include/javascript/JavaScript.h" 7 #include "../../include/javascript/JavaScript.h"
8 #include "../../include/javascript/IJavaScript.h" 8 #include "../../include/javascript/IJavaScript.h"
9 #include "../../include/javascript/JS_Define.h" 9 #include "../../include/javascript/JS_Define.h"
10 #include "../../include/javascript/JS_Object.h" 10 #include "../../include/javascript/JS_Object.h"
(...skipping 27 matching lines...) Expand all
38 END_JS_STATIC_PROP() 38 END_JS_STATIC_PROP()
39 39
40 BEGIN_JS_STATIC_METHOD(CJS_PrintParamsObj) 40 BEGIN_JS_STATIC_METHOD(CJS_PrintParamsObj)
41 END_JS_STATIC_METHOD() 41 END_JS_STATIC_METHOD()
42 42
43 IMPLEMENT_JS_CLASS(CJS_PrintParamsObj, PrintParamsObj) 43 IMPLEMENT_JS_CLASS(CJS_PrintParamsObj, PrintParamsObj)
44 44
45 PrintParamsObj::PrintParamsObj(CJS_Object* pJSObject) 45 PrintParamsObj::PrintParamsObj(CJS_Object* pJSObject)
46 : CJS_EmbedObj(pJSObject) 46 : CJS_EmbedObj(pJSObject)
47 { 47 {
48 bUI = TRUE; 48 bUI = true;
49 nStart = 0; 49 nStart = 0;
50 nEnd = 0; 50 nEnd = 0;
51 bSilent = FALSE; 51 bSilent = false;
52 bShrinkToFit = FALSE; 52 bShrinkToFit = false;
53 bPrintAsImage = FALSE; 53 bPrintAsImage = false;
54 bReverse = FALSE; 54 bReverse = false;
55 bAnnotations = TRUE; 55 bAnnotations = true;
56 } 56 }
57 57
58 /* ---------------------- Document ---------------------- */ 58 /* ---------------------- Document ---------------------- */
59 59
60 #define MINWIDTH 5.0f 60 #define MINWIDTH 5.0f
61 #define MINHEIGHT 5.0f 61 #define MINHEIGHT 5.0f
62 62
63 BEGIN_JS_STATIC_CONST(CJS_Document) 63 BEGIN_JS_STATIC_CONST(CJS_Document)
64 END_JS_STATIC_CONST() 64 END_JS_STATIC_CONST()
65 65
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 JS_STATIC_METHOD_ENTRY(replacePages) 135 JS_STATIC_METHOD_ENTRY(replacePages)
136 JS_STATIC_METHOD_ENTRY(resetForm) 136 JS_STATIC_METHOD_ENTRY(resetForm)
137 JS_STATIC_METHOD_ENTRY(removeIcon) 137 JS_STATIC_METHOD_ENTRY(removeIcon)
138 JS_STATIC_METHOD_ENTRY(saveAs) 138 JS_STATIC_METHOD_ENTRY(saveAs)
139 JS_STATIC_METHOD_ENTRY(submitForm) 139 JS_STATIC_METHOD_ENTRY(submitForm)
140 JS_STATIC_METHOD_ENTRY(mailDoc) 140 JS_STATIC_METHOD_ENTRY(mailDoc)
141 END_JS_STATIC_METHOD() 141 END_JS_STATIC_METHOD()
142 142
143 IMPLEMENT_JS_CLASS(CJS_Document, Document) 143 IMPLEMENT_JS_CLASS(CJS_Document, Document)
144 144
145 FX_BOOL CJS_Document::InitInstance(IFXJS_Context* cc) 145 bool CJS_Document::InitInstance(IFXJS_Context* cc)
146 { 146 {
147 CJS_Context* pContext = (CJS_Context*)cc; 147 CJS_Context* pContext = (CJS_Context*)cc;
148 ASSERT(pContext != NULL); 148 ASSERT(pContext != NULL);
149 149
150 Document* pDoc = (Document*)GetEmbedObject(); 150 Document* pDoc = (Document*)GetEmbedObject();
151 ASSERT(pDoc != NULL); 151 ASSERT(pDoc != NULL);
152 152
153 pDoc->AttachDoc(pContext->GetReaderDocument()); 153 pDoc->AttachDoc(pContext->GetReaderDocument());
154 pDoc->SetIsolate(pContext->GetJSRuntime()->GetIsolate()); 154 pDoc->SetIsolate(pContext->GetJSRuntime()->GetIsolate());
155 return TRUE; 155 return true;
156 }; 156 };
157 157
158 /* --------------------------------- Document --------------------------------- */ 158 /* --------------------------------- Document --------------------------------- */
159 159
160 Document::Document(CJS_Object* pJSObject) : CJS_EmbedObj(pJSObject), 160 Document::Document(CJS_Object* pJSObject) : CJS_EmbedObj(pJSObject),
161 m_isolate(NULL), 161 m_isolate(NULL),
162 m_pIconTree(NULL), 162 m_pIconTree(NULL),
163 m_pDocument(NULL), 163 m_pDocument(NULL),
164 m_cwBaseURL(L""), 164 m_cwBaseURL(L""),
165 m_bDelay(FALSE) 165 m_bDelay(false)
166 { 166 {
167 } 167 }
168 168
169 Document::~Document() 169 Document::~Document()
170 { 170 {
171 if (m_pIconTree) 171 if (m_pIconTree)
172 { 172 {
173 m_pIconTree->DeleteIconTree(); 173 m_pIconTree->DeleteIconTree();
174 delete m_pIconTree; 174 delete m_pIconTree;
175 m_pIconTree = NULL; 175 m_pIconTree = NULL;
176 } 176 }
177 for (int i=0; i<m_DelayData.GetSize(); i++) 177 for (int i=0; i<m_DelayData.GetSize(); i++)
178 { 178 {
179 if (CJS_DelayData* pData = m_DelayData.GetAt(i)) 179 if (CJS_DelayData* pData = m_DelayData.GetAt(i))
180 { 180 {
181 delete pData; 181 delete pData;
182 pData = NULL; 182 pData = NULL;
183 m_DelayData.SetAt(i, NULL); 183 m_DelayData.SetAt(i, NULL);
184 184
185 } 185 }
186 } 186 }
187 187
188 m_DelayData.RemoveAll(); 188 m_DelayData.RemoveAll();
189 m_DelayAnnotData.RemoveAll(); 189 m_DelayAnnotData.RemoveAll();
190 } 190 }
191 191
192 //the total number of fileds in document. 192 //the total number of fileds in document.
193 FX_BOOL Document::numFields(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString & sError) 193 bool Document::numFields(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& s Error)
194 { 194 {
195 if (vp.IsSetting()) { 195 if (vp.IsSetting()) {
196 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 196 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
197 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY); 197 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
198 return FALSE; 198 return false;
199 } 199 }
200 CPDFSDK_InterForm *pInterForm = m_pDocument->GetInterForm(); 200 CPDFSDK_InterForm *pInterForm = m_pDocument->GetInterForm();
201 CPDF_InterForm *pPDFForm = pInterForm->GetInterForm(); 201 CPDF_InterForm *pPDFForm = pInterForm->GetInterForm();
202 vp << (int)pPDFForm->CountFields(); 202 vp << (int)pPDFForm->CountFields();
203 return TRUE; 203 return true;
204 } 204 }
205 205
206 FX_BOOL Document::dirty(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE rror) 206 bool Document::dirty(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro r)
207 { 207 {
208 ASSERT(m_pDocument != NULL); 208 ASSERT(m_pDocument != NULL);
209 209
210 if (vp.IsGetting()) 210 if (vp.IsGetting())
211 { 211 {
212 if (m_pDocument->GetChangeMark()) 212 if (m_pDocument->GetChangeMark())
213 vp << true; 213 vp << true;
214 else 214 else
215 vp << false; 215 vp << false;
216 } 216 }
217 else 217 else
218 { 218 {
219 bool bChanged = false; 219 bool bChanged = false;
220 220
221 vp >> bChanged; 221 vp >> bChanged;
222 222
223 if (bChanged) 223 if (bChanged)
224 m_pDocument->SetChangeMark(); 224 m_pDocument->SetChangeMark();
225 else 225 else
226 m_pDocument->ClearChangeMark(); 226 m_pDocument->ClearChangeMark();
227 } 227 }
228 228
229 return TRUE; 229 return true;
230 } 230 }
231 231
232 FX_BOOL Document::ADBE(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr ror) 232 bool Document::ADBE(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError )
233 { 233 {
234 ASSERT(m_pDocument != NULL); 234 ASSERT(m_pDocument != NULL);
235 235
236 if (vp.IsGetting()) 236 if (vp.IsGetting())
237 { 237 {
238 vp.SetNull(); 238 vp.SetNull();
239 } 239 }
240 else 240 else
241 { 241 {
242 } 242 }
243 243
244 return TRUE; 244 return true;
245 } 245 }
246 246
247 FX_BOOL Document::pageNum(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) 247 bool Document::pageNum(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr ror)
248 { 248 {
249 ASSERT(m_pDocument != NULL); 249 ASSERT(m_pDocument != NULL);
250 250
251 if (vp.IsGetting()) 251 if (vp.IsGetting())
252 { 252 {
253 if (CPDFSDK_PageView* pPageView = m_pDocument->GetCurrentView()) 253 if (CPDFSDK_PageView* pPageView = m_pDocument->GetCurrentView())
254 { 254 {
255 vp << pPageView->GetPageIndex(); 255 vp << pPageView->GetPageIndex();
256 } 256 }
257 } 257 }
(...skipping 11 matching lines...) Expand all
269 else if (iPageNum >= iPageCount) 269 else if (iPageNum >= iPageCount)
270 { 270 {
271 pEnv->JS_docgotoPage(iPageCount-1); 271 pEnv->JS_docgotoPage(iPageCount-1);
272 } 272 }
273 else if (iPageNum < 0) 273 else if (iPageNum < 0)
274 { 274 {
275 pEnv->JS_docgotoPage(0); 275 pEnv->JS_docgotoPage(0);
276 } 276 }
277 } 277 }
278 278
279 return TRUE; 279 return true;
280 } 280 }
281 281
282 FX_BOOL Document::ParserParams(JSObject* pObj,CJS_AnnotObj& annotobj) 282 bool Document::ParserParams(JSObject* pObj,CJS_AnnotObj& annotobj)
283 { 283 {
284 // Not supported. 284 // Not supported.
285 return TRUE; 285 return true;
286 } 286 }
287 287
288 FX_BOOL Document::addAnnot(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError) 288 bool Document::addAnnot(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val ue& vRet, CFX_WideString& sError)
289 { 289 {
290 // Not supported. 290 // Not supported.
291 return TRUE; 291 return true;
292 } 292 }
293 293
294 FX_BOOL Document::addField(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError) 294 bool Document::addField(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val ue& vRet, CFX_WideString& sError)
295 { 295 {
296 // Not supported. 296 // Not supported.
297 return TRUE; 297 return true;
298 } 298 }
299 299
300 FX_BOOL Document::exportAsText(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) 300 bool Document::exportAsText(IFXJS_Context* cc, const CJS_Parameters& params, CJS _Value& vRet, CFX_WideString& sError)
301 { 301 {
302 // Unsafe, not supported. 302 // Unsafe, not supported.
303 return TRUE; 303 return true;
304 } 304 }
305 305
306 FX_BOOL Document::exportAsFDF(IFXJS_Context* cc, const CJS_Parameters& params, C JS_Value& vRet, CFX_WideString& sError) 306 bool Document::exportAsFDF(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError)
307 { 307 {
308 // Unsafe, not supported. 308 // Unsafe, not supported.
309 return TRUE; 309 return true;
310 } 310 }
311 311
312 FX_BOOL Document::exportAsXFDF(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) 312 bool Document::exportAsXFDF(IFXJS_Context* cc, const CJS_Parameters& params, CJS _Value& vRet, CFX_WideString& sError)
313 { 313 {
314 // Unsafe, not supported. 314 // Unsafe, not supported.
315 return TRUE; 315 return true;
316 } 316 }
317 317
318 //Maps a field object in PDF document to a JavaScript variable 318 //Maps a field object in PDF document to a JavaScript variable
319 //comment: 319 //comment:
320 //note: the paremter cName, this is clue how to treat if the cName is not a vali able filed name in this document 320 //note: the paremter cName, this is clue how to treat if the cName is not a vali able filed name in this document
321 321
322 FX_BOOL Document::getField(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError) 322 bool Document::getField(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val ue& vRet, CFX_WideString& sError)
323 { 323 {
324 CJS_Context* pContext = (CJS_Context*)cc; 324 CJS_Context* pContext = (CJS_Context*)cc;
325 if (params.size() < 1) { 325 if (params.size() < 1) {
326 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 326 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
327 return FALSE; 327 return false;
328 } 328 }
329 329
330 CFX_WideString wideName = params[0].ToCFXWideString(); 330 CFX_WideString wideName = params[0].ToCFXWideString();
331 331
332 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm(); 332 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
333 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 333 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
334 if (pPDFForm->CountFields(wideName) <= 0) 334 if (pPDFForm->CountFields(wideName) <= 0)
335 { 335 {
336 vRet.SetNull(); 336 vRet.SetNull();
337 return TRUE; 337 return true;
338 } 338 }
339 339
340 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 340 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
341 JSFXObject pFieldObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefn ID(*pRuntime, L"Field")); 341 JSFXObject pFieldObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefn ID(*pRuntime, L"Field"));
342 342
343 v8::Isolate* isolate = GetIsolate(cc); 343 v8::Isolate* isolate = GetIsolate(cc);
344 CJS_Field* pJSField = (CJS_Field*)JS_GetPrivate(isolate,pFieldObj); 344 CJS_Field* pJSField = (CJS_Field*)JS_GetPrivate(isolate,pFieldObj);
345 Field* pField = (Field *)pJSField->GetEmbedObject(); 345 Field* pField = (Field *)pJSField->GetEmbedObject();
346 pField->AttachField(this, wideName); 346 pField->AttachField(this, wideName);
347 347
348 vRet = pJSField; 348 vRet = pJSField;
349 return TRUE; 349 return true;
350 } 350 }
351 351
352 //Gets the name of the nth field in the document 352 //Gets the name of the nth field in the document
353 FX_BOOL Document::getNthFieldName(IFXJS_Context* cc, const CJS_Parameters& param s, CJS_Value& vRet, CFX_WideString& sError) 353 bool Document::getNthFieldName(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
354 { 354 {
355 CJS_Context* pContext = (CJS_Context*)cc; 355 CJS_Context* pContext = (CJS_Context*)cc;
356 if (params.size() != 1) { 356 if (params.size() != 1) {
357 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 357 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
358 return FALSE; 358 return false;
359 } 359 }
360 360
361 int nIndex = params[0].ToInt(); 361 int nIndex = params[0].ToInt();
362 if (nIndex < 0) { 362 if (nIndex < 0) {
363 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR); 363 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR);
364 return FALSE; 364 return false;
365 } 365 }
366 366
367 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm(); 367 CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
368 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 368 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
369 CPDF_FormField* pField = pPDFForm->GetField(nIndex); 369 CPDF_FormField* pField = pPDFForm->GetField(nIndex);
370 if (!pField) 370 if (!pField)
371 return FALSE; 371 return false;
372 372
373 vRet = pField->GetFullName().c_str(); 373 vRet = pField->GetFullName().c_str();
374 return TRUE; 374 return true;
375 } 375 }
376 376
377 FX_BOOL Document::importAnFDF(IFXJS_Context* cc, const CJS_Parameters& params, C JS_Value& vRet, CFX_WideString& sError) 377 bool Document::importAnFDF(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError)
378 { 378 {
379 // Unsafe, not supported. 379 // Unsafe, not supported.
380 return TRUE; 380 return true;
381 } 381 }
382 382
383 FX_BOOL Document::importAnXFDF(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) 383 bool Document::importAnXFDF(IFXJS_Context* cc, const CJS_Parameters& params, CJS _Value& vRet, CFX_WideString& sError)
384 { 384 {
385 // Unsafe, not supported. 385 // Unsafe, not supported.
386 return TRUE; 386 return true;
387 } 387 }
388 388
389 FX_BOOL Document::importTextData(IFXJS_Context* cc, const CJS_Parameters& params , CJS_Value& vRet, CFX_WideString& sError) 389 bool Document::importTextData(IFXJS_Context* cc, const CJS_Parameters& params, C JS_Value& vRet, CFX_WideString& sError)
390 { 390 {
391 // Unsafe, not supported. 391 // Unsafe, not supported.
392 return TRUE; 392 return true;
393 } 393 }
394 394
395 //exports the form data and mails the resulting fdf file as an attachment to all recipients. 395 //exports the form data and mails the resulting fdf file as an attachment to all recipients.
396 //comment: need reader supports 396 //comment: need reader supports
397 //note: 397 //note:
398 //int CPDFSDK_Document::mailForm(FX_BOOL bUI,String cto,string ccc,string cbcc,s tring cSubject,string cms); 398 //int CPDFSDK_Document::mailForm(bool bUI,String cto,string ccc,string cbcc,stri ng cSubject,string cms);
399 399
400 FX_BOOL Document::mailForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError) 400 bool Document::mailForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val ue& vRet, CFX_WideString& sError)
401 { 401 {
402 ASSERT(m_pDocument != NULL); 402 ASSERT(m_pDocument != NULL);
403 403
404 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE; 404 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return false;
405 405
406 int iLength = params.size(); 406 int iLength = params.size();
407 407
408 FX_BOOL bUI = iLength > 0 ? params[0].ToBool() : TRUE; 408 bool bUI = iLength > 0 ? params[0].ToBool() : true;
409 CFX_WideString cTo = iLength > 1 ? params[1].ToCFXWideString() : L""; 409 CFX_WideString cTo = iLength > 1 ? params[1].ToCFXWideString() : L"";
410 CFX_WideString cCc = iLength > 2 ? params[2].ToCFXWideString() : L""; 410 CFX_WideString cCc = iLength > 2 ? params[2].ToCFXWideString() : L"";
411 CFX_WideString cBcc = iLength > 3 ? params[3].ToCFXWideString() : L""; 411 CFX_WideString cBcc = iLength > 3 ? params[3].ToCFXWideString() : L"";
412 CFX_WideString cSubject = iLength > 4 ? params[4].ToCFXWideString() : L""; 412 CFX_WideString cSubject = iLength > 4 ? params[4].ToCFXWideString() : L"";
413 CFX_WideString cMsg = iLength > 5 ? params[5].ToCFXWideString() : L""; 413 CFX_WideString cMsg = iLength > 5 ? params[5].ToCFXWideString() : L"";
414 414
415 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterFor m(); 415 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterFor m();
416 ASSERT(pInterForm != NULL); 416 ASSERT(pInterForm != NULL);
417 417
418 CFX_ByteTextBuf textBuf; 418 CFX_ByteTextBuf textBuf;
419 if (!pInterForm->ExportFormToFDFTextBuf(textBuf)) 419 if (!pInterForm->ExportFormToFDFTextBuf(textBuf))
420 return FALSE; 420 return false;
421 421
422 CJS_Context* pContext = (CJS_Context*)cc; 422 CJS_Context* pContext = (CJS_Context*)cc;
423 ASSERT(pContext != NULL); 423 ASSERT(pContext != NULL);
424 CPDFDoc_Environment* pEnv = pContext->GetReaderApp(); 424 CPDFDoc_Environment* pEnv = pContext->GetReaderApp();
425 ASSERT(pEnv != NULL); 425 ASSERT(pEnv != NULL);
426 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 426 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
427 ASSERT(pRuntime != NULL); 427 ASSERT(pRuntime != NULL);
428 428
429 pRuntime->BeginBlock(); 429 pRuntime->BeginBlock();
430 pEnv->JS_docmailForm(textBuf.GetBuffer(), textBuf.GetLength(), bUI, cTo.c_st r(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str()); 430 pEnv->JS_docmailForm(textBuf.GetBuffer(), textBuf.GetLength(), bUI, cTo.c_st r(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str());
431 pRuntime->EndBlock(); 431 pRuntime->EndBlock();
432 return TRUE; 432 return true;
433 } 433 }
434 434
435 FX_BOOL Document::print(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val ue& vRet, CFX_WideString& sError) 435 bool Document::print(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
436 { 436 {
437 CJS_Context* pContext = (CJS_Context*)cc; 437 CJS_Context* pContext = (CJS_Context*)cc;
438 ASSERT(pContext != NULL); 438 ASSERT(pContext != NULL);
439 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 439 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
440 ASSERT(pRuntime != NULL); 440 ASSERT(pRuntime != NULL);
441 441
442 FX_BOOL bUI = TRUE; 442 bool bUI = true;
443 int nStart = 0; 443 int nStart = 0;
444 int nEnd = 0; 444 int nEnd = 0;
445 FX_BOOL bSilent = FALSE; 445 bool bSilent = false;
446 FX_BOOL bShrinkToFit = FALSE; 446 bool bShrinkToFit = false;
447 FX_BOOL bPrintAsImage = FALSE; 447 bool bPrintAsImage = false;
448 FX_BOOL bReverse = FALSE; 448 bool bReverse = false;
449 FX_BOOL bAnnotations = FALSE; 449 bool bAnnotations = false;
450 450
451 int nlength = params.size(); 451 int nlength = params.size();
452 if(nlength ==9) 452 if(nlength ==9)
453 { 453 {
454 if (params[8].GetType() == VT_fxobject) 454 if (params[8].GetType() == VT_fxobject)
455 { 455 {
456 JSFXObject pObj = params[8].ToV8Object(); 456 JSFXObject pObj = params[8].ToV8Object();
457 { 457 {
458 if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"PrintP aramsObj")) 458 if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"PrintP aramsObj"))
459 { 459 {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 bReverse = params[6].ToBool(); 493 bReverse = params[6].ToBool();
494 if(nlength >= 8) 494 if(nlength >= 8)
495 bAnnotations = params[7].ToBool(); 495 bAnnotations = params[7].ToBool();
496 } 496 }
497 497
498 ASSERT(m_pDocument != NULL); 498 ASSERT(m_pDocument != NULL);
499 499
500 if (CPDFDoc_Environment* pEnv = m_pDocument->GetEnv()) 500 if (CPDFDoc_Environment* pEnv = m_pDocument->GetEnv())
501 { 501 {
502 pEnv->JS_docprint(bUI, nStart, nEnd, bSilent, bShrinkToFit, bPrintAsImag e, bReverse, bAnnotations); 502 pEnv->JS_docprint(bUI, nStart, nEnd, bSilent, bShrinkToFit, bPrintAsImag e, bReverse, bAnnotations);
503 return TRUE; 503 return true;
504 } 504 }
505 return FALSE; 505 return false;
506 } 506 }
507 507
508 //removes the specified field from the document. 508 //removes the specified field from the document.
509 //comment: 509 //comment:
510 //note: if the filed name is not retional, adobe is dumb for it. 510 //note: if the filed name is not retional, adobe is dumb for it.
511 511
512 FX_BOOL Document::removeField(IFXJS_Context* cc, const CJS_Parameters& params, C JS_Value& vRet, CFX_WideString& sError) 512 bool Document::removeField(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError)
513 { 513 {
514 ASSERT(m_pDocument != NULL); 514 ASSERT(m_pDocument != NULL);
515 515
516 if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) || 516 if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
517 m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM))) return FALSE; 517 m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM))) return false;
518 518
519 CJS_Context* pContext = (CJS_Context*)cc; 519 CJS_Context* pContext = (CJS_Context*)cc;
520 if (params.size() != 1) { 520 if (params.size() != 1) {
521 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 521 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
522 return FALSE; 522 return false;
523 } 523 }
524 524
525 CFX_WideString sFieldName = params[0].ToCFXWideString(); 525 CFX_WideString sFieldName = params[0].ToCFXWideString();
526 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterFor m(); 526 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterFor m();
527 ASSERT(pInterForm != NULL); 527 ASSERT(pInterForm != NULL);
528 528
529 CFX_PtrArray widgets; 529 CFX_PtrArray widgets;
530 pInterForm->GetWidgets(sFieldName, widgets); 530 pInterForm->GetWidgets(sFieldName, widgets);
531 531
532 int nSize = widgets.GetSize(); 532 int nSize = widgets.GetSize();
(...skipping 18 matching lines...) Expand all
551 ASSERT(pPage != NULL); 551 ASSERT(pPage != NULL);
552 552
553 CPDFSDK_PageView* pPageView = m_pDocument->GetPageView(pPage); 553 CPDFSDK_PageView* pPageView = m_pDocument->GetPageView(pPage);
554 pPageView->DeleteAnnot(pWidget); 554 pPageView->DeleteAnnot(pWidget);
555 555
556 pPageView->UpdateRects(aRefresh); 556 pPageView->UpdateRects(aRefresh);
557 } 557 }
558 m_pDocument->SetChangeMark(); 558 m_pDocument->SetChangeMark();
559 } 559 }
560 560
561 return TRUE; 561 return true;
562 } 562 }
563 563
564 //reset filed values within a document. 564 //reset filed values within a document.
565 //comment: 565 //comment:
566 //note: if the fields names r not rational, aodbe is dumb for it. 566 //note: if the fields names r not rational, aodbe is dumb for it.
567 567
568 FX_BOOL Document::resetForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS _Value& vRet, CFX_WideString& sError) 568 bool Document::resetForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Va lue& vRet, CFX_WideString& sError)
569 { 569 {
570 ASSERT(m_pDocument != NULL); 570 ASSERT(m_pDocument != NULL);
571 571
572 if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) || 572 if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
573 m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM) || 573 m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM) ||
574 m_pDocument->GetPermissions(FPDFPERM_FILL_FORM))) return FALSE; 574 m_pDocument->GetPermissions(FPDFPERM_FILL_FORM))) return false;
575 575
576 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterFor m(); 576 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterFor m();
577 ASSERT(pInterForm != NULL); 577 ASSERT(pInterForm != NULL);
578 578
579 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 579 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
580 ASSERT(pPDFForm != NULL); 580 ASSERT(pPDFForm != NULL);
581 581
582 v8::Isolate* isolate = GetIsolate(cc); 582 v8::Isolate* isolate = GetIsolate(cc);
583 CJS_Array aName(isolate); 583 CJS_Array aName(isolate);
584 584
(...skipping 18 matching lines...) Expand all
603 CFX_WideString swVal = valElement.ToCFXWideString(); 603 CFX_WideString swVal = valElement.ToCFXWideString();
604 604
605 for (int j=0,jsz=pPDFForm->CountFields(swVal); j<jsz; j++) 605 for (int j=0,jsz=pPDFForm->CountFields(swVal); j<jsz; j++)
606 { 606 {
607 aFields.Add((void*)pPDFForm->GetField(j,swVal)); 607 aFields.Add((void*)pPDFForm->GetField(j,swVal));
608 } 608 }
609 } 609 }
610 610
611 if (aFields.GetSize() > 0) 611 if (aFields.GetSize() > 0)
612 { 612 {
613 pPDFForm->ResetForm(aFields, TRUE, TRUE); 613 pPDFForm->ResetForm(aFields, true, true);
614 m_pDocument->SetChangeMark(); 614 m_pDocument->SetChangeMark();
615 615
616 } 616 }
617 } 617 }
618 else 618 else
619 { 619 {
620 pPDFForm->ResetForm(TRUE); 620 pPDFForm->ResetForm(true);
621 m_pDocument->SetChangeMark(); 621 m_pDocument->SetChangeMark();
622 622
623 } 623 }
624 624
625 return TRUE; 625 return true;
626 } 626 }
627 627
628 628
629 FX_BOOL Document::saveAs(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Va lue& vRet, CFX_WideString& sError) 629 bool Document::saveAs(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value & vRet, CFX_WideString& sError)
630 { 630 {
631 // Unsafe, not supported. 631 // Unsafe, not supported.
632 return TRUE; 632 return true;
633 } 633 }
634 634
635 635
636 FX_BOOL Document::submitForm(IFXJS_Context* cc, const CJS_Parameters& params, CJ S_Value& vRet, CFX_WideString& sError) 636 bool Document::submitForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V alue& vRet, CFX_WideString& sError)
637 { 637 {
638 ASSERT(m_pDocument != NULL); 638 ASSERT(m_pDocument != NULL);
639 CJS_Context* pContext = (CJS_Context*)cc; 639 CJS_Context* pContext = (CJS_Context*)cc;
640 int nSize = params.size(); 640 int nSize = params.size();
641 if (nSize < 1) { 641 if (nSize < 1) {
642 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 642 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
643 return FALSE; 643 return false;
644 } 644 }
645 645
646 CFX_WideString strURL; 646 CFX_WideString strURL;
647 FX_BOOL bFDF = TRUE; 647 bool bFDF = true;
648 FX_BOOL bEmpty = FALSE; 648 bool bEmpty = false;
649 v8::Isolate* isolate = GetIsolate(cc); 649 v8::Isolate* isolate = GetIsolate(cc);
650 CJS_Array aFields(isolate); 650 CJS_Array aFields(isolate);
651 651
652 CJS_Value v = params[0]; 652 CJS_Value v = params[0];
653 if (v.GetType() == VT_string) 653 if (v.GetType() == VT_string)
654 { 654 {
655 strURL = params[0].ToCFXWideString(); 655 strURL = params[0].ToCFXWideString();
656 if (nSize > 1) 656 if (nSize > 1)
657 bFDF = params[1].ToBool(); 657 bFDF = params[1].ToBool();
658 if (nSize > 2) 658 if (nSize > 2)
(...skipping 11 matching lines...) Expand all
670 bFDF = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool(); 670 bFDF = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
671 pValue = JS_GetObjectElement(isolate, pObj, L"bEmpty"); 671 pValue = JS_GetObjectElement(isolate, pObj, L"bEmpty");
672 bEmpty = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool(); 672 bEmpty = CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToBool();
673 pValue = JS_GetObjectElement(isolate, pObj,L"aFields"); 673 pValue = JS_GetObjectElement(isolate, pObj,L"aFields");
674 aFields.Attach(CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToV8Ar ray()); 674 aFields.Attach(CJS_Value(isolate, pValue, GET_VALUE_TYPE(pValue)).ToV8Ar ray());
675 } 675 }
676 676
677 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 677 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
678 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterFor m(); 678 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterFor m();
679 CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm(); 679 CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm();
680 FX_BOOL bAll = (aFields.GetLength() == 0); 680 bool bAll = (aFields.GetLength() == 0);
681 if (bAll && bEmpty) 681 if (bAll && bEmpty)
682 { 682 {
683 if (pPDFInterForm->CheckRequiredFields()) 683 if (pPDFInterForm->CheckRequiredFields())
684 { 684 {
685 pRuntime->BeginBlock(); 685 pRuntime->BeginBlock();
686 pInterForm->SubmitForm(strURL, FALSE); 686 pInterForm->SubmitForm(strURL, false);
687 pRuntime->EndBlock(); 687 pRuntime->EndBlock();
688 } 688 }
689 return TRUE; 689 return true;
690 } 690 }
691 691
692 CFX_PtrArray fieldObjects; 692 CFX_PtrArray fieldObjects;
693 for (int i=0,sz=aFields.GetLength(); i<sz; i++) 693 for (int i=0,sz=aFields.GetLength(); i<sz; i++)
694 { 694 {
695 CJS_Value valName(isolate); 695 CJS_Value valName(isolate);
696 aFields.GetElement(i, valName); 696 aFields.GetElement(i, valName);
697 697
698 CFX_WideString sName = valName.ToCFXWideString(); 698 CFX_WideString sName = valName.ToCFXWideString();
699 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); 699 CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
700 for (int j = 0, jsz = pPDFForm->CountFields(sName); j < jsz; ++j) 700 for (int j = 0, jsz = pPDFForm->CountFields(sName); j < jsz; ++j)
701 { 701 {
702 CPDF_FormField* pField = pPDFForm->GetField(j, sName); 702 CPDF_FormField* pField = pPDFForm->GetField(j, sName);
703 if (!bEmpty && pField->GetValue().IsEmpty()) 703 if (!bEmpty && pField->GetValue().IsEmpty())
704 continue; 704 continue;
705 705
706 fieldObjects.Add(pField); 706 fieldObjects.Add(pField);
707 } 707 }
708 } 708 }
709 709
710 if (pPDFInterForm->CheckRequiredFields(&fieldObjects, TRUE)) 710 if (pPDFInterForm->CheckRequiredFields(&fieldObjects, true))
711 { 711 {
712 pRuntime->BeginBlock(); 712 pRuntime->BeginBlock();
713 pInterForm->SubmitFields(strURL, fieldObjects, TRUE, !bFDF); 713 pInterForm->SubmitFields(strURL, fieldObjects, true, !bFDF);
714 pRuntime->EndBlock(); 714 pRuntime->EndBlock();
715 } 715 }
716 return TRUE; 716 return true;
717 } 717 }
718 718
719 //////////////////////////////////////////////////////////////////////////////// ////////////// 719 //////////////////////////////////////////////////////////////////////////////// //////////////
720 720
721 void Document::AttachDoc(CPDFSDK_Document *pDoc) 721 void Document::AttachDoc(CPDFSDK_Document *pDoc)
722 { 722 {
723 m_pDocument = pDoc; 723 m_pDocument = pDoc;
724 } 724 }
725 725
726 CPDFSDK_Document * Document::GetReaderDoc() 726 CPDFSDK_Document * Document::GetReaderDoc()
727 { 727 {
728 return m_pDocument; 728 return m_pDocument;
729 } 729 }
730 730
731 FX_BOOL Document::ExtractFileName(CPDFSDK_Document *pDoc,CFX_ByteString &strFile Name) 731 bool Document::ExtractFileName(CPDFSDK_Document *pDoc,CFX_ByteString &strFileNam e)
732 { 732 {
733 return FALSE; 733 return false;
734 } 734 }
735 735
736 FX_BOOL Document::ExtractFolderName(CPDFSDK_Document *pDoc,CFX_ByteString &strFo lderName) 736 bool Document::ExtractFolderName(CPDFSDK_Document *pDoc,CFX_ByteString &strFolde rName)
737 { 737 {
738 return FALSE; 738 return false;
739 } 739 }
740 740
741 FX_BOOL Document::bookmarkRoot(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideStr ing& sError) 741 bool Document::bookmarkRoot(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString & sError)
742 { 742 {
743 return TRUE; 743 return true;
744 } 744 }
745 745
746 FX_BOOL Document::mailDoc(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V alue& vRet, CFX_WideString& sError) 746 bool Document::mailDoc(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Valu e& vRet, CFX_WideString& sError)
747 { 747 {
748 ASSERT(m_pDocument != NULL); 748 ASSERT(m_pDocument != NULL);
749 749
750 FX_BOOL bUI = TRUE; 750 bool bUI = true;
751 CFX_WideString cTo = L""; 751 CFX_WideString cTo = L"";
752 CFX_WideString cCc = L""; 752 CFX_WideString cCc = L"";
753 CFX_WideString cBcc = L""; 753 CFX_WideString cBcc = L"";
754 CFX_WideString cSubject = L""; 754 CFX_WideString cSubject = L"";
755 CFX_WideString cMsg = L""; 755 CFX_WideString cMsg = L"";
756 756
757 if (params.size() >= 1) 757 if (params.size() >= 1)
758 bUI = params[0].ToBool(); 758 bUI = params[0].ToBool();
759 if (params.size() >= 2) 759 if (params.size() >= 2)
760 cTo = params[1].ToCFXWideString(); 760 cTo = params[1].ToCFXWideString();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 CJS_Context* pContext = (CJS_Context*)cc; 796 CJS_Context* pContext = (CJS_Context*)cc;
797 ASSERT(pContext != NULL); 797 ASSERT(pContext != NULL);
798 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 798 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
799 ASSERT(pRuntime != NULL); 799 ASSERT(pRuntime != NULL);
800 800
801 pRuntime->BeginBlock(); 801 pRuntime->BeginBlock();
802 CPDFDoc_Environment* pEnv = pRuntime->GetReaderApp(); 802 CPDFDoc_Environment* pEnv = pRuntime->GetReaderApp();
803 pEnv->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str( ), cBcc.c_str(), cMsg.c_str()); 803 pEnv->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str( ), cBcc.c_str(), cMsg.c_str());
804 pRuntime->EndBlock(); 804 pRuntime->EndBlock();
805 805
806 return TRUE; 806 return true;
807 } 807 }
808 808
809 FX_BOOL Document::author(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& s Error) 809 bool Document::author(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErr or)
810 { 810 {
811 ASSERT(m_pDocument != NULL); 811 ASSERT(m_pDocument != NULL);
812 812
813 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo(); 813 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo();
814 if (!pDictionary)return FALSE; 814 if (!pDictionary)return false;
815 815
816 if (vp.IsGetting()) 816 if (vp.IsGetting())
817 { 817 {
818 vp << pDictionary->GetUnicodeText("Author"); 818 vp << pDictionary->GetUnicodeText("Author");
819 return TRUE; 819 return true;
820 } 820 }
821 else 821 else
822 { 822 {
823 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY)) return FALSE; 823 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY)) return false;
824 824
825 CFX_WideString csAuthor; 825 CFX_WideString csAuthor;
826 vp >> csAuthor; 826 vp >> csAuthor;
827 pDictionary->SetAtString("Author", PDF_EncodeText(csAuthor)); 827 pDictionary->SetAtString("Author", PDF_EncodeText(csAuthor));
828 m_pDocument->SetChangeMark(); 828 m_pDocument->SetChangeMark();
829 return TRUE; 829 return true;
830 } 830 }
831 } 831 }
832 832
833 FX_BOOL Document::info(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr ror) 833 bool Document::info(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError )
834 { 834 {
835 ASSERT(m_pDocument != NULL); 835 ASSERT(m_pDocument != NULL);
836 836
837 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo(); 837 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo();
838 if (!pDictionary) 838 if (!pDictionary)
839 return FALSE; 839 return false;
840 840
841 CFX_WideString cwAuthor = pDictionary->GetUnicodeText("Author"); 841 CFX_WideString cwAuthor = pDictionary->GetUnicodeText("Author");
842 CFX_WideString cwTitle = pDictionary->GetUnicodeText("Title"); 842 CFX_WideString cwTitle = pDictionary->GetUnicodeText("Title");
843 CFX_WideString cwSubject = pDictionary->GetUnicodeText("Subject"); 843 CFX_WideString cwSubject = pDictionary->GetUnicodeText("Subject");
844 CFX_WideString cwKeywords = pDictionary->GetUnicodeText("Keywords"); 844 CFX_WideString cwKeywords = pDictionary->GetUnicodeText("Keywords");
845 CFX_WideString cwCreator = pDictionary->GetUnicodeText("Creator"); 845 CFX_WideString cwCreator = pDictionary->GetUnicodeText("Creator");
846 CFX_WideString cwProducer = pDictionary->GetUnicodeText("Producer"); 846 CFX_WideString cwProducer = pDictionary->GetUnicodeText("Producer");
847 CFX_WideString cwCreationDate = pDictionary->GetUnicodeText("CreationDate" ); 847 CFX_WideString cwCreationDate = pDictionary->GetUnicodeText("CreationDate" );
848 CFX_WideString cwModDate = pDictionary->GetUnicodeText("ModDate"); 848 CFX_WideString cwModDate = pDictionary->GetUnicodeText("ModDate");
849 CFX_WideString cwTrapped = pDictionary->GetUnicodeText("Trapped"); 849 CFX_WideString cwTrapped = pDictionary->GetUnicodeText("Trapped");
(...skipping 23 matching lines...) Expand all
873 CFX_WideString wsKey = CFX_WideString::FromUTF8(bsKey, bsKey.GetLen gth()); 873 CFX_WideString wsKey = CFX_WideString::FromUTF8(bsKey, bsKey.GetLen gth());
874 if((pValueObj->GetType()==PDFOBJ_STRING) || (pValueObj->GetType()==P DFOBJ_NAME) ) 874 if((pValueObj->GetType()==PDFOBJ_STRING) || (pValueObj->GetType()==P DFOBJ_NAME) )
875 JS_PutObjectString(isolate, pObj, wsKey.c_str(), pValueObj->GetU nicodeText().c_str()); 875 JS_PutObjectString(isolate, pObj, wsKey.c_str(), pValueObj->GetU nicodeText().c_str());
876 if(pValueObj->GetType()==PDFOBJ_NUMBER) 876 if(pValueObj->GetType()==PDFOBJ_NUMBER)
877 JS_PutObjectNumber(isolate,pObj, wsKey.c_str(), (float)pValueObj ->GetNumber()); 877 JS_PutObjectNumber(isolate,pObj, wsKey.c_str(), (float)pValueObj ->GetNumber());
878 if(pValueObj->GetType()==PDFOBJ_BOOLEAN) 878 if(pValueObj->GetType()==PDFOBJ_BOOLEAN)
879 JS_PutObjectBoolean(isolate,pObj, wsKey.c_str(), (bool)pValueObj ->GetInteger()); 879 JS_PutObjectBoolean(isolate,pObj, wsKey.c_str(), (bool)pValueObj ->GetInteger());
880 } 880 }
881 vp << pObj; 881 vp << pObj;
882 } 882 }
883 return TRUE; 883 return true;
884 } 884 }
885 885
886 FX_BOOL Document::creationDate(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideStr ing& sError) 886 bool Document::creationDate(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString & sError)
887 { 887 {
888 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo(); 888 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo();
889 if (!pDictionary) 889 if (!pDictionary)
890 return FALSE; 890 return false;
891 891
892 if (vp.IsGetting()) 892 if (vp.IsGetting())
893 { 893 {
894 vp << pDictionary->GetUnicodeText("CreationDate"); 894 vp << pDictionary->GetUnicodeText("CreationDate");
895 } 895 }
896 else 896 else
897 { 897 {
898 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY)) 898 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
899 return FALSE; 899 return false;
900 900
901 CFX_WideString csCreationDate; 901 CFX_WideString csCreationDate;
902 vp >> csCreationDate; 902 vp >> csCreationDate;
903 pDictionary->SetAtString("CreationDate", PDF_EncodeText(csCreationDate)) ; 903 pDictionary->SetAtString("CreationDate", PDF_EncodeText(csCreationDate)) ;
904 m_pDocument->SetChangeMark(); 904 m_pDocument->SetChangeMark();
905 } 905 }
906 return TRUE; 906 return true;
907 } 907 }
908 908
909 FX_BOOL Document::creator(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) 909 bool Document::creator(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr ror)
910 { 910 {
911 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo(); 911 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo();
912 if (!pDictionary) 912 if (!pDictionary)
913 return FALSE; 913 return false;
914 914
915 if (vp.IsGetting()) 915 if (vp.IsGetting())
916 { 916 {
917 vp << pDictionary->GetUnicodeText("Creator"); 917 vp << pDictionary->GetUnicodeText("Creator");
918 } 918 }
919 else 919 else
920 { 920 {
921 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY)) 921 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
922 return FALSE; 922 return false;
923 923
924 CFX_WideString csCreator; 924 CFX_WideString csCreator;
925 vp >> csCreator; 925 vp >> csCreator;
926 pDictionary->SetAtString("Creator", PDF_EncodeText(csCreator)); 926 pDictionary->SetAtString("Creator", PDF_EncodeText(csCreator));
927 m_pDocument->SetChangeMark(); 927 m_pDocument->SetChangeMark();
928 } 928 }
929 return TRUE; 929 return true;
930 } 930 }
931 931
932 FX_BOOL Document::delay(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE rror) 932 bool Document::delay(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro r)
933 { 933 {
934 if (vp.IsGetting()) 934 if (vp.IsGetting())
935 { 935 {
936 vp << m_bDelay; 936 vp << m_bDelay;
937 } 937 }
938 else 938 else
939 { 939 {
940 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY)) 940 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
941 return FALSE; 941 return false;
942 942
943 vp >> m_bDelay; 943 vp >> m_bDelay;
944 if (m_bDelay) 944 if (m_bDelay)
945 { 945 {
946 for (int i=0,sz=m_DelayData.GetSize(); i<sz; i++) 946 for (int i=0,sz=m_DelayData.GetSize(); i<sz; i++)
947 delete m_DelayData.GetAt(i); 947 delete m_DelayData.GetAt(i);
948 948
949 m_DelayData.RemoveAll(); 949 m_DelayData.RemoveAll();
950 } 950 }
951 else 951 else
(...skipping 10 matching lines...) Expand all
962 m_DelayData.RemoveAll(); 962 m_DelayData.RemoveAll();
963 for (int i=0,sz=DelayDataToProcess.GetSize(); i < sz; i++) 963 for (int i=0,sz=DelayDataToProcess.GetSize(); i < sz; i++)
964 { 964 {
965 CJS_DelayData* pData = DelayDataToProcess.GetAt(i); 965 CJS_DelayData* pData = DelayDataToProcess.GetAt(i);
966 Field::DoDelay(m_pDocument, pData); 966 Field::DoDelay(m_pDocument, pData);
967 DelayDataToProcess.SetAt(i,NULL); 967 DelayDataToProcess.SetAt(i,NULL);
968 delete pData; 968 delete pData;
969 } 969 }
970 } 970 }
971 } 971 }
972 return TRUE; 972 return true;
973 } 973 }
974 974
975 FX_BOOL Document::keywords(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) 975 bool Document::keywords(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE rror)
976 { 976 {
977 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo(); 977 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo();
978 if (!pDictionary) 978 if (!pDictionary)
979 return FALSE; 979 return false;
980 980
981 if (vp.IsGetting()) 981 if (vp.IsGetting())
982 { 982 {
983 vp << pDictionary->GetUnicodeText("Keywords"); 983 vp << pDictionary->GetUnicodeText("Keywords");
984 } 984 }
985 else 985 else
986 { 986 {
987 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY)) 987 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
988 return FALSE; 988 return false;
989 989
990 CFX_WideString csKeywords; 990 CFX_WideString csKeywords;
991 vp >> csKeywords; 991 vp >> csKeywords;
992 pDictionary->SetAtString("Keywords", PDF_EncodeText(csKeywords)); 992 pDictionary->SetAtString("Keywords", PDF_EncodeText(csKeywords));
993 m_pDocument->SetChangeMark(); 993 m_pDocument->SetChangeMark();
994 } 994 }
995 return TRUE; 995 return true;
996 } 996 }
997 997
998 FX_BOOL Document::modDate(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) 998 bool Document::modDate(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr ror)
999 { 999 {
1000 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo(); 1000 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo();
1001 if (!pDictionary) 1001 if (!pDictionary)
1002 return FALSE; 1002 return false;
1003 1003
1004 if (vp.IsGetting()) 1004 if (vp.IsGetting())
1005 { 1005 {
1006 vp << pDictionary->GetUnicodeText("ModDate"); 1006 vp << pDictionary->GetUnicodeText("ModDate");
1007 } 1007 }
1008 else 1008 else
1009 { 1009 {
1010 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY)) 1010 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
1011 return FALSE; 1011 return false;
1012 1012
1013 CFX_WideString csmodDate; 1013 CFX_WideString csmodDate;
1014 vp >> csmodDate; 1014 vp >> csmodDate;
1015 pDictionary->SetAtString("ModDate", PDF_EncodeText(csmodDate)); 1015 pDictionary->SetAtString("ModDate", PDF_EncodeText(csmodDate));
1016 m_pDocument->SetChangeMark(); 1016 m_pDocument->SetChangeMark();
1017 } 1017 }
1018 return TRUE; 1018 return true;
1019 } 1019 }
1020 1020
1021 FX_BOOL Document::producer(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) 1021 bool Document::producer(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE rror)
1022 { 1022 {
1023 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo(); 1023 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo();
1024 if (!pDictionary) 1024 if (!pDictionary)
1025 return FALSE; 1025 return false;
1026 1026
1027 if (vp.IsGetting()) 1027 if (vp.IsGetting())
1028 { 1028 {
1029 vp << pDictionary->GetUnicodeText("Producer"); 1029 vp << pDictionary->GetUnicodeText("Producer");
1030 } 1030 }
1031 else 1031 else
1032 { 1032 {
1033 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY)) 1033 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
1034 return FALSE; 1034 return false;
1035 1035
1036 CFX_WideString csproducer; 1036 CFX_WideString csproducer;
1037 vp >> csproducer; 1037 vp >> csproducer;
1038 pDictionary->SetAtString("Producer", PDF_EncodeText(csproducer)); 1038 pDictionary->SetAtString("Producer", PDF_EncodeText(csproducer));
1039 m_pDocument->SetChangeMark(); 1039 m_pDocument->SetChangeMark();
1040 } 1040 }
1041 return TRUE; 1041 return true;
1042 } 1042 }
1043 1043
1044 FX_BOOL Document::subject(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) 1044 bool Document::subject(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr ror)
1045 { 1045 {
1046 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo(); 1046 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo();
1047 if (!pDictionary) 1047 if (!pDictionary)
1048 return FALSE; 1048 return false;
1049 1049
1050 if (vp.IsGetting()) 1050 if (vp.IsGetting())
1051 { 1051 {
1052 vp << pDictionary->GetUnicodeText("Subject"); 1052 vp << pDictionary->GetUnicodeText("Subject");
1053 } 1053 }
1054 else 1054 else
1055 { 1055 {
1056 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY)) 1056 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
1057 return FALSE; 1057 return false;
1058 1058
1059 CFX_WideString cssubject; 1059 CFX_WideString cssubject;
1060 vp >> cssubject; 1060 vp >> cssubject;
1061 pDictionary->SetAtString("Subject", PDF_EncodeText(cssubject)); 1061 pDictionary->SetAtString("Subject", PDF_EncodeText(cssubject));
1062 m_pDocument->SetChangeMark(); 1062 m_pDocument->SetChangeMark();
1063 } 1063 }
1064 return TRUE; 1064 return true;
1065 } 1065 }
1066 1066
1067 FX_BOOL Document::title(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE rror) 1067 bool Document::title(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro r)
1068 { 1068 {
1069 if (m_pDocument == NULL || m_pDocument->GetDocument() == NULL) 1069 if (m_pDocument == NULL || m_pDocument->GetDocument() == NULL)
1070 return FALSE; 1070 return false;
1071 1071
1072 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo(); 1072 CPDF_Dictionary* pDictionary = m_pDocument->GetDocument()->GetInfo();
1073 if (!pDictionary) 1073 if (!pDictionary)
1074 return FALSE; 1074 return false;
1075 1075
1076 if (vp.IsGetting()) 1076 if (vp.IsGetting())
1077 { 1077 {
1078 vp << pDictionary->GetUnicodeText("Title"); 1078 vp << pDictionary->GetUnicodeText("Title");
1079 } 1079 }
1080 else 1080 else
1081 { 1081 {
1082 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY)) 1082 if (!m_pDocument->GetPermissions(FPDFPERM_MODIFY))
1083 return FALSE; 1083 return false;
1084 1084
1085 CFX_WideString cstitle; 1085 CFX_WideString cstitle;
1086 vp >> cstitle; 1086 vp >> cstitle;
1087 pDictionary->SetAtString("Title", PDF_EncodeText(cstitle)); 1087 pDictionary->SetAtString("Title", PDF_EncodeText(cstitle));
1088 m_pDocument->SetChangeMark(); 1088 m_pDocument->SetChangeMark();
1089 } 1089 }
1090 return TRUE; 1090 return true;
1091 } 1091 }
1092 1092
1093 FX_BOOL Document::numPages(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) 1093 bool Document::numPages(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE rror)
1094 { 1094 {
1095 if (vp.IsSetting()) { 1095 if (vp.IsSetting()) {
1096 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 1096 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1097 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY); 1097 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
1098 return FALSE; 1098 return false;
1099 } 1099 }
1100 vp << m_pDocument->GetPageCount(); 1100 vp << m_pDocument->GetPageCount();
1101 return TRUE; 1101 return true;
1102 } 1102 }
1103 1103
1104 FX_BOOL Document::external(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) 1104 bool Document::external(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE rror)
1105 { 1105 {
1106 //In Chrome case,should always return true. 1106 //In Chrome case,should always return true.
1107 if (vp.IsGetting()) { 1107 if (vp.IsGetting()) {
1108 vp << true; 1108 vp << true;
1109 } 1109 }
1110 return TRUE; 1110 return true;
1111 } 1111 }
1112 1112
1113 FX_BOOL Document::filesize(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) 1113 bool Document::filesize(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE rror)
1114 { 1114 {
1115 if (vp.IsSetting()) { 1115 if (vp.IsSetting()) {
1116 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 1116 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1117 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY); 1117 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
1118 return FALSE; 1118 return false;
1119 } 1119 }
1120 vp << 0; 1120 vp << 0;
1121 return TRUE; 1121 return true;
1122 } 1122 }
1123 1123
1124 FX_BOOL Document::mouseX(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& s Error) 1124 bool Document::mouseX(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErr or)
1125 { 1125 {
1126 return TRUE; 1126 return true;
1127 } 1127 }
1128 1128
1129 FX_BOOL Document::mouseY(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& s Error) 1129 bool Document::mouseY(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErr or)
1130 { 1130 {
1131 return TRUE; 1131 return true;
1132 } 1132 }
1133 1133
1134 FX_BOOL Document::baseURL(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) 1134 bool Document::baseURL(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr ror)
1135 { 1135 {
1136 if (vp.IsGetting()) 1136 if (vp.IsGetting())
1137 { 1137 {
1138 vp << m_cwBaseURL; 1138 vp << m_cwBaseURL;
1139 } 1139 }
1140 else 1140 else
1141 { 1141 {
1142 vp >> m_cwBaseURL; 1142 vp >> m_cwBaseURL;
1143 } 1143 }
1144 return TRUE; 1144 return true;
1145 } 1145 }
1146 1146
1147 FX_BOOL Document::calculate(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString & sError) 1147 bool Document::calculate(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& s Error)
1148 { 1148 {
1149 ASSERT(m_pDocument != NULL); 1149 ASSERT(m_pDocument != NULL);
1150 1150
1151 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterFor m(); 1151 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterFor m();
1152 ASSERT(pInterForm != NULL); 1152 ASSERT(pInterForm != NULL);
1153 1153
1154 if (vp.IsGetting()) 1154 if (vp.IsGetting())
1155 { 1155 {
1156 if (pInterForm->IsCalculateEnabled()) 1156 if (pInterForm->IsCalculateEnabled())
1157 vp << true; 1157 vp << true;
1158 else 1158 else
1159 vp << false; 1159 vp << false;
1160 } 1160 }
1161 else 1161 else
1162 { 1162 {
1163 bool bCalculate; 1163 bool bCalculate;
1164 vp >> bCalculate; 1164 vp >> bCalculate;
1165 1165
1166 pInterForm->EnableCalculate(bCalculate); 1166 pInterForm->EnableCalculate(bCalculate);
1167 } 1167 }
1168 1168
1169 return TRUE; 1169 return true;
1170 } 1170 }
1171 1171
1172 FX_BOOL Document::documentFileName(IFXJS_Context* cc, CJS_PropValue& vp, CFX_Wid eString& sError) 1172 bool Document::documentFileName(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideSt ring& sError)
1173 { 1173 {
1174 if (vp.IsSetting()) { 1174 if (vp.IsSetting()) {
1175 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 1175 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1176 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY); 1176 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
1177 return FALSE; 1177 return false;
1178 } 1178 }
1179 CFX_WideString wsFilePath = m_pDocument->GetPath(); 1179 CFX_WideString wsFilePath = m_pDocument->GetPath();
1180 int32_t i = wsFilePath.GetLength() - 1; 1180 int32_t i = wsFilePath.GetLength() - 1;
1181 for ( ; i >= 0; i-- ) 1181 for ( ; i >= 0; i-- )
1182 { 1182 {
1183 if ( wsFilePath.GetAt( i ) == L'\\' || wsFilePath.GetAt( i ) == L'/' ) 1183 if ( wsFilePath.GetAt( i ) == L'\\' || wsFilePath.GetAt( i ) == L'/' )
1184 break; 1184 break;
1185 } 1185 }
1186 if ( i >= 0 && i < wsFilePath.GetLength() - 1 ) 1186 if ( i >= 0 && i < wsFilePath.GetLength() - 1 )
1187 { 1187 {
1188 vp << ( wsFilePath.GetBuffer( wsFilePath.GetLength() ) + i + 1 ); 1188 vp << ( wsFilePath.GetBuffer( wsFilePath.GetLength() ) + i + 1 );
1189 }else{ 1189 }else{
1190 vp << L""; 1190 vp << L"";
1191 } 1191 }
1192 return TRUE; 1192 return true;
1193 } 1193 }
1194 1194
1195 CFX_WideString Document::ReversalStr(CFX_WideString cbFrom) 1195 CFX_WideString Document::ReversalStr(CFX_WideString cbFrom)
1196 { 1196 {
1197 size_t iLength = cbFrom.GetLength(); 1197 size_t iLength = cbFrom.GetLength();
1198 pdfium::base::CheckedNumeric<size_t> iSize = sizeof(wchar_t); 1198 pdfium::base::CheckedNumeric<size_t> iSize = sizeof(wchar_t);
1199 iSize *= (iLength + 1); 1199 iSize *= (iLength + 1);
1200 wchar_t* pResult = (wchar_t*)malloc(iSize.ValueOrDie()); 1200 wchar_t* pResult = (wchar_t*)malloc(iSize.ValueOrDie());
1201 wchar_t* pFrom = (wchar_t*)cbFrom.GetBuffer(iLength); 1201 wchar_t* pFrom = (wchar_t*)cbFrom.GetBuffer(iLength);
1202 1202
(...skipping 29 matching lines...) Expand all
1232 } 1232 }
1233 pResult[iLength] = L'\0'; 1233 pResult[iLength] = L'\0';
1234 1234
1235 cbFrom.ReleaseBuffer(); 1235 cbFrom.ReleaseBuffer();
1236 CFX_WideString cbRet = CFX_WideString(pResult); 1236 CFX_WideString cbRet = CFX_WideString(pResult);
1237 free(pResult); 1237 free(pResult);
1238 pResult = NULL; 1238 pResult = NULL;
1239 return cbRet; 1239 return cbRet;
1240 } 1240 }
1241 1241
1242 FX_BOOL Document::path(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr ror) 1242 bool Document::path(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError )
1243 { 1243 {
1244 if (vp.IsSetting()) { 1244 if (vp.IsSetting()) {
1245 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 1245 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1246 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY); 1246 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
1247 return FALSE; 1247 return false;
1248 } 1248 }
1249 vp << app::SysPathToPDFPath(m_pDocument->GetPath()); 1249 vp << app::SysPathToPDFPath(m_pDocument->GetPath());
1250 return TRUE; 1250 return true;
1251 } 1251 }
1252 1252
1253 FX_BOOL Document::pageWindowRect(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideS tring& sError) 1253 bool Document::pageWindowRect(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideStri ng& sError)
1254 { 1254 {
1255 return TRUE; 1255 return true;
1256 } 1256 }
1257 1257
1258 FX_BOOL Document::layout(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& s Error) 1258 bool Document::layout(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErr or)
1259 { 1259 {
1260 return TRUE; 1260 return true;
1261 } 1261 }
1262 1262
1263 FX_BOOL Document::addLink(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V alue& vRet, CFX_WideString& sError) 1263 bool Document::addLink(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Valu e& vRet, CFX_WideString& sError)
1264 { 1264 {
1265 return TRUE; 1265 return true;
1266 } 1266 }
1267 1267
1268 FX_BOOL Document::closeDoc(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError) 1268 bool Document::closeDoc(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val ue& vRet, CFX_WideString& sError)
1269 { 1269 {
1270 ASSERT(m_pDocument != NULL); 1270 ASSERT(m_pDocument != NULL);
1271 return TRUE; 1271 return true;
1272 } 1272 }
1273 1273
1274 FX_BOOL Document::getPageBox(IFXJS_Context* cc, const CJS_Parameters& params, CJ S_Value& vRet, CFX_WideString& sError) 1274 bool Document::getPageBox(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V alue& vRet, CFX_WideString& sError)
1275 { 1275 {
1276 return TRUE; 1276 return true;
1277 } 1277 }
1278 1278
1279 FX_BOOL Document::getAnnot(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError) 1279 bool Document::getAnnot(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val ue& vRet, CFX_WideString& sError)
1280 { 1280 {
1281 return TRUE; 1281 return true;
1282 } 1282 }
1283 1283
1284 FX_BOOL Document::getAnnots(IFXJS_Context* cc, const CJS_Parameters& params, CJS _Value& vRet, CFX_WideString& sError) 1284 bool Document::getAnnots(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Va lue& vRet, CFX_WideString& sError)
1285 { 1285 {
1286 vRet.SetNull(); 1286 vRet.SetNull();
1287 return TRUE; 1287 return true;
1288 } 1288 }
1289 1289
1290 FX_BOOL Document::getAnnot3D(IFXJS_Context* cc, const CJS_Parameters& params, CJ S_Value& vRet, CFX_WideString& sError) 1290 bool Document::getAnnot3D(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V alue& vRet, CFX_WideString& sError)
1291 { 1291 {
1292 vRet.SetNull(); 1292 vRet.SetNull();
1293 return TRUE; 1293 return true;
1294 } 1294 }
1295 1295
1296 FX_BOOL Document::getAnnots3D(IFXJS_Context* cc, const CJS_Parameters& params, C JS_Value& vRet, CFX_WideString& sError) 1296 bool Document::getAnnots3D(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError)
1297 { 1297 {
1298 vRet = VT_undefined; 1298 vRet = VT_undefined;
1299 return TRUE; 1299 return true;
1300 } 1300 }
1301 1301
1302 FX_BOOL Document::getOCGs(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V alue& vRet, CFX_WideString& sError) 1302 bool Document::getOCGs(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Valu e& vRet, CFX_WideString& sError)
1303 { 1303 {
1304 return TRUE; 1304 return true;
1305 } 1305 }
1306 1306
1307 FX_BOOL Document::getLinks(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError) 1307 bool Document::getLinks(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val ue& vRet, CFX_WideString& sError)
1308 { 1308 {
1309 return TRUE; 1309 return true;
1310 } 1310 }
1311 1311
1312 bool Document::IsEnclosedInRect(CFX_FloatRect rect, CFX_FloatRect LinkRect) 1312 bool Document::IsEnclosedInRect(CFX_FloatRect rect, CFX_FloatRect LinkRect)
1313 { 1313 {
1314 return (rect.left <= LinkRect.left && 1314 return (rect.left <= LinkRect.left &&
1315 rect.top <= LinkRect.top && 1315 rect.top <= LinkRect.top &&
1316 rect.right >= LinkRect.right && 1316 rect.right >= LinkRect.right &&
1317 rect.bottom >= LinkRect.bottom); 1317 rect.bottom >= LinkRect.bottom);
1318 } 1318 }
1319 1319
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1363 IconElement* pTemp = m_pHead; 1363 IconElement* pTemp = m_pHead;
1364 for (int i = 0; i < iIndex; i++) 1364 for (int i = 0; i < iIndex; i++)
1365 { 1365 {
1366 pTemp = pTemp->NextIcon; 1366 pTemp = pTemp->NextIcon;
1367 } 1367 }
1368 return pTemp; 1368 return pTemp;
1369 } 1369 }
1370 return NULL; 1370 return NULL;
1371 } 1371 }
1372 1372
1373 FX_BOOL Document::addIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V alue& vRet, CFX_WideString& sError) 1373 bool Document::addIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Valu e& vRet, CFX_WideString& sError)
1374 { 1374 {
1375 CJS_Context* pContext = (CJS_Context*)cc; 1375 CJS_Context* pContext = (CJS_Context*)cc;
1376 if (params.size() != 2) { 1376 if (params.size() != 2) {
1377 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 1377 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
1378 return FALSE; 1378 return false;
1379 } 1379 }
1380 1380
1381 CFX_WideString swIconName = params[0].ToCFXWideString(); 1381 CFX_WideString swIconName = params[0].ToCFXWideString();
1382 JSFXObject pJSIcon = params[1].ToV8Object(); 1382 JSFXObject pJSIcon = params[1].ToV8Object();
1383 1383
1384 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1384 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1385 if (JS_GetObjDefnID(pJSIcon) != JS_GetObjDefnID(*pRuntime, L"Icon")) { 1385 if (JS_GetObjDefnID(pJSIcon) != JS_GetObjDefnID(*pRuntime, L"Icon")) {
1386 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR); 1386 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR);
1387 return FALSE; 1387 return false;
1388 } 1388 }
1389 1389
1390 CJS_EmbedObj* pEmbedObj = params[1].ToCJSObject()->GetEmbedObject(); 1390 CJS_EmbedObj* pEmbedObj = params[1].ToCJSObject()->GetEmbedObject();
1391 if (!pEmbedObj) { 1391 if (!pEmbedObj) {
1392 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR); 1392 sError = JSGetStringFromID(pContext, IDS_STRING_JSTYPEERROR);
1393 return FALSE; 1393 return false;
1394 } 1394 }
1395 1395
1396 Icon* pIcon = (Icon*)pEmbedObj; 1396 Icon* pIcon = (Icon*)pEmbedObj;
1397 if (!m_pIconTree) 1397 if (!m_pIconTree)
1398 m_pIconTree = new IconTree(); 1398 m_pIconTree = new IconTree();
1399 1399
1400 IconElement* pNewIcon = new IconElement(); 1400 IconElement* pNewIcon = new IconElement();
1401 pNewIcon->IconName = swIconName; 1401 pNewIcon->IconName = swIconName;
1402 pNewIcon->NextIcon = NULL; 1402 pNewIcon->NextIcon = NULL;
1403 pNewIcon->IconStream = pIcon; 1403 pNewIcon->IconStream = pIcon;
1404 m_pIconTree->InsertIconElement(pNewIcon); 1404 m_pIconTree->InsertIconElement(pNewIcon);
1405 return TRUE; 1405 return true;
1406 } 1406 }
1407 1407
1408 FX_BOOL Document::icons(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE rror) 1408 bool Document::icons(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro r)
1409 { 1409 {
1410 if (vp.IsSetting()) { 1410 if (vp.IsSetting()) {
1411 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 1411 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1412 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY); 1412 sError = JSGetStringFromID(pContext, IDS_STRING_JSREADONLY);
1413 return FALSE; 1413 return false;
1414 } 1414 }
1415 1415
1416 if (!m_pIconTree) 1416 if (!m_pIconTree)
1417 { 1417 {
1418 vp.SetNull(); 1418 vp.SetNull();
1419 return TRUE; 1419 return true;
1420 } 1420 }
1421 1421
1422 CJS_Array Icons(m_isolate); 1422 CJS_Array Icons(m_isolate);
1423 IconElement* pIconElement = NULL; 1423 IconElement* pIconElement = NULL;
1424 int iIconTreeLength = m_pIconTree->GetLength(); 1424 int iIconTreeLength = m_pIconTree->GetLength();
1425 1425
1426 CJS_Context* pContext = (CJS_Context *)cc; 1426 CJS_Context* pContext = (CJS_Context *)cc;
1427 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1427 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1428 1428
1429 for (int i = 0; i < iIconTreeLength; i++) 1429 for (int i = 0; i < iIconTreeLength; i++)
1430 { 1430 {
1431 pIconElement = (*m_pIconTree)[i]; 1431 pIconElement = (*m_pIconTree)[i];
1432 1432
1433 JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefn ID(*pRuntime, L"Icon")); 1433 JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefn ID(*pRuntime, L"Icon"));
1434 if (pObj.IsEmpty()) return FALSE; 1434 if (pObj.IsEmpty()) return false;
1435 1435
1436 CJS_Icon * pJS_Icon = (CJS_Icon *)JS_GetPrivate(pObj); 1436 CJS_Icon * pJS_Icon = (CJS_Icon *)JS_GetPrivate(pObj);
1437 if (!pJS_Icon) return FALSE; 1437 if (!pJS_Icon) return false;
1438 1438
1439 Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject(); 1439 Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject();
1440 if (!pIcon)return FALSE; 1440 if (!pIcon)return false;
1441 1441
1442 pIcon->SetStream(pIconElement->IconStream->GetStream()); 1442 pIcon->SetStream(pIconElement->IconStream->GetStream());
1443 pIcon->SetIconName(pIconElement->IconName); 1443 pIcon->SetIconName(pIconElement->IconName);
1444 Icons.SetElement(i, CJS_Value(m_isolate,pJS_Icon)); 1444 Icons.SetElement(i, CJS_Value(m_isolate,pJS_Icon));
1445 } 1445 }
1446 1446
1447 vp << Icons; 1447 vp << Icons;
1448 return TRUE; 1448 return true;
1449 } 1449 }
1450 1450
1451 FX_BOOL Document::getIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V alue& vRet, CFX_WideString& sError) 1451 bool Document::getIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Valu e& vRet, CFX_WideString& sError)
1452 { 1452 {
1453 CJS_Context* pContext = (CJS_Context *)cc; 1453 CJS_Context* pContext = (CJS_Context *)cc;
1454 if (params.size() != 1) { 1454 if (params.size() != 1) {
1455 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 1455 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
1456 return FALSE; 1456 return false;
1457 } 1457 }
1458 1458
1459 if(!m_pIconTree) 1459 if(!m_pIconTree)
1460 return FALSE; 1460 return false;
1461 CFX_WideString swIconName = params[0].ToCFXWideString(); 1461 CFX_WideString swIconName = params[0].ToCFXWideString();
1462 int iIconCounts = m_pIconTree->GetLength(); 1462 int iIconCounts = m_pIconTree->GetLength();
1463 1463
1464 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1464 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1465 1465
1466 for (int i = 0; i < iIconCounts; i++) 1466 for (int i = 0; i < iIconCounts; i++)
1467 { 1467 {
1468 if ((*m_pIconTree)[i]->IconName == swIconName) 1468 if ((*m_pIconTree)[i]->IconName == swIconName)
1469 { 1469 {
1470 Icon* pRetIcon = (*m_pIconTree)[i]->IconStream; 1470 Icon* pRetIcon = (*m_pIconTree)[i]->IconStream;
1471 1471
1472 JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObj DefnID(*pRuntime, L"Icon")); 1472 JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObj DefnID(*pRuntime, L"Icon"));
1473 if (pObj.IsEmpty()) return FALSE; 1473 if (pObj.IsEmpty()) return false;
1474 1474
1475 CJS_Icon * pJS_Icon = (CJS_Icon *)JS_GetPrivate(pObj); 1475 CJS_Icon * pJS_Icon = (CJS_Icon *)JS_GetPrivate(pObj);
1476 if (!pJS_Icon) return FALSE; 1476 if (!pJS_Icon) return false;
1477 1477
1478 Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject(); 1478 Icon* pIcon = (Icon*)pJS_Icon->GetEmbedObject();
1479 if (!pIcon)return FALSE; 1479 if (!pIcon)return false;
1480 1480
1481 pIcon->SetIconName(swIconName); 1481 pIcon->SetIconName(swIconName);
1482 pIcon->SetStream(pRetIcon->GetStream()); 1482 pIcon->SetStream(pRetIcon->GetStream());
1483 vRet = pJS_Icon; 1483 vRet = pJS_Icon;
1484 return TRUE; 1484 return true;
1485 } 1485 }
1486 } 1486 }
1487 1487
1488 return FALSE; 1488 return false;
1489 } 1489 }
1490 1490
1491 FX_BOOL Document::removeIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJ S_Value& vRet, CFX_WideString& sError) 1491 bool Document::removeIcon(IFXJS_Context* cc, const CJS_Parameters& params, CJS_V alue& vRet, CFX_WideString& sError)
1492 { 1492 {
1493 // Unsafe, no supported. 1493 // Unsafe, no supported.
1494 return TRUE; 1494 return true;
1495 } 1495 }
1496 1496
1497 FX_BOOL Document::createDataObject(IFXJS_Context* cc, const CJS_Parameters& para ms, CJS_Value& vRet, CFX_WideString& sError) 1497 bool Document::createDataObject(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
1498 { 1498 {
1499 // Unsafe, not implemented. 1499 // Unsafe, not implemented.
1500 return TRUE; 1500 return true;
1501 } 1501 }
1502 1502
1503 FX_BOOL Document::media(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE rror) 1503 bool Document::media(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro r)
1504 { 1504 {
1505 return TRUE; 1505 return true;
1506 } 1506 }
1507 1507
1508 FX_BOOL Document::calculateNow(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) 1508 bool Document::calculateNow(IFXJS_Context* cc, const CJS_Parameters& params, CJS _Value& vRet, CFX_WideString& sError)
1509 { 1509 {
1510 ASSERT(m_pDocument != NULL); 1510 ASSERT(m_pDocument != NULL);
1511 1511
1512 if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) || 1512 if (!(m_pDocument->GetPermissions(FPDFPERM_MODIFY) ||
1513 m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM) || 1513 m_pDocument->GetPermissions(FPDFPERM_ANNOT_FORM) ||
1514 m_pDocument->GetPermissions(FPDFPERM_FILL_FORM))) return FALSE; 1514 m_pDocument->GetPermissions(FPDFPERM_FILL_FORM))) return false;
1515 1515
1516 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterFor m(); 1516 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterFor m();
1517 ASSERT(pInterForm != NULL); 1517 ASSERT(pInterForm != NULL);
1518 pInterForm->OnCalculate(); 1518 pInterForm->OnCalculate();
1519 return TRUE; 1519 return true;
1520 } 1520 }
1521 1521
1522 FX_BOOL Document::Collab(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& s Error) 1522 bool Document::Collab(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErr or)
1523 { 1523 {
1524 return TRUE; 1524 return true;
1525 } 1525 }
1526 1526
1527 FX_BOOL Document::getPageNthWord(IFXJS_Context* cc, const CJS_Parameters& params , CJS_Value& vRet, CFX_WideString& sError) 1527 bool Document::getPageNthWord(IFXJS_Context* cc, const CJS_Parameters& params, C JS_Value& vRet, CFX_WideString& sError)
1528 { 1528 {
1529 ASSERT(m_pDocument != NULL); 1529 ASSERT(m_pDocument != NULL);
1530 1530
1531 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE; 1531 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return false;
1532 1532
1533 int nPageNo = params.GetSize() > 0 ? params[0].ToInt() : 0; 1533 int nPageNo = params.GetSize() > 0 ? params[0].ToInt() : 0;
1534 int nWordNo = params.GetSize() > 1 ? params[1].ToInt() : 0; 1534 int nWordNo = params.GetSize() > 1 ? params[1].ToInt() : 0;
1535 bool bStrip = params.GetSize() > 2 ? params[2].ToBool() : true; 1535 bool bStrip = params.GetSize() > 2 ? params[2].ToBool() : true;
1536 1536
1537 CPDF_Document* pDocument = m_pDocument->GetDocument(); 1537 CPDF_Document* pDocument = m_pDocument->GetDocument();
1538 if (!pDocument) return FALSE; 1538 if (!pDocument) return false;
1539 1539
1540 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 1540 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1541 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) 1541 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount())
1542 { 1542 {
1543 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR); 1543 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR);
1544 return FALSE; 1544 return false;
1545 } 1545 }
1546 1546
1547 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo); 1547 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo);
1548 if (!pPageDict) return FALSE; 1548 if (!pPageDict) return false;
1549 1549
1550 CPDF_Page page; 1550 CPDF_Page page;
1551 page.Load(pDocument, pPageDict); 1551 page.Load(pDocument, pPageDict);
1552 page.StartParse(); 1552 page.StartParse();
1553 page.ParseContent(); 1553 page.ParseContent();
1554 1554
1555 FX_POSITION pos = page.GetFirstObjectPosition(); 1555 FX_POSITION pos = page.GetFirstObjectPosition();
1556 1556
1557 int nWords = 0; 1557 int nWords = 0;
1558 1558
(...skipping 18 matching lines...) Expand all
1577 } 1577 }
1578 } 1578 }
1579 1579
1580 if (bStrip) 1580 if (bStrip)
1581 { 1581 {
1582 swRet.TrimLeft(); 1582 swRet.TrimLeft();
1583 swRet.TrimRight(); 1583 swRet.TrimRight();
1584 } 1584 }
1585 1585
1586 vRet = swRet.c_str(); 1586 vRet = swRet.c_str();
1587 return TRUE; 1587 return true;
1588 } 1588 }
1589 1589
1590 FX_BOOL Document::getPageNthWordQuads(IFXJS_Context* cc, const CJS_Parameters& p arams, CJS_Value& vRet, CFX_WideString& sError) 1590 bool Document::getPageNthWordQuads(IFXJS_Context* cc, const CJS_Parameters& para ms, CJS_Value& vRet, CFX_WideString& sError)
1591 { 1591 {
1592 ASSERT(m_pDocument != NULL); 1592 ASSERT(m_pDocument != NULL);
1593 1593
1594 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE; 1594 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return false;
1595 1595
1596 return FALSE; 1596 return false;
1597 } 1597 }
1598 1598
1599 FX_BOOL Document::getPageNumWords(IFXJS_Context* cc, const CJS_Parameters& param s, CJS_Value& vRet, CFX_WideString& sError) 1599 bool Document::getPageNumWords(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError)
1600 { 1600 {
1601 ASSERT(m_pDocument != NULL); 1601 ASSERT(m_pDocument != NULL);
1602 1602
1603 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE; 1603 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return false;
1604 1604
1605 int nPageNo = params.GetSize() > 0 ? params[0].ToInt() : 0; 1605 int nPageNo = params.GetSize() > 0 ? params[0].ToInt() : 0;
1606 1606
1607 CPDF_Document* pDocument = m_pDocument->GetDocument(); 1607 CPDF_Document* pDocument = m_pDocument->GetDocument();
1608 ASSERT(pDocument != NULL); 1608 ASSERT(pDocument != NULL);
1609 1609
1610 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 1610 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1611 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) 1611 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount())
1612 { 1612 {
1613 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR); 1613 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR);
1614 return FALSE; 1614 return false;
1615 } 1615 }
1616 1616
1617 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo); 1617 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo);
1618 if (!pPageDict) return FALSE; 1618 if (!pPageDict) return false;
1619 1619
1620 CPDF_Page page; 1620 CPDF_Page page;
1621 page.Load(pDocument, pPageDict); 1621 page.Load(pDocument, pPageDict);
1622 page.StartParse(); 1622 page.StartParse();
1623 page.ParseContent(); 1623 page.ParseContent();
1624 1624
1625 FX_POSITION pos = page.GetFirstObjectPosition(); 1625 FX_POSITION pos = page.GetFirstObjectPosition();
1626 1626
1627 int nWords = 0; 1627 int nWords = 0;
1628 1628
1629 while (pos) 1629 while (pos)
1630 { 1630 {
1631 if (CPDF_PageObject* pPageObj = page.GetNextObject(pos)) 1631 if (CPDF_PageObject* pPageObj = page.GetNextObject(pos))
1632 { 1632 {
1633 if (pPageObj->m_Type == PDFPAGE_TEXT) 1633 if (pPageObj->m_Type == PDFPAGE_TEXT)
1634 { 1634 {
1635 CPDF_TextObject* pTextObj = (CPDF_TextObject*)pPageObj; 1635 CPDF_TextObject* pTextObj = (CPDF_TextObject*)pPageObj;
1636 nWords += CountWords(pTextObj); 1636 nWords += CountWords(pTextObj);
1637 } 1637 }
1638 } 1638 }
1639 } 1639 }
1640 1640
1641 vRet = nWords; 1641 vRet = nWords;
1642 1642
1643 return TRUE; 1643 return true;
1644 } 1644 }
1645 1645
1646 FX_BOOL Document::getPrintParams(IFXJS_Context* cc, const CJS_Parameters& params , CJS_Value& vRet, CFX_WideString& sError) 1646 bool Document::getPrintParams(IFXJS_Context* cc, const CJS_Parameters& params, C JS_Value& vRet, CFX_WideString& sError)
1647 { 1647 {
1648 CJS_Context* pContext = (CJS_Context*)cc; 1648 CJS_Context* pContext = (CJS_Context*)cc;
1649 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1649 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1650 JSFXObject pRetObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID (*pRuntime, L"PrintParamsObj")); 1650 JSFXObject pRetObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID (*pRuntime, L"PrintParamsObj"));
1651 1651
1652 // Not implemented yet. 1652 // Not implemented yet.
1653 1653
1654 vRet = pRetObj; 1654 vRet = pRetObj;
1655 return TRUE; 1655 return true;
1656 } 1656 }
1657 1657
1658 #define ISLATINWORD(u) (u != 0x20 && u <= 0x28FF) 1658 #define ISLATINWORD(u) (u != 0x20 && u <= 0x28FF)
1659 1659
1660 int Document::CountWords(CPDF_TextObject* pTextObj) 1660 int Document::CountWords(CPDF_TextObject* pTextObj)
1661 { 1661 {
1662 if (!pTextObj) return 0; 1662 if (!pTextObj) return 0;
1663 1663
1664 int nWords = 0; 1664 int nWords = 0;
1665 1665
1666 CPDF_Font* pFont = pTextObj->GetFont(); 1666 CPDF_Font* pFont = pTextObj->GetFont();
1667 if (!pFont) return 0; 1667 if (!pFont) return 0;
1668 1668
1669 FX_BOOL bIsLatin = FALSE; 1669 bool bIsLatin = false;
1670 1670
1671 for (int i=0, sz=pTextObj->CountChars(); i<sz; i++) 1671 for (int i=0, sz=pTextObj->CountChars(); i<sz; i++)
1672 { 1672 {
1673 FX_DWORD charcode = -1; 1673 FX_DWORD charcode = -1;
1674 FX_FLOAT kerning; 1674 FX_FLOAT kerning;
1675 1675
1676 pTextObj->GetCharInfo(i, charcode, kerning); 1676 pTextObj->GetCharInfo(i, charcode, kerning);
1677 CFX_WideString swUnicode = pFont->UnicodeFromCharCode(charcode); 1677 CFX_WideString swUnicode = pFont->UnicodeFromCharCode(charcode);
1678 1678
1679 FX_WORD unicode = 0; 1679 FX_WORD unicode = 0;
(...skipping 14 matching lines...) Expand all
1694 CFX_WideString Document::GetObjWordStr(CPDF_TextObject* pTextObj, int nWordIndex ) 1694 CFX_WideString Document::GetObjWordStr(CPDF_TextObject* pTextObj, int nWordIndex )
1695 { 1695 {
1696 ASSERT(pTextObj != NULL); 1696 ASSERT(pTextObj != NULL);
1697 1697
1698 CFX_WideString swRet; 1698 CFX_WideString swRet;
1699 1699
1700 CPDF_Font* pFont = pTextObj->GetFont(); 1700 CPDF_Font* pFont = pTextObj->GetFont();
1701 if (!pFont) return L""; 1701 if (!pFont) return L"";
1702 1702
1703 int nWords = 0; 1703 int nWords = 0;
1704 FX_BOOL bIsLatin = FALSE; 1704 bool bIsLatin = false;
1705 1705
1706 for (int i=0, sz=pTextObj->CountChars(); i<sz; i++) 1706 for (int i=0, sz=pTextObj->CountChars(); i<sz; i++)
1707 { 1707 {
1708 FX_DWORD charcode = -1; 1708 FX_DWORD charcode = -1;
1709 FX_FLOAT kerning; 1709 FX_FLOAT kerning;
1710 1710
1711 pTextObj->GetCharInfo(i, charcode, kerning); 1711 pTextObj->GetCharInfo(i, charcode, kerning);
1712 CFX_WideString swUnicode = pFont->UnicodeFromCharCode(charcode); 1712 CFX_WideString swUnicode = pFont->UnicodeFromCharCode(charcode);
1713 1713
1714 FX_WORD unicode = 0; 1714 FX_WORD unicode = 0;
(...skipping 10 matching lines...) Expand all
1725 nWords++; 1725 nWords++;
1726 } 1726 }
1727 1727
1728 if (nWords-1 == nWordIndex) 1728 if (nWords-1 == nWordIndex)
1729 swRet += unicode; 1729 swRet += unicode;
1730 } 1730 }
1731 1731
1732 return swRet; 1732 return swRet;
1733 } 1733 }
1734 1734
1735 FX_BOOL Document::zoom(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr ror) 1735 bool Document::zoom(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError )
1736 { 1736 {
1737 1737
1738 return TRUE; 1738 return true;
1739 } 1739 }
1740 1740
1741 /** 1741 /**
1742 (none, NoVary) 1742 (none, NoVary)
1743 (fitP, FitPage) 1743 (fitP, FitPage)
1744 (fitW, FitWidth) 1744 (fitW, FitWidth)
1745 (fitH, FitHeight) 1745 (fitH, FitHeight)
1746 (fitV, FitVisibleWidth) 1746 (fitV, FitVisibleWidth)
1747 (pref, Preferred) 1747 (pref, Preferred)
1748 (refW, ReflowWidth) 1748 (refW, ReflowWidth)
1749 */ 1749 */
1750 1750
1751 FX_BOOL Document::zoomType(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) 1751 bool Document::zoomType(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE rror)
1752 { 1752 {
1753 return TRUE; 1753 return true;
1754 } 1754 }
1755 1755
1756 FX_BOOL Document::deletePages(IFXJS_Context* cc, const CJS_Parameters& params, C JS_Value& vRet, CFX_WideString& sError) 1756 bool Document::deletePages(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError)
1757 { 1757 {
1758 // Unsafe, no supported. 1758 // Unsafe, no supported.
1759 return TRUE; 1759 return true;
1760 } 1760 }
1761 1761
1762 FX_BOOL Document::extractPages(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) 1762 bool Document::extractPages(IFXJS_Context* cc, const CJS_Parameters& params, CJS _Value& vRet, CFX_WideString& sError)
1763 { 1763 {
1764 // Unsafe, not supported. 1764 // Unsafe, not supported.
1765 return TRUE; 1765 return true;
1766 } 1766 }
1767 1767
1768 FX_BOOL Document::insertPages(IFXJS_Context* cc, const CJS_Parameters& params, C JS_Value& vRet, CFX_WideString& sError) 1768 bool Document::insertPages(IFXJS_Context* cc, const CJS_Parameters& params, CJS_ Value& vRet, CFX_WideString& sError)
1769 { 1769 {
1770 // Unsafe, not supported. 1770 // Unsafe, not supported.
1771 return TRUE; 1771 return true;
1772 } 1772 }
1773 1773
1774 FX_BOOL Document::replacePages(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) 1774 bool Document::replacePages(IFXJS_Context* cc, const CJS_Parameters& params, CJS _Value& vRet, CFX_WideString& sError)
1775 { 1775 {
1776 // Unsafe, not supported. 1776 // Unsafe, not supported.
1777 return TRUE; 1777 return true;
1778 } 1778 }
1779 1779
1780 FX_BOOL Document::getURL(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Va lue& vRet, CFX_WideString& sError) 1780 bool Document::getURL(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value & vRet, CFX_WideString& sError)
1781 { 1781 {
1782 // Unsafe, not supported. 1782 // Unsafe, not supported.
1783 return TRUE; 1783 return true;
1784 } 1784 }
1785 1785
1786 void Document::AddDelayData(CJS_DelayData* pData) 1786 void Document::AddDelayData(CJS_DelayData* pData)
1787 { 1787 {
1788 m_DelayData.Add(pData); 1788 m_DelayData.Add(pData);
1789 } 1789 }
1790 1790
1791 void Document::DoFieldDelay(const CFX_WideString& sFieldName, int nControlIndex) 1791 void Document::DoFieldDelay(const CFX_WideString& sFieldName, int nControlIndex)
1792 { 1792 {
1793 CFX_DWordArray DelArray; 1793 CFX_DWordArray DelArray;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1832 for (int j=DelArray.GetSize()-1; j>=0; j--) 1832 for (int j=DelArray.GetSize()-1; j>=0; j--)
1833 { 1833 {
1834 m_DelayData.RemoveAt(DelArray[j]); 1834 m_DelayData.RemoveAt(DelArray[j]);
1835 } 1835 }
1836 } 1836 }
1837 1837
1838 CJS_Document* Document::GetCJSDoc() const 1838 CJS_Document* Document::GetCJSDoc() const
1839 { 1839 {
1840 return static_cast<CJS_Document*>(m_pJSObject); 1840 return static_cast<CJS_Document*>(m_pJSObject);
1841 } 1841 }
OLDNEW
« no previous file with comments | « fpdfsdk/src/fxedit/fxet_pageobjs.cpp ('k') | fpdfsdk/src/javascript/Field.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698