#include "third_party/blink/renderer/core/svg/svg_text_content_element.h"
#include "third_party/blink/renderer/core/css/css_property_names.h"
#include "third_party/blink/renderer/core/css_value_keywords.h"
#include "third_party/blink/renderer/core/editing/frame_selection.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_text.h"
#include "third_party/blink/renderer/core/layout/svg/svg_text_query.h"
#include "third_party/blink/renderer/core/svg/svg_animated_length.h"
#include "third_party/blink/renderer/core/svg/svg_enumeration_map.h"
#include "third_party/blink/renderer/core/svg/svg_point_tear_off.h"
#include "third_party/blink/renderer/core/svg/svg_rect_tear_off.h"
#include "third_party/blink/renderer/core/svg_names.h"
#include "third_party/blink/renderer/core/xml_names.h"
#include "third_party/blink/renderer/platform/bindings/exception_messages.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
namespace blink {
namespace {
bool IsNGTextOrInline(const LayoutObject* object) { … }
}
template <>
const SVGEnumerationMap& GetEnumerationMap<SVGLengthAdjustType>() { … }
class SVGAnimatedTextLength final : public SVGAnimatedLength { … };
SVGTextContentElement::SVGTextContentElement(const QualifiedName& tag_name,
Document& document)
: … { … }
void SVGTextContentElement::Trace(Visitor* visitor) const { … }
unsigned SVGTextContentElement::getNumberOfChars() { … }
float SVGTextContentElement::getComputedTextLength() { … }
float SVGTextContentElement::getSubStringLength(
unsigned charnum,
unsigned nchars,
ExceptionState& exception_state) { … }
SVGPointTearOff* SVGTextContentElement::getStartPositionOfChar(
unsigned charnum,
ExceptionState& exception_state) { … }
SVGPointTearOff* SVGTextContentElement::getEndPositionOfChar(
unsigned charnum,
ExceptionState& exception_state) { … }
SVGRectTearOff* SVGTextContentElement::getExtentOfChar(
unsigned charnum,
ExceptionState& exception_state) { … }
float SVGTextContentElement::getRotationOfChar(
unsigned charnum,
ExceptionState& exception_state) { … }
int SVGTextContentElement::getCharNumAtPosition(
SVGPointTearOff* point,
ExceptionState& exception_state) { … }
void SVGTextContentElement::selectSubString(unsigned charnum,
unsigned nchars,
ExceptionState& exception_state) { … }
bool SVGTextContentElement::IsPresentationAttribute(
const QualifiedName& name) const { … }
void SVGTextContentElement::CollectStyleForPresentationAttribute(
const QualifiedName& name,
const AtomicString& value,
MutableCSSPropertyValueSet* style) { … }
void SVGTextContentElement::SvgAttributeChanged(
const SvgAttributeChangedParams& params) { … }
bool SVGTextContentElement::SelfHasRelativeLengths() const { … }
SVGTextContentElement* SVGTextContentElement::ElementFromLineLayoutItem(
const LineLayoutItem& line_layout_item) { … }
SVGAnimatedPropertyBase* SVGTextContentElement::PropertyFromAttribute(
const QualifiedName& attribute_name) const { … }
void SVGTextContentElement::SynchronizeAllSVGAttributes() const { … }
}