Ref<SVGAnimatedProperty> SVGMarkerElement::lookupOrCreateOrientTypeWrapper(SVGElement* contextElement) { ASSERT(contextElement); SVGMarkerElement& ownerType = downcast<SVGMarkerElement>(*contextElement); return SVGAnimatedProperty::lookupOrCreateWrapper<SVGMarkerElement, SVGAnimatedEnumerationPropertyTearOff<SVGMarkerOrientType>, SVGMarkerOrientType> (&ownerType, orientTypePropertyInfo(), ownerType.m_orientType.value); }
void SVGMarkerElement::synchronizeOrientType(SVGElement* contextElement) { ASSERT(contextElement); SVGMarkerElement& ownerType = downcast<SVGMarkerElement>(*contextElement); if (!ownerType.m_orientType.shouldSynchronize) return; static NeverDestroyed<AtomicString> autoString("auto", AtomicString::ConstructFromLiteral); static NeverDestroyed<AtomicString> autoStartReverseString("auto-start-reverse", AtomicString::ConstructFromLiteral); // If orient is not auto or auto-start-reverse, the previous call to synchronizeOrientAngle already set the orientAttr to the right angle. if (ownerType.m_orientType.value == SVGMarkerOrientAuto) { ownerType.m_orientType.synchronize(&ownerType, orientTypePropertyInfo()->attributeName, autoString); return; } if (ownerType.m_orientType.value == SVGMarkerOrientAutoStartReverse) ownerType.m_orientType.synchronize(&ownerType, orientTypePropertyInfo()->attributeName, autoStartReverseString); }
void SVGMarkerElement::synchronizeOrientType(SVGElement* contextElement) { ASSERT(contextElement); SVGMarkerElement& ownerType = downcast<SVGMarkerElement>(*contextElement); if (!ownerType.m_orientType.shouldSynchronize) return; // If orient is not auto, the previous call to synchronizeOrientAngle already set the orientAttr to the right angle. if (ownerType.m_orientType.value != SVGMarkerOrientAuto) return; DEPRECATED_DEFINE_STATIC_LOCAL(AtomicString, autoString, ("auto", AtomicString::ConstructFromLiteral)); ownerType.m_orientType.synchronize(&ownerType, orientTypePropertyInfo()->attributeName, autoString); }
SVGMarkerOrientType& SVGMarkerElement::orientType() const { if (SVGAnimatedEnumeration* wrapper = SVGAnimatedProperty::lookupWrapper<UseOwnerType, SVGAnimatedEnumeration>(this, orientTypePropertyInfo())) { if (wrapper->isAnimating()) { ASSERT(wrapper->currentAnimatedValue() < SVGMarkerOrientMax); return reinterpret_cast<SVGMarkerOrientType&>(wrapper->currentAnimatedValue()); } } return m_orientType.value; }