From cca66b9ec4e494c1d919bff0f71a820d8afab1fa Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:24:48 +0200 Subject: Adding upstream version 1.2.2. Signed-off-by: Daniel Baumann --- src/object/sp-font-face.h | 124 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 src/object/sp-font-face.h (limited to 'src/object/sp-font-face.h') diff --git a/src/object/sp-font-face.h b/src/object/sp-font-face.h new file mode 100644 index 0000000..29bd881 --- /dev/null +++ b/src/object/sp-font-face.h @@ -0,0 +1,124 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#ifndef SEEN_SP_FONTFACE_H +#define SEEN_SP_FONTFACE_H + +#include + +/* + * SVG element implementation + * + * Section 20.8.3 of the W3C SVG 1.1 spec + * available at: + * http://www.w3.org/TR/SVG/fonts.html#FontFaceElement + * + * Authors: + * Felipe C. da S. Sanches + * + * Copyright (C) 2008 Felipe C. da S. Sanches + * + * Released under GNU GPL v2+, read the file 'COPYING' for more information. + */ + +#include "sp-object.h" + +enum FontFaceStyleType{ + SP_FONTFACE_STYLE_ALL, + SP_FONTFACE_STYLE_NORMAL, + SP_FONTFACE_STYLE_ITALIC, + SP_FONTFACE_STYLE_OBLIQUE +}; + +enum FontFaceVariantType{ + SP_FONTFACE_VARIANT_NORMAL, + SP_FONTFACE_VARIANT_SMALL_CAPS +}; + +enum FontFaceWeightType{ + SP_FONTFACE_WEIGHT_ALL, + SP_FONTFACE_WEIGHT_NORMAL, + SP_FONTFACE_WEIGHT_BOLD, + SP_FONTFACE_WEIGHT_100, + SP_FONTFACE_WEIGHT_200, + SP_FONTFACE_WEIGHT_300, + SP_FONTFACE_WEIGHT_400, + SP_FONTFACE_WEIGHT_500, + SP_FONTFACE_WEIGHT_600, + SP_FONTFACE_WEIGHT_700, + SP_FONTFACE_WEIGHT_800, + SP_FONTFACE_WEIGHT_900 +}; + +enum FontFaceStretchType{ + SP_FONTFACE_STRETCH_ALL, + SP_FONTFACE_STRETCH_NORMAL, + SP_FONTFACE_STRETCH_ULTRA_CONDENSED, + SP_FONTFACE_STRETCH_EXTRA_CONDENSED, + SP_FONTFACE_STRETCH_CONDENSED, + SP_FONTFACE_STRETCH_SEMI_CONDENSED, + SP_FONTFACE_STRETCH_SEMI_EXPANDED, + SP_FONTFACE_STRETCH_EXPANDED, + SP_FONTFACE_STRETCH_EXTRA_EXPANDED, + SP_FONTFACE_STRETCH_ULTRA_EXPANDED +}; + +enum FontFaceUnicodeRangeType{ + FONTFACE_UNICODERANGE_FIXME_HERE, +}; + +class SPFontFace : public SPObject { +public: + SPFontFace(); + ~SPFontFace() override; + + char* font_family; + std::vector font_style; + std::vector font_variant; + std::vector font_weight; + std::vector font_stretch; + char* font_size; + std::vector unicode_range; + double units_per_em; + std::vector panose_1; + double stemv; + double stemh; + double slope; + double cap_height; + double x_height; + double accent_height; + double ascent; + double descent; + char* widths; + char* bbox; + double ideographic; + double alphabetic; + double mathematical; + double hanging; + double v_ideographic; + double v_alphabetic; + double v_mathematical; + double v_hanging; + double underline_position; + double underline_thickness; + double strikethrough_position; + double strikethrough_thickness; + double overline_position; + double overline_thickness; + +protected: + void build(SPDocument* doc, Inkscape::XML::Node* repr) override; + void release() override; + + void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref) override; + void remove_child(Inkscape::XML::Node* child) override; + + void set(SPAttr key, const char* value) override; + + void update(SPCtx* ctx, unsigned int flags) override; + + Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags) override; +}; + +MAKE_SP_OBJECT_DOWNCAST_FUNCTIONS(SP_FONTFACE, SPFontFace) +MAKE_SP_OBJECT_TYPECHECK_FUNCTIONS(SP_IS_FONTFACE, SPFontFace) + +#endif //#ifndef __SP_FONTFACE_H__ -- cgit v1.2.3