From 9b2741829b8a8c511ef0f2f313ff53d77ac96307 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Fri, 23 Oct 2015 18:06:17 -0700 Subject: Cleanup parts of CPDFSDK_AnnotIterator and CPDFSDK_PageView. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1411203007 . --- fpdfsdk/include/fsdk_annothandler.h | 45 ++++++++++++------------------------- fpdfsdk/include/fsdk_mgr.h | 17 ++++++++------ 2 files changed, 24 insertions(+), 38 deletions(-) (limited to 'fpdfsdk/include') diff --git a/fpdfsdk/include/fsdk_annothandler.h b/fpdfsdk/include/fsdk_annothandler.h index 369a080a9b..89705459f2 100644 --- a/fpdfsdk/include/fsdk_annothandler.h +++ b/fpdfsdk/include/fsdk_annothandler.h @@ -8,6 +8,7 @@ #define FPDFSDK_INCLUDE_FSDK_ANNOTHANDLER_H_ #include +#include #include "../../core/include/fxcrt/fx_basic.h" @@ -122,7 +123,7 @@ class IPDFSDK_AnnotHandler { class CPDFSDK_BFAnnotHandler : public IPDFSDK_AnnotHandler { public: - CPDFSDK_BFAnnotHandler(CPDFDoc_Environment* pApp) + explicit CPDFSDK_BFAnnotHandler(CPDFDoc_Environment* pApp) : m_pApp(pApp), m_pFormFiller(NULL) {} ~CPDFSDK_BFAnnotHandler() override {} @@ -303,38 +304,20 @@ class CPDFSDK_AnnotHandlerMgr { CPDFDoc_Environment* m_pApp; }; -typedef int (*AI_COMPARE)(CPDFSDK_Annot* p1, CPDFSDK_Annot* p2); - class CPDFSDK_AnnotIterator { public: - CPDFSDK_AnnotIterator(CPDFSDK_PageView* pPageView, - FX_BOOL bReverse, - FX_BOOL bIgnoreTopmost = FALSE, - FX_BOOL bCircle = FALSE, - CFX_PtrArray* pList = NULL); - virtual ~CPDFSDK_AnnotIterator() {} - - virtual CPDFSDK_Annot* Next(const CPDFSDK_Annot* pCurrent); - virtual CPDFSDK_Annot* Prev(const CPDFSDK_Annot* pCurrent); - virtual CPDFSDK_Annot* Next(int& index); - virtual CPDFSDK_Annot* Prev(int& index); - virtual int Count() { return m_pIteratorAnnotList.GetSize(); } - - virtual FX_BOOL InitIteratorAnnotList(CPDFSDK_PageView* pPageView, - CFX_PtrArray* pList = NULL); - - void InsertSort(CFX_PtrArray& arrayList, AI_COMPARE pCompare); - - protected: - CPDFSDK_Annot* NextAnnot(const CPDFSDK_Annot* pCurrent); - CPDFSDK_Annot* PrevAnnot(const CPDFSDK_Annot* pCurrent); - CPDFSDK_Annot* NextAnnot(int& index); - CPDFSDK_Annot* PrevAnnot(int& index); - - CFX_PtrArray m_pIteratorAnnotList; - FX_BOOL m_bReverse; - FX_BOOL m_bIgnoreTopmost; - FX_BOOL m_bCircle; + CPDFSDK_AnnotIterator(CPDFSDK_PageView* pPageView, bool bReverse); + ~CPDFSDK_AnnotIterator(); + + CPDFSDK_Annot* Next(); + + private: + CPDFSDK_Annot* NextAnnot(); + CPDFSDK_Annot* PrevAnnot(); + + std::vector m_iteratorAnnotList; + const bool m_bReverse; + size_t m_pos; }; #endif // FPDFSDK_INCLUDE_FSDK_ANNOTHANDLER_H_ diff --git a/fpdfsdk/include/fsdk_mgr.h b/fpdfsdk/include/fsdk_mgr.h index 068731ee8f..fa2860aa00 100644 --- a/fpdfsdk/include/fsdk_mgr.h +++ b/fpdfsdk/include/fsdk_mgr.h @@ -12,6 +12,7 @@ #include "../../core/include/fpdftext/fpdf_text.h" #include "../../public/fpdf_formfill.h" #include "../../public/fpdf_fwlevent.h" // cross platform keycode and events define. +#include "../../third_party/base/nonstd_unique_ptr.h" #include "fsdk_common.h" #include "fsdk_define.h" #include "fx_systemhandler.h" @@ -307,8 +308,8 @@ class CPDFSDK_PageView final { CPDFSDK_Annot* AddAnnot(const FX_CHAR* lpSubType, CPDF_Dictionary* pDict); CPDFSDK_Annot* AddAnnot(CPDF_Annot* pPDFAnnot); FX_BOOL DeleteAnnot(CPDFSDK_Annot* pAnnot); - int CountAnnots(); - CPDFSDK_Annot* GetAnnot(int nIndex); + int CountAnnots() const; + CPDFSDK_Annot* GetAnnot(size_t nIndex); CPDFSDK_Annot* GetAnnotByDict(CPDF_Dictionary* pDict); CPDF_Page* GetPDFPage() { return m_page; } CPDF_Document* GetPDFDocument(); @@ -324,11 +325,13 @@ class CPDFSDK_PageView final { double deltaY, const CPDF_Point& point, int nFlag); - FX_BOOL IsValidAnnot(void* p); + FX_BOOL IsValidAnnot(CPDF_Annot* p) const; void GetCurrentMatrix(CPDF_Matrix& matrix) { matrix = m_curMatrix; } void UpdateRects(CFX_RectArray& rects); void UpdateView(CPDFSDK_Annot* pAnnot); - CFX_PtrArray* GetAnnotList() { return &m_fxAnnotArray; } + const std::vector& GetAnnotList() const { + return m_fxAnnotArray; + } int GetPageIndex(); void LoadFXAnnots(); @@ -341,11 +344,11 @@ class CPDFSDK_PageView final { private: void PageView_OnHighlightFormFields(CFX_RenderDevice* pDevice, CPDFSDK_Widget* pWidget); + CPDF_Matrix m_curMatrix; CPDF_Page* m_page; - CPDF_AnnotList* m_pAnnotList; - // CPDFSDK_Annot* m_pFocusAnnot; - CFX_PtrArray m_fxAnnotArray; + nonstd::unique_ptr m_pAnnotList; + std::vector m_fxAnnotArray; CPDFSDK_Document* m_pSDKDoc; CPDFSDK_Widget* m_CaptureWidget; FX_BOOL m_bEnterWidget; -- cgit v1.2.3