#ifndef SVGFECompositeElement_h
#define SVGFECompositeElement_h
-#include "core/platform/graphics/filters/FEComposite.h"
#include "core/svg/SVGAnimatedEnumeration.h"
#include "core/svg/SVGAnimatedNumber.h"
#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(const QualifiedName&, Document&);
+ DECLARE_NODE_FACTORY(SVGFECompositeElement);
+
+ SVGAnimatedNumber* k1() { return m_k1.get(); }
+ SVGAnimatedNumber* k2() { return m_k2.get(); }
+ SVGAnimatedNumber* k3() { return m_k3.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:
- SVGFECompositeElement(const QualifiedName&, Document&);
+ explicit SVGFECompositeElement(Document&);
bool isSupportedAttribute(const QualifiedName&);
- virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
- virtual bool setFilterEffectAttribute(FilterEffect*, const QualifiedName&);
- virtual void svgAttributeChanged(const QualifiedName&);
- virtual PassRefPtr<FilterEffect> build(SVGFilterBuilder*, Filter*);
+ 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;
- BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGFECompositeElement)
- DECLARE_ANIMATED_STRING(In1, in1)
- DECLARE_ANIMATED_STRING(In2, in2)
- DECLARE_ANIMATED_ENUMERATION(SVGOperator, svgOperator, CompositeOperationType)
- DECLARE_ANIMATED_NUMBER(K1, k1)
- DECLARE_ANIMATED_NUMBER(K2, k2)
- DECLARE_ANIMATED_NUMBER(K3, k3)
- DECLARE_ANIMATED_NUMBER(K4, k4)
- END_DECLARE_ANIMATED_PROPERTIES
+ RefPtr<SVGAnimatedNumber> m_k1;
+ RefPtr<SVGAnimatedNumber> m_k2;
+ RefPtr<SVGAnimatedNumber> m_k3;
+ RefPtr<SVGAnimatedNumber> m_k4;
+ RefPtr<SVGAnimatedString> m_in1;
+ RefPtr<SVGAnimatedString> m_in2;
+ RefPtr<SVGAnimatedEnumeration<CompositeOperationType> > m_svgOperator;
};
-} // namespace WebCore
+} // namespace blink
-#endif
+#endif // SVGFECompositeElement_h