| Index: fpdfsdk/include/cba_annotiterator.h
|
| diff --git a/fpdfsdk/include/cba_annotiterator.h b/fpdfsdk/include/cba_annotiterator.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6161cbc8147e0d8d423c2f393dfc4cc45409d59a
|
| --- /dev/null
|
| +++ b/fpdfsdk/include/cba_annotiterator.h
|
| @@ -0,0 +1,49 @@
|
| +// Copyright 2016 PDFium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
| +
|
| +#ifndef FPDFSDK_INCLUDE_CBA_ANNOTITERATOR_H_
|
| +#define FPDFSDK_INCLUDE_CBA_ANNOTITERATOR_H_
|
| +
|
| +#include <vector>
|
| +
|
| +#include "core/fxcrt/include/fx_coordinates.h"
|
| +#include "core/fxcrt/include/fx_string.h"
|
| +
|
| +class CPDFSDK_Annot;
|
| +class CPDFSDK_PageView;
|
| +
|
| +class CBA_AnnotIterator {
|
| + public:
|
| + enum TabOrder { STRUCTURE = 0, ROW, COLUMN };
|
| +
|
| + CBA_AnnotIterator(CPDFSDK_PageView* pPageView,
|
| + const CFX_ByteString& sType,
|
| + const CFX_ByteString& sSubType);
|
| + ~CBA_AnnotIterator();
|
| +
|
| + CPDFSDK_Annot* GetFirstAnnot();
|
| + CPDFSDK_Annot* GetLastAnnot();
|
| + CPDFSDK_Annot* GetNextAnnot(CPDFSDK_Annot* pAnnot);
|
| + CPDFSDK_Annot* GetPrevAnnot(CPDFSDK_Annot* pAnnot);
|
| +
|
| + private:
|
| + void GenerateResults();
|
| + static CFX_FloatRect GetAnnotRect(const CPDFSDK_Annot* pAnnot);
|
| +
|
| + // Function signature compatible with std::sort().
|
| + static bool CompareByLeftAscending(const CPDFSDK_Annot* p1,
|
| + const CPDFSDK_Annot* p2);
|
| + static bool CompareByTopDescending(const CPDFSDK_Annot* p1,
|
| + const CPDFSDK_Annot* p2);
|
| +
|
| + TabOrder m_eTabOrder;
|
| + CPDFSDK_PageView* m_pPageView;
|
| + CFX_ByteString m_sType;
|
| + CFX_ByteString m_sSubType;
|
| + std::vector<CPDFSDK_Annot*> m_Annots;
|
| +};
|
| +
|
| +#endif // FPDFSDK_INCLUDE_CBA_ANNOTITERATOR_H_
|
|
|