| 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> |
| (...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 554 private: | 554 private: |
| 555 std::map<UnderlyingPageType*, CPDFSDK_PageView*> m_pageMap; | 555 std::map<UnderlyingPageType*, CPDFSDK_PageView*> m_pageMap; |
| 556 UnderlyingDocumentType* m_pDoc; | 556 UnderlyingDocumentType* m_pDoc; |
| 557 std::unique_ptr<CPDFSDK_InterForm> m_pInterForm; | 557 std::unique_ptr<CPDFSDK_InterForm> m_pInterForm; |
| 558 CPDFSDK_Annot* m_pFocusAnnot; | 558 CPDFSDK_Annot* m_pFocusAnnot; |
| 559 CPDFDoc_Environment* m_pEnv; | 559 CPDFDoc_Environment* m_pEnv; |
| 560 std::unique_ptr<CPDF_OCContext> m_pOccontent; | 560 std::unique_ptr<CPDF_OCContext> m_pOccontent; |
| 561 FX_BOOL m_bChangeMask; | 561 FX_BOOL m_bChangeMask; |
| 562 FX_BOOL m_bBeingDestroyed; | 562 FX_BOOL m_bBeingDestroyed; |
| 563 }; | 563 }; |
| 564 |
| 564 class CPDFSDK_PageView final { | 565 class CPDFSDK_PageView final { |
| 565 public: | 566 public: |
| 566 CPDFSDK_PageView(CPDFSDK_Document* pSDKDoc, UnderlyingPageType* page); | 567 CPDFSDK_PageView(CPDFSDK_Document* pSDKDoc, UnderlyingPageType* page); |
| 567 ~CPDFSDK_PageView(); | 568 ~CPDFSDK_PageView(); |
| 568 | 569 |
| 569 #ifdef PDF_ENABLE_XFA | 570 #ifdef PDF_ENABLE_XFA |
| 570 void PageView_OnDraw(CFX_RenderDevice* pDevice, | 571 void PageView_OnDraw(CFX_RenderDevice* pDevice, |
| 571 CFX_Matrix* pUser2Device, | 572 CFX_Matrix* pUser2Device, |
| 572 CPDF_RenderOptions* pOptions, | 573 CPDF_RenderOptions* pOptions, |
| 573 const FX_RECT& pClip); | 574 const FX_RECT& pClip); |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 660 CPDFSDK_Widget* m_CaptureWidget; | 661 CPDFSDK_Widget* m_CaptureWidget; |
| 661 FX_BOOL m_bTakeOverPage; | 662 FX_BOOL m_bTakeOverPage; |
| 662 #endif // PDF_ENABLE_XFA | 663 #endif // PDF_ENABLE_XFA |
| 663 FX_BOOL m_bEnterWidget; | 664 FX_BOOL m_bEnterWidget; |
| 664 FX_BOOL m_bExitWidget; | 665 FX_BOOL m_bExitWidget; |
| 665 FX_BOOL m_bOnWidget; | 666 FX_BOOL m_bOnWidget; |
| 666 FX_BOOL m_bValid; | 667 FX_BOOL m_bValid; |
| 667 FX_BOOL m_bLocked; | 668 FX_BOOL m_bLocked; |
| 668 }; | 669 }; |
| 669 | 670 |
| 670 template <class TYPE> | |
| 671 class CGW_ArrayTemplate : public CFX_ArrayTemplate<TYPE> { | |
| 672 public: | |
| 673 CGW_ArrayTemplate() {} | |
| 674 ~CGW_ArrayTemplate() {} | |
| 675 | |
| 676 typedef int (*LP_COMPARE)(TYPE p1, TYPE p2); | |
| 677 | |
| 678 void Sort(LP_COMPARE pCompare, FX_BOOL bAscent = TRUE) { | |
| 679 int nSize = this->GetSize(); | |
| 680 QuickSort(0, nSize - 1, bAscent, pCompare); | |
| 681 } | |
| 682 | |
| 683 private: | |
| 684 void QuickSort(FX_UINT nStartPos, | |
| 685 FX_UINT nStopPos, | |
| 686 FX_BOOL bAscend, | |
| 687 LP_COMPARE pCompare) { | |
| 688 if (nStartPos >= nStopPos) | |
| 689 return; | |
| 690 | |
| 691 if ((nStopPos - nStartPos) == 1) { | |
| 692 TYPE Value1 = this->GetAt(nStartPos); | |
| 693 TYPE Value2 = this->GetAt(nStopPos); | |
| 694 | |
| 695 int iGreate = (*pCompare)(Value1, Value2); | |
| 696 if ((bAscend && iGreate > 0) || (!bAscend && iGreate < 0)) { | |
| 697 this->SetAt(nStartPos, Value2); | |
| 698 this->SetAt(nStopPos, Value1); | |
| 699 } | |
| 700 return; | |
| 701 } | |
| 702 | |
| 703 FX_UINT m = nStartPos + (nStopPos - nStartPos) / 2; | |
| 704 FX_UINT i = nStartPos; | |
| 705 | |
| 706 TYPE Value = this->GetAt(m); | |
| 707 | |
| 708 while (i < m) { | |
| 709 TYPE temp = this->GetAt(i); | |
| 710 | |
| 711 int iGreate = (*pCompare)(temp, Value); | |
| 712 if ((bAscend && iGreate > 0) || (!bAscend && iGreate < 0)) { | |
| 713 this->InsertAt(m + 1, temp); | |
| 714 this->RemoveAt(i); | |
| 715 m--; | |
| 716 } else { | |
| 717 i++; | |
| 718 } | |
| 719 } | |
| 720 | |
| 721 FX_UINT j = nStopPos; | |
| 722 | |
| 723 while (j > m) { | |
| 724 TYPE temp = this->GetAt(j); | |
| 725 | |
| 726 int iGreate = (*pCompare)(temp, Value); | |
| 727 if ((bAscend && iGreate < 0) || (!bAscend && iGreate > 0)) { | |
| 728 this->RemoveAt(j); | |
| 729 this->InsertAt(m, temp); | |
| 730 m++; | |
| 731 } else { | |
| 732 j--; | |
| 733 } | |
| 734 } | |
| 735 | |
| 736 if (nStartPos < m) | |
| 737 QuickSort(nStartPos, m, bAscend, pCompare); | |
| 738 if (nStopPos > m) | |
| 739 QuickSort(m, nStopPos, bAscend, pCompare); | |
| 740 } | |
| 741 }; | |
| 742 | |
| 743 #endif // FPDFSDK_INCLUDE_FSDK_MGR_H_ | 671 #endif // FPDFSDK_INCLUDE_FSDK_MGR_H_ |
| OLD | NEW |