Krita Source Code Documentation
Loading...
Searching...
No Matches
KoSvgText.h File Reference
#include <QFont>
#include <QPainterPath>
#include <QTextCharFormat>
#include <QVariant>
#include <QLocale>
#include <array>
#include <boost/operators.hpp>
#include <boost/optional.hpp>
#include <QSharedPointer>
#include <KoShapeBackground.h>
#include <KoShapeStrokeModel.h>
#include <QDomDocument>
#include <kritaflake_export.h>
#include <KoShape.h>

Go to the source code of this file.

Classes

struct  KoSvgText::AutoLengthPercentage
 
struct  KoSvgText::AutoValue
 
struct  KoSvgText::BackgroundProperty
 BackgroundProperty is a special wrapper around KoShapeBackground for managing it in KoSvgTextProperties. More...
 
struct  KoSvgText::CharTransformation
 
struct  KoSvgText::CssFontStyleData
 When style is oblique, a custom slant value can be specified for variable fonts. More...
 
struct  KoSvgText::CssLengthPercentage
 
struct  KoSvgText::FontFamilyAxis
 
struct  KoSvgText::FontFamilyStyleInfo
 
struct  KoSvgText::FontFeatureEastAsian
 
struct  KoSvgText::FontFeatureLigatures
 The FontFeatureLigatures class This struct represents css font-variant-ligatures. More...
 
struct  KoSvgText::FontFeatureNumeric
 The FontFeatureLigatures class This struct represents css font-variant-numeric. More...
 
struct  KoSvgText::FontMetrics
 The FontMetrics class A class to keep track of a variety of font metrics. Note that values are in Freetype pixels and coordinates! (that is 64 times bigger than a regular pixel, and Y is swapped.) More...
 
struct  KoSvgText::LineHeightInfo
 
struct  KoSvgText::ResolutionHandler
 The ResolutionHandler class. More...
 
struct  KoSvgText::StrokeProperty
 StrokeProperty is a special wrapper around KoShapeStrokeModel for managing it in KoSvgTextProperties. More...
 
struct  KoSvgText::TabSizeInfo
 
struct  KoSvgText::TextIndentInfo
 
struct  KoSvgText::TextOnPathInfo
 
struct  KoSvgText::TextTransformInfo
 
struct  KoSvgText::TextUnderlinePosition
 

Namespaces

namespace  KoSvgText
 

Enumerations

enum  KoSvgText::Baseline {
  KoSvgText::BaselineAuto , KoSvgText::BaselineUseScript , KoSvgText::BaselineDominant , KoSvgText::BaselineNoChange ,
  KoSvgText::BaselineResetSize , KoSvgText::BaselineIdeographic , KoSvgText::BaselineAlphabetic , KoSvgText::BaselineHanging ,
  KoSvgText::BaselineMathematical , KoSvgText::BaselineCentral , KoSvgText::BaselineMiddle , KoSvgText::BaselineTextBottom ,
  KoSvgText::BaselineTextTop
}
 Baseline values used by dominant-baseline and baseline-align. More...
 
enum  KoSvgText::BaselineShiftMode {
  KoSvgText::ShiftNone , KoSvgText::ShiftSub , KoSvgText::ShiftSuper , KoSvgText::ShiftLengthPercentage ,
  KoSvgText::ShiftLineTop , KoSvgText::ShiftLineBottom
}
 Mode of the baseline shift. More...
 
enum  KoSvgText::Direction { KoSvgText::DirectionLeftToRight , KoSvgText::DirectionRightToLeft }
 Base direction used by Bidi algorithm. More...
 
enum  KoSvgText::EastAsianVariant {
  KoSvgText::EastAsianVariantNormal , KoSvgText::EastAsianJis78 , KoSvgText::EastAsianJis83 , KoSvgText::EastAsianJis90 ,
  KoSvgText::EastAsianJis04 , KoSvgText::EastAsianSimplified , KoSvgText::EastAsianTraditional
}
 
enum  KoSvgText::EastAsianWidth { KoSvgText::EastAsiantNormalWidth , KoSvgText::EastAsianFullWidth , KoSvgText::EastAsianProportionalWidth }
 
enum  KoSvgText::FontFeatureCaps {
  KoSvgText::CapsNormal , KoSvgText::CapsSmall , KoSvgText::CapsAllSmall , KoSvgText::CapsPetite ,
  KoSvgText::CapsAllPetite , KoSvgText::CapsUnicase , KoSvgText::CapsTitling
}
 Represents font-feature-caps. More...
 
enum  KoSvgText::FontFeaturePosition { KoSvgText::PositionNormal , KoSvgText::PositionSuper , KoSvgText::PositionSub }
 The FontFeatureLigatures class This enum represents css font-variant-position. More...
 
enum  KoSvgText::FontFormatType { KoSvgText::UnknownFontType , KoSvgText::BDFFontType , KoSvgText::Type1FontType , KoSvgText::OpenTypeFontType }
 
enum  KoSvgText::HangingPunctuation {
  KoSvgText::HangNone = 0x0 , KoSvgText::HangFirst = 0x1 , KoSvgText::HangLast = 0x2 , KoSvgText::HangEnd = 0x4 ,
  KoSvgText::HangForce = 0x8
}
 
enum  KoSvgText::LengthAdjust { KoSvgText::LengthAdjustSpacing , KoSvgText::LengthAdjustSpacingAndGlyphs }
 
enum  KoSvgText::LineBreak {
  KoSvgText::LineBreakAuto , KoSvgText::LineBreakLoose , KoSvgText::LineBreakNormal , KoSvgText::LineBreakStrict ,
  KoSvgText::LineBreakAnywhere
}
 
enum  KoSvgText::NumericFigureSpacing { KoSvgText::NumericFigureSpacingNormal , KoSvgText::NumericFigureSpacingProportional , KoSvgText::NumericFigureSpacingTabular }
 
enum  KoSvgText::NumericFigureStyle { KoSvgText::NumericFigureStyleNormal , KoSvgText::NumericFigureStyleLining , KoSvgText::NumericFigureStyleOld }
 
enum  KoSvgText::NumericFractions { KoSvgText::NumericFractionsNormal , KoSvgText::NumericFractionsDiagonal , KoSvgText::NumericFractionsStacked }
 
enum  KoSvgText::OverflowWrap { KoSvgText::OverflowWrapNormal , KoSvgText::OverflowWrapAnywhere , KoSvgText::OverflowWrapBreakWord }
 What to do with words that cannot be broken, but still overflow. More...
 
enum  KoSvgText::TextAlign {
  KoSvgText::AlignLastAuto , KoSvgText::AlignStart , KoSvgText::AlignEnd , KoSvgText::AlignLeft ,
  KoSvgText::AlignRight , KoSvgText::AlignCenter , KoSvgText::AlignJustify , KoSvgText::AlignMatchParent
}
 
enum  KoSvgText::TextAnchor { KoSvgText::AnchorStart , KoSvgText::AnchorMiddle , KoSvgText::AnchorEnd }
 Where the text is anchored for SVG 1.1 text and 'inline-size'. More...
 
enum  KoSvgText::TextDecoration { KoSvgText::DecorationNone = 0x0 , KoSvgText::DecorationUnderline = 0x1 , KoSvgText::DecorationOverline = 0x2 , KoSvgText::DecorationLineThrough = 0x4 }
 Flags for text-decoration, for underline, overline and strikethrough. More...
 
enum  KoSvgText::TextDecorationStyle {
  KoSvgText::Solid , KoSvgText::Double , KoSvgText::Dotted , KoSvgText::Dashed ,
  KoSvgText::Wavy
}
 Style of the text-decoration. More...
 
enum  KoSvgText::TextDecorationUnderlinePosition { KoSvgText::UnderlineAuto , KoSvgText::UnderlineUnder , KoSvgText::UnderlineLeft , KoSvgText::UnderlineRight }
 Which location to choose for the underline. More...
 
enum  KoSvgText::TextOrientation { KoSvgText::OrientationMixed , KoSvgText::OrientationUpright , KoSvgText::OrientationSideWays }
 Orientation of the glyphs, used for vertical writing modes. More...
 
enum  KoSvgText::TextOverflow { KoSvgText::OverFlowVisible , KoSvgText::OverFlowClip , KoSvgText::OverFlowEllipse }
 How to handle overflow. More...
 
enum  KoSvgText::TextPathMethod { KoSvgText::TextPathAlign , KoSvgText::TextPathStretch }
 Whether to stretch the glyphs along a path. More...
 
enum  KoSvgText::TextPathSide { KoSvgText::TextPathSideRight , KoSvgText::TextPathSideLeft }
 Whether to reverse the path before laying out text. More...
 
enum  KoSvgText::TextPathSpacing { KoSvgText::TextPathAuto , KoSvgText::TextPathExact }
 
enum  KoSvgText::TextRendering { KoSvgText::RenderingAuto , KoSvgText::RenderingOptimizeSpeed , KoSvgText::RenderingOptimizeLegibility , KoSvgText::RenderingGeometricPrecision }
 
enum  KoSvgText::TextSpaceCollapse {
  KoSvgText::Collapse , KoSvgText::Discard , KoSvgText::Preserve , KoSvgText::PreserveBreaks ,
  KoSvgText::PreserveSpaces , KoSvgText::BreakSpaces
}
 
enum  KoSvgText::TextSpaceTrim { KoSvgText::TrimNone = 0x0 , KoSvgText::TrimInner = 0x1 , KoSvgText::DiscardBefore = 0x2 , KoSvgText::DiscardAfter = 0x4 }
 Part of "white-space". More...
 
enum  KoSvgText::TextTransform { KoSvgText::TextTransformNone = 0x0 , KoSvgText::TextTransformCapitalize = 0x1 , KoSvgText::TextTransformUppercase = 0x2 , KoSvgText::TextTransformLowercase = 0x4 }
 
enum  KoSvgText::TextWrap {
  KoSvgText::Wrap , KoSvgText::NoWrap , KoSvgText::Balance , KoSvgText::Stable ,
  KoSvgText::Pretty
}
 Part of "white-space", in practice we only support wrap and nowrap. More...
 
enum  KoSvgText::UnicodeBidi {
  KoSvgText::BidiNormal , KoSvgText::BidiEmbed , KoSvgText::BidiOverride , KoSvgText::BidiIsolate ,
  KoSvgText::BidiIsolateOverride , KoSvgText::BidiPlainText
}
 
enum  KoSvgText::WordBreak { KoSvgText::WordBreakNormal , KoSvgText::WordBreakKeepAll , KoSvgText::WordBreakBreakAll }
 Whether to break words. More...
 
enum  KoSvgText::WritingMode { KoSvgText::HorizontalTB , KoSvgText::VerticalRL , KoSvgText::VerticalLR }
 

Functions

QStringList KoSvgText::fontFeaturesCaps (const FontFeatureCaps &feature, const int start, const int end)
 
QStringList KoSvgText::fontFeaturesPosition (const FontFeaturePosition &feature, const int start, const int end)
 
QVariant KoSvgText::fromAutoValue (const KoSvgText::AutoValue &value)
 
QDataStream & KoSvgText::operator<< (QDataStream &out, const KoSvgText::FontFamilyAxis &axis)
 
QDebug KoSvgText::operator<< (QDebug dbg, const BackgroundProperty &prop)
 
QDebug KoSvgText::operator<< (QDebug dbg, const CharTransformation &t)
 
QDebug KoSvgText::operator<< (QDebug dbg, const CssLengthPercentage &value)
 
QDebug KoSvgText::operator<< (QDebug dbg, const FontMetrics &metrics)
 
QDebug KoSvgText::operator<< (QDebug dbg, const KoSvgText::AutoLengthPercentage &value)
 
QDebug KoSvgText::operator<< (QDebug dbg, const KoSvgText::AutoValue &value)
 
QDebug KoSvgText::operator<< (QDebug dbg, const KoSvgText::CssFontStyleData &value)
 
QDebug KoSvgText::operator<< (QDebug dbg, const KoSvgText::FontFamilyAxis &axis)
 
QDebug KoSvgText::operator<< (QDebug dbg, const KoSvgText::FontFamilyStyleInfo &style)
 
QDebug KoSvgText::operator<< (QDebug dbg, const KoSvgText::FontFeatureEastAsian &feature)
 
QDebug KoSvgText::operator<< (QDebug dbg, const KoSvgText::FontFeatureLigatures &feature)
 
QDebug KoSvgText::operator<< (QDebug dbg, const KoSvgText::FontFeatureNumeric &feature)
 
QDebug KRITAFLAKE_EXPORT KoSvgText::operator<< (QDebug dbg, const KoSvgText::TabSizeInfo &value)
 
QDebug KRITAFLAKE_EXPORT KoSvgText::operator<< (QDebug dbg, const KoSvgText::TextIndentInfo &value)
 
QDebug KoSvgText::operator<< (QDebug dbg, const KoSvgText::TextUnderlinePosition &value)
 
QDebug KoSvgText::operator<< (QDebug dbg, const LineHeightInfo &value)
 
QDebug KoSvgText::operator<< (QDebug dbg, const StrokeProperty &prop)
 
QDebug KoSvgText::operator<< (QDebug dbg, const TextTransformInfo &t)
 
QDataStream & KoSvgText::operator>> (QDataStream &in, KoSvgText::FontFamilyAxis &axis)
 
AutoLengthPercentage KoSvgText::parseAutoLengthPercentageXY (const QString &value, const SvgLoadingContext &context, const QString &autoKeyword, QRectF bbox, bool percentageIsViewPort)
 
AutoValue KoSvgText::parseAutoValueAngular (const QString &value, const SvgLoadingContext &context, const QString &autoKeyword)
 
AutoValue KoSvgText::parseAutoValueX (const QString &value, const SvgLoadingContext &context, const QString &autoKeyword)
 
AutoValue KoSvgText::parseAutoValueXY (const QString &value, const SvgLoadingContext &context, const QString &autoKeyword)
 
AutoValue KoSvgText::parseAutoValueY (const QString &value, const SvgLoadingContext &context, const QString &autoKeyword)
 
Baseline KoSvgText::parseBaseline (const QString &value)
 
BaselineShiftMode KoSvgText::parseBaselineShiftMode (const QString &value)
 
int KoSvgText::parseCSSFontStretch (const QString &value, int currentStretch)
 parseCSSFontStretch For CSS3, the font-stretches were only given as keywords. In Css 4 and above, they also allow values, except in the "font"-shorthand. The css3 bool will restrict parsing to this value for this reason.
 
int KoSvgText::parseCSSFontWeight (const QString &value, int currentWeight)
 
Direction KoSvgText::parseDirection (const QString &value)
 
FontFeatureCaps KoSvgText::parseFontFeatureCaps (const QString &value, FontFeatureCaps feature)
 
FontFeatureEastAsian KoSvgText::parseFontFeatureEastAsian (const QString &value, FontFeatureEastAsian features)
 
FontFeatureLigatures KoSvgText::parseFontFeatureLigatures (const QString &value, FontFeatureLigatures features)
 
FontFeatureNumeric KoSvgText::parseFontFeatureNumeric (const QString &value, FontFeatureNumeric features)
 
FontFeaturePosition KoSvgText::parseFontFeaturePosition (const QString &value, FontFeaturePosition feature)
 
CssFontStyleData KoSvgText::parseFontStyle (const QString &value)
 
LengthAdjust KoSvgText::parseLengthAdjust (const QString &value)
 
LineBreak KoSvgText::parseLineBreak (const QString &value)
 
LineHeightInfo KoSvgText::parseLineHeight (const QString &value, const SvgLoadingContext &context)
 
TabSizeInfo KoSvgText::parseTabSize (const QString &value, const SvgLoadingContext &context)
 
TextAlign KoSvgText::parseTextAlign (const QString &value)
 
TextAnchor KoSvgText::parseTextAnchor (const QString &value)
 
TextIndentInfo KoSvgText::parseTextIndent (const QString &value, const SvgLoadingContext &context)
 
TextOrientation KoSvgText::parseTextOrientation (const QString &value)
 
TextOrientation KoSvgText::parseTextOrientationFromGlyphOrientation (AutoValue value)
 
TextPathMethod KoSvgText::parseTextPathMethod (const QString &value)
 
TextPathSide KoSvgText::parseTextPathSide (const QString &value)
 
TextPathSpacing KoSvgText::parseTextPathSpacing (const QString &value)
 
TextRendering KoSvgText::parseTextRendering (const QString &value)
 
TextTransformInfo KoSvgText::parseTextTransform (const QString &value)
 
UnicodeBidi KoSvgText::parseUnicodeBidi (const QString &value)
 
WordBreak KoSvgText::parseWordBreak (const QString &value)
 
WritingMode KoSvgText::parseWritingMode (const QString &value)
 
bool KoSvgText::whiteSpaceValueToLongHands (const QString &value, TextSpaceCollapse &collapseMethod, TextWrap &wrapMethod, TextSpaceTrims &trimMethod)
 whiteSpaceValueToLongHands CSS-Text-4 takes CSS-Text-3 whitespace values and treats them as a shorthand for three more specific properties. This method sets the three properties according to the white space value given.
 
QString KoSvgText::writeAlignmentBaseline (Baseline value)
 
QString KoSvgText::writeAutoLengthPercentage (const AutoLengthPercentage &value, const QString &autoKeyword, bool percentageToEm)
 
QString KoSvgText::writeAutoValue (const AutoValue &value, const QString &autoKeyword)
 
QString KoSvgText::writeBaselineShiftMode (BaselineShiftMode value, CssLengthPercentage shift)
 
QString KoSvgText::writeDirection (Direction value)
 
QString KoSvgText::writeDominantBaseline (Baseline value)
 
QString KoSvgText::writeFontFeatureCaps (const FontFeatureCaps &value)
 
QString KoSvgText::writeFontFeatureEastAsian (const FontFeatureEastAsian &feature)
 
QString KoSvgText::writeFontFeatureLigatures (const FontFeatureLigatures &feature)
 
QString KoSvgText::writeFontFeatureNumeric (const FontFeatureNumeric &feature)
 
QString KoSvgText::writeFontFeaturePosition (const FontFeaturePosition &value)
 
QString KoSvgText::writeFontStyle (CssFontStyleData value)
 
QString KoSvgText::writeLengthAdjust (LengthAdjust value)
 
QString KoSvgText::writeLengthPercentage (const CssLengthPercentage &length, bool percentageAsEm)
 
QString KoSvgText::writeLineBreak (LineBreak value)
 
QString KoSvgText::writeLineHeight (LineHeightInfo lineHeight)
 
QString KoSvgText::writeTabSize (const TabSizeInfo tabSize)
 
QString KoSvgText::writeTextAlign (TextAlign value)
 
QString KoSvgText::writeTextAnchor (TextAnchor value)
 
QString KoSvgText::writeTextIndent (const TextIndentInfo textIndent)
 
QString KoSvgText::writeTextOrientation (TextOrientation orientation)
 
QString KoSvgText::writeTextPathMethod (TextPathMethod value)
 
QString KoSvgText::writeTextPathSide (TextPathSide value)
 
QString KoSvgText::writeTextPathSpacing (TextPathSpacing value)
 
QString KoSvgText::writeTextRendering (TextRendering value)
 
QString KoSvgText::writeTextTransform (const TextTransformInfo textTransform)
 
QString KoSvgText::writeUnicodeBidi (UnicodeBidi value)
 
QString KoSvgText::writeWhiteSpaceValue (TextSpaceCollapse collapseMethod, TextWrap wrapMethod, KoSvgText::TextSpaceTrims trimMethod)
 writeWhiteSpaceValue determine the CSS-3-Whitespace shorthand value.
 
QString KoSvgText::writeWordBreak (WordBreak value)
 
QString KoSvgText::writeWritingMode (WritingMode value, bool svg1_1)
 
QString KoSvgText::writeXmlSpace (TextSpaceCollapse collapseMethod)
 
bool KoSvgText::xmlSpaceToLongHands (const QString &value, TextSpaceCollapse &collapseMethod)
 xmlSpaceToLongHands This takes xml:space values and converts them to CSS-Text-4 properties.
 

Variables

static const std::array< const char *, 7 > KoSvgText::fontSizeNames
 
static const std::array< const char *, 9 > KoSvgText::fontStretchNames