//======================================================================== // // This file comes from pdftohtml project // http://pdftohtml.sourceforge.net // // Copyright from: // Gueorgui Ovtcharov // Rainer Dorsch // Mikhail Kruk // //======================================================================== //======================================================================== // // Modified under the Poppler project - http://poppler.freedesktop.org // // All changes made under the Poppler project to this file are licensed // under GPL version 2 or later // // Copyright (C) 2010, 2018, 2021, 2022 Albert Astals Cid // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git // //======================================================================== #ifndef _HTML_LINKS #define _HTML_LINKS #include #include #include #include "goo/GooString.h" class HtmlLink { private: double Xmin; double Ymin; double Xmax; double Ymax; GooString *dest; public: HtmlLink(const HtmlLink &x); HtmlLink(double xmin, double ymin, double xmax, double ymax, GooString *_dest); ~HtmlLink(); HtmlLink &operator=(const HtmlLink &) = delete; bool isEqualDest(const HtmlLink &x) const; GooString *getDest() const { return new GooString(dest); } double getX1() const { return Xmin; } double getX2() const { return Xmax; } double getY1() const { return Ymin; } double getY2() const { return Ymax; } bool inLink(double xmin, double ymin, double xmax, double ymax) const; // GooString *Link(GooString *content); GooString *getLinkStart() const; }; class HtmlLinks { private: std::vector accu; public: HtmlLinks(); ~HtmlLinks(); HtmlLinks(const HtmlLinks &) = delete; HtmlLinks &operator=(const HtmlLinks &) = delete; void AddLink(const HtmlLink &x) { accu.push_back(x); } bool inLink(double xmin, double ymin, double xmax, double ymax, size_t &p) const; const HtmlLink *getLink(size_t i) const; }; #endif