diff options
Diffstat (limited to 'core/fpdftext/include/cpdf_linkextract.h')
-rw-r--r-- | core/fpdftext/include/cpdf_linkextract.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/core/fpdftext/include/cpdf_linkextract.h b/core/fpdftext/include/cpdf_linkextract.h new file mode 100644 index 0000000000..263768ee5d --- /dev/null +++ b/core/fpdftext/include/cpdf_linkextract.h @@ -0,0 +1,54 @@ +// Copyright 2014 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 CORE_FPDFTEXT_INCLUDE_CPDF_LINKEXTRACT_H_ +#define CORE_FPDFTEXT_INCLUDE_CPDF_LINKEXTRACT_H_ + +#include "core/fxcrt/include/fx_basic.h" +#include "core/fxcrt/include/fx_coordinates.h" +#include "core/fxcrt/include/fx_string.h" +#include "core/fxcrt/include/fx_system.h" + +class CPDF_TextPage; + +class CPDF_LinkExt { + public: + CPDF_LinkExt() {} + ~CPDF_LinkExt() {} + + int m_Start; + int m_Count; + CFX_WideString m_strUrl; +}; + +class CPDF_LinkExtract { + public: + CPDF_LinkExtract(); + ~CPDF_LinkExtract(); + + FX_BOOL ExtractLinks(const CPDF_TextPage* pTextPage); + int CountLinks() const; + CFX_WideString GetURL(int index) const; + void GetBoundedSegment(int index, int& start, int& count) const; + void GetRects(int index, CFX_RectArray& rects) const; + + FX_BOOL IsExtract() const { return m_bIsParsed; } + + protected: + void ParseLink(); + void DeleteLinkList(); + FX_BOOL CheckWebLink(CFX_WideString& strBeCheck); + bool CheckMailLink(CFX_WideString& str); + void AppendToLinkList(int start, int count, const CFX_WideString& strUrl); + + private: + CFX_ArrayTemplate<CPDF_LinkExt*> m_LinkList; + const CPDF_TextPage* m_pTextPage; + CFX_WideString m_strPageText; + bool m_bIsParsed; +}; + +#endif // CORE_FPDFTEXT_INCLUDE_CPDF_LINKEXTRACT_H_ |