summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvisvgm/dvisvgm-src/src/SVGCharHandler.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-src/src/SVGCharHandler.hpp')
-rw-r--r--Build/source/texk/dvisvgm/dvisvgm-src/src/SVGCharHandler.hpp108
1 files changed, 0 insertions, 108 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/SVGCharHandler.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/SVGCharHandler.hpp
deleted file mode 100644
index 241b28b7ef8..00000000000
--- a/Build/source/texk/dvisvgm/dvisvgm-src/src/SVGCharHandler.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/*************************************************************************
-** SVGCharHandler.hpp **
-** **
-** This file is part of dvisvgm -- a fast DVI to SVG converter **
-** Copyright (C) 2005-2021 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 **
-** published by the Free Software Foundation; either version 3 of **
-** the License, or (at your option) any later version. **
-** **
-** This program is distributed in the hope that it will be useful, but **
-** WITHOUT ANY WARRANTY; without even the implied warranty of **
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the **
-** GNU General Public License for more details. **
-** **
-** You should have received a copy of the GNU General Public License **
-** along with this program; if not, see <http://www.gnu.org/licenses/>. **
-*************************************************************************/
-
-#ifndef SVGCHARHANDLER_HPP
-#define SVGCHARHANDLER_HPP
-
-#include <memory>
-#include <stack>
-#include "Color.hpp"
-#include "Font.hpp"
-#include "Matrix.hpp"
-
-
-template <typename T>
-class CharProperty {
- public:
- CharProperty (const T &v) : _value(v) {}
-
- void set (const T &v) {
- if (v != _value) {
- _value = v;
- _changed = true;
- }
- }
-
- const T& get () const {return _value;}
- operator const T& () const {return _value;}
- bool changed () const {return _changed;}
- void changed (bool c) {_changed = c;}
-
- private:
- T _value;
- bool _changed=false;
-};
-
-
-class XMLElement;
-
-
-/** Base class for all character handlers. These handlers create SVG representations
- * for the added characters and append them to the SVG tree. */
-class SVGCharHandler {
- public:
- SVGCharHandler () : _matrix(1) {}
- virtual ~SVGCharHandler() =default;
- virtual void setInitialContextNode (XMLElement *node);
- virtual void appendChar (uint32_t c, double x, double y) =0;
- virtual void notifyXAdjusted () {}
- virtual void notifyYAdjusted () {}
- void setColor (const Color &color) {_color.set(color);}
- void setFont (const Font &font, int id) {_font.set(&font); _fontnum = id;}
- void setMatrix (const Matrix &matrix) {_matrix.set(matrix);}
- void setVertical (bool vertical) {_vertical.set(vertical);}
- Color getColor () const {return _color.get();}
- const Font* getFont () const {return _font.get();}
- const Matrix& getMatrix () const {return _matrix.get();}
-
- protected:
- virtual void resetContextNode ();
- XMLElement* pushContextNode (std::unique_ptr<XMLElement> node);
- void popContextNode ();
-
- XMLElement* contextNode () const {
- return _contextNodeStack.empty() ? _initialContextNode : _contextNodeStack.top();
- }
-
- CharProperty<Color> _color=Color::BLACK; ///< current color
- CharProperty<const Font*> _font=0; ///< current font
- int _fontnum=0; ///< current font ID
- CharProperty<Matrix> _matrix; ///< current transformation
- CharProperty<bool> _vertical=false; ///< current writing mode
-
- private:
- XMLElement *_initialContextNode= nullptr; ///< SVG element the generated character nodes are attached to
- std::stack<XMLElement*> _contextNodeStack;
-};
-
-
-/** Base class for all character handlers that create SVG <text> elements. */
-class SVGCharTextHandler : public SVGCharHandler {
- public:
- explicit SVGCharTextHandler (bool selectFontByClass) : _selectFontByClass(selectFontByClass) {}
-
- protected:
- std::unique_ptr<XMLElement> createTextNode (double x, double y) const;
-
- private:
- bool _selectFontByClass;
-};
-
-#endif