1//========================================================================
2//
3// This file comes from pdftohtml project
4// http://pdftohtml.sourceforge.net
5//
6// Copyright from:
7// Gueorgui Ovtcharov
8// Rainer Dorsch <http://www.ra.informatik.uni-stuttgart.de/~rainer/>
9// Mikhail Kruk <meshko@cs.brandeis.edu>
10//
11//========================================================================
12
13//========================================================================
14//
15// Modified under the Poppler project - http://poppler.freedesktop.org
16//
17// All changes made under the Poppler project to this file are licensed
18// under GPL version 2 or later
19//
20// Copyright (C) 2010, 2018, 2021, 2022 Albert Astals Cid <aacid@kde.org>
21//
22// To see a description of the changes please see the Changelog file that
23// came with your tarball or type make ChangeLog if you are building from git
24//
25//========================================================================
26
27#ifndef _HTML_LINKS
28#define _HTML_LINKS
29
30#include <cstdlib>
31#include <cstring>
32#include <vector>
33#include "goo/GooString.h"
34
35class HtmlLink
36{
37
38private:
39 double Xmin;
40 double Ymin;
41 double Xmax;
42 double Ymax;
43 GooString *dest;
44
45public:
46 HtmlLink(const HtmlLink &x);
47 HtmlLink(double xmin, double ymin, double xmax, double ymax, GooString *_dest);
48 ~HtmlLink();
49 HtmlLink &operator=(const HtmlLink &) = delete;
50 bool isEqualDest(const HtmlLink &x) const;
51 GooString *getDest() const { return new GooString(dest); }
52 double getX1() const { return Xmin; }
53 double getX2() const { return Xmax; }
54 double getY1() const { return Ymin; }
55 double getY2() const { return Ymax; }
56 bool inLink(double xmin, double ymin, double xmax, double ymax) const;
57 // GooString *Link(GooString *content);
58 GooString *getLinkStart() const;
59};
60
61class HtmlLinks
62{
63private:
64 std::vector<HtmlLink> accu;
65
66public:
67 HtmlLinks();
68 ~HtmlLinks();
69 HtmlLinks(const HtmlLinks &) = delete;
70 HtmlLinks &operator=(const HtmlLinks &) = delete;
71 void AddLink(const HtmlLink &x) { accu.push_back(x: x); }
72 bool inLink(double xmin, double ymin, double xmax, double ymax, size_t &p) const;
73 const HtmlLink *getLink(size_t i) const;
74};
75
76#endif
77

source code of poppler/utils/HtmlLinks.h