void SVGFEMorphologyElement::parseAttribute(const QualifiedName& name, const AtomicString& value) { if (!isSupportedAttribute(name)) { SVGFilterPrimitiveStandardAttributes::parseAttribute(name, value); return; } if (name == SVGNames::operatorAttr) { MorphologyOperatorType propertyValue = SVGPropertyTraits<MorphologyOperatorType>::fromString(value); if (propertyValue > 0) setSVGOperatorBaseValue(propertyValue); return; } if (name == SVGNames::inAttr) { setIn1BaseValue(value); return; } if (name == SVGNames::radiusAttr) { float x, y; if (parseNumberOptionalNumber(value, x, y)) { setRadiusXBaseValue(x); setRadiusYBaseValue(y); } return; } ASSERT_NOT_REACHED(); }
void SVGFEMorphologyElement::parseMappedAttribute(Attribute* attr) { const String& value = attr->value(); if (attr->name() == SVGNames::operatorAttr) { if (value == "erode") set_operatorBaseValue(FEMORPHOLOGY_OPERATOR_ERODE); else if (value == "dilate") set_operatorBaseValue(FEMORPHOLOGY_OPERATOR_DILATE); } else if (attr->name() == SVGNames::inAttr) setIn1BaseValue(value); else if (attr->name() == SVGNames::radiusAttr) { float x, y; if (parseNumberOptionalNumber(value, x, y)) { setRadiusXBaseValue(x); setRadiusYBaseValue(y); } } else SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr); }
void SVGFEMorphologyElement::setRadius(float x, float y) { setRadiusXBaseValue(x); setRadiusYBaseValue(y); invalidate(); }