//////////////////////////////////////////////////////////////////////////////
// Name:        SVGFECompositeElement.h
// Author:      Alex Thuering
// Copyright:   (c) 2005 Alex Thuering
// Licence:     wxWindows licence
// Notes:       generated by generate.py
//////////////////////////////////////////////////////////////////////////////

#ifndef WX_SVG_FE_COMPOSITE_ELEMENT_H
#define WX_SVG_FE_COMPOSITE_ELEMENT_H

#include "SVGElement.h"
#include "SVGFilterPrimitiveStandardAttributes.h"
#include "SVGAnimatedString.h"
#include "SVGAnimatedEnumeration.h"
#include "SVGAnimatedNumber.h"
#include "String_wxsvg.h"
#include "Element.h"
#include "SVGAnimatedType.h"


enum wxSVG_FECOMPOSITE_OPERATOR
{
  wxSVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0,
  wxSVG_FECOMPOSITE_OPERATOR_OVER = 1,
  wxSVG_FECOMPOSITE_OPERATOR_IN = 2,
  wxSVG_FECOMPOSITE_OPERATOR_OUT = 3,
  wxSVG_FECOMPOSITE_OPERATOR_ATOP = 4,
  wxSVG_FECOMPOSITE_OPERATOR_XOR = 5,
  wxSVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
};

class wxSVGFECompositeElement:
  public wxSVGElement,
  public wxSVGFilterPrimitiveStandardAttributes
{
  protected:
    wxSVGAnimatedString m_in1;
    wxSVGAnimatedString m_in2;
    wxSVGAnimatedEnumeration m_operator;
    wxSVGAnimatedNumber m_k1;
    wxSVGAnimatedNumber m_k2;
    wxSVGAnimatedNumber m_k3;
    wxSVGAnimatedNumber m_k4;

  public:
    inline const wxSVGAnimatedString& GetIn1() const { return m_in1; }
    inline void SetIn1(const wxSVGAnimatedString& n) { m_in1 = n; }
    inline void SetIn1(const wxString& n) { m_in1.SetBaseVal(n); }

    inline const wxSVGAnimatedString& GetIn2() const { return m_in2; }
    inline void SetIn2(const wxSVGAnimatedString& n) { m_in2 = n; }
    inline void SetIn2(const wxString& n) { m_in2.SetBaseVal(n); }

    inline const wxSVGAnimatedEnumeration& GetOperator() const { return m_operator; }
    inline void SetOperator(const wxSVGAnimatedEnumeration& n) { m_operator = n; }
    inline void SetOperator(unsigned char n) { m_operator.SetBaseVal(n); }

    inline const wxSVGAnimatedNumber& GetK1() const { return m_k1; }
    inline void SetK1(const wxSVGAnimatedNumber& n) { m_k1 = n; }
    inline void SetK1(float n) { m_k1.SetBaseVal(n); }

    inline const wxSVGAnimatedNumber& GetK2() const { return m_k2; }
    inline void SetK2(const wxSVGAnimatedNumber& n) { m_k2 = n; }
    inline void SetK2(float n) { m_k2.SetBaseVal(n); }

    inline const wxSVGAnimatedNumber& GetK3() const { return m_k3; }
    inline void SetK3(const wxSVGAnimatedNumber& n) { m_k3 = n; }
    inline void SetK3(float n) { m_k3.SetBaseVal(n); }

    inline const wxSVGAnimatedNumber& GetK4() const { return m_k4; }
    inline void SetK4(const wxSVGAnimatedNumber& n) { m_k4 = n; }
    inline void SetK4(float n) { m_k4.SetBaseVal(n); }

  public:
    wxSVGFECompositeElement(wxString tagName = wxT("feComposite")):
      wxSVGElement(tagName) {}
    virtual ~wxSVGFECompositeElement() {}
    wxSvgXmlNode* CloneNode(bool deep = true) { return new wxSVGFECompositeElement(*this); }
    bool HasAttribute(const wxString& name) const;
    wxString GetAttribute(const wxString& name) const;
    bool SetAttribute(const wxString& name, const wxString& value);
    wxSvgXmlAttrHash GetAttributes() const;
    bool SetAnimatedValue(const wxString& name, const wxSVGAnimatedType& value);
    virtual wxSVGDTD GetDtd() const { return wxSVG_FECOMPOSITE_ELEMENT; }
};

#endif // WX_SVG_FE_COMPOSITE_ELEMENT_H
