summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvisvgm/dvisvgm-src/src/HtmlSpecialHandler.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-src/src/HtmlSpecialHandler.hpp')
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/HtmlSpecialHandler.hpp41
1 files changed, 5 insertions, 36 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/HtmlSpecialHandler.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/HtmlSpecialHandler.hpp
index 6d64a93b879..125f69192fd 100644
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/HtmlSpecialHandler.hpp
+++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/HtmlSpecialHandler.hpp
@@ -2,7 +2,7 @@
** HtmlSpecialHandler.hpp **
** **
** This file is part of dvisvgm -- a fast DVI to SVG converter **
-** Copyright (C) 2005-2017 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2018 Martin Gieseking <martin.gieseking@uos.de> **
** **
** This program is free software; you can redistribute it and/or **
** modify it under the terms of the GNU General Public License as **
@@ -21,59 +21,28 @@
#ifndef HTMLSPECIALHANDLER_HPP
#define HTMLSPECIALHANDLER_HPP
-#include <map>
#include <string>
+#include <unordered_map>
#include "Color.hpp"
#include "SpecialHandler.hpp"
class SpecialActions;
-class HtmlSpecialHandler : public SpecialHandler, public DVIEndPageListener, public DVIPositionListener
-{
- struct NamedAnchor {
- NamedAnchor () : pageno(0), id(0), pos(0), referenced(false) {}
- NamedAnchor (unsigned pn, int i, double p, bool r=false) : pageno(pn), id(i), pos(p), referenced(r) {}
- unsigned pageno; ///< page number where the anchor is located
- int id; ///< unique numerical ID (< 0 if anchor is undefined yet)
- double pos; ///< vertical position of named anchor (in PS point units)
- bool referenced; ///< true if a reference to this anchor exists
- };
-
- enum class AnchorType {NONE, HREF, NAME};
- typedef std::map<std::string, NamedAnchor> NamedAnchors;
-
+class HtmlSpecialHandler : public SpecialHandler, public DVIEndPageListener, public DVIPositionListener {
public:
- HtmlSpecialHandler () : _active(false), _anchorType(AnchorType::NONE), _depthThreshold(0) {}
+ HtmlSpecialHandler () : _active(false) {}
void preprocess (const char *prefix, std::istream &is, SpecialActions &actions) override;
bool process (const char *prefix, std::istream &is, SpecialActions &actions) override;
const char* name () const override {return "html";}
const char* info () const override {return "hyperref specials";}
- const char** prefixes () const override;
-
- static bool setLinkMarker (const std::string &marker);
+ const std::vector<const char*> prefixes () const override;
protected:
- void preprocessHrefAnchor (const std::string &uri);
- void preprocessNameAnchor (const std::string &name, SpecialActions &actions);
- void processHrefAnchor (std::string uri, SpecialActions &actions);
- void processNameAnchor (const std::string &name, SpecialActions &actions);
void dviEndPage (unsigned pageno, SpecialActions &actions) override;
void dviMovedTo (double x, double y, SpecialActions &actions) override;
- void closeAnchor (SpecialActions &actions);
- void markLinkedBox (SpecialActions &actions);
-
- enum class MarkerType {NONE, LINE, BOX, BGCOLOR};
- static MarkerType MARKER_TYPE; ///< selects how to mark linked areas
- static Color LINK_BGCOLOR; ///< background color if linkmark type == LT_BGCOLOR
- static Color LINK_LINECOLOR; ///< line color if linkmark type is LM_LINE or LM_BOX
- static bool USE_LINECOLOR; ///< if true, LINK_LINECOLOR is applied
private:
bool _active;
- AnchorType _anchorType; ///< type of active anchor
- int _depthThreshold; ///< break anchor box if the DVI stack depth underruns this threshold
- std::string _base; ///< base URL that is prepended to all relative targets
- NamedAnchors _namedAnchors; ///< information about all named anchors processed
};
#endif