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 | |
35 | class HtmlLink |
36 | { |
37 | |
38 | private: |
39 | double Xmin; |
40 | double Ymin; |
41 | double Xmax; |
42 | double Ymax; |
43 | GooString *dest; |
44 | |
45 | public: |
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 | |
61 | class HtmlLinks |
62 | { |
63 | private: |
64 | std::vector<HtmlLink> accu; |
65 | |
66 | public: |
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 | |