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 #ifndef FPDFSDK_INCLUDE_FSDK_MGR_H_ | 7 #ifndef FPDFSDK_INCLUDE_FSDK_MGR_H_ |
8 #define FPDFSDK_INCLUDE_FSDK_MGR_H_ | 8 #define FPDFSDK_INCLUDE_FSDK_MGR_H_ |
9 | 9 |
10 #include <map> | 10 #include <map> |
11 | 11 |
12 #include "core/include/fpdftext/fpdf_text.h" | 12 #include "core/include/fpdftext/fpdf_text.h" |
| 13 #ifdef PDF_ENABLE_XFA |
13 #include "fpdfxfa/fpdfxfa_doc.h" | 14 #include "fpdfxfa/fpdfxfa_doc.h" |
14 #include "fpdfxfa/fpdfxfa_page.h" | 15 #include "fpdfxfa/fpdfxfa_page.h" |
| 16 #endif |
15 #include "fsdk_actionhandler.h" | 17 #include "fsdk_actionhandler.h" |
16 #include "fsdk_annothandler.h" | 18 #include "fsdk_annothandler.h" |
17 #include "fsdk_baseannot.h" | 19 #include "fsdk_baseannot.h" |
18 #include "fsdk_baseform.h" | 20 #include "fsdk_baseform.h" |
19 #include "fsdk_common.h" | 21 #include "fsdk_common.h" |
20 #include "fsdk_define.h" | 22 #include "fsdk_define.h" |
21 #include "fx_systemhandler.h" | 23 #include "fx_systemhandler.h" |
22 #include "javascript/IJavaScript.h" | 24 #include "javascript/IJavaScript.h" |
23 #include "public/fpdf_formfill.h" | 25 #include "public/fpdf_formfill.h" |
24 #include "public/fpdf_fwlevent.h" // cross platform keycode and events define. | 26 #include "public/fpdf_fwlevent.h" // cross platform keycode and events define. |
25 #include "third_party/base/nonstd_unique_ptr.h" | 27 #include "third_party/base/nonstd_unique_ptr.h" |
26 | 28 |
27 class CFFL_IFormFiller; | 29 class CFFL_IFormFiller; |
28 class CPDFSDK_ActionHandler; | 30 class CPDFSDK_ActionHandler; |
29 class CPDFSDK_Annot; | 31 class CPDFSDK_Annot; |
30 class CPDFSDK_Document; | 32 class CPDFSDK_Document; |
31 class CPDFSDK_InterForm; | 33 class CPDFSDK_InterForm; |
32 class CPDFSDK_PageView; | 34 class CPDFSDK_PageView; |
33 class CPDFSDK_Widget; | 35 class CPDFSDK_Widget; |
34 class IFX_SystemHandler; | 36 class IFX_SystemHandler; |
35 | 37 |
36 class CPDFDoc_Environment final { | 38 class CPDFDoc_Environment final { |
37 public: | 39 public: |
38 CPDFDoc_Environment(UnderlyingDocumentType* pDoc, FPDF_FORMFILLINFO* pFFinfo); | 40 CPDFDoc_Environment(UnderlyingDocumentType* pDoc, FPDF_FORMFILLINFO* pFFinfo); |
39 ~CPDFDoc_Environment(); | 41 ~CPDFDoc_Environment(); |
40 | 42 |
| 43 #ifdef PDF_ENABLE_XFA |
41 void Release() { | 44 void Release() { |
42 if (m_pInfo && m_pInfo->Release) | 45 if (m_pInfo && m_pInfo->Release) |
43 m_pInfo->Release(m_pInfo); | 46 m_pInfo->Release(m_pInfo); |
44 delete this; | 47 delete this; |
45 } | 48 } |
46 | 49 |
| 50 #endif |
47 void FFI_Invalidate(FPDF_PAGE page, | 51 void FFI_Invalidate(FPDF_PAGE page, |
48 double left, | 52 double left, |
49 double top, | 53 double top, |
50 double right, | 54 double right, |
51 double bottom) { | 55 double bottom) { |
52 if (m_pInfo && m_pInfo->FFI_Invalidate) | 56 if (m_pInfo && m_pInfo->FFI_Invalidate) |
53 m_pInfo->FFI_Invalidate(m_pInfo, page, left, top, right, bottom); | 57 m_pInfo->FFI_Invalidate(m_pInfo, page, left, top, right, bottom); |
54 } | 58 } |
55 | 59 |
56 void FFI_OutputSelectedRect(FPDF_PAGE page, | 60 void FFI_OutputSelectedRect(FPDF_PAGE page, |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 | 205 |
202 void FFI_DoGoToAction(int nPageIndex, | 206 void FFI_DoGoToAction(int nPageIndex, |
203 int zoomMode, | 207 int zoomMode, |
204 float* fPosArray, | 208 float* fPosArray, |
205 int sizeOfArray) { | 209 int sizeOfArray) { |
206 if (m_pInfo && m_pInfo->FFI_DoGoToAction) | 210 if (m_pInfo && m_pInfo->FFI_DoGoToAction) |
207 m_pInfo->FFI_DoGoToAction(m_pInfo, nPageIndex, zoomMode, fPosArray, | 211 m_pInfo->FFI_DoGoToAction(m_pInfo, nPageIndex, zoomMode, fPosArray, |
208 sizeOfArray); | 212 sizeOfArray); |
209 } | 213 } |
210 | 214 |
| 215 #ifdef PDF_ENABLE_XFA |
211 void FFI_DisplayCaret(FPDF_PAGE page, | 216 void FFI_DisplayCaret(FPDF_PAGE page, |
212 FPDF_BOOL bVisible, | 217 FPDF_BOOL bVisible, |
213 double left, | 218 double left, |
214 double top, | 219 double top, |
215 double right, | 220 double right, |
216 double bottom) { | 221 double bottom) { |
217 if (m_pInfo && m_pInfo->FFI_DisplayCaret) | 222 if (m_pInfo && m_pInfo->FFI_DisplayCaret) |
218 m_pInfo->FFI_DisplayCaret(m_pInfo, page, bVisible, left, top, right, | 223 m_pInfo->FFI_DisplayCaret(m_pInfo, page, bVisible, left, top, right, |
219 bottom); | 224 bottom); |
220 } | 225 } |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 CFX_ByteString bsRet = CFX_ByteString(pbuff, nActualLen); | 444 CFX_ByteString bsRet = CFX_ByteString(pbuff, nActualLen); |
440 CFX_WideString wsRet = CFX_WideString::FromUTF16LE( | 445 CFX_WideString wsRet = CFX_WideString::FromUTF16LE( |
441 (unsigned short*)bsRet.GetBuffer(bsRet.GetLength()), | 446 (unsigned short*)bsRet.GetBuffer(bsRet.GetLength()), |
442 bsRet.GetLength() / sizeof(unsigned short)); | 447 bsRet.GetLength() / sizeof(unsigned short)); |
443 delete[] pbuff; | 448 delete[] pbuff; |
444 return wsRet; | 449 return wsRet; |
445 } | 450 } |
446 return L""; | 451 return L""; |
447 } | 452 } |
448 | 453 |
| 454 #endif |
449 FX_BOOL IsJSInitiated() const { return m_pInfo && m_pInfo->m_pJsPlatform; } | 455 FX_BOOL IsJSInitiated() const { return m_pInfo && m_pInfo->m_pJsPlatform; } |
450 void SetSDKDocument(CPDFSDK_Document* pFXDoc) { m_pSDKDoc = pFXDoc; } | 456 void SetSDKDocument(CPDFSDK_Document* pFXDoc) { m_pSDKDoc = pFXDoc; } |
451 CPDFSDK_Document* GetSDKDocument() const { return m_pSDKDoc; } | 457 CPDFSDK_Document* GetSDKDocument() const { return m_pSDKDoc; } |
452 UnderlyingDocumentType* GetUnderlyingDocument() const { | 458 UnderlyingDocumentType* GetUnderlyingDocument() const { |
453 return m_pUnderlyingDoc; | 459 return m_pUnderlyingDoc; |
454 } | 460 } |
455 CFX_ByteString GetAppName() const { return ""; } | 461 CFX_ByteString GetAppName() const { return ""; } |
456 IFX_SystemHandler* GetSysHandler() const { return m_pSysHandler.get(); } | 462 IFX_SystemHandler* GetSysHandler() const { return m_pSysHandler.get(); } |
457 FPDF_FORMFILLINFO* GetFormFillInfo() const { return m_pInfo; } | 463 FPDF_FORMFILLINFO* GetFormFillInfo() const { return m_pInfo; } |
458 | 464 |
(...skipping 16 matching lines...) Expand all Loading... |
475 class CPDFSDK_Document { | 481 class CPDFSDK_Document { |
476 public: | 482 public: |
477 CPDFSDK_Document(UnderlyingDocumentType* pDoc, CPDFDoc_Environment* pEnv); | 483 CPDFSDK_Document(UnderlyingDocumentType* pDoc, CPDFDoc_Environment* pEnv); |
478 ~CPDFSDK_Document(); | 484 ~CPDFSDK_Document(); |
479 | 485 |
480 CPDFSDK_InterForm* GetInterForm(); | 486 CPDFSDK_InterForm* GetInterForm(); |
481 | 487 |
482 // Gets the document object for the next layer down; for master this is | 488 // Gets the document object for the next layer down; for master this is |
483 // a CPDF_Document, but for XFA it is a CPDFXFA_Document. | 489 // a CPDF_Document, but for XFA it is a CPDFXFA_Document. |
484 UnderlyingDocumentType* GetUnderlyingDocument() const { | 490 UnderlyingDocumentType* GetUnderlyingDocument() const { |
| 491 #ifndef PDF_ENABLE_XFA |
| 492 return GetPDFDocument(); |
| 493 #else |
485 return GetXFADocument(); | 494 return GetXFADocument(); |
| 495 #endif |
486 } | 496 } |
487 | 497 |
488 // Gets the CPDF_Document, either directly in master, or from the | 498 // Gets the CPDF_Document, either directly in master, or from the |
489 // CPDFXFA_Document for XFA. | 499 // CPDFXFA_Document for XFA. |
| 500 #ifndef PDF_ENABLE_XFA |
| 501 CPDF_Document* GetPDFDocument() const { return m_pDoc; } |
| 502 #else |
490 CPDF_Document* GetPDFDocument() const { | 503 CPDF_Document* GetPDFDocument() const { |
491 return m_pDoc ? m_pDoc->GetPDFDoc() : nullptr; | 504 return m_pDoc ? m_pDoc->GetPDFDoc() : nullptr; |
492 } | 505 } |
493 | 506 |
494 // Gets the XFA document directly (XFA-only). | 507 // Gets the XFA document directly (XFA-only). |
495 CPDFXFA_Document* GetXFADocument() const { return m_pDoc; } | 508 CPDFXFA_Document* GetXFADocument() const { return m_pDoc; } |
| 509 #endif |
496 | 510 |
| 511 #ifdef PDF_ENABLE_XFA |
497 int GetPageViewCount() const { return m_pageMap.size(); } | 512 int GetPageViewCount() const { return m_pageMap.size(); } |
| 513 #endif |
498 CPDFSDK_PageView* GetPageView(UnderlyingPageType* pPage, | 514 CPDFSDK_PageView* GetPageView(UnderlyingPageType* pPage, |
499 FX_BOOL ReNew = TRUE); | 515 FX_BOOL ReNew = TRUE); |
500 CPDFSDK_PageView* GetPageView(int nIndex); | 516 CPDFSDK_PageView* GetPageView(int nIndex); |
501 CPDFSDK_PageView* GetCurrentView(); | 517 CPDFSDK_PageView* GetCurrentView(); |
502 void RemovePageView(UnderlyingPageType* pPage); | 518 void RemovePageView(UnderlyingPageType* pPage); |
503 void UpdateAllViews(CPDFSDK_PageView* pSender, CPDFSDK_Annot* pAnnot); | 519 void UpdateAllViews(CPDFSDK_PageView* pSender, CPDFSDK_Annot* pAnnot); |
504 | 520 |
505 CPDFSDK_Annot* GetFocusAnnot(); | 521 CPDFSDK_Annot* GetFocusAnnot(); |
506 | 522 |
507 IJS_Runtime* GetJsRuntime(); | 523 IJS_Runtime* GetJsRuntime(); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
541 nonstd::unique_ptr<CPDF_OCContext> m_pOccontent; | 557 nonstd::unique_ptr<CPDF_OCContext> m_pOccontent; |
542 FX_BOOL m_bChangeMask; | 558 FX_BOOL m_bChangeMask; |
543 FX_BOOL m_bBeingDestroyed; | 559 FX_BOOL m_bBeingDestroyed; |
544 }; | 560 }; |
545 class CPDFSDK_PageView final { | 561 class CPDFSDK_PageView final { |
546 public: | 562 public: |
547 CPDFSDK_PageView(CPDFSDK_Document* pSDKDoc, UnderlyingPageType* page); | 563 CPDFSDK_PageView(CPDFSDK_Document* pSDKDoc, UnderlyingPageType* page); |
548 ~CPDFSDK_PageView(); | 564 ~CPDFSDK_PageView(); |
549 void PageView_OnDraw(CFX_RenderDevice* pDevice, | 565 void PageView_OnDraw(CFX_RenderDevice* pDevice, |
550 CPDF_Matrix* pUser2Device, | 566 CPDF_Matrix* pUser2Device, |
| 567 #ifndef PDF_ENABLE_XFA |
| 568 CPDF_RenderOptions* pOptions); |
| 569 #else |
551 CPDF_RenderOptions* pOptions, | 570 CPDF_RenderOptions* pOptions, |
552 const FX_RECT& pClip); | 571 const FX_RECT& pClip); |
| 572 #endif |
553 const CPDF_Annot* GetPDFAnnotAtPoint(FX_FLOAT pageX, FX_FLOAT pageY); | 573 const CPDF_Annot* GetPDFAnnotAtPoint(FX_FLOAT pageX, FX_FLOAT pageY); |
554 CPDFSDK_Annot* GetFXAnnotAtPoint(FX_FLOAT pageX, FX_FLOAT pageY); | 574 CPDFSDK_Annot* GetFXAnnotAtPoint(FX_FLOAT pageX, FX_FLOAT pageY); |
555 const CPDF_Annot* GetPDFWidgetAtPoint(FX_FLOAT pageX, FX_FLOAT pageY); | 575 const CPDF_Annot* GetPDFWidgetAtPoint(FX_FLOAT pageX, FX_FLOAT pageY); |
556 CPDFSDK_Annot* GetFXWidgetAtPoint(FX_FLOAT pageX, FX_FLOAT pageY); | 576 CPDFSDK_Annot* GetFXWidgetAtPoint(FX_FLOAT pageX, FX_FLOAT pageY); |
557 CPDFSDK_Annot* GetFocusAnnot(); | 577 CPDFSDK_Annot* GetFocusAnnot(); |
558 void SetFocusAnnot(CPDFSDK_Annot* pSDKAnnot, FX_UINT nFlag = 0) { | 578 void SetFocusAnnot(CPDFSDK_Annot* pSDKAnnot, FX_UINT nFlag = 0) { |
559 m_pSDKDoc->SetFocusAnnot(pSDKAnnot, nFlag); | 579 m_pSDKDoc->SetFocusAnnot(pSDKAnnot, nFlag); |
560 } | 580 } |
561 FX_BOOL KillFocusAnnot(FX_UINT nFlag = 0) { | 581 FX_BOOL KillFocusAnnot(FX_UINT nFlag = 0) { |
562 return m_pSDKDoc->KillFocusAnnot(nFlag); | 582 return m_pSDKDoc->KillFocusAnnot(nFlag); |
563 } | 583 } |
564 void KillFocusAnnotIfNeeded(); | 584 void KillFocusAnnotIfNeeded(); |
565 FX_BOOL Annot_HasAppearance(CPDF_Annot* pAnnot); | 585 FX_BOOL Annot_HasAppearance(CPDF_Annot* pAnnot); |
566 | 586 |
567 CPDFSDK_Annot* AddAnnot(CPDF_Dictionary* pDict); | 587 CPDFSDK_Annot* AddAnnot(CPDF_Dictionary* pDict); |
568 CPDFSDK_Annot* AddAnnot(const FX_CHAR* lpSubType, CPDF_Dictionary* pDict); | 588 CPDFSDK_Annot* AddAnnot(const FX_CHAR* lpSubType, CPDF_Dictionary* pDict); |
569 CPDFSDK_Annot* AddAnnot(CPDF_Annot* pPDFAnnot); | 589 CPDFSDK_Annot* AddAnnot(CPDF_Annot* pPDFAnnot); |
| 590 #ifdef PDF_ENABLE_XFA |
570 CPDFSDK_Annot* AddAnnot(IXFA_Widget* pPDFAnnot); | 591 CPDFSDK_Annot* AddAnnot(IXFA_Widget* pPDFAnnot); |
| 592 #endif |
571 FX_BOOL DeleteAnnot(CPDFSDK_Annot* pAnnot); | 593 FX_BOOL DeleteAnnot(CPDFSDK_Annot* pAnnot); |
572 size_t CountAnnots() const; | 594 size_t CountAnnots() const; |
573 CPDFSDK_Annot* GetAnnot(size_t nIndex); | 595 CPDFSDK_Annot* GetAnnot(size_t nIndex); |
574 CPDFSDK_Annot* GetAnnotByDict(CPDF_Dictionary* pDict); | 596 CPDFSDK_Annot* GetAnnotByDict(CPDF_Dictionary* pDict); |
| 597 #ifndef PDF_ENABLE_XFA |
| 598 CPDF_Page* GetPDFPage() { return m_page; } |
| 599 #else |
575 CPDFSDK_Annot* GetAnnotByXFAWidget(IXFA_Widget* hWidget); | 600 CPDFSDK_Annot* GetAnnotByXFAWidget(IXFA_Widget* hWidget); |
576 CPDFXFA_Page* GetPDFXFAPage() { return m_page; } | 601 CPDFXFA_Page* GetPDFXFAPage() { return m_page; } |
577 CPDF_Page* GetPDFPage(); | 602 CPDF_Page* GetPDFPage(); |
| 603 #endif |
578 CPDF_Document* GetPDFDocument(); | 604 CPDF_Document* GetPDFDocument(); |
579 CPDFSDK_Document* GetSDKDocument() { return m_pSDKDoc; } | 605 CPDFSDK_Document* GetSDKDocument() { return m_pSDKDoc; } |
580 FX_BOOL OnLButtonDown(const CPDF_Point& point, FX_UINT nFlag); | 606 FX_BOOL OnLButtonDown(const CPDF_Point& point, FX_UINT nFlag); |
581 FX_BOOL OnLButtonUp(const CPDF_Point& point, FX_UINT nFlag); | 607 FX_BOOL OnLButtonUp(const CPDF_Point& point, FX_UINT nFlag); |
| 608 #ifdef PDF_ENABLE_XFA |
582 FX_BOOL OnRButtonDown(const CPDF_Point& point, FX_UINT nFlag); | 609 FX_BOOL OnRButtonDown(const CPDF_Point& point, FX_UINT nFlag); |
583 FX_BOOL OnRButtonUp(const CPDF_Point& point, FX_UINT nFlag); | 610 FX_BOOL OnRButtonUp(const CPDF_Point& point, FX_UINT nFlag); |
| 611 #endif |
584 FX_BOOL OnChar(int nChar, FX_UINT nFlag); | 612 FX_BOOL OnChar(int nChar, FX_UINT nFlag); |
585 FX_BOOL OnKeyDown(int nKeyCode, int nFlag); | 613 FX_BOOL OnKeyDown(int nKeyCode, int nFlag); |
586 FX_BOOL OnKeyUp(int nKeyCode, int nFlag); | 614 FX_BOOL OnKeyUp(int nKeyCode, int nFlag); |
587 | 615 |
588 FX_BOOL OnMouseMove(const CPDF_Point& point, int nFlag); | 616 FX_BOOL OnMouseMove(const CPDF_Point& point, int nFlag); |
589 FX_BOOL OnMouseWheel(double deltaX, | 617 FX_BOOL OnMouseWheel(double deltaX, |
590 double deltaY, | 618 double deltaY, |
591 const CPDF_Point& point, | 619 const CPDF_Point& point, |
592 int nFlag); | 620 int nFlag); |
593 bool IsValidAnnot(const CPDF_Annot* p) const; | 621 bool IsValidAnnot(const CPDF_Annot* p) const; |
594 void GetCurrentMatrix(CPDF_Matrix& matrix) { matrix = m_curMatrix; } | 622 void GetCurrentMatrix(CPDF_Matrix& matrix) { matrix = m_curMatrix; } |
595 void UpdateRects(CFX_RectArray& rects); | 623 void UpdateRects(CFX_RectArray& rects); |
596 void UpdateView(CPDFSDK_Annot* pAnnot); | 624 void UpdateView(CPDFSDK_Annot* pAnnot); |
597 const std::vector<CPDFSDK_Annot*>& GetAnnotList() const { | 625 const std::vector<CPDFSDK_Annot*>& GetAnnotList() const { |
598 return m_fxAnnotArray; | 626 return m_fxAnnotArray; |
599 } | 627 } |
600 | 628 |
601 int GetPageIndex(); | 629 int GetPageIndex(); |
602 void LoadFXAnnots(); | 630 void LoadFXAnnots(); |
603 void SetValid(FX_BOOL bValid) { m_bValid = bValid; } | 631 void SetValid(FX_BOOL bValid) { m_bValid = bValid; } |
604 FX_BOOL IsValid() { return m_bValid; } | 632 FX_BOOL IsValid() { return m_bValid; } |
605 void SetLock(FX_BOOL bLocked) { m_bLocked = bLocked; } | 633 void SetLock(FX_BOOL bLocked) { m_bLocked = bLocked; } |
606 FX_BOOL IsLocked() { return m_bLocked; } | 634 FX_BOOL IsLocked() { return m_bLocked; } |
| 635 #ifndef PDF_ENABLE_XFA |
| 636 void TakeOverPage() { m_bTakeOverPage = TRUE; } |
| 637 #endif |
607 | 638 |
608 private: | 639 private: |
609 void PageView_OnHighlightFormFields(CFX_RenderDevice* pDevice, | 640 void PageView_OnHighlightFormFields(CFX_RenderDevice* pDevice, |
610 CPDFSDK_Widget* pWidget); | 641 CPDFSDK_Widget* pWidget); |
611 | 642 |
612 CPDF_Matrix m_curMatrix; | 643 CPDF_Matrix m_curMatrix; |
613 UnderlyingPageType* m_page; | 644 UnderlyingPageType* m_page; |
614 nonstd::unique_ptr<CPDF_AnnotList> m_pAnnotList; | 645 nonstd::unique_ptr<CPDF_AnnotList> m_pAnnotList; |
615 std::vector<CPDFSDK_Annot*> m_fxAnnotArray; | 646 std::vector<CPDFSDK_Annot*> m_fxAnnotArray; |
616 CPDFSDK_Document* m_pSDKDoc; | 647 CPDFSDK_Document* m_pSDKDoc; |
| 648 #ifndef PDF_ENABLE_XFA |
| 649 CPDFSDK_Widget* m_CaptureWidget; |
| 650 #else |
617 CPDFSDK_Annot* m_CaptureWidget; | 651 CPDFSDK_Annot* m_CaptureWidget; |
| 652 #endif |
618 FX_BOOL m_bEnterWidget; | 653 FX_BOOL m_bEnterWidget; |
619 FX_BOOL m_bExitWidget; | 654 FX_BOOL m_bExitWidget; |
620 FX_BOOL m_bOnWidget; | 655 FX_BOOL m_bOnWidget; |
621 FX_BOOL m_bValid; | 656 FX_BOOL m_bValid; |
622 FX_BOOL m_bLocked; | 657 FX_BOOL m_bLocked; |
| 658 #ifndef PDF_ENABLE_XFA |
| 659 FX_BOOL m_bTakeOverPage; |
| 660 #endif |
623 }; | 661 }; |
624 | 662 |
625 template <class TYPE> | 663 template <class TYPE> |
626 class CGW_ArrayTemplate : public CFX_ArrayTemplate<TYPE> { | 664 class CGW_ArrayTemplate : public CFX_ArrayTemplate<TYPE> { |
627 public: | 665 public: |
628 CGW_ArrayTemplate() {} | 666 CGW_ArrayTemplate() {} |
629 ~CGW_ArrayTemplate() {} | 667 ~CGW_ArrayTemplate() {} |
630 | 668 |
631 typedef int (*LP_COMPARE)(TYPE p1, TYPE p2); | 669 typedef int (*LP_COMPARE)(TYPE p1, TYPE p2); |
632 | 670 |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
689 } | 727 } |
690 | 728 |
691 if (nStartPos < m) | 729 if (nStartPos < m) |
692 QuickSort(nStartPos, m, bAscend, pCompare); | 730 QuickSort(nStartPos, m, bAscend, pCompare); |
693 if (nStopPos > m) | 731 if (nStopPos > m) |
694 QuickSort(m, nStopPos, bAscend, pCompare); | 732 QuickSort(m, nStopPos, bAscend, pCompare); |
695 } | 733 } |
696 }; | 734 }; |
697 | 735 |
698 #endif // FPDFSDK_INCLUDE_FSDK_MGR_H_ | 736 #endif // FPDFSDK_INCLUDE_FSDK_MGR_H_ |
OLD | NEW |