#ifndef SVGTextMetrics_h
#define SVGTextMetrics_h
#include "platform/fonts/Glyph.h"
#include "wtf/text/WTFString.h"
namespace WebCore {
class RenderSVGInlineText;
class SVGTextLayoutAttributes;
class TextRun;
class SVGTextMetrics {
public:
enum MetricsType {
SkippedSpaceMetrics
};
SVGTextMetrics();
SVGTextMetrics(MetricsType);
SVGTextMetrics(RenderSVGInlineText*, unsigned position, unsigned length, float width, Glyph glyphNameGlyphId);
static SVGTextMetrics measureCharacterRange(RenderSVGInlineText*, unsigned position, unsigned length);
static TextRun constructTextRun(RenderSVGInlineText*, unsigned position, unsigned length);
bool isEmpty() const { return !m_width && !m_height && m_length <= 1; }
float width() const { return m_width; }
void setWidth(float width) { m_width = width; }
float height() const { return m_height; }
unsigned length() const { return m_length; }
Glyph glyph() const { return m_glyph; }
private:
SVGTextMetrics(RenderSVGInlineText*, const TextRun&);
float m_width;
float m_height;
unsigned m_length;
Glyph m_glyph;
};
}
#endif