#include "core/svg/SVGFilterPrimitiveStandardAttributes.h"
#include "platform/graphics/filters/FEComposite.h"
-namespace WebCore {
+namespace blink {
-template<>
-struct SVGPropertyTraits<CompositeOperationType> {
- static unsigned highestEnumValue() { return FECOMPOSITE_OPERATOR_ARITHMETIC; }
+template<> const SVGEnumerationStringEntries& getStaticStringEntries<CompositeOperationType>();
- static String toString(CompositeOperationType type)
- {
- switch (type) {
- case FECOMPOSITE_OPERATOR_UNKNOWN:
- return emptyString();
- case FECOMPOSITE_OPERATOR_OVER:
- return "over";
- case FECOMPOSITE_OPERATOR_IN:
- return "in";
- case FECOMPOSITE_OPERATOR_OUT:
- return "out";
- case FECOMPOSITE_OPERATOR_ATOP:
- return "atop";
- case FECOMPOSITE_OPERATOR_XOR:
- return "xor";
- case FECOMPOSITE_OPERATOR_ARITHMETIC:
- return "arithmetic";
- }
-
- ASSERT_NOT_REACHED();
- return emptyString();
- }
-
- static CompositeOperationType fromString(const String& value)
- {
- if (value == "over")
- return FECOMPOSITE_OPERATOR_OVER;
- if (value == "in")
- return FECOMPOSITE_OPERATOR_IN;
- if (value == "out")
- return FECOMPOSITE_OPERATOR_OUT;
- if (value == "atop")
- return FECOMPOSITE_OPERATOR_ATOP;
- if (value == "xor")
- return FECOMPOSITE_OPERATOR_XOR;
- if (value == "arithmetic")
- return FECOMPOSITE_OPERATOR_ARITHMETIC;
- return FECOMPOSITE_OPERATOR_UNKNOWN;
- }
-};
-
-class SVGFECompositeElement FINAL : public SVGFilterPrimitiveStandardAttributes {
+class SVGFECompositeElement final : public SVGFilterPrimitiveStandardAttributes {
+ DEFINE_WRAPPERTYPEINFO();
public:
- static PassRefPtr<SVGFECompositeElement> create(Document&);
+ DECLARE_NODE_FACTORY(SVGFECompositeElement);
SVGAnimatedNumber* k1() { return m_k1.get(); }
SVGAnimatedNumber* k2() { return m_k2.get(); }
SVGAnimatedNumber* k4() { return m_k4.get(); }
SVGAnimatedString* in1() { return m_in1.get(); }
SVGAnimatedString* in2() { return m_in2.get(); }
+ SVGAnimatedEnumeration<CompositeOperationType>* svgOperator() { return m_svgOperator.get(); }
private:
explicit SVGFECompositeElement(Document&);
bool isSupportedAttribute(const QualifiedName&);
- virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
- virtual bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) OVERRIDE;
- virtual void svgAttributeChanged(const QualifiedName&) OVERRIDE;
- virtual PassRefPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) OVERRIDE;
+ virtual void parseAttribute(const QualifiedName&, const AtomicString&) override;
+ virtual bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&) override;
+ virtual void svgAttributeChanged(const QualifiedName&) override;
+ virtual PassRefPtr<FilterEffect> build(SVGFilterBuilder*, Filter*) override;
RefPtr<SVGAnimatedNumber> m_k1;
RefPtr<SVGAnimatedNumber> m_k2;
RefPtr<SVGAnimatedNumber> m_k4;
RefPtr<SVGAnimatedString> m_in1;
RefPtr<SVGAnimatedString> m_in2;
- BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGFECompositeElement)
- DECLARE_ANIMATED_ENUMERATION(SVGOperator, svgOperator, CompositeOperationType)
- END_DECLARE_ANIMATED_PROPERTIES
+ RefPtr<SVGAnimatedEnumeration<CompositeOperationType> > m_svgOperator;
};
-} // namespace WebCore
+} // namespace blink
-#endif
+#endif // SVGFECompositeElement_h