Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / svg / SVGFECompositeElement.h
index 7b7b943..d898b66 100644 (file)
 #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